It looks like this is a web page, not a feed. I looked for a feed associated with this page, but couldn't find one. Please enter the address of your feed to validate.

Source: http://linktek.com

  1. <!DOCTYPE html>
  2. <html lang="en-US" prefix="og: https://ogp.me/ns#">
  3. <head>
  4.  
  5. <meta charset="UTF-8" />
  6. <meta name='viewport' content='width=device-width, initial-scale=1.0' />
  7. <meta http-equiv='X-UA-Compatible' content='IE=edge' />
  8. <script>
  9. var gform;gform||(document.addEventListener("gform_main_scripts_loaded",function(){gform.scriptsLoaded=!0}),window.addEventListener("DOMContentLoaded",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,initializeOnLoaded:function(o){gform.domLoaded&&gform.scriptsLoaded?o():!gform.domLoaded&&gform.scriptsLoaded?window.addEventListener("DOMContentLoaded",o):document.addEventListener("gform_main_scripts_loaded",o)},hooks:{action:{},filter:{}},addAction:function(o,n,r,t){gform.addHook("action",o,n,r,t)},addFilter:function(o,n,r,t){gform.addHook("filter",o,n,r,t)},doAction:function(o){gform.doHook("action",o,arguments)},applyFilters:function(o){return gform.doHook("filter",o,arguments)},removeAction:function(o,n){gform.removeHook("action",o,n)},removeFilter:function(o,n,r){gform.removeHook("filter",o,n,r)},addHook:function(o,n,r,t,i){null==gform.hooks[o][n]&&(gform.hooks[o][n]=[]);var e=gform.hooks[o][n];null==i&&(i=n+"_"+e.length),gform.hooks[o][n].push({tag:i,callable:r,priority:t=null==t?10:t})},doHook:function(n,o,r){var t;if(r=Array.prototype.slice.call(r,1),null!=gform.hooks[n][o]&&((o=gform.hooks[n][o]).sort(function(o,n){return o.priority-n.priority}),o.forEach(function(o){"function"!=typeof(t=o.callable)&&(t=window[t]),"action"==n?t.apply(null,r):r[0]=t.apply(null,r)})),"filter"==n)return r[0]},removeHook:function(o,n,t,i){var r;null!=gform.hooks[o][n]&&(r=(r=gform.hooks[o][n]).filter(function(o,n,r){return!!(null!=i&&i!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][n]=r)}});
  10. </script>
  11.  
  12. <link rel="profile" href="https://gmpg.org/xfn/11" />
  13. <script type="text/javascript" data-type="lazy" data-src="data:text/javascript;base64,CiAgICAoZnVuY3Rpb24oKSB7CiAgdmFyIHB2RGF0YSA9IHsic291cmNlIjoiRGlyZWN0IiwicmVmZXJyZXIiOiJEaXJlY3QiLCJ2aXNpdG9yX3R5cGUiOiJsb2dnZWQgb3V0IiwidmlzaXRvcl9sb2dpbl9zdGF0dXMiOiJsb2dnZWQgb3V0IiwidmlzaXRvcl9pZCI6MCwicGFnZV90aXRsZSI6IkxpbmtUZWsgfCBGaXggQnJva2VuIExpbmtzIEF1dG9tYXRpY2FsbHkgRHVyaW5nIEZpbGUgTWlncmF0aW9ucyIsInBvc3RfdHlwZSI6InBhZ2UiLCJwb3N0X3R5cGVfd2l0aF9wcmVmaXgiOiJzaW5nbGUgcGFnZSIsInBvc3RfY2F0ZWdvcmllcyI6IiIsInBvc3RfdGFncyI6IiIsInBvc3RfYXV0aG9yIjoiTWFyay5QZW5kbyIsInBvc3RfZnVsbF9kYXRlIjoiMTAgSmFudWFyeSAyMDIzIiwicG9zdF95ZWFyIjoiMjAyMyIsInBvc3RfbW9udGgiOiIwMSIsInBvc3RfZGF5IjoiMTAiLCJpc19mcm9udF9wYWdlIjoxLCJpc19ob21lIjoxLCJzZWFyY2hfcXVlcnkiOiIiLCJzZWFyY2hfcmVzdWx0c19jb3VudCI6MH07CiAgdmFyIGJvZHkgPSB7CiAgICB1cmw6IGVuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cubG9jYXRpb24uaHJlZiksCiAgICByZWZlcnJlcjogZW5jb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LnJlZmVycmVyKQogIH07CgogIGZ1bmN0aW9uIG1ha2VQb3N0UmVxdWVzdChlLHQpe3ZhciBuPVtdO2lmKHQuYm9keSl7Zm9yKHZhciBvIGluIHQuYm9keSluLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KG8pKyI9IitlbmNvZGVVUklDb21wb25lbnQodC5ib2R5W29dKSk7dC5ib2R5PW4uam9pbigiJiIpfXJldHVybiB3aW5kb3cuZmV0Y2g/bmV3IFByb21pc2Uobj0+e3ZhciBvPXttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifSxyZWRpcmVjdDoiZm9sbG93Iixib2R5Ont9LC4uLnR9O3dpbmRvdy5mZXRjaChlLG8pLnRoZW4oZT0+e24oZS50ZXh0KCkpfSl9KTpuZXcgUHJvbWlzZSh0PT57dmFyIG87InVuZGVmaW5lZCI9PXR5cGVvZiBYTUxIdHRwUmVxdWVzdCYmdChudWxsKSwobz1uZXcgWE1MSHR0cFJlcXVlc3QpLm9wZW4oIlBPU1QiLGUsITApLG8ub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09by5yZWFkeVN0YXRlJiYyMDA9PW8uc3RhdHVzJiZ0KG8ucmVzcG9uc2VUZXh0KX0sby5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LXR5cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSxvLnNlbmQobi5qb2luKCImIikpfSl9CiAgZnVuY3Rpb24gb2JzZXJ2ZUFqYXhDYXJ0QWN0aW9ucyhlKXtuZXcgUGVyZm9ybWFuY2VPYnNlcnZlcihmdW5jdGlvbih0KXtmb3IodmFyIG49dC5nZXRFbnRyaWVzKCkscj0wO3I8bi5sZW5ndGg7cisrKVsieG1saHR0cHJlcXVlc3QiLCJmZXRjaCJdLmluY2x1ZGVzKG5bcl0uaW5pdGlhdG9yVHlwZSkmJlsnPWdldF9yZWZyZXNoZWRfZnJhZ21lbnRzJywgJ2FkZF90b19jYXJ0J10uc29tZShwID0+IG5bcl0ubmFtZS5pbmNsdWRlcyhwKSkmJmZldGNoQ2FydChlKX0pLm9ic2VydmUoe2VudHJ5VHlwZXM6WyJyZXNvdXJjZSJdfSl9OwoKICBmdW5jdGlvbiBmZXRjaENhcnQoYWRhcHRlcikgewogICAgbWFrZVBvc3RSZXF1ZXN0KCIvL2xpbmt0ZWsuY29tL2luZGV4LnBocD9wbHVnaW49b3B0aW1vbmsmYWN0aW9uPWNhcnREYXRhIiwgeyBib2R5IH0pCiAgICAgIC50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgIHZhciBkYXRhID0gSlNPTi5wYXJzZShyZXNwb25zZSk7CiAgICAgICAgc2V0Q2FydERhdGEoZGF0YSwgYWRhcHRlcik7CiAgICAgIH0pCiAgfQoKICBmdW5jdGlvbiBzZXRDYXJ0RGF0YShjYXJ0RGF0YSwgYWRhcHRlcikgewogICAgYWRhcHRlci5DYXJ0LmNsZWFyKCk7CgogICAgY2FydERhdGEuY2FydC5mb3JFYWNoKGNhcnRJdGVtID0+IHsKICAgICAgYWRhcHRlci5DYXJ0LmFkZChjYXJ0SXRlbS5za3UsIHtxdWFudGl0eTogY2FydEl0ZW0ucXVhbnRpdHksIHByaWNlOiBjYXJ0SXRlbS5wcmljZSwgbmFtZTogY2FydEl0ZW0ubmFtZX0pOwogICAgfSk7CiAgICBPYmplY3Qua2V5cyhjYXJ0RGF0YS5hdnMpLmZvckVhY2goKGtleSwgdmFsdWUpID0+IHsKICAgICAgYWRhcHRlci5hdHRyKGB3cF8ke2tleX1gLCBjYXJ0RGF0YS5hdnNba2V5XSk7CiAgICB9KQogIH0KCiAgZnVuY3Rpb24gc2V0QXNzb2NEYXRhKGFzc29jRGF0YSwgYWRhcHRlcikgewogICAgT2JqZWN0LmtleXMoYXNzb2NEYXRhKS5mb3JFYWNoKChrZXkpID0+IHsKICAgICAgYWRhcHRlci5hdHRyKGB3cF8ke2tleX1gLCBhc3NvY0RhdGFba2V5XSk7CiAgICB9KQogIH0KCiAgdmFyIFJ1bGVIYW5kbGVyID0gewogICAgaGFzVmlzaXRvckNhcnRSdWxlczogKGNhbXBhaWduTWV0YSkgPT4gewogICAgICByZXR1cm4gISEoY2FtcGFpZ25NZXRhLnJ1bGVzLnZpc2l0b3JDYXJ0IHx8IGNhbXBhaWduTWV0YS5ydWxlcy52aXNpdG9yQ2FydFJldmFtcCB8fCBjYW1wYWlnbk1ldGEucnVsZXMudmlzaXRvckNhcnRWMyk7CiAgICB9LAogICAgaGFzVmlzaXRvckF0dHJpYnV0ZVJ1bGU6IChjYW1wYWlnbk1ldGEpID0+IHsKICAgICAgcmV0dXJuICEhY2FtcGFpZ25NZXRhLnJ1bGVzLnZpc2l0b3JBdHRyaWJ1dGU7CiAgICB9CiAgfQoKICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdodG1sJykuYWRkRXZlbnRMaXN0ZW5lcignb3B0aW1vbmsjZW1iZWRkZWQtY2FtcGFpZ25zLWluaXQnLCBmdW5jdGlvbihlKSB7CiAgICB2YXIgY2FtcGFpZ25zRGF0YSA9IGUucGFyYW1ldGVyczsKCiAgICBpZiAoIWNhbXBhaWduc0RhdGEubGVuZ3RoKSB7CiAgICAgIHJldHVybjsKICAgIH0KCiAgICB2YXIgYWRhcHRlciA9IHdpbmRvdy5PcHRpTW9ua0VtYmVkZGVkLlZpc2l0b3IuY3JlYXRlQWRhcHRlcigpOwogICAgdmFyIGhhc0NhcnRSdWxlID0gZmFsc2U7CiAgICB2YXIgaGFzQXR0cmlidXRlUnVsZSA9IGZhbHNlOwoKICAgIGNhbXBhaWduc0RhdGEuZm9yRWFjaCgoY2FtcGFpZ25NZXRhRGF0YSkgPT4gewogICAgICBoYXNDYXJ0UnVsZSA9IGhhc0NhcnRSdWxlIHx8IFJ1bGVIYW5kbGVyLmhhc1Zpc2l0b3JDYXJ0UnVsZXMoY2FtcGFpZ25NZXRhRGF0YSk7CiAgICAgIGhhc0F0dHJpYnV0ZVJ1bGUgPSBoYXNBdHRyaWJ1dGVSdWxlIHx8IFJ1bGVIYW5kbGVyLmhhc1Zpc2l0b3JBdHRyaWJ1dGVSdWxlKGNhbXBhaWduTWV0YURhdGEpOwogICAgfSk7CgogICAgc2V0QXNzb2NEYXRhKHB2RGF0YSwgYWRhcHRlcik7CgogICAgaWYgKGhhc0NhcnRSdWxlKSB7CiAgICAgIG9ic2VydmVBamF4Q2FydEFjdGlvbnMoYWRhcHRlcik7CiAgICAgIGZldGNoQ2FydChhZGFwdGVyKTsKICAgIH0KCiAgICBpZiAoaGFzQXR0cmlidXRlUnVsZSkgewogICAgICBtYWtlUG9zdFJlcXVlc3QoIi8vbGlua3Rlay5jb20vaW5kZXgucGhwP3BsdWdpbj1vcHRpbW9uayZhY3Rpb249cHJvZHVjdERhdGEiLCB7IGJvZHkgfSkKICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgIHZhciBkYXRhID0gSlNPTi5wYXJzZShyZXNwb25zZSk7CiAgICAgICAgICBzZXRBc3NvY0RhdGEoZGF0YSwgYWRhcHRlcik7CiAgICAgICAgfSkKICAgIH0KICB9KTsKCiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaHRtbCcpLmFkZEV2ZW50TGlzdGVuZXIoJ29wdGltb25rI2NhbXBhaWduc19pbml0aWFsaXplZCcsIGZ1bmN0aW9uICgpIHsKICAgIGlmICghT3B0aU1vbmsuY2FtcGFpZ25zKSB7CiAgICAgIHJldHVybjsKICAgIH0KCiAgICB2YXIgYWRhcHRlciA9IHdpbmRvdy5PcHRpTW9uay5WaXNpdG9yLmNyZWF0ZUFkYXB0ZXIoKTsKCiAgICBzZXRBc3NvY0RhdGEocHZEYXRhLCBhZGFwdGVyKTsKCiAgICBpZiAoT3B0aU1vbmsuY2FtcGFpZ25zLmZpbHRlcihjYW1wYWlnbiA9PiBjYW1wYWlnbi5oYXNWaXNpdG9yQ2FydFJ1bGVzKCkpLmxlbmd0aCkgewogICAgICBvYnNlcnZlQWpheENhcnRBY3Rpb25zKGFkYXB0ZXIpOwogICAgICBmZXRjaENhcnQoYWRhcHRlcik7CiAgICB9CgogICAgaWYgKE9wdGlNb25rLmNhbXBhaWducy5maWx0ZXIoY2FtcGFpZ24gPT4gY2FtcGFpZ24uaGFzVmlzaXRvckF0dHJpYnV0ZVJ1bGVzKCkpLmxlbmd0aCkgewogICAgICBtYWtlUG9zdFJlcXVlc3QoIi8vbGlua3Rlay5jb20vaW5kZXgucGhwP3BsdWdpbj1vcHRpbW9uayZhY3Rpb249cHJvZHVjdERhdGEiLCB7IGJvZHkgfSkKICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgIHZhciBkYXRhID0gSlNPTi5wYXJzZShyZXNwb25zZSk7CiAgICAgICAgICBzZXRBc3NvY0RhdGEoZGF0YSwgYWRhcHRlcik7CiAgICAgICAgfSk7CiAgICB9CiAgfSk7Cn0oKSk7Cgo="></script>
  14. <script type="text/javascript" async data-type="lazy" data-src="https://onsite.optimonk.com/script.js?account=196518"></script><!-- This site is tracked with the HandL UTM Grabber v3 (3.0.56) - https://www.utmgrabber.com/ -->
  15. <link rel='preconnect' href='https://cdn.pagesense.io/' >
  16.  
  17. <!-- Search Engine Optimization by Rank Math - https://rankmath.com/ -->
  18. <title>LinkTek | Fix Broken Links Automatically During File Migrations</title>
  19. <meta name="description" content="Fix Broken Links with LinkTek: Prevent Data Loss in SharePoint, OpenText, and Server Migrations. Get Your Free Trial Today!"/>
  20. <meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large"/>
  21. <link rel="canonical" href="https://linktek.com/" />
  22. <meta property="og:locale" content="en_US" />
  23. <meta property="og:type" content="website" />
  24. <meta property="og:title" content="LinkTek | Fix Broken Links Automatically During File Migrations" />
  25. <meta property="og:description" content="Fix Broken Links with LinkTek: Prevent Data Loss in SharePoint, OpenText, and Server Migrations. Get Your Free Trial Today!" />
  26. <meta property="og:url" content="https://linktek.com/" />
  27. <meta property="og:site_name" content="LinkTek.com" />
  28. <meta property="og:updated_time" content="2024-09-26T18:50:58+00:00" />
  29. <meta property="og:image" content="https://linktek.com/wp-content/uploads/2019/10/logo-dark-new.png" />
  30. <meta property="og:image:secure_url" content="https://linktek.com/wp-content/uploads/2019/10/logo-dark-new.png" />
  31. <meta property="og:image:width" content="1747" />
  32. <meta property="og:image:height" content="813" />
  33. <meta property="og:image:alt" content="fix broken links" />
  34. <meta property="og:image:type" content="image/png" />
  35. <meta property="article:published_time" content="2023-01-10T13:02:26+00:00" />
  36. <meta property="article:modified_time" content="2024-09-26T18:50:58+00:00" />
  37. <meta name="twitter:card" content="summary_large_image" />
  38. <meta name="twitter:title" content="LinkTek | Fix Broken Links Automatically During File Migrations" />
  39. <meta name="twitter:description" content="Fix Broken Links with LinkTek: Prevent Data Loss in SharePoint, OpenText, and Server Migrations. Get Your Free Trial Today!" />
  40. <meta name="twitter:site" content="@FixYourLinks" />
  41. <meta name="twitter:creator" content="@FixYourLinks" />
  42. <meta name="twitter:image" content="https://linktek.com/wp-content/uploads/2019/10/logo-dark-new.png" />
  43. <meta name="twitter:label1" content="Written by" />
  44. <meta name="twitter:data1" content="Mark.Pendo" />
  45. <meta name="twitter:label2" content="Time to read" />
  46. <meta name="twitter:data2" content="4 minutes" />
  47. <script type="application/ld+json" class="rank-math-schema">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://linktek.com/#organization","name":"LinkTek","url":"https://linktek.com","sameAs":["https://www.facebook.com/fixyourlinks/","https://twitter.com/FixYourLinks","https://www.linkedin.com/company/linktek","https://www.youtube.com/c/LinkTek"],"logo":{"@type":"ImageObject","@id":"https://linktek.com/#logo","url":"https://linktek.com/wp-content/uploads/2020/10/LinkTek-Logo-new.svg","contentUrl":"https://linktek.com/wp-content/uploads/2020/10/LinkTek-Logo-new.svg","caption":"LinkTek.com","inLanguage":"en-US","width":"120","height":"51"}},{"@type":"WebSite","@id":"https://linktek.com/#website","url":"https://linktek.com","name":"LinkTek.com","publisher":{"@id":"https://linktek.com/#organization"},"inLanguage":"en-US","potentialAction":{"@type":"SearchAction","target":"https://linktek.com/?s={search_term_string}","query-input":"required name=search_term_string"}},{"@type":"ImageObject","@id":"https://linktek.com/wp-content/uploads/2020/01/latest-logo.png","url":"https://linktek.com/wp-content/uploads/2020/01/latest-logo.png","width":"200","height":"200","inLanguage":"en-US"},{"@type":"WebPage","@id":"https://linktek.com/#webpage","url":"https://linktek.com/","name":"LinkTek | Fix Broken Links Automatically During File Migrations","datePublished":"2023-01-10T13:02:26+00:00","dateModified":"2024-09-26T18:50:58+00:00","about":{"@id":"https://linktek.com/#organization"},"isPartOf":{"@id":"https://linktek.com/#website"},"primaryImageOfPage":{"@id":"https://linktek.com/wp-content/uploads/2020/01/latest-logo.png"},"inLanguage":"en-US"},{"@type":"Person","@id":"https://linktek.com/author/mark-pendo/","name":"Mark.Pendo","url":"https://linktek.com/author/mark-pendo/","image":{"@type":"ImageObject","@id":"https://linktek.com/wp-content/wphb-cache/gravatar/d03/d034789b189891ac8b86b6a0a8091745x96.jpg","url":"https://linktek.com/wp-content/wphb-cache/gravatar/d03/d034789b189891ac8b86b6a0a8091745x96.jpg","caption":"Mark.Pendo","inLanguage":"en-US"},"worksFor":{"@id":"https://linktek.com/#organization"}},{"@type":"Article","headline":"LinkTek | Fix Broken Links Automatically During File Migrations","keywords":"fix broken links","datePublished":"2023-01-10T13:02:26+00:00","dateModified":"2024-09-26T18:50:58+00:00","author":{"@id":"https://linktek.com/author/mark-pendo/","name":"Mark.Pendo"},"publisher":{"@id":"https://linktek.com/#organization"},"description":"Fix Broken Links with LinkTek: Prevent Data Loss in SharePoint, OpenText, and Server Migrations. Get Your Free Trial Today!","name":"LinkTek | Fix Broken Links Automatically During File Migrations","@id":"https://linktek.com/#richSnippet","isPartOf":{"@id":"https://linktek.com/#webpage"},"image":{"@id":"https://linktek.com/wp-content/uploads/2020/01/latest-logo.png"},"inLanguage":"en-US","mainEntityOfPage":{"@id":"https://linktek.com/#webpage"}}]}</script>
  48. <meta name="google-site-verification" content="ZazzE3WQuN4qZshhsFe8cZTYEgrBoCrc6vApywYfS4I" />
  49. <meta name="msvalidate.01" content="ED18333CE58A320F2F0C297EDB3706C7" />
  50. <meta name="yandex-verification" content="e0ed300458d3fd20" />
  51. <!-- /Rank Math WordPress SEO plugin -->
  52.  
  53. <link rel='dns-prefetch' href='//cdnjs.cloudflare.com' />
  54. <link rel='dns-prefetch' href='//pro.fontawesome.com' />
  55. <link rel='dns-prefetch' href='//fonts.googleapis.com' />
  56. <link href='https://fonts.gstatic.com' crossorigin rel='preconnect' />
  57. <link href="https://fonts.googleapis.com" rel='preconnect' />
  58. <link href='//fonts.gstatic.com' crossorigin='' rel='preconnect' />
  59. <link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/foundation-icons.woff" as="font" type="font/woff2" crossorigin="anonymous">
  60. <style id='cf-frontend-style-inline-css'>
  61. @font-face {
  62. font-family: 'New ITC Regular';
  63. font-weight: 400;
  64. font-display: auto;
  65. src: url('https://linktek.com/wp-content/uploads/2021/01/ITC-Avant-Garde-Gothic-LT-Book-Regular.ttf') format('truetype');
  66. }
  67. @font-face {
  68. font-family: 'New ITC Medium';
  69. font-weight: 400;
  70. font-display: auto;
  71. src: url('https://linktek.com/wp-content/uploads/2021/01/ITC-Avant-Garde-Gothic-Medium.ttf') format('truetype');
  72. }
  73. @font-face {
  74. font-family: 'Lineto Brown Regular';
  75. font-weight: 400;
  76. font-display: auto;
  77. src: url('https://linktek.com/wp-content/uploads/2020/09/lineto-brown-regular.ttf') format('truetype');
  78. }
  79. @font-face {
  80. font-family: 'Lineto Brown Bold';
  81. font-weight: 400;
  82. font-display: auto;
  83. src: url('https://linktek.com/wp-content/uploads/2020/09/lineto-brown-bold.ttf') format('truetype');
  84. }
  85. @font-face {
  86. font-family: 'ITC Regular';
  87. font-weight: 400;
  88. font-display: auto;
  89. src: url('https://linktek.com/wp-content/uploads/2020/10/ITC-Avant-Garde-Gothic-LT-Book-Regular.ttf') format('truetype');
  90. }
  91. @font-face {
  92. font-family: 'ITC Medium';
  93. font-weight: 400;
  94. font-display: auto;
  95. src: url('https://linktek.com/wp-content/uploads/2020/10/ITC-Avant-Garde-Gothic-Medium.ttf') format('truetype');
  96. }
  97. @font-face {
  98. font-family: 'ITC Avant Garde Regular';
  99. font-weight: 400;
  100. font-display: auto;
  101. src: url('https://linktek.com/wp-content/uploads/2020/09/ITC-Avant-Garde-Gothic-LT-Book-Regular.ttf') format('truetype');
  102. }
  103. @font-face {
  104. font-family: 'ITC Avant Garde Medium';
  105. font-weight: 400;
  106. font-display: auto;
  107. src: url('https://linktek.com/wp-content/uploads/2020/09/ITC-Avant-Garde-Gothic-Medium.ttf') format('truetype');
  108. }
  109. @font-face {
  110. font-family: 'ITC Avant Garde Gothic LT Book Regular';
  111. font-weight: 400;
  112. font-display: auto;
  113. src: url('https://linktek.com/wp-content/uploads/2020/09/ITC-Avant-Garde-Gothic-LT-Book-Regular.otf') format('OpenType');
  114. }
  115. @font-face {
  116. font-family: 'Avenir';
  117. font-weight: 400;
  118. font-display: auto;
  119. font-fallback: Verdana, Arial, sans-serif;
  120. src: url('https://linktek.com/wp-content/uploads/2022/11/Avenir-Next-LT-W02-Regular.woff') format('woff');
  121. }
  122. @font-face {
  123. font-family: 'Avenir';
  124. font-weight: 800;
  125. font-display: auto;
  126. font-fallback: Verdana, Arial, sans-serif;
  127. src: url('https://linktek.com/wp-content/uploads/2022/11/Avenir-Black.woff') format('woff');
  128. }
  129. @font-face {
  130. font-family: 'Avenir';
  131. font-weight: 300;
  132. font-display: auto;
  133. font-fallback: Verdana, Arial, sans-serif;
  134. src: url('https://linktek.com/wp-content/uploads/2022/11/Avenir-Light.woff') format('woff');
  135. }
  136. @font-face {
  137. font-family: 'Avenir';
  138. font-weight: 500;
  139. font-display: auto;
  140. font-fallback: Verdana, Arial, sans-serif;
  141. src: url('https://linktek.com/wp-content/uploads/2022/11/Avenir-Medium.woff') format('woff');
  142. }
  143. </style>
  144. <link rel='stylesheet' id='wp-block-library-css' href='https://linktek.com/wp-includes/css/dist/block-library/style.min.css' media='all' />
  145. <style id='wp-block-library-theme-inline-css'>
  146. .wp-block-audio :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio :where(figcaption){color:#ffffffa6}.wp-block-audio{margin:0 0 1em}.wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em}.wp-block-embed :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed :where(figcaption){color:#ffffffa6}.wp-block-embed{margin:0 0 1em}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:#ffffffa6}:root :where(.wp-block-image figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme :root :where(.wp-block-image figcaption){color:#ffffffa6}.wp-block-image{margin:0 0 1em}.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote cite,.wp-block-pullquote footer,.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote.has-text-align-right{border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote.has-text-align-center{border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote.is-style-plain{border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}:where(.wp-block-group.has-background){padding:1.25em 2.375em}.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:#ffffffa6}.wp-block-video :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video :where(figcaption){color:#ffffffa6}.wp-block-video{margin:0 0 1em}:root :where(.wp-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em}
  147. </style>
  148. <style id='safe-svg-svg-icon-style-inline-css'>
  149. .safe-svg-cover{text-align:center}.safe-svg-cover .safe-svg-inside{display:inline-block;max-width:100%}.safe-svg-cover svg{height:100%;max-height:100%;max-width:100%;width:100%}
  150.  
  151. </style>
  152. <style id='rank-math-toc-block-style-inline-css'>
  153. .wp-block-rank-math-toc-block nav ol{counter-reset:item}.wp-block-rank-math-toc-block nav ol li{display:block}.wp-block-rank-math-toc-block nav ol li:before{content:counters(item, ".") ". ";counter-increment:item}
  154.  
  155. </style>
  156. <link rel='stylesheet' id='mpp_gutenberg-css' href='https://linktek.com/wp-content/uploads/hummingbird-assets/dd562442e6709c21ecda025a08ae6280.css' media='all' />
  157. <style id='classic-theme-styles-inline-css'>
  158. /*! This file is auto-generated */
  159. .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
  160. </style>
  161. <link rel='stylesheet' id='foundation-icons-css' href='https://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/foundation-icons.css' media='all' />
  162. <link rel='stylesheet' id='font-awesome-5-css' href='https://pro.fontawesome.com/releases/v5.15.4/css/all.css' media='all' />
  163. <link rel='stylesheet' id='jquery-magnificpopup-css' href='https://linktek.com/wp-content/plugins/bb-plugin/css/jquery.magnificpopup.css' media='all' />
  164. <style id='fl-builder-layout-39699-inline-css'>
  165. /* Grid
  166. ------------------------------------------------------ */
  167.  
  168. .fl-builder-content *,
  169. .fl-builder-content *:before,
  170. .fl-builder-content *:after {
  171. -webkit-box-sizing: border-box;
  172. -moz-box-sizing: border-box;
  173. box-sizing: border-box;
  174. }
  175. .fl-row:before,
  176. .fl-row:after,
  177. .fl-row-content:before,
  178. .fl-row-content:after,
  179. .fl-col-group:before,
  180. .fl-col-group:after,
  181. .fl-col:before,
  182. .fl-col:after,
  183. .fl-module:before,
  184. .fl-module:after,
  185. .fl-module-content:before,
  186. .fl-module-content:after {
  187. display: table;
  188. content: " ";
  189. }
  190. .fl-row:after,
  191. .fl-row-content:after,
  192. .fl-col-group:after,
  193. .fl-col:after,
  194. .fl-module:after,
  195. .fl-module-content:after {
  196. clear: both;
  197. }
  198. .fl-clear {
  199. clear: both;
  200. }
  201.  
  202. /* Utilities
  203. ------------------------------------------------------ */
  204.  
  205. .fl-clearfix:before,
  206. .fl-clearfix:after {
  207. display: table;
  208. content: " ";
  209. }
  210. .fl-clearfix:after {
  211. clear: both;
  212. }
  213. .sr-only {
  214.    position: absolute;
  215.    width: 1px;
  216.    height: 1px;
  217.    padding: 0;
  218.    overflow: hidden;
  219.    clip: rect(0,0,0,0);
  220.    white-space: nowrap;
  221.    border: 0;
  222. }
  223.  
  224. /* Responsive Utilities
  225. ------------------------------------------------------ */
  226.  
  227. .fl-visible-large,
  228. .fl-visible-large-medium,
  229. .fl-visible-medium,
  230. .fl-visible-medium-mobile,
  231. .fl-visible-mobile,
  232. .fl-col-group .fl-visible-medium.fl-col,
  233. .fl-col-group .fl-visible-medium-mobile.fl-col,
  234. .fl-col-group .fl-visible-mobile.fl-col {
  235. display: none;
  236. }
  237.  
  238. /* Rows
  239. ------------------------------------------------------ */
  240.  
  241. .fl-row,
  242. .fl-row-content {
  243. margin-left: auto;
  244. margin-right: auto;
  245. min-width: 0;
  246. }
  247. .fl-row-content-wrap {
  248. position: relative;
  249. }
  250.  
  251. /* Photo Bg */
  252. .fl-builder-mobile .fl-row-bg-photo .fl-row-content-wrap {
  253. background-attachment: scroll;
  254. }
  255.  
  256. /* Video and Embed Code Bg */
  257. .fl-row-bg-video,
  258. .fl-row-bg-video .fl-row-content,
  259. .fl-row-bg-embed,
  260. .fl-row-bg-embed .fl-row-content {
  261. position: relative;
  262. }
  263.  
  264. .fl-row-bg-video .fl-bg-video,
  265. .fl-row-bg-embed .fl-bg-embed-code {
  266. bottom: 0;
  267. left: 0;
  268. overflow: hidden;
  269. position: absolute;
  270. right: 0;
  271. top: 0;
  272. }
  273.  
  274. .fl-row-bg-video .fl-bg-video video,
  275. .fl-row-bg-embed .fl-bg-embed-code video {
  276. bottom: 0;
  277. left: 0px;
  278. max-width: none;
  279. position: absolute;
  280. right: 0;
  281. top: 0px;
  282. }
  283. .fl-row-bg-video .fl-bg-video video {
  284. min-width: 100%;
  285. min-height: 100%;
  286. width: auto;
  287. height: auto;
  288. }
  289. .fl-row-bg-video .fl-bg-video iframe,
  290. .fl-row-bg-embed .fl-bg-embed-code iframe {
  291. pointer-events: none;
  292. width: 100vw;
  293.   height: 56.25vw; /* Given a 16:9 aspect ratio, 9/16*100 = 56.25 */
  294.   max-width: none;
  295.   min-height: 100vh;
  296.   min-width: 177.77vh; /* Given a 16:9 aspect ratio, 16/9*100 = 177.77 */
  297.   position: absolute;
  298.   top: 50%;
  299.   left: 50%;
  300.   transform: translate(-50%, -50%);
  301. -ms-transform: translate(-50%, -50%); /* IE 9 */
  302. -webkit-transform: translate(-50%, -50%); /* Chrome, Safari, Opera */
  303. }
  304. .fl-bg-video-fallback {
  305. background-position: 50% 50%;
  306. background-repeat: no-repeat;
  307. background-size: cover;
  308. bottom: 0px;
  309. left: 0px;
  310. position: absolute;
  311. right: 0px;
  312. top: 0px;
  313. }
  314.  
  315. /* Slideshow Bg */
  316. .fl-row-bg-slideshow,
  317. .fl-row-bg-slideshow .fl-row-content {
  318. position: relative;
  319. }
  320. .fl-row .fl-bg-slideshow {
  321. bottom: 0;
  322. left: 0;
  323. overflow: hidden;
  324. position: absolute;
  325. right: 0;
  326. top: 0;
  327. z-index: 0;
  328. }
  329. .fl-builder-edit .fl-row .fl-bg-slideshow * {
  330. bottom: 0;
  331. height: auto !important;
  332. left: 0;
  333. position: absolute !important;
  334. right: 0;
  335. top: 0;
  336. }
  337.  
  338. /* Row Bg Overlay */
  339. .fl-row-bg-overlay .fl-row-content-wrap:after {
  340. border-radius: inherit;
  341. content: '';
  342. display: block;
  343. position: absolute;
  344. top: 0;
  345. right: 0;
  346. bottom: 0;
  347. left: 0;
  348. z-index: 0;
  349. }
  350. .fl-row-bg-overlay .fl-row-content {
  351. position: relative;
  352. z-index: 1;
  353. }
  354.  
  355. /* Full Height Rows */
  356. .fl-row-custom-height .fl-row-content-wrap {
  357. display: -webkit-box;
  358. display: -webkit-flex;
  359. display: -ms-flexbox;
  360. display: flex;
  361. min-height: 100vh;
  362. }
  363. .fl-row-overlap-top .fl-row-content-wrap {
  364. display: -webkit-inline-box;
  365. display: -webkit-inline-flex;
  366. display: -moz-inline-box;
  367. display: -ms-inline-flexbox;
  368. display: inline-flex;
  369. width: 100%;
  370. }
  371. .fl-row-custom-height .fl-row-content-wrap {
  372. min-height: 0;
  373. }
  374.  
  375. .fl-row-full-height .fl-row-content,
  376. .fl-row-custom-height .fl-row-content {
  377.  -webkit-box-flex: 1 1 auto;
  378.   -moz-box-flex: 1 1 auto;
  379.    -webkit-flex: 1 1 auto;
  380.    -ms-flex: 1 1 auto;
  381.    flex: 1 1 auto;
  382. }
  383. .fl-row-full-height .fl-row-full-width.fl-row-content,
  384. .fl-row-custom-height .fl-row-full-width.fl-row-content {
  385. max-width: 100%;
  386. width: 100%;
  387. }
  388.  
  389. /* IE 11 - Row full height - vertical alignment center/bottom fix */
  390. .fl-builder-ie-11 .fl-row.fl-row-full-height:not(.fl-visible-medium):not(.fl-visible-medium-mobile):not(.fl-visible-mobile),
  391. .fl-builder-ie-11 .fl-row.fl-row-custom-height:not(.fl-visible-medium):not(.fl-visible-medium-mobile):not(.fl-visible-mobile) {
  392. display: flex;
  393. flex-direction: column;
  394. height: 100%;
  395. }
  396.  
  397. /* Stupid IE Full Height Row Fixes */
  398. .fl-builder-ie-11 .fl-row-full-height .fl-row-content-wrap,
  399. .fl-builder-ie-11 .fl-row-custom-height .fl-row-content-wrap {
  400. height: auto;
  401. }
  402.  
  403. .fl-builder-ie-11 .fl-row-full-height .fl-row-content,
  404. .fl-builder-ie-11 .fl-row-custom-height .fl-row-content {
  405. flex: 0 0 auto;
  406. flex-basis: 100%;
  407. margin: 0;
  408. }
  409.  
  410. .fl-builder-ie-11 .fl-row-full-height.fl-row-align-top .fl-row-content,
  411. .fl-builder-ie-11 .fl-row-full-height.fl-row-align-bottom .fl-row-content,
  412. .fl-builder-ie-11 .fl-row-custom-height.fl-row-align-top .fl-row-content,
  413. .fl-builder-ie-11 .fl-row-custom-height.fl-row-align-bottom .fl-row-content {
  414.    margin: 0 auto;
  415. }
  416.  
  417. .fl-builder-ie-11 .fl-row-full-height.fl-row-align-center .fl-col-group:not(.fl-col-group-equal-height),
  418. .fl-builder-ie-11 .fl-row-custom-height.fl-row-align-center .fl-col-group:not(.fl-col-group-equal-height) {
  419. display: flex;
  420. align-items: center;
  421. justify-content: center;
  422. -webkit-align-items: center;
  423. -webkit-box-align: center;
  424. -webkit-box-pack: center;
  425. -webkit-justify-content: center;
  426. -ms-flex-align: center;
  427. -ms-flex-pack: center;
  428. }
  429.  
  430. /* Full height align center */
  431. .fl-row-full-height.fl-row-align-center .fl-row-content-wrap,
  432. .fl-row-custom-height.fl-row-align-center .fl-row-content-wrap {
  433. align-items: center;
  434. justify-content: center;
  435. -webkit-align-items: center;
  436. -webkit-box-align: center;
  437. -webkit-box-pack: center;
  438. -webkit-justify-content: center;
  439. -ms-flex-align: center;
  440. -ms-flex-pack: center;
  441. }
  442.  
  443. /* Full height align bottom */
  444. .fl-row-full-height.fl-row-align-bottom .fl-row-content-wrap,
  445. .fl-row-custom-height.fl-row-align-bottom .fl-row-content-wrap {
  446. align-items: flex-end;
  447. justify-content: flex-end;
  448. -webkit-align-items: flex-end;
  449. -webkit-justify-content: flex-end;
  450. -webkit-box-align: end;
  451. -webkit-box-pack: end;
  452. -ms-flex-align: end;
  453. -ms-flex-pack: end;
  454. }
  455.  
  456. /* IE 11 - height bottom > row align bottom - center fix */
  457. .fl-builder-ie-11 .fl-row-full-height.fl-row-align-bottom .fl-row-content-wrap,
  458. .fl-builder-ie-11 .fl-row-custom-height.fl-row-align-bottom .fl-row-content-wrap {
  459. justify-content: flex-start;
  460. -webkit-justify-content: flex-start;
  461. }
  462.  
  463. /* Column Groups
  464. ------------------------------------------------------ */
  465.  
  466. .fl-col-group-equal-height,
  467. .fl-col-group-equal-height .fl-col,
  468. .fl-col-group-equal-height .fl-col-content{
  469. display: -webkit-box;
  470.    display: -webkit-flex;
  471.    display: -ms-flexbox;
  472.    display: flex;
  473. }
  474. .fl-col-group-equal-height{
  475.    -webkit-flex-wrap: wrap;
  476.     -ms-flex-wrap: wrap;
  477.     flex-wrap: wrap;
  478.    width: 100%;
  479. }
  480. .fl-col-group-equal-height.fl-col-group-has-child-loading {
  481.    -webkit-flex-wrap: nowrap;
  482.     -ms-flex-wrap: nowrap;
  483.     flex-wrap: nowrap;
  484. }
  485. .fl-col-group-equal-height .fl-col,
  486. .fl-col-group-equal-height .fl-col-content{
  487.  -webkit-box-flex: 1 1 auto;
  488.   -moz-box-flex: 1 1 auto;
  489.    -webkit-flex: 1 1 auto;
  490.    -ms-flex: 1 1 auto;
  491.    flex: 1 1 auto;
  492. }
  493. .fl-col-group-equal-height .fl-col-content{
  494.    -webkit-box-orient: vertical;
  495. -webkit-box-direction: normal;
  496.    -webkit-flex-direction: column;
  497.        -ms-flex-direction: column;
  498.            flex-direction: column;
  499.   flex-shrink: 1;
  500.     min-width: 1px;
  501.             max-width: 100%;
  502.             width: 100%;
  503. }
  504. .fl-col-group-equal-height:before,
  505. .fl-col-group-equal-height .fl-col:before,
  506. .fl-col-group-equal-height .fl-col-content:before,
  507. .fl-col-group-equal-height:after,
  508. .fl-col-group-equal-height .fl-col:after,
  509. .fl-col-group-equal-height .fl-col-content:after{
  510. content: none;
  511. }
  512.  
  513. /* Equal height align top */
  514. .fl-col-group-nested.fl-col-group-equal-height.fl-col-group-align-top .fl-col-content,
  515. .fl-col-group-equal-height.fl-col-group-align-top .fl-col-content {
  516. justify-content: flex-start;
  517. -webkit-justify-content: flex-start;
  518. }
  519.  
  520. /* Equal height align center */
  521. .fl-col-group-nested.fl-col-group-equal-height.fl-col-group-align-center .fl-col-content,
  522. .fl-col-group-equal-height.fl-col-group-align-center .fl-col-content {
  523. align-items: center;
  524. justify-content: center;
  525. -webkit-align-items: center;
  526. -webkit-box-align: center;
  527. -webkit-box-pack: center;
  528. -webkit-justify-content: center;
  529. -ms-flex-align: center;
  530. -ms-flex-pack: center;
  531. }
  532.  
  533. /* Equal height align bottom */
  534. .fl-col-group-nested.fl-col-group-equal-height.fl-col-group-align-bottom .fl-col-content,
  535. .fl-col-group-equal-height.fl-col-group-align-bottom .fl-col-content {
  536. justify-content: flex-end;
  537. -webkit-justify-content: flex-end;
  538. -webkit-box-align: end;
  539. -webkit-box-pack: end;
  540. -ms-flex-pack: end;
  541. }
  542.  
  543. .fl-col-group-equal-height.fl-col-group-align-center .fl-module,
  544. .fl-col-group-equal-height.fl-col-group-align-center .fl-col-group {
  545. width: 100%;
  546. }
  547.  
  548. /* IE11 fix for images with height:auto in equal height columns. */
  549. .fl-builder-ie-11 .fl-col-group-equal-height,
  550. .fl-builder-ie-11 .fl-col-group-equal-height .fl-col,
  551. .fl-builder-ie-11 .fl-col-group-equal-height .fl-col-content,
  552. .fl-builder-ie-11 .fl-col-group-equal-height .fl-module,
  553. .fl-col-group-equal-height.fl-col-group-align-center .fl-col-group {
  554. min-height: 1px;
  555. }
  556.  
  557. /* Columns
  558. ------------------------------------------------------ */
  559.  
  560. .fl-col {
  561. float: left;
  562. min-height: 1px;
  563. }
  564.  
  565. /* Column Bg Overlay */
  566. .fl-col-bg-overlay .fl-col-content {
  567. position: relative;
  568. }
  569. .fl-col-bg-overlay .fl-col-content:after {
  570. border-radius: inherit;
  571. content: '';
  572. display: block;
  573. position: absolute;
  574. top: 0;
  575. right: 0;
  576. bottom: 0;
  577. left: 0;
  578. z-index: 0;
  579. }
  580. .fl-col-bg-overlay .fl-module {
  581. position: relative;
  582. z-index: 2;
  583. }
  584.  
  585. /* Modules
  586. ------------------------------------------------------ */
  587.  
  588. .fl-module img {
  589. max-width: 100%;
  590. }
  591.  
  592. /* Module Templates
  593. ------------------------------------------------------ */
  594.  
  595. .fl-builder-module-template {
  596. margin: 0 auto;
  597. max-width: 1100px;
  598. padding: 20px;
  599. }
  600.  
  601. /* Buttons
  602. ------------------------------------------------------ */
  603.  
  604. .fl-builder-content a.fl-button,
  605. .fl-builder-content a.fl-button:visited {
  606. border-radius: 4px;
  607. -moz-border-radius: 4px;
  608. -webkit-border-radius: 4px;
  609. display: inline-block;
  610. font-size: 16px;
  611. font-weight: normal;
  612. line-height: 18px;
  613. padding: 12px 24px;
  614. text-decoration: none;
  615. text-shadow: none;
  616. }
  617. .fl-builder-content .fl-button:hover {
  618. text-decoration: none;
  619. }
  620. .fl-builder-content .fl-button:active {
  621. position: relative;
  622. top: 1px;
  623. }
  624. .fl-builder-content .fl-button-width-full .fl-button {
  625. display: block;
  626. text-align: center;
  627. }
  628. .fl-builder-content .fl-button-width-custom .fl-button {
  629. display: inline-block;
  630. text-align: center;
  631. max-width: 100%;
  632. }
  633. .fl-builder-content .fl-button-left {
  634. text-align: left;
  635. }
  636. .fl-builder-content .fl-button-center {
  637. text-align: center;
  638. }
  639. .fl-builder-content .fl-button-right {
  640. text-align: right;
  641. }
  642. .fl-builder-content .fl-button i {
  643. font-size: 1.3em;
  644. height: auto;
  645. margin-right:8px;
  646. vertical-align: middle;
  647. width: auto;
  648. }
  649. .fl-builder-content .fl-button i.fl-button-icon-after {
  650. margin-left: 8px;
  651. margin-right: 0;
  652. }
  653. .fl-builder-content .fl-button-has-icon .fl-button-text {
  654. vertical-align: middle;
  655. }
  656.  
  657. /* Icons
  658. ------------------------------------------------------ */
  659.  
  660. .fl-icon-wrap {
  661. display: inline-block;
  662. }
  663. .fl-icon {
  664. display: table-cell;
  665. vertical-align: middle;
  666. }
  667. .fl-icon a {
  668. text-decoration: none;
  669. }
  670. .fl-icon i {
  671. float: right;
  672. height: auto;
  673. width: auto;
  674. }
  675. .fl-icon i:before {
  676. border: none !important;
  677. height: auto;
  678. width: auto;
  679. }
  680. .fl-icon-text {
  681. display: table-cell;
  682. text-align: left;
  683. padding-left: 15px;
  684. vertical-align: middle;
  685. }
  686. .fl-icon-text-empty {
  687. display: none;
  688. }
  689. .fl-icon-text *:last-child {
  690. margin: 0 !important;
  691. padding: 0 !important;
  692. }
  693. .fl-icon-text a {
  694. text-decoration: none;
  695. }
  696. .fl-icon-text span {
  697. display: block;
  698. }
  699. .fl-icon-text span.mce-edit-focus {
  700. min-width: 1px;
  701. }
  702.  
  703. /* Photos
  704. ------------------------------------------------------ */
  705.  
  706. .fl-photo {
  707. line-height: 0;
  708. position: relative;
  709. }
  710. .fl-photo-align-left {
  711. text-align: left;
  712. }
  713. .fl-photo-align-center {
  714. text-align: center;
  715. }
  716. .fl-photo-align-right {
  717. text-align: right;
  718. }
  719. .fl-photo-content {
  720. display: inline-block;
  721. line-height: 0;
  722. position: relative;
  723. max-width: 100%;
  724. }
  725. .fl-photo-img-svg {
  726. width: 100%;
  727. }
  728. .fl-photo-content img {
  729. display: inline;
  730. height: auto;
  731. max-width: 100%;
  732. }
  733. .fl-photo-crop-circle img {
  734. -webkit-border-radius: 100%;
  735. -moz-border-radius: 100%;
  736. border-radius: 100%;
  737. }
  738. .fl-photo-caption {
  739. font-size: 13px;
  740. line-height: 18px;
  741. overflow: hidden;
  742. text-overflow: ellipsis;
  743. }
  744. .fl-photo-caption-below {
  745. padding-bottom: 20px;
  746. padding-top: 10px;
  747. }
  748. .fl-photo-caption-hover {
  749. background: rgba(0,0,0,0.7);
  750. bottom: 0;
  751. color: #fff;
  752. left: 0;
  753. opacity: 0;
  754. filter: alpha(opacity = 0);
  755. padding: 10px 15px;
  756. position: absolute;
  757. right: 0;
  758. -webkit-transition:opacity 0.3s ease-in;
  759. -moz-transition:opacity 0.3s ease-in;
  760. transition:opacity 0.3s ease-in;
  761. }
  762. .fl-photo-content:hover .fl-photo-caption-hover {
  763. opacity: 100;
  764. filter: alpha(opacity = 100);
  765. }
  766.  
  767. /* Pagination
  768. ------------------------------------------------------ */
  769.  
  770. .fl-builder-pagination,
  771. .fl-builder-pagination-load-more {
  772. padding: 40px 0;
  773. }
  774. .fl-builder-pagination ul.page-numbers {
  775. list-style: none;
  776. margin: 0;
  777. padding: 0;
  778. text-align: center;
  779. }
  780. .fl-builder-pagination li {
  781. display: inline-block;
  782. list-style: none;
  783. margin: 0;
  784. padding: 0;
  785. }
  786. .fl-builder-pagination li a.page-numbers,
  787. .fl-builder-pagination li span.page-numbers {
  788. border: 1px solid #e6e6e6;
  789. display: inline-block;
  790. padding: 5px 10px;
  791. margin: 0 0 5px;
  792. }
  793. .fl-builder-pagination li a.page-numbers:hover,
  794. .fl-builder-pagination li span.current {
  795. background: #f5f5f5;
  796. text-decoration: none;
  797. }
  798.  
  799. /* Slideshows
  800. ------------------------------------------------------ */
  801.  
  802. .fl-slideshow,
  803. .fl-slideshow * {
  804. -webkit-box-sizing: content-box;
  805. -moz-box-sizing: content-box;
  806. box-sizing: content-box;
  807.  
  808. }
  809. .fl-slideshow .fl-slideshow-image img {
  810. max-width: none !important;
  811. }
  812. .fl-slideshow-social {
  813. line-height: 0 !important;
  814. }
  815. .fl-slideshow-social * {
  816. margin: 0 !important;
  817. }
  818.  
  819. /* Sliders
  820. ------------------------------------------------------ */
  821.  
  822. .fl-builder-content .bx-wrapper .bx-viewport {
  823. background: transparent;
  824. border: none;
  825. box-shadow: none;
  826. -moz-box-shadow: none;
  827. -webkit-box-shadow: none;
  828. left: 0;
  829. }
  830.  
  831. /* Lightbox
  832. ------------------------------------------------------ */
  833.  
  834. .mfp-wrap button.mfp-arrow,
  835. .mfp-wrap button.mfp-arrow:active,
  836. .mfp-wrap button.mfp-arrow:hover,
  837. .mfp-wrap button.mfp-arrow:focus {
  838. background: transparent !important;
  839. border: none !important;
  840. outline: none;
  841. position: absolute;
  842. top: 50%;
  843. box-shadow: none !important;
  844. -moz-box-shadow: none !important;
  845. -webkit-box-shadow: none !important;
  846. }
  847. .mfp-wrap .mfp-close,
  848. .mfp-wrap .mfp-close:active,
  849. .mfp-wrap .mfp-close:hover,
  850. .mfp-wrap .mfp-close:focus {
  851. background: transparent !important;
  852. border: none !important;
  853. outline: none;
  854. position: absolute;
  855. top: 0;
  856. box-shadow: none !important;
  857. -moz-box-shadow: none !important;
  858. -webkit-box-shadow: none !important;
  859. }
  860. .admin-bar .mfp-wrap .mfp-close,
  861. .admin-bar .mfp-wrap .mfp-close:active,
  862. .admin-bar .mfp-wrap .mfp-close:hover,
  863. .admin-bar .mfp-wrap .mfp-close:focus {
  864. top: 32px!important;
  865. }
  866. img.mfp-img {
  867. padding: 0;
  868. }
  869. .mfp-counter {
  870. display: none;
  871. }
  872.  
  873. .mfp-wrap .mfp-preloader.fa {
  874. font-size: 30px;
  875. }
  876.  
  877. /* Form Fields
  878. ------------------------------------------------------ */
  879.  
  880. .fl-form-field {
  881. margin-bottom: 15px;
  882. }
  883. .fl-form-field input.fl-form-error {
  884. border-color: #DD6420;
  885. }
  886. .fl-form-error-message {
  887. clear: both;
  888. color: #DD6420;
  889. display: none;
  890. padding-top: 8px;
  891. font-size: 12px;
  892. font-weight: lighter;
  893. }
  894. .fl-form-button-disabled {
  895. opacity: 0.5;
  896. }
  897.  
  898. /* Animations
  899. ------------------------------------------------------ */
  900.  
  901. .fl-animation {
  902. opacity: 0;
  903. }
  904. .fl-builder-preview .fl-animation,
  905. .fl-builder-edit .fl-animation,
  906. .fl-animated {
  907. opacity: 1;
  908. }
  909. .fl-animated {
  910. animation-fill-mode: both;
  911. -webkit-animation-fill-mode: both;
  912. }
  913.  
  914. /* Button Icon Animation */
  915. .fl-button.fl-button-icon-animation i {
  916. width: 0 !important;
  917. opacity: 0;
  918. -ms-filter: "alpha(opacity=0)";
  919. transition: all 0.2s ease-out;
  920. -webkit-transition: all 0.2s ease-out;
  921. }
  922. .fl-button.fl-button-icon-animation:hover i {
  923. opacity: 1! important;
  924.    -ms-filter: "alpha(opacity=100)";
  925. }
  926. .fl-button.fl-button-icon-animation i.fl-button-icon-after {
  927. margin-left: 0px !important;
  928. }
  929. .fl-button.fl-button-icon-animation:hover i.fl-button-icon-after {
  930. margin-left: 10px !important;
  931. }
  932. .fl-button.fl-button-icon-animation i.fl-button-icon-before {
  933. margin-right: 0 !important;
  934. }
  935. .fl-button.fl-button-icon-animation:hover i.fl-button-icon-before {
  936. margin-right: 20px !important;
  937.    margin-left: -10px;
  938. }
  939.  
  940. /* Templates
  941. ------------------------------------------------------ */
  942.  
  943. .single:not(.woocommerce).single-fl-builder-template .fl-content {
  944. width: 100%;
  945. }
  946.  
  947. /* Shapes & Patterns
  948. ------------------------------------------------------- */
  949. .fl-builder-layer {
  950. position: absolute;
  951. top:0;
  952. left:0;
  953. right: 0;
  954. bottom: 0;
  955. z-index: 0;
  956. pointer-events: none;
  957. overflow: hidden;
  958. }
  959. .fl-builder-shape-layer {
  960. z-index: 0;
  961. }
  962. .fl-builder-shape-layer.fl-builder-bottom-edge-layer {
  963. z-index: 1;
  964. }
  965. .fl-row-bg-overlay .fl-builder-shape-layer {
  966. z-index: 1;
  967. }
  968. .fl-row-bg-overlay .fl-builder-shape-layer.fl-builder-bottom-edge-layer {
  969. z-index: 2;
  970. }
  971. .fl-row-has-layers .fl-row-content {
  972. z-index: 1;
  973. }
  974. .fl-row-bg-overlay .fl-row-content {
  975. z-index: 2;
  976. }
  977.  
  978. .fl-builder-layer > * {
  979. display: block;
  980. position: absolute;
  981. top:0;
  982. left:0;
  983. width: 100%;
  984. }
  985. .fl-builder-layer + .fl-row-content {
  986. position: relative;
  987. }
  988. .fl-builder-layer .fl-shape {
  989. fill: #aaa;
  990. stroke: none;
  991. stroke-width: 0;
  992. width:100%;
  993. }
  994. /**
  995. Fix ipad parallax issue on safari
  996. https://core.trac.wordpress.org/ticket/48802
  997. https://core.trac.wordpress.org/ticket/49285
  998. https://github.com/WordPress/gutenberg/issues/17718
  999. */
  1000. @supports (-webkit-touch-callout: inherit) {
  1001.  .fl-row.fl-row-bg-parallax .fl-row-content-wrap,
  1002.  .fl-row.fl-row-bg-fixed .fl-row-content-wrap {
  1003.    background-position: center !important;
  1004.    background-attachment: scroll !important;
  1005.  }
  1006. }
  1007.  
  1008. @supports (-webkit-touch-callout: none) {
  1009. .fl-row.fl-row-bg-fixed .fl-row-content-wrap {
  1010. background-position: center !important;
  1011. background-attachment: scroll !important;
  1012. }
  1013. }
  1014. .fl-row-fixed-width { max-width: 1100px; }.fl-row-content-wrap{margin-top: 0px;margin-right: 0px;margin-bottom: 0px;margin-left: 0px;}.fl-row-content-wrap{padding-top: 20px;padding-right: 20px;padding-bottom: 20px;padding-left: 20px;}.fl-col-content{margin-top: 0px;margin-right: 0px;margin-bottom: 0px;margin-left: 0px;}.fl-col-content{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}.fl-module-content{margin-top: 20px;margin-right: 20px;margin-bottom: 20px;margin-left: 20px;}@media (max-width: 1200px) { /* Responsive Utilities
  1015. ------------------------------------------------------ */
  1016. body.fl-builder-ie-11 .fl-row.fl-row-full-height.fl-visible-xl,
  1017. body.fl-builder-ie-11 .fl-row.fl-row-custom-height.fl-visible-xl {
  1018. display: none !important;
  1019. }
  1020. .fl-visible-xl,
  1021. .fl-visible-medium,
  1022. .fl-visible-medium-mobile,
  1023. .fl-visible-mobile,
  1024. .fl-col-group .fl-visible-xl.fl-col,
  1025. .fl-col-group .fl-visible-medium.fl-col,
  1026. .fl-col-group .fl-visible-medium-mobile.fl-col,
  1027. .fl-col-group .fl-visible-mobile.fl-col {
  1028. display: none;
  1029. }
  1030. .fl-visible-desktop,
  1031. .fl-visible-desktop-medium,
  1032. .fl-visible-large,
  1033. .fl-visible-large-medium,
  1034. .fl-col-group .fl-visible-desktop.fl-col,
  1035. .fl-col-group .fl-visible-desktop-medium.fl-col,
  1036. .fl-col-group .fl-visible-large.fl-col,
  1037. .fl-col-group .fl-visible-large-medium.fl-col {
  1038. display: block;
  1039. }
  1040. .fl-col-group-equal-height .fl-visible-desktop.fl-col,
  1041. .fl-col-group-equal-height .fl-visible-desktop-medium.fl-col,
  1042. .fl-col-group-equal-height .fl-visible-large.fl-col,
  1043. .fl-col-group-equal-height .fl-visible-large-medium.fl-col {
  1044. display: flex;
  1045. }
  1046. }@media (max-width: 992px) { /* Responsive Utilities
  1047. ------------------------------------------------------ */
  1048. body.fl-builder-ie-11 .fl-row.fl-row-full-height.fl-visible-xl,
  1049. body.fl-builder-ie-11 .fl-row.fl-row-custom-height.fl-visible-xl,
  1050. body.fl-builder-ie-11 .fl-row.fl-row-full-height.fl-visible-desktop,
  1051. body.fl-builder-ie-11 .fl-row.fl-row-custom-height.fl-visible-desktop,
  1052. body.fl-builder-ie-11 .fl-row.fl-row-full-height.fl-visible-large,
  1053. body.fl-builder-ie-11 .fl-row.fl-row-custom-height.fl-visible-large {
  1054. display: none !important;
  1055. }
  1056. .fl-visible-xl,
  1057. .fl-visible-desktop,
  1058. .fl-visible-large,
  1059. .fl-visible-mobile,
  1060. .fl-col-group .fl-visible-xl.fl-col,
  1061. .fl-col-group .fl-visible-desktop.fl-col,
  1062. .fl-col-group .fl-visible-large.fl-col,
  1063. .fl-col-group .fl-visible-mobile.fl-col {
  1064. display: none;
  1065. }
  1066. .fl-visible-desktop-medium,
  1067. .fl-visible-large-medium,
  1068. .fl-visible-medium,
  1069. .fl-visible-medium-mobile,
  1070. .fl-col-group .fl-visible-desktop-medium.fl-col,
  1071. .fl-col-group .fl-visible-large-medium.fl-col,
  1072. .fl-col-group .fl-visible-medium.fl-col,
  1073. .fl-col-group .fl-visible-medium-mobile.fl-col {
  1074. display: block;
  1075. }
  1076. .fl-col-group-equal-height .fl-visible-desktop-medium.fl-col,
  1077. .fl-col-group-equal-height .fl-visible-large-medium.fl-col,
  1078. .fl-col-group-equal-height .fl-visible-medium.fl-col,
  1079. .fl-col-group-equal-height .fl-visible-medium-mobile.fl-col {
  1080. display: flex;
  1081. }
  1082. }@media (max-width: 768px) { /* Responsive Utilities
  1083. ------------------------------------------------------ */
  1084. body.fl-builder-ie-11 .fl-row.fl-row-full-height.fl-visible-xl,
  1085. body.fl-builder-ie-11 .fl-row.fl-row-custom-height.fl-visible-xl,
  1086. body.fl-builder-ie-11 .fl-row.fl-row-full-height.fl-visible-desktop,
  1087. body.fl-builder-ie-11 .fl-row.fl-row-custom-height.fl-visible-desktop,
  1088. body.fl-builder-ie-11 .fl-row.fl-row-full-height.fl-visible-desktop-medium,
  1089. body.fl-builder-ie-11 .fl-row.fl-row-custom-height.fl-visible-desktop-medium,
  1090. body.fl-builder-ie-11 .fl-row.fl-row-full-height.fl-visible-large,
  1091. body.fl-builder-ie-11 .fl-row.fl-row-custom-height.fl-visible-large,
  1092. body.fl-builder-ie-11 .fl-row.fl-row-full-height.fl-visible-large-medium,
  1093. body.fl-builder-ie-11 .fl-row.fl-row-custom-height.fl-visible-large-medium {
  1094. display: none !important;
  1095. }
  1096.  
  1097. .fl-visible-xl,
  1098. .fl-visible-desktop,
  1099. .fl-visible-desktop-medium,
  1100. .fl-visible-large,
  1101. .fl-visible-large-medium,
  1102. .fl-visible-medium,
  1103. .fl-col-group .fl-visible-xl.fl-col,
  1104. .fl-col-group .fl-visible-desktop.fl-col,
  1105. .fl-col-group .fl-visible-desktop-medium.fl-col,
  1106. .fl-col-group .fl-visible-large-medium.fl-col,
  1107. .fl-col-group .fl-visible-medium.fl-col,
  1108. .fl-col-group-equal-height .fl-visible-xl.fl-col,
  1109. .fl-col-group-equal-height .fl-visible-desktop.fl-col,
  1110. .fl-col-group-equal-height .fl-visible-desktop-medium.fl-col,
  1111. .fl-col-group-equal-height .fl-visible-large-medium.fl-col,
  1112. .fl-col-group-equal-height .fl-visible-medium.fl-col {
  1113. display: none;
  1114. }
  1115.  
  1116. .fl-visible-medium-mobile,
  1117. .fl-visible-mobile,
  1118. .fl-col-group .fl-visible-medium-mobile.fl-col,
  1119. .fl-col-group .fl-visible-mobile.fl-col {
  1120. display: block;
  1121. }
  1122.  
  1123. /* Rows
  1124. ------------------------------------------------------ */
  1125.  
  1126. .fl-row-content-wrap {
  1127. background-attachment: scroll !important;
  1128. }
  1129. .fl-row-bg-parallax .fl-row-content-wrap {
  1130. background-attachment: scroll !important;
  1131. background-position: center center !important;
  1132. }
  1133.  
  1134. /* Column Groups
  1135. ------------------------------------------------------ */
  1136.  
  1137. /* Equal Heights */
  1138. .fl-col-group.fl-col-group-equal-height {
  1139. display: block;
  1140. }
  1141. .fl-col-group.fl-col-group-equal-height.fl-col-group-custom-width {
  1142. display: -webkit-box;
  1143.    display: -webkit-flex;
  1144.    display: -ms-flexbox;
  1145.    display: flex;
  1146. }
  1147.  
  1148. /* Reversed Responsive Stacking */
  1149. .fl-col-group.fl-col-group-responsive-reversed {
  1150. display: -webkit-box;
  1151. display: -moz-box;
  1152. display: -ms-flexbox;
  1153. display: -moz-flex;
  1154. display: -webkit-flex;
  1155. display: flex;
  1156. flex-wrap: wrap-reverse;
  1157. -webkit-flex-wrap: wrap-reverse;
  1158. -ms-box-orient: horizontal;
  1159. }
  1160. .fl-col-group.fl-col-group-responsive-reversed .fl-col {
  1161. -webkit-box-flex: 0 0 100%;
  1162. -moz-box-flex: 0 0 100%;
  1163. -webkit-flex: 0 0 100%;
  1164. -ms-flex: 0 0 100%;
  1165. flex: 0 0 100%;
  1166. min-width: 0;
  1167. }
  1168.  
  1169. /* Columns
  1170. ------------------------------------------------------ */
  1171.  
  1172. .fl-col {
  1173. clear: both;
  1174. float: none;
  1175. margin-left: auto;
  1176. margin-right: auto;
  1177. width: auto !important;
  1178. }
  1179. .fl-col-small:not(.fl-col-small-full-width) {
  1180. max-width: 400px;
  1181. }
  1182. .fl-block-col-resize {
  1183. display:none;
  1184. }
  1185. /* Rows
  1186. ------------------------------------------------------ */
  1187.  
  1188. .fl-row[data-node] .fl-row-content-wrap {
  1189. margin: 0;
  1190. padding-left: 0;
  1191. padding-right: 0;
  1192. }
  1193. .fl-row[data-node] .fl-bg-video,
  1194. .fl-row[data-node] .fl-bg-slideshow {
  1195. left: 0;
  1196. right: 0;
  1197. }
  1198.  
  1199. /* Columns
  1200. ------------------------------------------------------ */
  1201.  
  1202. .fl-col[data-node] .fl-col-content {
  1203. margin: 0;
  1204. padding-left: 0;
  1205. padding-right: 0;
  1206. }
  1207. }.page .fl-post-header, .single-fl-builder-template .fl-post-header { display:none; }
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213. @media ( max-width: 768px ) {
  1214. .fl-node-pfi6mguw5yvd.fl-row > .fl-row-content-wrap {
  1215. margin-bottom:0px;
  1216. }
  1217. }
  1218. .fl-node-pfi6mguw5yvd > .fl-row-content-wrap {
  1219. padding-top:10px;
  1220. padding-bottom:10px;
  1221. }
  1222. @media ( max-width: 768px ) {
  1223. .fl-node-pfi6mguw5yvd.fl-row > .fl-row-content-wrap {
  1224. padding-bottom:0px;
  1225. }
  1226. }
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233. /* Full Height Rows */
  1234. .fl-node-97dkmqwelhfr.fl-row-full-height > .fl-row-content-wrap,
  1235. .fl-node-97dkmqwelhfr.fl-row-custom-height > .fl-row-content-wrap {
  1236. display: -webkit-box;
  1237. display: -webkit-flex;
  1238. display: -ms-flexbox;
  1239. display: flex;
  1240. }
  1241. .fl-node-97dkmqwelhfr.fl-row-full-height > .fl-row-content-wrap {
  1242. min-height: 100vh;
  1243. }
  1244. .fl-node-97dkmqwelhfr.fl-row-custom-height > .fl-row-content-wrap {
  1245. min-height: 0;
  1246. }
  1247.  
  1248. .fl-builder-edit .fl-node-97dkmqwelhfr.fl-row-full-height > .fl-row-content-wrap {
  1249. min-height: calc( 100vh - 48px );
  1250. }
  1251.  
  1252. /* Full height iPad with portrait orientation. */
  1253. @media all and (device-width: 768px) and (device-height: 1024px) and (orientation:portrait){
  1254. .fl-node-97dkmqwelhfr.fl-row-full-height > .fl-row-content-wrap {
  1255. min-height: 1024px;
  1256. }
  1257. }
  1258. /* Full height iPad with landscape orientation. */
  1259. @media all and (device-width: 1024px) and (device-height: 768px) and (orientation:landscape){
  1260. .fl-node-97dkmqwelhfr.fl-row-full-height > .fl-row-content-wrap {
  1261. min-height: 768px;
  1262. }
  1263. }
  1264. /* Full height iPhone 5. You can also target devices with aspect ratio. */
  1265. @media screen and (device-aspect-ratio: 40/71) {
  1266. .fl-node-97dkmqwelhfr.fl-row-full-height > .fl-row-content-wrap {
  1267. min-height: 500px;
  1268. }
  1269. }
  1270. .fl-node-97dkmqwelhfr > .fl-row-content-wrap {
  1271. background-color: #000000;
  1272. background-image: url(https://linktek.com/wp-content/uploads/2021/05/blue-chain.jpg);
  1273. background-repeat: no-repeat;
  1274. background-position: center top;
  1275. background-attachment: fixed;
  1276. background-size: cover;
  1277. }
  1278. .fl-node-97dkmqwelhfr > .fl-row-content-wrap:after {
  1279. background-color: rgba(0,57,127,0.8);
  1280. }
  1281. .fl-node-97dkmqwelhfr.fl-row-custom-height > .fl-row-content-wrap {
  1282. min-height: 800px;
  1283. }
  1284. @media(max-width: 768px) {
  1285. .fl-node-97dkmqwelhfr > .fl-row-content-wrap {
  1286. background-image: url(https://linktek.com/wp-content/uploads/2022/04/mobile-bg.jpg);
  1287. }
  1288. .fl-node-97dkmqwelhfr.fl-row-custom-height > .fl-row-content-wrap {
  1289. min-height: 400px;
  1290. }
  1291. }
  1292. .fl-node-97dkmqwelhfr > .fl-row-content-wrap {
  1293. margin-bottom:0px;
  1294. }
  1295. .fl-node-97dkmqwelhfr > .fl-row-content-wrap {
  1296. padding-bottom:20px;
  1297. }
  1298. @media ( max-width: 768px ) {
  1299. .fl-node-97dkmqwelhfr.fl-row > .fl-row-content-wrap {
  1300. padding-top:20px;
  1301. padding-right:0px;
  1302. }
  1303. }
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310. /* Full Height Rows */
  1311. .fl-node-uabt3lg89oyq.fl-row-full-height > .fl-row-content-wrap,
  1312. .fl-node-uabt3lg89oyq.fl-row-custom-height > .fl-row-content-wrap {
  1313. display: -webkit-box;
  1314. display: -webkit-flex;
  1315. display: -ms-flexbox;
  1316. display: flex;
  1317. }
  1318. .fl-node-uabt3lg89oyq.fl-row-full-height > .fl-row-content-wrap {
  1319. min-height: 100vh;
  1320. }
  1321. .fl-node-uabt3lg89oyq.fl-row-custom-height > .fl-row-content-wrap {
  1322. min-height: 0;
  1323. }
  1324.  
  1325. .fl-builder-edit .fl-node-uabt3lg89oyq.fl-row-full-height > .fl-row-content-wrap {
  1326. min-height: calc( 100vh - 48px );
  1327. }
  1328.  
  1329. /* Full height iPad with portrait orientation. */
  1330. @media all and (device-width: 768px) and (device-height: 1024px) and (orientation:portrait){
  1331. .fl-node-uabt3lg89oyq.fl-row-full-height > .fl-row-content-wrap {
  1332. min-height: 1024px;
  1333. }
  1334. }
  1335. /* Full height iPad with landscape orientation. */
  1336. @media all and (device-width: 1024px) and (device-height: 768px) and (orientation:landscape){
  1337. .fl-node-uabt3lg89oyq.fl-row-full-height > .fl-row-content-wrap {
  1338. min-height: 768px;
  1339. }
  1340. }
  1341. /* Full height iPhone 5. You can also target devices with aspect ratio. */
  1342. @media screen and (device-aspect-ratio: 40/71) {
  1343. .fl-node-uabt3lg89oyq.fl-row-full-height > .fl-row-content-wrap {
  1344. min-height: 500px;
  1345. }
  1346. }
  1347. .fl-node-uabt3lg89oyq > .fl-row-content-wrap {
  1348. background-image: url(https://linktek.com/wp-content/uploads/2020/10/it-problem-1-scaled.jpeg);
  1349. background-repeat: no-repeat;
  1350. background-position: center top;
  1351. background-attachment: fixed;
  1352. background-size: cover;
  1353. }
  1354. .fl-node-uabt3lg89oyq.fl-row-custom-height > .fl-row-content-wrap {
  1355. min-height: 800px;
  1356. }
  1357. .fl-node-uabt3lg89oyq .fl-row-content {
  1358. max-width: 570px;
  1359. }
  1360. @media(max-width: 992px) {
  1361. .fl-node-uabt3lg89oyq > .fl-row-content-wrap {
  1362. background-image: url(https://linktek.com/wp-content/uploads/2020/10/it-problem-1-scaled.jpeg);
  1363. }
  1364. .fl-node-uabt3lg89oyq.fl-row-custom-height > .fl-row-content-wrap {
  1365. min-height: 200px;
  1366. }
  1367. }
  1368. @media(max-width: 768px) {
  1369. .fl-node-uabt3lg89oyq > .fl-row-content-wrap {
  1370. background-image: url(https://linktek.com/wp-content/uploads/2020/10/it-problem-1-scaled.jpeg);
  1371. }
  1372. .fl-node-uabt3lg89oyq.fl-row-custom-height > .fl-row-content-wrap {
  1373. min-height: 400px;
  1374. }
  1375. }
  1376. .fl-node-uabt3lg89oyq > .fl-row-content-wrap {
  1377. margin-top:0px;
  1378. }
  1379. .fl-node-uabt3lg89oyq > .fl-row-content-wrap {
  1380. padding-top:80px;
  1381. padding-bottom:25px;
  1382. }
  1383. @media ( max-width: 992px ) {
  1384. .fl-node-uabt3lg89oyq.fl-row > .fl-row-content-wrap {
  1385. padding-top:20px;
  1386. padding-bottom:20px;
  1387. }
  1388. }
  1389. @media ( max-width: 768px ) {
  1390. .fl-node-uabt3lg89oyq.fl-row > .fl-row-content-wrap {
  1391. padding-top:20px;
  1392. padding-right:0px;
  1393. padding-left:0px;
  1394. }
  1395. }
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402. /* Full Height Rows */
  1403. .fl-node-8anhq1ezd3tp.fl-row-full-height > .fl-row-content-wrap,
  1404. .fl-node-8anhq1ezd3tp.fl-row-custom-height > .fl-row-content-wrap {
  1405. display: -webkit-box;
  1406. display: -webkit-flex;
  1407. display: -ms-flexbox;
  1408. display: flex;
  1409. }
  1410. .fl-node-8anhq1ezd3tp.fl-row-full-height > .fl-row-content-wrap {
  1411. min-height: 100vh;
  1412. }
  1413. .fl-node-8anhq1ezd3tp.fl-row-custom-height > .fl-row-content-wrap {
  1414. min-height: 0;
  1415. }
  1416.  
  1417. .fl-builder-edit .fl-node-8anhq1ezd3tp.fl-row-full-height > .fl-row-content-wrap {
  1418. min-height: calc( 100vh - 48px );
  1419. }
  1420.  
  1421. /* Full height iPad with portrait orientation. */
  1422. @media all and (device-width: 768px) and (device-height: 1024px) and (orientation:portrait){
  1423. .fl-node-8anhq1ezd3tp.fl-row-full-height > .fl-row-content-wrap {
  1424. min-height: 1024px;
  1425. }
  1426. }
  1427. /* Full height iPad with landscape orientation. */
  1428. @media all and (device-width: 1024px) and (device-height: 768px) and (orientation:landscape){
  1429. .fl-node-8anhq1ezd3tp.fl-row-full-height > .fl-row-content-wrap {
  1430. min-height: 768px;
  1431. }
  1432. }
  1433. /* Full height iPhone 5. You can also target devices with aspect ratio. */
  1434. @media screen and (device-aspect-ratio: 40/71) {
  1435. .fl-node-8anhq1ezd3tp.fl-row-full-height > .fl-row-content-wrap {
  1436. min-height: 500px;
  1437. }
  1438. }
  1439. .fl-node-8anhq1ezd3tp > .fl-row-content-wrap {
  1440. background-color: #000000;
  1441. background-image: url(https://linktek.com/wp-content/uploads/2023/01/server-manager-1.jpg);
  1442. background-repeat: no-repeat;
  1443. background-position: center top;
  1444. background-attachment: fixed;
  1445. background-size: cover;
  1446. }
  1447. .fl-node-8anhq1ezd3tp > .fl-row-content-wrap:after {
  1448. background-image: linear-gradient(90deg, #0c3a9c 0%, rgba(0,0,0,0.7) 100%);
  1449. }
  1450. .fl-node-8anhq1ezd3tp.fl-row-custom-height > .fl-row-content-wrap {
  1451. min-height: 800px;
  1452. }
  1453. @media(max-width: 992px) {
  1454. .fl-node-8anhq1ezd3tp.fl-row-custom-height > .fl-row-content-wrap {
  1455. min-height: 200px;
  1456. }
  1457. }
  1458. @media(max-width: 768px) {
  1459. .fl-node-8anhq1ezd3tp.fl-row-custom-height > .fl-row-content-wrap {
  1460. min-height: 200px;
  1461. }
  1462. }
  1463. .fl-node-8anhq1ezd3tp > .fl-row-content-wrap {
  1464. padding-top:80px;
  1465. padding-bottom:80px;
  1466. }
  1467. @media ( max-width: 992px ) {
  1468. .fl-node-8anhq1ezd3tp.fl-row > .fl-row-content-wrap {
  1469. padding-top:20px;
  1470. padding-right:0px;
  1471. padding-bottom:20px;
  1472. }
  1473. }
  1474. @media ( max-width: 768px ) {
  1475. .fl-node-8anhq1ezd3tp.fl-row > .fl-row-content-wrap {
  1476. padding-top:20px;
  1477. padding-bottom:20px;
  1478. }
  1479. }
  1480.  
  1481.  
  1482.  
  1483.  
  1484.  
  1485.  
  1486. .fl-node-4zukfjielvs1 > .fl-row-content-wrap {
  1487. background-color: #006ea5;
  1488. }
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495. .fl-node-6jhens7mwyda .fl-row-content {
  1496. max-width: 1200px;
  1497. }
  1498. .fl-node-6jhens7mwyda > .fl-row-content-wrap {
  1499. margin-top:80px;
  1500. margin-bottom:80px;
  1501. }
  1502. .fl-node-6jhens7mwyda > .fl-row-content-wrap {
  1503. padding-top:60px;
  1504. padding-bottom:60px;
  1505. }
  1506. @media ( max-width: 992px ) {
  1507. .fl-node-6jhens7mwyda.fl-row > .fl-row-content-wrap {
  1508. padding-top:20px;
  1509. padding-bottom:20px;
  1510. }
  1511. }
  1512. @media ( max-width: 768px ) {
  1513. .fl-node-6jhens7mwyda.fl-row > .fl-row-content-wrap {
  1514. padding-top:20px;
  1515. padding-bottom:20px;
  1516. }
  1517. }
  1518.  
  1519.  
  1520.  
  1521.  
  1522.  
  1523.  
  1524. /* Full Height Rows */
  1525. .fl-node-v06dcmb5l3we.fl-row-full-height > .fl-row-content-wrap,
  1526. .fl-node-v06dcmb5l3we.fl-row-custom-height > .fl-row-content-wrap {
  1527. display: -webkit-box;
  1528. display: -webkit-flex;
  1529. display: -ms-flexbox;
  1530. display: flex;
  1531. }
  1532. .fl-node-v06dcmb5l3we.fl-row-full-height > .fl-row-content-wrap {
  1533. min-height: 100vh;
  1534. }
  1535. .fl-node-v06dcmb5l3we.fl-row-custom-height > .fl-row-content-wrap {
  1536. min-height: 0;
  1537. }
  1538.  
  1539. .fl-builder-edit .fl-node-v06dcmb5l3we.fl-row-full-height > .fl-row-content-wrap {
  1540. min-height: calc( 100vh - 48px );
  1541. }
  1542.  
  1543. /* Full height iPad with portrait orientation. */
  1544. @media all and (device-width: 768px) and (device-height: 1024px) and (orientation:portrait){
  1545. .fl-node-v06dcmb5l3we.fl-row-full-height > .fl-row-content-wrap {
  1546. min-height: 1024px;
  1547. }
  1548. }
  1549. /* Full height iPad with landscape orientation. */
  1550. @media all and (device-width: 1024px) and (device-height: 768px) and (orientation:landscape){
  1551. .fl-node-v06dcmb5l3we.fl-row-full-height > .fl-row-content-wrap {
  1552. min-height: 768px;
  1553. }
  1554. }
  1555. /* Full height iPhone 5. You can also target devices with aspect ratio. */
  1556. @media screen and (device-aspect-ratio: 40/71) {
  1557. .fl-node-v06dcmb5l3we.fl-row-full-height > .fl-row-content-wrap {
  1558. min-height: 500px;
  1559. }
  1560. }
  1561. .fl-node-v06dcmb5l3we > .fl-row-content-wrap {
  1562. background-color: #000000;
  1563. background-image: url(https://linktek.com/wp-content/uploads/2024/08/AdobeStock_763854156v2.jpg);
  1564. background-repeat: no-repeat;
  1565. background-position: center center;
  1566. background-attachment: fixed;
  1567. background-size: cover;
  1568. }
  1569. .fl-node-v06dcmb5l3we > .fl-row-content-wrap:after {
  1570. background-color: rgba(52,71,84,0.67);
  1571. }
  1572. .fl-node-v06dcmb5l3we.fl-row-custom-height > .fl-row-content-wrap {
  1573. min-height: 800px;
  1574. }
  1575. .fl-node-v06dcmb5l3we .fl-row-content {
  1576. max-width: 718px;
  1577. }
  1578. @media(max-width: 992px) {
  1579. .fl-node-v06dcmb5l3we.fl-row-custom-height > .fl-row-content-wrap {
  1580. min-height: 200px;
  1581. }
  1582. }
  1583. @media(max-width: 768px) {
  1584. .fl-node-v06dcmb5l3we.fl-row-custom-height > .fl-row-content-wrap {
  1585. min-height: 200px;
  1586. }
  1587. }
  1588. .fl-node-v06dcmb5l3we > .fl-row-content-wrap {
  1589. padding-top:120px;
  1590. padding-bottom:80px;
  1591. }
  1592. @media ( max-width: 992px ) {
  1593. .fl-node-v06dcmb5l3we.fl-row > .fl-row-content-wrap {
  1594. padding-top:20px;
  1595. padding-bottom:30px;
  1596. }
  1597. }
  1598. @media ( max-width: 768px ) {
  1599. .fl-node-v06dcmb5l3we.fl-row > .fl-row-content-wrap {
  1600. padding-top:20px;
  1601. padding-bottom:20px;
  1602. }
  1603. }
  1604.  
  1605.  
  1606.  
  1607.  
  1608.  
  1609.  
  1610. .fl-node-au713nzpbof4 > .fl-row-content-wrap {
  1611. background-color: #ffffff;
  1612. }
  1613. .fl-node-au713nzpbof4.fl-row-fixed-width, .fl-node-au713nzpbof4 .fl-row-fixed-width {
  1614. max-width: 898px;
  1615. }
  1616. .fl-node-au713nzpbof4 > .fl-row-content-wrap {
  1617. margin-top:60px;
  1618. }
  1619. @media ( max-width: 992px ) {
  1620. .fl-node-au713nzpbof4.fl-row > .fl-row-content-wrap {
  1621. margin-top:0px;
  1622. margin-right:0px;
  1623. margin-bottom:0px;
  1624. margin-left:0px;
  1625. }
  1626. }
  1627.  
  1628.  
  1629.  
  1630.  
  1631.  
  1632.  
  1633. .fl-node-g2cn8p9h14xd > .fl-row-content-wrap {
  1634. background-color: #ffffff;
  1635. }
  1636. .fl-node-g2cn8p9h14xd .fl-row-content {
  1637. max-width: 700px;
  1638. }
  1639. .fl-node-g2cn8p9h14xd > .fl-row-content-wrap {
  1640. margin-top:0px;
  1641. }
  1642. .fl-node-g2cn8p9h14xd > .fl-row-content-wrap {
  1643. padding-top:0px;
  1644. padding-bottom:0px;
  1645. }
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652. .fl-node-w85gi6hcvjor > .fl-row-content-wrap {
  1653. background-color: #ffffff;
  1654. }
  1655. .fl-node-w85gi6hcvjor .fl-row-content {
  1656. max-width: 719.991px;
  1657. }
  1658. .fl-node-w85gi6hcvjor > .fl-row-content-wrap {
  1659. margin-top:0px;
  1660. }
  1661. .fl-node-w85gi6hcvjor > .fl-row-content-wrap {
  1662. padding-top:0px;
  1663. padding-bottom:0px;
  1664. }
  1665.  
  1666.  
  1667.  
  1668.  
  1669.  
  1670.  
  1671. .fl-node-qplduwj8gxaz > .fl-row-content-wrap {
  1672. background-color: #ffffff;
  1673. }
  1674. .fl-node-qplduwj8gxaz .fl-row-content {
  1675. max-width: 694px;
  1676. }
  1677. .fl-node-qplduwj8gxaz > .fl-row-content-wrap {
  1678. margin-top:0px;
  1679. }
  1680. .fl-node-qplduwj8gxaz > .fl-row-content-wrap {
  1681. padding-top:0px;
  1682. padding-bottom:80px;
  1683. }
  1684.  
  1685.  
  1686.  
  1687.  
  1688.  
  1689.  
  1690. /* Full Height Rows */
  1691. .fl-node-7fwcvznr3mh1.fl-row-full-height > .fl-row-content-wrap,
  1692. .fl-node-7fwcvznr3mh1.fl-row-custom-height > .fl-row-content-wrap {
  1693. display: -webkit-box;
  1694. display: -webkit-flex;
  1695. display: -ms-flexbox;
  1696. display: flex;
  1697. }
  1698. .fl-node-7fwcvznr3mh1.fl-row-full-height > .fl-row-content-wrap {
  1699. min-height: 100vh;
  1700. }
  1701. .fl-node-7fwcvznr3mh1.fl-row-custom-height > .fl-row-content-wrap {
  1702. min-height: 0;
  1703. }
  1704.  
  1705. .fl-builder-edit .fl-node-7fwcvznr3mh1.fl-row-full-height > .fl-row-content-wrap {
  1706. min-height: calc( 100vh - 48px );
  1707. }
  1708.  
  1709. /* Full height iPad with portrait orientation. */
  1710. @media all and (device-width: 768px) and (device-height: 1024px) and (orientation:portrait){
  1711. .fl-node-7fwcvznr3mh1.fl-row-full-height > .fl-row-content-wrap {
  1712. min-height: 1024px;
  1713. }
  1714. }
  1715. /* Full height iPad with landscape orientation. */
  1716. @media all and (device-width: 1024px) and (device-height: 768px) and (orientation:landscape){
  1717. .fl-node-7fwcvznr3mh1.fl-row-full-height > .fl-row-content-wrap {
  1718. min-height: 768px;
  1719. }
  1720. }
  1721. /* Full height iPhone 5. You can also target devices with aspect ratio. */
  1722. @media screen and (device-aspect-ratio: 40/71) {
  1723. .fl-node-7fwcvznr3mh1.fl-row-full-height > .fl-row-content-wrap {
  1724. min-height: 500px;
  1725. }
  1726. }
  1727. .fl-node-7fwcvznr3mh1 > .fl-row-content-wrap {
  1728. background-color: #000000;
  1729. background-image: url(https://linktek.com/wp-content/uploads/2021/05/new-bg.jpg);
  1730. background-repeat: no-repeat;
  1731. background-position: center center;
  1732. background-attachment: fixed;
  1733. background-size: cover;
  1734. }
  1735. .fl-node-7fwcvznr3mh1 > .fl-row-content-wrap:after {
  1736. background-color: rgba(12,58,41,0.74);
  1737. }
  1738. .fl-node-7fwcvznr3mh1.fl-row-custom-height > .fl-row-content-wrap {
  1739. min-height: 800px;
  1740. }
  1741. @media(max-width: 992px) {
  1742. .fl-node-7fwcvznr3mh1.fl-row-custom-height > .fl-row-content-wrap {
  1743. min-height: 200px;
  1744. }
  1745. }
  1746. @media(max-width: 768px) {
  1747. .fl-node-7fwcvznr3mh1.fl-row-custom-height > .fl-row-content-wrap {
  1748. min-height: 200px;
  1749. }
  1750. }
  1751. @media ( max-width: 992px ) {
  1752. .fl-node-7fwcvznr3mh1.fl-row > .fl-row-content-wrap {
  1753. padding-top:20px;
  1754. padding-bottom:40px;
  1755. }
  1756. }
  1757. @media ( max-width: 768px ) {
  1758. .fl-node-7fwcvznr3mh1.fl-row > .fl-row-content-wrap {
  1759. padding-top:20px;
  1760. padding-bottom:30px;
  1761. }
  1762. }
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769. .fl-node-v5tgxpyfalqn > .fl-row-content-wrap:after {
  1770. background-image: linear-gradient(90deg, rgba(29,154,209,0.8) 0%, rgba(0,0,0,0.8) 100%);
  1771. }
  1772. .fl-node-v5tgxpyfalqn > .fl-row-content-wrap {
  1773. background-image: url(https://linktek.com/wp-content/uploads/2024/08/AdobeStock_814074047-scaled.jpg);
  1774. background-repeat: no-repeat;
  1775. background-position: center center;
  1776. background-attachment: fixed;
  1777. background-size: cover;
  1778. }
  1779. .fl-node-v5tgxpyfalqn .fl-row-content {
  1780. max-width: 1202px;
  1781. }
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788. .fl-node-okz7yf5icr9l.fl-row-fixed-width, .fl-node-okz7yf5icr9l .fl-row-fixed-width {
  1789. max-width: 1000px;
  1790. }
  1791. .fl-node-okz7yf5icr9l > .fl-row-content-wrap {
  1792. padding-top:35px;
  1793. padding-bottom:50px;
  1794. }
  1795.  
  1796.  
  1797.  
  1798.  
  1799.  
  1800.  
  1801. /* Full Height Rows */
  1802. .fl-node-dhl195zr0cjm.fl-row-full-height > .fl-row-content-wrap,
  1803. .fl-node-dhl195zr0cjm.fl-row-custom-height > .fl-row-content-wrap {
  1804. display: -webkit-box;
  1805. display: -webkit-flex;
  1806. display: -ms-flexbox;
  1807. display: flex;
  1808. }
  1809. .fl-node-dhl195zr0cjm.fl-row-full-height > .fl-row-content-wrap {
  1810. min-height: 100vh;
  1811. }
  1812. .fl-node-dhl195zr0cjm.fl-row-custom-height > .fl-row-content-wrap {
  1813. min-height: 0;
  1814. }
  1815.  
  1816. .fl-builder-edit .fl-node-dhl195zr0cjm.fl-row-full-height > .fl-row-content-wrap {
  1817. min-height: calc( 100vh - 48px );
  1818. }
  1819.  
  1820. /* Full height iPad with portrait orientation. */
  1821. @media all and (device-width: 768px) and (device-height: 1024px) and (orientation:portrait){
  1822. .fl-node-dhl195zr0cjm.fl-row-full-height > .fl-row-content-wrap {
  1823. min-height: 1024px;
  1824. }
  1825. }
  1826. /* Full height iPad with landscape orientation. */
  1827. @media all and (device-width: 1024px) and (device-height: 768px) and (orientation:landscape){
  1828. .fl-node-dhl195zr0cjm.fl-row-full-height > .fl-row-content-wrap {
  1829. min-height: 768px;
  1830. }
  1831. }
  1832. /* Full height iPhone 5. You can also target devices with aspect ratio. */
  1833. @media screen and (device-aspect-ratio: 40/71) {
  1834. .fl-node-dhl195zr0cjm.fl-row-full-height > .fl-row-content-wrap {
  1835. min-height: 500px;
  1836. }
  1837. }
  1838. .fl-node-dhl195zr0cjm > .fl-row-content-wrap {
  1839. background-color: #000000;
  1840. background-image: url(https://linktek.com/wp-content/uploads/2020/10/success-IT-v2-1-scaled.jpg);
  1841. background-repeat: no-repeat;
  1842. background-position: center center;
  1843. background-attachment: fixed;
  1844. background-size: cover;
  1845. }
  1846. .fl-node-dhl195zr0cjm > .fl-row-content-wrap:after {
  1847. background-image: linear-gradient(90deg, #0c3a9c 0%, rgba(255,255,255,0) 100%);
  1848. }
  1849. .fl-node-dhl195zr0cjm.fl-row-custom-height > .fl-row-content-wrap {
  1850. min-height: 800px;
  1851. }
  1852. @media(max-width: 992px) {
  1853. .fl-node-dhl195zr0cjm.fl-row-custom-height > .fl-row-content-wrap {
  1854. min-height: 200px;
  1855. }
  1856. }
  1857. @media(max-width: 768px) {
  1858. .fl-node-dhl195zr0cjm.fl-row-custom-height > .fl-row-content-wrap {
  1859. min-height: 200px;
  1860. }
  1861. }
  1862. .fl-node-dhl195zr0cjm > .fl-row-content-wrap {
  1863. margin-top:20px;
  1864. }
  1865. @media ( max-width: 992px ) {
  1866. .fl-node-dhl195zr0cjm.fl-row > .fl-row-content-wrap {
  1867. padding-top:20px;
  1868. padding-bottom:30px;
  1869. }
  1870. }
  1871. @media ( max-width: 768px ) {
  1872. .fl-node-dhl195zr0cjm.fl-row > .fl-row-content-wrap {
  1873. padding-top:20px;
  1874. padding-bottom:30px;
  1875. }
  1876. }
  1877.  
  1878.  
  1879.  
  1880.  
  1881.  
  1882.  
  1883. .fl-node-nbcvy4fiht98 > .fl-row-content-wrap {
  1884. background-color: #ffffff;
  1885. }
  1886. .fl-node-nbcvy4fiht98 .fl-row-content {
  1887. max-width: 1000px;
  1888. }
  1889. .fl-node-nbcvy4fiht98 > .fl-row-content-wrap {
  1890. padding-top:60px;
  1891. padding-bottom:60px;
  1892. }
  1893. @media ( max-width: 768px ) {
  1894. .fl-node-nbcvy4fiht98.fl-row > .fl-row-content-wrap {
  1895. padding-top:20px;
  1896. padding-bottom:20px;
  1897. }
  1898. }
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905. .fl-node-3fm56gql2z41 > .fl-row-content-wrap:after {
  1906. background-color: rgba(0,0,0,0.18);
  1907. }
  1908. .fl-node-3fm56gql2z41 > .fl-row-content-wrap {
  1909. background-image: url(https://linktek.com/wp-content/uploads/2024/08/AdobeStock_833566968.jpg);
  1910. background-repeat: no-repeat;
  1911. background-position: center center;
  1912. background-attachment: fixed;
  1913. background-size: cover;
  1914. }
  1915. .fl-node-3fm56gql2z41 > .fl-row-content-wrap {
  1916. padding-top:60px;
  1917. padding-bottom:60px;
  1918. }
  1919. @media ( max-width: 768px ) {
  1920. .fl-node-3fm56gql2z41.fl-row > .fl-row-content-wrap {
  1921. padding-top:20px;
  1922. padding-bottom:30px;
  1923. }
  1924. }
  1925.  
  1926.  
  1927.  
  1928.  
  1929.  
  1930.  
  1931. .fl-node-va9fs2y1tpzq > .fl-row-content-wrap {
  1932. background-color: #ffffff;
  1933. }
  1934. .fl-node-va9fs2y1tpzq .fl-row-content {
  1935. max-width: 904px;
  1936. }
  1937. .fl-node-va9fs2y1tpzq > .fl-row-content-wrap {
  1938. margin-top:80px;
  1939. margin-bottom:80px;
  1940. }
  1941. @media ( max-width: 992px ) {
  1942. .fl-node-va9fs2y1tpzq.fl-row > .fl-row-content-wrap {
  1943. margin-bottom:0px;
  1944. }
  1945. }
  1946. .fl-node-va9fs2y1tpzq > .fl-row-content-wrap {
  1947. padding-bottom:45px;
  1948. }
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955. .fl-node-6ysg8vzt3nhb > .fl-row-content-wrap {
  1956. background-color: #ffffff;
  1957. }
  1958. .fl-node-6ysg8vzt3nhb .fl-row-content {
  1959. max-width: 1200px;
  1960. }
  1961. .fl-node-6ysg8vzt3nhb > .fl-row-content-wrap {
  1962. padding-top:0px;
  1963. }
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970. .fl-node-82d9njpo06s1 > .fl-row-content-wrap {
  1971. background-color: #000000;
  1972. }
  1973. .fl-node-82d9njpo06s1 > .fl-row-content-wrap {
  1974. padding-top:60px;
  1975. }
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.  
  1982. .fl-node-5u8fedmj02rz > .fl-row-content-wrap {
  1983. background-color: #ffffff;
  1984. }
  1985. .fl-node-5u8fedmj02rz > .fl-row-content-wrap {
  1986. padding-top:10px;
  1987. padding-bottom:10px;
  1988. }
  1989.  
  1990.  
  1991.  
  1992.  
  1993. .fl-node-5e1dded4777b8 {
  1994. width: 18.63%;
  1995. }
  1996. .fl-node-5e1dded4777b8 > .fl-col-content {
  1997. border-top-left-radius: 0px;
  1998. border-top-right-radius: 0px;
  1999. border-bottom-left-radius: 0px;
  2000. border-bottom-right-radius: 0px;
  2001. box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.5);
  2002. }
  2003. @media(max-width: 992px) {
  2004. .fl-builder-content .fl-node-5e1dded4777b8 {
  2005. width: 100% !important;
  2006. max-width: none;
  2007. -webkit-box-flex: 0 1 auto;
  2008. -moz-box-flex: 0 1 auto;
  2009. -webkit-flex: 0 1 auto;
  2010. -ms-flex: 0 1 auto;
  2011. flex: 0 1 auto;
  2012. }
  2013. }
  2014.  
  2015.  
  2016.  
  2017.  
  2018. .fl-node-5e1dded4777be {
  2019. width: 10%;
  2020. }
  2021. .fl-node-5e1dded4777be > .fl-col-content {
  2022. border-top-left-radius: 0px;
  2023. border-top-right-radius: 0px;
  2024. border-bottom-left-radius: 0px;
  2025. border-bottom-right-radius: 0px;
  2026. box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.5);
  2027. }
  2028.  
  2029.  
  2030.  
  2031.  
  2032. .fl-node-5e1dded4777bb {
  2033. width: 63.37%;
  2034. }
  2035. .fl-node-5e1dded4777bb > .fl-col-content {
  2036. border-top-left-radius: 0px;
  2037. border-top-right-radius: 0px;
  2038. border-bottom-left-radius: 0px;
  2039. border-bottom-right-radius: 0px;
  2040. box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.5);
  2041. }
  2042. @media(max-width: 992px) {
  2043. .fl-builder-content .fl-node-5e1dded4777bb {
  2044. width: 90% !important;
  2045. max-width: none;
  2046. -webkit-box-flex: 0 1 auto;
  2047. -moz-box-flex: 0 1 auto;
  2048. -webkit-flex: 0 1 auto;
  2049. -ms-flex: 0 1 auto;
  2050. flex: 0 1 auto;
  2051. }
  2052. }
  2053. @media ( max-width: 992px ) {
  2054. .fl-node-5e1dded4777bb.fl-col > .fl-col-content {
  2055. margin-right:0px;
  2056. margin-left:0px;
  2057. }
  2058. }
  2059. @media ( max-width: 992px ) {
  2060. .fl-node-5e1dded4777bb.fl-col > .fl-col-content {
  2061. padding-right:0px;
  2062. padding-left:0px;
  2063. }
  2064. }
  2065.  
  2066.  
  2067.  
  2068.  
  2069. .fl-node-kelotias2jh0 {
  2070. width: 8%;
  2071. }
  2072. .fl-node-kelotias2jh0 > .fl-col-content {
  2073. border-top-left-radius: 0px;
  2074. border-top-right-radius: 0px;
  2075. border-bottom-left-radius: 0px;
  2076. border-bottom-right-radius: 0px;
  2077. box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.5);
  2078. }
  2079. @media(max-width: 992px) {
  2080. .fl-builder-content .fl-node-kelotias2jh0 {
  2081. width: 8% !important;
  2082. max-width: none;
  2083. -webkit-box-flex: 0 1 auto;
  2084. -moz-box-flex: 0 1 auto;
  2085. -webkit-flex: 0 1 auto;
  2086. -ms-flex: 0 1 auto;
  2087. flex: 0 1 auto;
  2088. }
  2089. }
  2090. @media ( max-width: 992px ) {
  2091. .fl-node-kelotias2jh0.fl-col > .fl-col-content {
  2092. margin-right:0px;
  2093. margin-left:0px;
  2094. }
  2095. }
  2096. @media ( max-width: 992px ) {
  2097. .fl-node-kelotias2jh0.fl-col > .fl-col-content {
  2098. padding-right:0px;
  2099. padding-left:0px;
  2100. }
  2101. }
  2102.  
  2103.  
  2104.  
  2105.  
  2106. .fl-node-qi67w2fa9eoc {
  2107. width: 100%;
  2108. }
  2109. .fl-node-qi67w2fa9eoc > .fl-col-content {
  2110. border-top-left-radius: 0px;
  2111. border-top-right-radius: 0px;
  2112. border-bottom-left-radius: 0px;
  2113. border-bottom-right-radius: 0px;
  2114. box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.5);
  2115. }
  2116. @media(max-width: 768px) {
  2117. .fl-builder-content .fl-node-qi67w2fa9eoc {
  2118. width: 100% !important;
  2119. max-width: none;
  2120. clear: none;
  2121. float: left;
  2122. }
  2123. }
  2124.  
  2125.  
  2126.  
  2127.  
  2128. .fl-node-4fmuon31zv6i {
  2129. width: 62.34%;
  2130. }
  2131. .fl-node-4fmuon31zv6i > .fl-col-content {
  2132. background-color: rgba(59,146,192,0.4);
  2133. }
  2134. @media(max-width: 992px) {
  2135. .fl-builder-content .fl-node-4fmuon31zv6i {
  2136. width: 100% !important;
  2137. max-width: none;
  2138. -webkit-box-flex: 0 1 auto;
  2139. -moz-box-flex: 0 1 auto;
  2140. -webkit-flex: 0 1 auto;
  2141. -ms-flex: 0 1 auto;
  2142. flex: 0 1 auto;
  2143. }
  2144. }
  2145. @media ( max-width: 768px ) {
  2146. .fl-node-4fmuon31zv6i.fl-col > .fl-col-content {
  2147. margin-top:-100px;
  2148. margin-bottom:0px;
  2149. }
  2150. }
  2151. .fl-node-4fmuon31zv6i > .fl-col-content {
  2152. padding-top:20px;
  2153. padding-right:20px;
  2154. padding-bottom:20px;
  2155. padding-left:20px;
  2156. }
  2157. @media ( max-width: 768px ) {
  2158. .fl-node-4fmuon31zv6i.fl-col > .fl-col-content {
  2159. padding-top:0px;
  2160. padding-bottom:0px;
  2161. }
  2162. }
  2163.  
  2164.  
  2165.  
  2166.  
  2167. .fl-node-sw43958qk21c {
  2168. width: 37.66%;
  2169. }
  2170. .fl-node-sw43958qk21c > .fl-col-content {
  2171. border-top-left-radius: 0px;
  2172. border-top-right-radius: 0px;
  2173. border-bottom-left-radius: 0px;
  2174. border-bottom-right-radius: 0px;
  2175. box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.5);
  2176. }
  2177.  
  2178.  
  2179.  
  2180.  
  2181. .fl-node-d01xrhza3fjt {
  2182. width: 100%;
  2183. }
  2184.  
  2185.  
  2186.  
  2187.  
  2188. .fl-node-0vim1jauqsf6 {
  2189. width: 100%;
  2190. }
  2191.  
  2192.  
  2193.  
  2194.  
  2195. .fl-node-16rj7hpzwnyf {
  2196. width: 100%;
  2197. }
  2198.  
  2199.  
  2200.  
  2201.  
  2202. .fl-node-mjzg97sc0uti {
  2203. width: 100%;
  2204. }
  2205.  
  2206.  
  2207.  
  2208.  
  2209. .fl-node-82ka69bc4xiw {
  2210. width: 80%;
  2211. }
  2212. .fl-node-82ka69bc4xiw > .fl-col-content {
  2213. border-top-left-radius: 0px;
  2214. border-top-right-radius: 0px;
  2215. border-bottom-left-radius: 0px;
  2216. border-bottom-right-radius: 0px;
  2217. box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.5);
  2218. }
  2219. @media(max-width: 992px) {
  2220. .fl-builder-content .fl-node-82ka69bc4xiw {
  2221. width: 100% !important;
  2222. max-width: none;
  2223. -webkit-box-flex: 0 1 auto;
  2224. -moz-box-flex: 0 1 auto;
  2225. -webkit-flex: 0 1 auto;
  2226. -ms-flex: 0 1 auto;
  2227. flex: 0 1 auto;
  2228. }
  2229. }
  2230.  
  2231.  
  2232.  
  2233.  
  2234. .fl-node-mlig092vc1rp {
  2235. width: 20%;
  2236. }
  2237. .fl-node-mlig092vc1rp > .fl-col-content {
  2238. border-top-left-radius: 0px;
  2239. border-top-right-radius: 0px;
  2240. border-bottom-left-radius: 0px;
  2241. border-bottom-right-radius: 0px;
  2242. box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.5);
  2243. }
  2244.  
  2245.  
  2246.  
  2247.  
  2248. .fl-node-o4s2zay5cxdm {
  2249. width: 82%;
  2250. }
  2251.  
  2252.  
  2253.  
  2254.  
  2255. .fl-node-q0dnieu3lkyf {
  2256. width: 18%;
  2257. }
  2258.  
  2259.  
  2260.  
  2261.  
  2262. .fl-node-cdvxwyus2837 {
  2263. width: 100%;
  2264. }
  2265.  
  2266.  
  2267.  
  2268.  
  2269. .fl-node-wuknq64avi7f {
  2270. width: 100%;
  2271. }
  2272.  
  2273.  
  2274.  
  2275.  
  2276. .fl-node-h0ut1rm8d62z {
  2277. width: 39.5%;
  2278. }
  2279.  
  2280.  
  2281.  
  2282.  
  2283. .fl-node-zg0l16985dth {
  2284. width: 60.5%;
  2285. }
  2286.  
  2287.  
  2288.  
  2289.  
  2290. .fl-node-srxhd1z4jl89 {
  2291. width: 100%;
  2292. }
  2293. .fl-node-srxhd1z4jl89 > .fl-col-content {
  2294. border-top-left-radius: 0px;
  2295. border-top-right-radius: 0px;
  2296. border-bottom-left-radius: 0px;
  2297. border-bottom-right-radius: 0px;
  2298. box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.5);
  2299. }
  2300.  
  2301.  
  2302.  
  2303.  
  2304. .fl-node-1d8om3w7aylv {
  2305. width: 100%;
  2306. }
  2307.  
  2308.  
  2309.  
  2310.  
  2311. .fl-node-hcyntpil8q7a {
  2312. width: 100%;
  2313. }
  2314.  
  2315.  
  2316.  
  2317.  
  2318. .fl-node-5da1c223c46f0 {
  2319. width: 16.667%;
  2320. }
  2321. @media(max-width: 768px) {
  2322. .fl-builder-content .fl-node-5da1c223c46f0 {
  2323. width: 33% !important;
  2324. max-width: none;
  2325. clear: none;
  2326. float: left;
  2327. }
  2328. }
  2329.  
  2330.  
  2331.  
  2332.  
  2333. .fl-node-5da1c223c46f6 {
  2334. width: 16.667%;
  2335. }
  2336. @media(max-width: 768px) {
  2337. .fl-builder-content .fl-node-5da1c223c46f6 {
  2338. width: 33% !important;
  2339. max-width: none;
  2340. clear: none;
  2341. float: left;
  2342. }
  2343. }
  2344.  
  2345.  
  2346.  
  2347.  
  2348. .fl-node-5da1c223c46f2 {
  2349. width: 16%;
  2350. }
  2351. @media(max-width: 768px) {
  2352. .fl-builder-content .fl-node-5da1c223c46f2 {
  2353. width: 33% !important;
  2354. max-width: none;
  2355. clear: none;
  2356. float: left;
  2357. }
  2358. }
  2359.  
  2360.  
  2361.  
  2362.  
  2363. .fl-node-5da1c223c46f4 {
  2364. width: 16%;
  2365. }
  2366. @media(max-width: 768px) {
  2367. .fl-builder-content .fl-node-5da1c223c46f4 {
  2368. width: 33% !important;
  2369. max-width: none;
  2370. clear: none;
  2371. float: left;
  2372. }
  2373. }
  2374.  
  2375.  
  2376.  
  2377.  
  2378. .fl-node-5da1c223c46f8 {
  2379. width: 16%;
  2380. }
  2381. @media(max-width: 768px) {
  2382. .fl-builder-content .fl-node-5da1c223c46f8 {
  2383. width: 33% !important;
  2384. max-width: none;
  2385. clear: none;
  2386. float: left;
  2387. }
  2388. }
  2389.  
  2390.  
  2391.  
  2392.  
  2393. .fl-node-5da1c223c46fa {
  2394. width: 16%;
  2395. }
  2396. @media(max-width: 768px) {
  2397. .fl-builder-content .fl-node-5da1c223c46fa {
  2398. width: 33% !important;
  2399. max-width: none;
  2400. clear: none;
  2401. float: left;
  2402. }
  2403. }
  2404.  
  2405.  
  2406.  
  2407.  
  2408. .fl-node-5da1c23148607 {
  2409. width: 16.667%;
  2410. }
  2411. @media(max-width: 768px) {
  2412. .fl-builder-content .fl-node-5da1c23148607 {
  2413. width: 33% !important;
  2414. max-width: none;
  2415. clear: none;
  2416. float: left;
  2417. }
  2418. }
  2419.  
  2420.  
  2421.  
  2422.  
  2423. .fl-node-5da1c2314860a {
  2424. width: 16.667%;
  2425. }
  2426. @media(max-width: 768px) {
  2427. .fl-builder-content .fl-node-5da1c2314860a {
  2428. width: 33% !important;
  2429. max-width: none;
  2430. clear: none;
  2431. float: left;
  2432. }
  2433. }
  2434.  
  2435.  
  2436.  
  2437.  
  2438. .fl-node-5da1c2314860d {
  2439. width: 16%;
  2440. }
  2441. @media(max-width: 768px) {
  2442. .fl-builder-content .fl-node-5da1c2314860d {
  2443. width: 33% !important;
  2444. max-width: none;
  2445. clear: none;
  2446. float: left;
  2447. }
  2448. }
  2449.  
  2450.  
  2451.  
  2452.  
  2453. .fl-node-5da1c2314860f {
  2454. width: 16%;
  2455. }
  2456. @media(max-width: 768px) {
  2457. .fl-builder-content .fl-node-5da1c2314860f {
  2458. width: 33% !important;
  2459. max-width: none;
  2460. clear: none;
  2461. float: left;
  2462. }
  2463. }
  2464.  
  2465.  
  2466.  
  2467.  
  2468. .fl-node-5da1c23148611 {
  2469. width: 14%;
  2470. }
  2471. @media(max-width: 768px) {
  2472. .fl-builder-content .fl-node-5da1c23148611 {
  2473. width: 33% !important;
  2474. max-width: none;
  2475. clear: none;
  2476. float: left;
  2477. }
  2478. }
  2479.  
  2480.  
  2481.  
  2482.  
  2483. .fl-node-5da1c23148613 {
  2484. width: 20%;
  2485. }
  2486. @media(max-width: 768px) {
  2487. .fl-builder-content .fl-node-5da1c23148613 {
  2488. width: 33% !important;
  2489. max-width: none;
  2490. clear: none;
  2491. float: left;
  2492. }
  2493. }
  2494.  
  2495.  
  2496.  
  2497.  
  2498. .fl-node-5da1c242ef910 {
  2499. width: 17%;
  2500. }
  2501. @media(max-width: 768px) {
  2502. .fl-builder-content .fl-node-5da1c242ef910 {
  2503. width: 33% !important;
  2504. max-width: none;
  2505. clear: none;
  2506. float: left;
  2507. }
  2508. }
  2509.  
  2510.  
  2511.  
  2512.  
  2513. .fl-node-5da1c242ef912 {
  2514. width: 18%;
  2515. }
  2516. @media(max-width: 768px) {
  2517. .fl-builder-content .fl-node-5da1c242ef912 {
  2518. width: 33% !important;
  2519. max-width: none;
  2520. clear: none;
  2521. float: left;
  2522. }
  2523. }
  2524.  
  2525.  
  2526.  
  2527.  
  2528. .fl-node-5da1c242ef916 {
  2529. width: 16%;
  2530. }
  2531. @media(max-width: 768px) {
  2532. .fl-builder-content .fl-node-5da1c242ef916 {
  2533. width: 33% !important;
  2534. max-width: none;
  2535. clear: none;
  2536. float: left;
  2537. }
  2538. }
  2539.  
  2540.  
  2541.  
  2542.  
  2543. .fl-node-5da1c242ef914 {
  2544. width: 15%;
  2545. }
  2546. @media(max-width: 768px) {
  2547. .fl-builder-content .fl-node-5da1c242ef914 {
  2548. width: 33% !important;
  2549. max-width: none;
  2550. clear: none;
  2551. float: left;
  2552. }
  2553. }
  2554.  
  2555.  
  2556.  
  2557.  
  2558. .fl-node-5da1c242ef918 {
  2559. width: 15%;
  2560. }
  2561. @media(max-width: 768px) {
  2562. .fl-builder-content .fl-node-5da1c242ef918 {
  2563. width: 33% !important;
  2564. max-width: none;
  2565. clear: none;
  2566. float: left;
  2567. }
  2568. }
  2569.  
  2570.  
  2571.  
  2572.  
  2573. .fl-node-5da1c242ef91a {
  2574. width: 16%;
  2575. }
  2576. @media(max-width: 768px) {
  2577. .fl-builder-content .fl-node-5da1c242ef91a {
  2578. width: 33% !important;
  2579. max-width: none;
  2580. clear: none;
  2581. float: left;
  2582. }
  2583. }
  2584.  
  2585.  
  2586.  
  2587.  
  2588. .fl-node-b05la3jdgue6 {
  2589. width: 100%;
  2590. }
  2591.  
  2592.  
  2593.  
  2594.  
  2595. .fl-node-vmtgkzi7qsw0 {
  2596. width: 37%;
  2597. }
  2598. .fl-node-vmtgkzi7qsw0 > .fl-col-content {
  2599. border-top-left-radius: 0px;
  2600. border-top-right-radius: 0px;
  2601. border-bottom-left-radius: 0px;
  2602. border-bottom-right-radius: 0px;
  2603. box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.5);
  2604. }
  2605.  
  2606.  
  2607.  
  2608.  
  2609. .fl-node-mypb7g48tvnh {
  2610. width: 63%;
  2611. }
  2612. .fl-node-mypb7g48tvnh > .fl-col-content {
  2613. border-top-left-radius: 0px;
  2614. border-top-right-radius: 0px;
  2615. border-bottom-left-radius: 0px;
  2616. border-bottom-right-radius: 0px;
  2617. box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.5);
  2618. }
  2619. @media(max-width: 992px) {
  2620. .fl-builder-content .fl-node-mypb7g48tvnh {
  2621. width: 100% !important;
  2622. max-width: none;
  2623. -webkit-box-flex: 0 1 auto;
  2624. -moz-box-flex: 0 1 auto;
  2625. -webkit-flex: 0 1 auto;
  2626. -ms-flex: 0 1 auto;
  2627. flex: 0 1 auto;
  2628. }
  2629. }
  2630.  
  2631.  
  2632.  
  2633.  
  2634. .fl-node-rxizfm0nu3k6 {
  2635. width: 100%;
  2636. }
  2637.  
  2638.  
  2639.  
  2640.  
  2641. .fl-node-egvl417jwqzo {
  2642. width: 38.02%;
  2643. }
  2644.  
  2645.  
  2646.  
  2647.  
  2648. .fl-node-ymp0n2tgdsu5 {
  2649. width: 61.98%;
  2650. }
  2651.  
  2652.  
  2653.  
  2654.  
  2655. .fl-node-qd915hvju7ys {
  2656. width: 100%;
  2657. }
  2658.  
  2659.  
  2660.  
  2661.  
  2662. .fl-node-8hm7giq06d91 {
  2663. width: 100%;
  2664. }
  2665.  
  2666.  
  2667.  
  2668.  
  2669. .fl-node-nfx714kcvzim {
  2670. width: 64%;
  2671. }
  2672. .fl-node-nfx714kcvzim > .fl-col-content {
  2673. border-top-left-radius: 0px;
  2674. border-top-right-radius: 0px;
  2675. border-bottom-left-radius: 0px;
  2676. border-bottom-right-radius: 0px;
  2677. box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.5);
  2678. }
  2679. @media(max-width: 992px) {
  2680. .fl-builder-content .fl-node-nfx714kcvzim {
  2681. width: 100% !important;
  2682. max-width: none;
  2683. -webkit-box-flex: 0 1 auto;
  2684. -moz-box-flex: 0 1 auto;
  2685. -webkit-flex: 0 1 auto;
  2686. -ms-flex: 0 1 auto;
  2687. flex: 0 1 auto;
  2688. }
  2689. }
  2690. @media(max-width: 768px) {
  2691. .fl-builder-content .fl-node-nfx714kcvzim {
  2692. width: 100% !important;
  2693. max-width: none;
  2694. clear: none;
  2695. float: left;
  2696. }
  2697. }
  2698.  
  2699.  
  2700.  
  2701.  
  2702. .fl-node-ha2ymgwtldz8 {
  2703. width: 36%;
  2704. }
  2705. .fl-node-ha2ymgwtldz8 > .fl-col-content {
  2706. border-top-left-radius: 0px;
  2707. border-top-right-radius: 0px;
  2708. border-bottom-left-radius: 0px;
  2709. border-bottom-right-radius: 0px;
  2710. box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.5);
  2711. }
  2712.  
  2713.  
  2714.  
  2715.  
  2716. .fl-node-sgp4eoqf0lz2 {
  2717. width: 100%;
  2718. }
  2719.  
  2720.  
  2721.  
  2722.  
  2723. .fl-node-24q6dzfbsvh0 {
  2724. width: 8%;
  2725. }
  2726.  
  2727.  
  2728.  
  2729.  
  2730. .fl-node-c60ei4sftux9 {
  2731. width: 84%;
  2732. }
  2733.  
  2734.  
  2735.  
  2736.  
  2737. .fl-node-o4aivbp3028x {
  2738. width: 8%;
  2739. }
  2740.  
  2741.  
  2742.  
  2743.  
  2744. .fl-node-0sck8zax5ew3 {
  2745. width: 100%;
  2746. }
  2747.  
  2748.  
  2749.  
  2750.  
  2751. .fl-node-6v72j1pnlmag {
  2752. width: 14.01%;
  2753. }
  2754.  
  2755.  
  2756.  
  2757.  
  2758. .fl-node-ei2mkfh97oja {
  2759. width: 71.99%;
  2760. }
  2761. @media(max-width: 992px) {
  2762. .fl-builder-content .fl-node-ei2mkfh97oja {
  2763. width: 100% !important;
  2764. max-width: none;
  2765. -webkit-box-flex: 0 1 auto;
  2766. -moz-box-flex: 0 1 auto;
  2767. -webkit-flex: 0 1 auto;
  2768. -ms-flex: 0 1 auto;
  2769. flex: 0 1 auto;
  2770. }
  2771. }
  2772.  
  2773.  
  2774.  
  2775.  
  2776. .fl-node-gubp518nvezm {
  2777. width: 14%;
  2778. }
  2779.  
  2780.  
  2781.  
  2782.  
  2783. .fl-node-x6febtjmocz0 {
  2784. width: 100%;
  2785. }
  2786.  
  2787.  
  2788.  
  2789.  
  2790. .fl-node-jm5vaeodtf79 {
  2791. width: 100%;
  2792. }
  2793.  
  2794.  
  2795.  
  2796.  
  2797. .fl-node-rpdtinhwf065 {
  2798. width: 100%;
  2799. }
  2800.  
  2801.  
  2802.  
  2803.  
  2804. .fl-node-gh8ubal7oje3 {
  2805. width: 100%;
  2806. }
  2807.  
  2808.  
  2809.  
  2810.  
  2811. .fl-node-lq57ir9gvnkd {
  2812. width: 31%;
  2813. }
  2814.  
  2815.  
  2816.  
  2817.  
  2818. .fl-node-wa1p9m63i40b {
  2819. width: 19%;
  2820. }
  2821.  
  2822.  
  2823.  
  2824.  
  2825. .fl-node-7x8rj65tc9lp {
  2826. width: 25%;
  2827. }
  2828.  
  2829.  
  2830.  
  2831.  
  2832. .fl-node-w4pdeaxgq7j9 {
  2833. width: 25%;
  2834. }
  2835.  
  2836.  
  2837.  
  2838.  
  2839. .fl-node-5d9b23ebee658 {
  2840. width: 100%;
  2841. }
  2842. img.mfp-img {
  2843.    padding-bottom: 40px !important;
  2844. }
  2845. @media (max-width: 768px) { /* Mobile Photo */
  2846. .fl-photo-content {
  2847. width: 100%;
  2848. } }.fl-node-5e1dded4777c0 .fl-photo {
  2849. text-align: center;
  2850. }
  2851. .fl-node-5e1dded4777c0 .fl-photo-img, .fl-node-5e1dded4777c0 .fl-photo-content {
  2852. width: 120px;
  2853. }
  2854. @media(max-width: 768px) {
  2855. .fl-node-5e1dded4777c0 .fl-photo {
  2856. text-align: center;
  2857. }
  2858. }
  2859. .fl-node-5e1dded4777c0 > .fl-module-content {
  2860. margin-right:0px;
  2861. }
  2862.  
  2863. .fl-builder-content .fl-node-5e1dded4777c5 a.fl-button,
  2864. .fl-builder-content .fl-node-5e1dded4777c5 a.fl-button:hover,
  2865. .fl-builder-content .fl-node-5e1dded4777c5 a.fl-button:visited {
  2866. background: rgba(255,0,0,0);
  2867. }
  2868.  
  2869. .fl-builder-content .fl-node-5e1dded4777c5 a.fl-button:hover {
  2870. background-color: rgba(255,0,0,0);
  2871. }
  2872.  
  2873.  
  2874.  
  2875.  
  2876.  
  2877.  
  2878.  
  2879.  
  2880.  
  2881.  
  2882.  
  2883.  
  2884.  
  2885. .fl-node-5e1dded4777c5 .fl-button-wrap {
  2886. text-align: center;
  2887. }
  2888. .fl-builder-content .fl-node-5e1dded4777c5 .fl-button-wrap a.fl-button {
  2889. padding-top: 10px;
  2890. padding-right: 10px;
  2891. padding-bottom: 10px;
  2892. padding-left: 10px;
  2893. }
  2894. .fl-builder-content .fl-node-5e1dded4777c5 a.fl-button, .fl-builder-content .fl-node-5e1dded4777c5 a.fl-button:visited {
  2895. font-family: Poppins, sans-serif;
  2896. font-weight: 500;
  2897. border: 1px solid rgba(243,0,0,0);
  2898. border-top-left-radius: 10px;
  2899. border-top-right-radius: 10px;
  2900. border-bottom-left-radius: 10px;
  2901. border-bottom-right-radius: 10px;
  2902. }
  2903. .fl-builder-content .fl-node-5e1dded4777c5 a.fl-button:hover, .fl-builder-content .fl-node-5e1dded4777c5 a.fl-button:focus {
  2904. border: 1px solid rgba(243,0,0,0);
  2905. border-top-left-radius: 10px;
  2906. border-top-right-radius: 10px;
  2907. border-bottom-left-radius: 10px;
  2908. border-bottom-right-radius: 10px;
  2909. }
  2910. .fl-node-5e1dded4777c5 > .fl-module-content {
  2911. margin-top:25px;
  2912. margin-left:35px;
  2913. }
  2914. @media (max-width: 768px) { .fl-node-5e1dded4777c5 > .fl-module-content { margin-top:20px;margin-left:20px; } }.fl-menu ul,
  2915. .fl-menu li{
  2916. list-style: none;
  2917. margin: 0;
  2918. padding: 0;
  2919. }
  2920. .fl-menu .menu:before,
  2921. .fl-menu .menu:after{
  2922. content: '';
  2923. display: table;
  2924. clear: both;
  2925. }
  2926.  
  2927. /* Horizontal menus */
  2928. .fl-menu-horizontal {
  2929. display: inline-flex;
  2930. flex-wrap: wrap;
  2931. align-items: center;
  2932. }
  2933. .fl-menu li{
  2934. position: relative;
  2935. }
  2936. .fl-menu a{
  2937. display: block;
  2938. padding: 10px;
  2939. text-decoration: none;
  2940. }
  2941. .fl-menu a:hover{
  2942. text-decoration: none;
  2943. }
  2944. .fl-menu .sub-menu{
  2945. min-width: 220px;
  2946. }
  2947.  
  2948. /* Expanded menus */
  2949. .fl-module[data-node] .fl-menu .fl-menu-expanded .sub-menu {
  2950. background-color: transparent;
  2951. -webkit-box-shadow: none;
  2952. -ms-box-shadow: none;
  2953. box-shadow: none;
  2954. }
  2955.  
  2956. /* Submenus */
  2957. .fl-menu .fl-has-submenu:focus,
  2958. .fl-menu .fl-has-submenu .sub-menu:focus,
  2959. .fl-menu .fl-has-submenu-container:focus {
  2960. outline: 0;
  2961. }
  2962. .fl-menu .fl-has-submenu-container{ position: relative; }
  2963.  
  2964. /* Submenu - accordion, expanded */
  2965. .fl-menu .fl-menu-accordion .fl-has-submenu > .sub-menu{
  2966. display: none;
  2967. }
  2968. .fl-menu .fl-menu-accordion .fl-has-submenu.fl-active .hide-heading > .sub-menu {
  2969. box-shadow: none;
  2970. display: block !important;
  2971. }
  2972.  
  2973. /* Toggle - General */
  2974. .fl-menu .fl-menu-toggle{
  2975. position: absolute;
  2976. top: 50%;
  2977. right: 0;
  2978. cursor: pointer;
  2979. }
  2980. .fl-menu .fl-toggle-arrows .fl-menu-toggle:before,
  2981. .fl-menu .fl-toggle-none .fl-menu-toggle:before{
  2982. border-color: #333;
  2983. }
  2984. .fl-menu .fl-menu-expanded .fl-menu-toggle{
  2985. display: none;
  2986. }
  2987.  
  2988. /* Mobile menu - hamburger icon */
  2989. .fl-menu .fl-menu-mobile-toggle {
  2990. position: relative;
  2991. padding: 8px;
  2992. background-color: transparent;
  2993. border: none;
  2994. color: #333;
  2995. border-radius: 0;
  2996. }
  2997. .fl-menu .fl-menu-mobile-toggle.text{
  2998. width: 100%;
  2999. text-align: center;
  3000. }
  3001. .fl-menu .fl-menu-mobile-toggle.hamburger .fl-menu-mobile-toggle-label,
  3002. .fl-menu .fl-menu-mobile-toggle.hamburger-label .fl-menu-mobile-toggle-label{
  3003. display: inline-block;
  3004. margin-left: 10px;
  3005. vertical-align: middle;
  3006. }
  3007. .fl-menu .fl-menu-mobile-toggle.hamburger .svg-container,
  3008. .fl-menu .fl-menu-mobile-toggle.hamburger-label .svg-container{
  3009. display: inline-block;
  3010. position: relative;
  3011. width: 1.4em;
  3012. height: 1.4em;
  3013. vertical-align: middle;
  3014. }
  3015. .fl-menu .fl-menu-mobile-toggle.hamburger .hamburger-menu,
  3016. .fl-menu .fl-menu-mobile-toggle.hamburger-label .hamburger-menu{
  3017. position: absolute;
  3018. top: 0;
  3019. left: 0;
  3020. right: 0;
  3021. bottom: 0;
  3022. }
  3023. .fl-menu .fl-menu-mobile-toggle.hamburger .hamburger-menu rect,
  3024. .fl-menu .fl-menu-mobile-toggle.hamburger-label .hamburger-menu rect{
  3025. fill: currentColor;
  3026. }
  3027.  
  3028. /* Mega menu general */
  3029. li.mega-menu .hide-heading > a,
  3030. li.mega-menu .hide-heading > .fl-has-submenu-container,
  3031. li.mega-menu-disabled .hide-heading > a,
  3032. li.mega-menu-disabled .hide-heading > .fl-has-submenu-container {
  3033. display: none;
  3034. }
  3035.  
  3036. /* Mega menu for horizontal menus */
  3037. ul.fl-menu-horizontal li.mega-menu {
  3038. position: static;
  3039. }
  3040. ul.fl-menu-horizontal li.mega-menu > ul.sub-menu {
  3041. top: inherit !important;
  3042. left: 0 !important;
  3043. right: 0 !important;
  3044. width: 100%;
  3045. }
  3046. ul.fl-menu-horizontal li.mega-menu.fl-has-submenu:hover > ul.sub-menu,
  3047. ul.fl-menu-horizontal li.mega-menu.fl-has-submenu.focus > ul.sub-menu {
  3048. display: flex !important;
  3049. }
  3050. ul.fl-menu-horizontal li.mega-menu > ul.sub-menu li {
  3051. border-color: transparent;
  3052. }
  3053. ul.fl-menu-horizontal li.mega-menu > ul.sub-menu > li {
  3054. width: 100%;
  3055. }
  3056. ul.fl-menu-horizontal li.mega-menu > ul.sub-menu > li > .fl-has-submenu-container a {
  3057. font-weight: bold;
  3058. }
  3059. ul.fl-menu-horizontal li.mega-menu > ul.sub-menu > li > .fl-has-submenu-container a:hover {
  3060. background: transparent;
  3061. }
  3062. ul.fl-menu-horizontal li.mega-menu > ul.sub-menu .fl-menu-toggle {
  3063. display: none;
  3064. }
  3065. ul.fl-menu-horizontal li.mega-menu > ul.sub-menu ul.sub-menu {
  3066. background: transparent;
  3067. -webkit-box-shadow: none;
  3068. -ms-box-shadow: none;
  3069. box-shadow: none;
  3070. display: block;
  3071. min-width: 0;
  3072. opacity: 1;
  3073. padding: 0;
  3074. position: static;
  3075. visibility: visible;
  3076. }
  3077.  
  3078. /* Mobile menu - below row clone */
  3079. .fl-menu-mobile-clone {
  3080. clear: both;
  3081. }
  3082. .fl-menu-mobile-clone .fl-menu .menu {
  3083. float: none !important;
  3084. }
  3085.  
  3086. /* Mobile menu - Flyout */
  3087. .fl-menu-mobile-close {
  3088. display: none;
  3089. }
  3090. .fl-menu-mobile-close,
  3091. .fl-menu-mobile-close:hover,
  3092. .fl-menu-mobile-close:focus {
  3093. background: none;
  3094. border: 0 none;
  3095. color: inherit;
  3096. font-size: 18px;
  3097. padding: 10px 6px 10px 14px;
  3098. }
  3099.  
  3100. /* IE Fixes */
  3101. .fl-builder-ie-11 .fl-module-menu .fl-menu-horizontal .fl-has-submenu:hover > .sub-menu {
  3102. z-index: 60;
  3103. }
  3104. .fl-node-5e1dded4777c3 .fl-menu .menu {
  3105. }
  3106. .fl-node-5e1dded4777c3 .menu a{
  3107. padding-left: 14px;
  3108. padding-right: 14px;
  3109. padding-top: 14px;
  3110. padding-bottom: 14px;
  3111. }
  3112.  
  3113. .fl-builder-content .fl-node-5e1dded4777c3 .menu > li > a,
  3114. .fl-builder-content .fl-node-5e1dded4777c3 .menu > li > .fl-has-submenu-container > a,
  3115. .fl-builder-content .fl-node-5e1dded4777c3 .sub-menu > li > a,
  3116. .fl-builder-content .fl-node-5e1dded4777c3 .sub-menu > li > .fl-has-submenu-container > a{
  3117. color: #ffffff;
  3118. }
  3119.  
  3120. .fl-node-5e1dded4777c3 .fl-menu .fl-toggle-arrows .fl-menu-toggle:before,
  3121. .fl-node-5e1dded4777c3 .fl-menu .fl-toggle-none .fl-menu-toggle:before {
  3122. border-color: #ffffff;
  3123. }
  3124. .fl-node-5e1dded4777c3 .menu .fl-has-submenu .sub-menu{
  3125. display: none;
  3126. }
  3127. .fl-node-5e1dded4777c3 .fl-menu .sub-menu {
  3128. background-color: #ffffff;-webkit-box-shadow: 0 1px 20px rgba(0,0,0,0.1);-ms-box-shadow: 0 1px 20px rgba(0,0,0,0.1);box-shadow: 0 1px 20px rgba(0,0,0,0.1);}
  3129. .fl-node-5e1dded4777c3 .fl-menu-horizontal.fl-toggle-arrows .fl-has-submenu-container a{
  3130. padding-right: 28px;
  3131. }
  3132. .fl-node-5e1dded4777c3 .fl-menu-horizontal.fl-toggle-arrows .fl-menu-toggle,
  3133. .fl-node-5e1dded4777c3 .fl-menu-horizontal.fl-toggle-none .fl-menu-toggle{
  3134. width: 28px;
  3135. height: 28px;
  3136. margin: -14px 0 0;
  3137. }
  3138. .fl-node-5e1dded4777c3 .fl-menu-horizontal.fl-toggle-arrows .fl-menu-toggle,
  3139. .fl-node-5e1dded4777c3 .fl-menu-horizontal.fl-toggle-none .fl-menu-toggle,
  3140. .fl-node-5e1dded4777c3 .fl-menu-vertical.fl-toggle-arrows .fl-menu-toggle,
  3141. .fl-node-5e1dded4777c3 .fl-menu-vertical.fl-toggle-none .fl-menu-toggle{
  3142. width: 28px;
  3143. height: 28px;
  3144. margin: -14px 0 0;
  3145. }
  3146. .fl-node-5e1dded4777c3 .fl-menu li{
  3147. border-top: 1px solid transparent;
  3148. }
  3149. .fl-node-5e1dded4777c3 .fl-menu li:first-child{
  3150. border-top: none;
  3151. }
  3152. @media ( max-width: 768px ) {
  3153.  
  3154. .fl-node-5e1dded4777c3 .fl-menu ul.menu {
  3155. display: none;
  3156.  
  3157. float: none;
  3158. }
  3159. .fl-node-5e1dded4777c3 .fl-menu .sub-menu {
  3160. -webkit-box-shadow: none;
  3161. -ms-box-shadow: none;
  3162. box-shadow: none;
  3163. }
  3164. .fl-node-5e1dded4777c3 .mega-menu.fl-active .hide-heading > .sub-menu,
  3165. .fl-node-5e1dded4777c3 .mega-menu-disabled.fl-active .hide-heading > .sub-menu {
  3166. display: block !important;
  3167. }
  3168.  
  3169. .fl-node-5e1dded4777c3 .fl-menu-logo,
  3170. .fl-node-5e1dded4777c3 .fl-menu-search-item {
  3171. display: none;
  3172. }
  3173.  
  3174. }
  3175. @media ( min-width: 769px ) {
  3176.  
  3177. .fl-node-5e1dded4777c3 .fl-menu .menu > li{ display: inline-block; }
  3178.  
  3179. .fl-node-5e1dded4777c3 .menu li{
  3180. border-left: 1px solid transparent;
  3181. border-top: none;
  3182. }
  3183.  
  3184. .fl-node-5e1dded4777c3 .menu li:first-child{
  3185. border: none;
  3186. }
  3187. .fl-node-5e1dded4777c3 .menu li li{
  3188. border-top: 1px solid transparent;
  3189. border-left: none;
  3190. }
  3191.  
  3192. .fl-node-5e1dded4777c3 .menu .fl-has-submenu .sub-menu{
  3193. position: absolute;
  3194. top: 100%;
  3195. left: 0;
  3196. z-index: 10;
  3197. visibility: hidden;
  3198. opacity: 0;
  3199. text-align:left;
  3200. }
  3201.  
  3202. .fl-node-5e1dded4777c3 .fl-has-submenu .fl-has-submenu .sub-menu{
  3203. top: 0;
  3204. left: 100%;
  3205. }
  3206.  
  3207. .fl-node-5e1dded4777c3 .fl-menu .fl-has-submenu:hover > .sub-menu,
  3208. .fl-node-5e1dded4777c3 .fl-menu .fl-has-submenu.focus > .sub-menu{
  3209. display: block;
  3210. visibility: visible;
  3211. opacity: 1;
  3212. }
  3213.  
  3214. .fl-node-5e1dded4777c3 .menu .fl-has-submenu.fl-menu-submenu-right .sub-menu{
  3215. left: inherit;
  3216. right: 0;
  3217. }
  3218.  
  3219. .fl-node-5e1dded4777c3 .menu .fl-has-submenu .fl-has-submenu.fl-menu-submenu-right .sub-menu{
  3220. top: 0;
  3221. left: inherit;
  3222. right: 100%;
  3223. }
  3224.  
  3225. .fl-node-5e1dded4777c3 .fl-menu .fl-has-submenu.fl-active > .fl-has-submenu-container .fl-menu-toggle{
  3226. -webkit-transform: none;
  3227. -ms-transform: none;
  3228. transform: none;
  3229. }
  3230.  
  3231. .fl-node-5e1dded4777c3 .fl-menu .fl-menu-toggle{
  3232. display: none;
  3233. }
  3234. .fl-node-5e1dded4777c3 ul.sub-menu {
  3235. padding-top: 0px;
  3236. padding-right: 0px;
  3237. padding-bottom: 0px;
  3238. padding-left: 0px;
  3239. }
  3240.  
  3241. .fl-node-5e1dded4777c3 ul.sub-menu a {
  3242. }
  3243.  
  3244. .fl-node-5e1dded4777c3 .fl-menu-mobile-toggle{
  3245. display: none;
  3246. }
  3247. }
  3248.  
  3249. .fl-node-5e1dded4777c3 .fl-menu-mobile-toggle{
  3250. color: #ffffff; font-size: 16px;
  3251. text-transform: capitalize;
  3252. padding-left: 14px;
  3253. padding-right: 14px;
  3254. padding-top: 14px;
  3255. padding-bottom: 14px;
  3256. border-color: rgba( 0,0,0,0.1 );
  3257. }
  3258. .fl-node-5e1dded4777c3 .fl-menu-mobile-toggle rect{
  3259. fill: #ffffff; }
  3260. .fl-node-5e1dded4777c3 .fl-menu-mobile-toggle:hover,
  3261. .fl-node-5e1dded4777c3 .fl-menu-mobile-toggle.fl-active{
  3262. }
  3263.  
  3264. .fl-node-5e1dded4777c3 .fl-menu-mobile-toggle:hover rect,
  3265. .fl-node-5e1dded4777c3 .fl-menu-mobile-toggle.fl-active rect{
  3266. }
  3267. .fl-node-5e1dded4777c3 ul.fl-menu-horizontal li.mega-menu > ul.sub-menu > li > .fl-has-submenu-container a:hover {
  3268. color: #ffffff;
  3269. }
  3270. .fl-node-5e1dded4777c3 .fl-menu .menu, .fl-node-5e1dded4777c3 .fl-menu .menu > li {
  3271. font-family: Poppins, sans-serif;
  3272. font-weight: 500;
  3273. font-size: 14px;
  3274. text-transform: capitalize;
  3275. }
  3276. .fl-node-5e1dded4777c3 .fl-menu {
  3277. text-align: right;
  3278. }
  3279. .fl-node-5e1dded4777c3 .fl-menu .menu {
  3280. justify-content: right;
  3281. }
  3282. .fl-node-5e1dded4777c3 .fl-menu .menu .sub-menu > li {
  3283. font-size: 16px;
  3284. line-height: 1;
  3285. }
  3286. .fl-node-5e1dded4777c3 .fl-menu-mobile-toggle {
  3287. float: right;
  3288. }
  3289. @media(max-width: 1200px) {
  3290. .fl-node-5e1dded4777c3 .fl-menu-mobile-toggle {
  3291. float: none;
  3292. }
  3293. }
  3294. @media(max-width: 992px) {
  3295. .fl-node-5e1dded4777c3 .fl-menu {
  3296. text-align: center;
  3297. }
  3298. .fl-node-5e1dded4777c3 .fl-menu .menu {
  3299. justify-content: center;
  3300. }
  3301. .fl-node-5e1dded4777c3 .fl-menu-mobile-toggle {
  3302. float: none;
  3303. }
  3304. }
  3305. @media(max-width: 768px) {
  3306. .fl-node-5e1dded4777c3 .fl-menu {
  3307. text-align: center;
  3308. }
  3309. .fl-node-5e1dded4777c3 .fl-menu .menu {
  3310. justify-content: center;
  3311. }
  3312. .fl-node-5e1dded4777c3 .menu li.fl-has-submenu ul.sub-menu {
  3313. padding-left: 15px;
  3314. }
  3315. .fl-node-5e1dded4777c3 .fl-menu .sub-menu {
  3316. background-color: #000000;
  3317. }
  3318. .fl-node-5e1dded4777c3 .fl-menu-mobile-toggle {
  3319. float: none;
  3320. }
  3321. }
  3322. .fl-node-5e1dded4777c3 > .fl-module-content {
  3323. margin-top:25px;
  3324. }
  3325. @media ( max-width: 992px ) {
  3326. .fl-node-5e1dded4777c3.fl-module > .fl-module-content {
  3327. margin-right:0px;
  3328. margin-left:0px;
  3329. }
  3330. }
  3331. @media ( max-width: 768px ) {
  3332. .fl-node-5e1dded4777c3.fl-module > .fl-module-content {
  3333. margin-top:-10px;
  3334. margin-bottom:0px;
  3335. }
  3336. }
  3337. .fl-search-form {
  3338. position: relative;
  3339. }
  3340. .fl-search-form-wrap {
  3341. display: inline-flex;
  3342. max-width: 100%;
  3343. align-items: center;
  3344. position: relative;
  3345. }
  3346. .fl-search-form-fields {
  3347. flex-basis: 100%;
  3348. }
  3349. .fl-search-form .fl-form-field input,
  3350. .fl-search-form .fl-form-field input[type=search] {
  3351. height: auto;
  3352. width: 100%;
  3353. }
  3354.  
  3355. /* Selected Layouts */
  3356. .fl-search-button-expand .fl-search-form-fields,
  3357. .fl-search-form-inline .fl-search-form-fields {
  3358. align-items: center;
  3359. display: inline-flex;
  3360. flex-wrap: nowrap;
  3361. max-width: 100%;
  3362. }
  3363.  
  3364. /* Form layout */
  3365. .fl-search-form-width-full .fl-search-form-wrap {
  3366. width: 100%;
  3367. }
  3368.  
  3369. .fl-search-form-input-wrap {
  3370. position: relative;
  3371. }
  3372.  
  3373. /* Input field */
  3374. .fl-search-form .fl-form-field {
  3375. display: flex;
  3376. align-items: center;
  3377. }
  3378. .fl-search-form-input .fl-form-field,
  3379. .fl-search-form-button .fl-form-field,
  3380. .fl-search-form-inline .fl-form-field,
  3381. .mfp-container .fl-form-field {
  3382. margin: 0;
  3383. }
  3384.  
  3385. /* Inline Layout */
  3386. .fl-search-form-inline .fl-search-form-input-wrap {
  3387. width: 100%;
  3388. }
  3389. .fl-search-form-inline .fl-form-field {
  3390. padding-right: 10px;
  3391. }
  3392.  
  3393. /* Button Layout - General */
  3394. .fl-search-button-center .fl-search-form-fields {
  3395. justify-content: center;
  3396. }
  3397. .fl-search-button-left .fl-search-form-fields {
  3398. justify-content: flex-start;
  3399. }
  3400. .fl-search-button-right .fl-search-form-fields {
  3401. justify-content: flex-end;
  3402. }
  3403. .fl-search-button-expand .fl-button-wrap,
  3404. .fl-search-form-inline .fl-button-wrap {
  3405. flex: 0 0 auto;
  3406. }
  3407.  
  3408. /* Button layout - Expand */
  3409. .fl-search-button-expand .fl-search-form-fields {
  3410. align-items: center;
  3411. display: inline-flex;
  3412. flex-wrap: nowrap;
  3413. max-width: 100%;
  3414. -webkit-transition: all .4s;
  3415. -moz-transition: all .4s;
  3416. transition: all .4s;
  3417. }
  3418. .fl-search-button-expand .fl-search-form-input-wrap {
  3419. -webkit-transition: all .4s;
  3420. -moz-transition: all .4s;
  3421. transition: all .4s;
  3422. overflow: hidden;
  3423. }
  3424. .fl-search-button-expand .fl-search-form-input-wrap {
  3425. width: 0;
  3426. }
  3427. .fl-search-expanded .fl-search-form-input-wrap {
  3428. width: 100%;
  3429. }
  3430. .fl-search-button-expand-right .fl-search-form-fields {
  3431. flex-direction: row-reverse;
  3432. }
  3433. .fl-search-button-expand-right.fl-search-button-right .fl-search-form-fields {
  3434. justify-content: flex-start;
  3435. }
  3436. .fl-search-button-expand-right.fl-search-button-left .fl-search-form-fields {
  3437. justify-content: flex-end;
  3438. }
  3439. .fl-search-button-expand .fl-button {
  3440. outline: none;
  3441. }
  3442. .fl-search-button-expand-right .fl-form-field {
  3443. margin-left: 10px;
  3444. }
  3445. .fl-search-button-expand-left .fl-form-field {
  3446. margin-right: 10px;
  3447. }
  3448. .fl-search-button-expand.fl-search-button-center .fl-form-field {
  3449. justify-content: center;
  3450. }
  3451. .fl-search-button-expand.fl-search-button-left .fl-form-field {
  3452. justify-content: flex-start;
  3453. }
  3454. .fl-search-button-expand.fl-search-button-right .fl-form-field {
  3455. justify-content: flex-end;
  3456. }
  3457.  
  3458. /* Button layout - Fullscreen */
  3459. .fl-search-button-fullscreen.fl-search-button-center .fl-search-form-wrap {
  3460. justify-content: center;
  3461. }
  3462. .fl-search-button-fullscreen.fl-search-button-left .fl-search-form-wrap {
  3463. justify-content: flex-start;
  3464. }
  3465. .fl-search-button-fullscreen.fl-search-button-right .fl-search-form-wrap {
  3466. justify-content: flex-end;
  3467. }
  3468. .fl-search-button-fullscreen .fl-search-form-fields {
  3469. display: contents;
  3470. }
  3471. .fl-search-button-fullscreen .fl-search-form-input-wrap {
  3472. display: none;
  3473. }
  3474. .mfp-container .fl-search-form-input-wrap {
  3475. box-sizing: border-box;
  3476. margin: 0 auto;
  3477. }
  3478.  
  3479. /* Button Layout - Reveal */
  3480.  
  3481. /* Stacked Layout */
  3482. .fl-search-form-stacked .fl-search-results-content.fl-search-open {
  3483. margin-top: -12px;
  3484. }
  3485.  
  3486. /* Search Results - Ajax */
  3487. .fl-search-results-content {
  3488. visibility: hidden;
  3489. opacity: 0;
  3490.    -moz-transition: max-height 0.5s cubic-bezier(0, 1, 0, 1);
  3491.    -o-transition: max-height 0.5s cubic-bezier(0, 1, 0, 1);
  3492.    -webkit-transition: max-height 0.5s cubic-bezier(0, 1, 0, 1);
  3493.    transition: max-height 0.5s cubic-bezier(0, 1, 0, 1);
  3494. -webkit-box-shadow: 0px 2px 4px -2px rgba(0,0,0,0.40);
  3495. -moz-box-shadow: 0px 2px 4px -2px rgba(0,0,0,0.40);
  3496. box-shadow: 0px 2px 4px -2px rgba(0,0,0,0.40);
  3497. border-radius: 4px;
  3498. border: 1px solid #e6e6e6;
  3499. overflow-y: auto;
  3500. background: #fff;
  3501. text-align: left;
  3502. position: absolute;
  3503. max-height: 0;
  3504. width: calc(100% - 10px);
  3505. z-index: 1100;
  3506. }
  3507. .fl-search-results-content.fl-search-open {
  3508. max-height: 400px;
  3509. height: auto;
  3510. visibility: visible;
  3511. opacity: 1;
  3512. padding: 15px;
  3513. margin: 5px 0;
  3514. }
  3515. .fl-search-form-center.fl-search-form-width-custom .fl-search-results-content {
  3516. left: 50%;
  3517. -webkit-transform: translateX(-50%);
  3518. transform: translateX(-50%)
  3519. }
  3520. .fl-search-form-left .fl-search-results-content {
  3521. left: 0;
  3522. }
  3523. .fl-search-form-right .fl-search-results-content {
  3524. right: 0;
  3525. }
  3526. .fl-search-post-item {
  3527. border-bottom: 1px solid #e6e6e6;
  3528. overflow: hidden;
  3529. padding: 10px 0;
  3530. cursor: pointer;
  3531. }
  3532. .fl-search-post-item:last-child {
  3533. border-bottom: 0 none;
  3534. }
  3535. .fl-search-post-image {
  3536. float: left;
  3537. position: relative;
  3538. margin-right: 10px;
  3539. width: 60px;
  3540. }
  3541. .fl-search-post-image img {
  3542. height: auto !important;
  3543. width: 100% !important;
  3544. }
  3545. .fl-search-post-title {
  3546. font-size: 15px;
  3547. }
  3548.  
  3549. /* Search Loader */
  3550. .fl-search-loader-wrap {
  3551. display: none;
  3552. line-height: 16px;
  3553. position: relative;
  3554. height: 30px;
  3555. }
  3556. .fl-search-loader {
  3557. animation: fl-spin 2s linear infinite;
  3558. z-index: 2;
  3559. position: absolute;
  3560. padding: 2px;
  3561. right: 10px;
  3562. top: 0;
  3563. width: 30px;
  3564. height: 30px;
  3565. }
  3566. .fl-search-loader .path {
  3567. stroke: hsla(210, 77%, 75%, 1);
  3568.    stroke-linecap: round;
  3569.    animation: fl-dash 1.5s ease-in-out infinite;
  3570. }
  3571. @keyframes fl-spin {
  3572.  100% {
  3573.    transform: rotate(360deg);
  3574.  }
  3575. }
  3576. @keyframes fl-dash {
  3577.  0% {
  3578.    stroke-dasharray: 1, 150;
  3579.    stroke-dashoffset: 0;
  3580.  }
  3581.  50% {
  3582.    stroke-dasharray: 90, 150;
  3583.    stroke-dashoffset: -35;
  3584.  }
  3585.  100% {
  3586.    stroke-dasharray: 90, 150;
  3587.    stroke-dashoffset: -124;
  3588.  }
  3589. }
  3590.  
  3591. .fl-builder-content .fl-node-fztodbh1yg30 a.fl-button,
  3592. .fl-builder-content .fl-node-fztodbh1yg30 a.fl-button:hover,
  3593. .fl-builder-content .fl-node-fztodbh1yg30 a.fl-button:visited {
  3594. background: rgba(41,166,221,0);
  3595. }
  3596.  
  3597. .fl-builder-content .fl-node-fztodbh1yg30 a.fl-button:hover {
  3598. background-color: rgba(41,166,221,0);
  3599. }
  3600.  
  3601.  
  3602.  
  3603.  
  3604.  
  3605.  
  3606.  
  3607.  
  3608.  
  3609.  
  3610.  
  3611.  
  3612. .fl-builder-content .fl-node-fztodbh1yg30 .fl-button i.fl-button-icon-before {
  3613. margin-right: 0;
  3614. }
  3615. .fl-node-fztodbh1yg30 .fl-search-form-wrap {
  3616. font-size: 16px;
  3617. padding: 10px;
  3618. width: 900px;
  3619. min-height: 0px;
  3620. padding-top: 0px;
  3621. padding-right: 0px;
  3622. padding-bottom: 0px;
  3623. padding-left: 0px;
  3624. }
  3625. .fl-node-fztodbh1yg30 .fl-search-form {
  3626. text-align: center;
  3627. }
  3628. .fl-node-fztodbh1yg30 .fl-form-field input[type=search] {
  3629. border-radius: 4px;
  3630. font-size: 16px;
  3631. line-height: 16px;
  3632. padding: 12px 24px;
  3633. background-color: #ffffff;
  3634. padding-top: 12px;
  3635. padding-right: 12px;
  3636. padding-bottom: 12px;
  3637. padding-left: 12px;
  3638. }
  3639. .fl-node-fztodbh1yg30 .fl-form-field input[type=search],.fl-node-fztodbh1yg30 .fl-form-field input[type=search]::placeholder {
  3640. color: #000000;
  3641. }
  3642. .fl-node-fztodbh1yg30 .fl-button-wrap {
  3643. text-align: center;
  3644. }
  3645. .fl-builder-content .fl-node-fztodbh1yg30 .fl-button-wrap a.fl-button {
  3646. padding-right: 0px;
  3647. padding-left: 0px;
  3648. }
  3649. .fl-builder-content .fl-node-fztodbh1yg30 a.fl-button, .fl-builder-content .fl-node-fztodbh1yg30 a.fl-button:visited {
  3650. border: 1px solid rgba(29,154,209,0);
  3651. }
  3652. .fl-builder-content .fl-node-fztodbh1yg30 a.fl-button:hover, .fl-builder-content .fl-node-fztodbh1yg30 a.fl-button:focus {
  3653. border: 1px solid rgba(29,154,209,0);
  3654. }
  3655. .fl-node-fztodbh1yg30 .mfp-container .fl-search-form-input-wrap {
  3656. width: 600px;
  3657. margin: 74px auto;
  3658. }
  3659. .mfp-bg.fl-node-fztodbh1yg30 {
  3660. background-color: rgba(7,0,0,0.31);
  3661. opacity: 1;
  3662. filter: none;
  3663. }
  3664. .mfp-wrap.fl-node-fztodbh1yg30 button.mfp-close {
  3665. background-color: #595454 !important;
  3666. border-radius: 50%;
  3667. top: 33px !important;
  3668. right: 33px;
  3669. height: 32px;
  3670. width: 32px;
  3671. line-height: 33px;
  3672. }
  3673. .mfp-wrap.fl-node-fztodbh1yg30 button.mfp-close:hover {
  3674. top: 33px !important;
  3675. }
  3676. .fl-node-fztodbh1yg30 .fl-button-icon:before {
  3677. color: #29A6DD;
  3678. }
  3679. .fl-node-fztodbh1yg30 .fl-button:hover .fl-button-icon:before {
  3680. color: #29A6DD;
  3681. }
  3682. .fl-node-fztodbh1yg30 > .fl-module-content {
  3683. margin-top:25px;
  3684. margin-right:0px;
  3685. margin-left:0px;
  3686. }
  3687. @media ( max-width: 768px ) {
  3688. .fl-node-fztodbh1yg30.fl-module > .fl-module-content {
  3689. margin-top:0px;
  3690. margin-right:0px;
  3691. margin-bottom:-5px;
  3692. }
  3693. }
  3694. .fl-module-heading .fl-heading {
  3695. padding: 0 !important;
  3696. margin: 0 !important;
  3697. }.fl-row .fl-col .fl-node-80j4d7fwpauz h1.fl-heading a,
  3698. .fl-row .fl-col .fl-node-80j4d7fwpauz h1.fl-heading .fl-heading-text,
  3699. .fl-row .fl-col .fl-node-80j4d7fwpauz h1.fl-heading .fl-heading-text *,
  3700. .fl-node-80j4d7fwpauz h1.fl-heading .fl-heading-text {
  3701. color: #ffffff;
  3702. }
  3703. .fl-node-80j4d7fwpauz.fl-module-heading .fl-heading {
  3704. font-family: Helvetica, Verdana, Arial, sans-serif;
  3705. font-weight: 700;
  3706. font-size: 44px;
  3707. line-height: 1.4em;
  3708. letter-spacing: 1.1px;
  3709. text-align: left;
  3710. }
  3711. @media(max-width: 992px) {
  3712. .fl-node-80j4d7fwpauz.fl-module-heading .fl-heading {
  3713. font-size: 36px;
  3714. }
  3715. }
  3716. @media(max-width: 768px) {
  3717. .fl-node-80j4d7fwpauz.fl-module-heading .fl-heading {
  3718. font-size: 26px;
  3719. text-align: center;
  3720. }
  3721. }
  3722. .fl-node-80j4d7fwpauz > .fl-module-content {
  3723. margin-top:0px;
  3724. }
  3725. @media ( max-width: 768px ) {
  3726. .fl-node-80j4d7fwpauz.fl-module > .fl-module-content {
  3727. margin-top:250px;
  3728. margin-right:0px;
  3729. }
  3730. }
  3731. .fl-node-bklhvfwum1it .fl-separator {
  3732. border-top-width: 4px;
  3733. border-top-style: solid;
  3734. border-top-color: #ffffff;
  3735. max-width: 40%;
  3736. margin: 0 0 0 0;
  3737. }
  3738.  
  3739. .fl-node-bklhvfwum1it > .fl-module-content {
  3740. margin-top:0px;
  3741. margin-bottom:30px;
  3742. }
  3743. @media (max-width: 768px) { .fl-node-bklhvfwum1it > .fl-module-content { margin-bottom:20px; } }.fl-node-1gteqw09b6kp .fl-separator {
  3744. border-top-width: 4px;
  3745. border-top-style: solid;
  3746. border-top-color: #ffffff;
  3747. max-width: 40%;
  3748. margin: auto;
  3749. }
  3750.  
  3751. .fl-node-1gteqw09b6kp > .fl-module-content {
  3752. margin-top:0px;
  3753. margin-bottom:30px;
  3754. }
  3755. @media (max-width: 768px) { .fl-node-1gteqw09b6kp > .fl-module-content { margin-bottom:20px; } }.fl-row .fl-col .fl-node-rtmkub3cgd8z h3.fl-heading a,
  3756. .fl-row .fl-col .fl-node-rtmkub3cgd8z h3.fl-heading .fl-heading-text,
  3757. .fl-row .fl-col .fl-node-rtmkub3cgd8z h3.fl-heading .fl-heading-text *,
  3758. .fl-node-rtmkub3cgd8z h3.fl-heading .fl-heading-text {
  3759. color: #ffffff;
  3760. }
  3761. .fl-node-rtmkub3cgd8z.fl-module-heading .fl-heading {
  3762. font-family: Helvetica, Verdana, Arial, sans-serif;
  3763. font-weight: 400;
  3764. font-size: 26px;
  3765. line-height: 1.4em;
  3766. letter-spacing: 1.1px;
  3767. text-align: left;
  3768. text-transform: capitalize;
  3769. }
  3770. @media(max-width: 992px) {
  3771. .fl-node-rtmkub3cgd8z.fl-module-heading .fl-heading {
  3772. font-size: 22px;
  3773. }
  3774. }
  3775. @media(max-width: 768px) {
  3776. .fl-node-rtmkub3cgd8z.fl-module-heading .fl-heading {
  3777. font-size: 18px;
  3778. text-align: center;
  3779. }
  3780. }
  3781. .fl-node-rtmkub3cgd8z > .fl-module-content {
  3782. margin-top:0px;
  3783. margin-bottom:30px;
  3784. }
  3785. @media (max-width: 768px) { .fl-node-rtmkub3cgd8z > .fl-module-content { margin-bottom:20px; } }
  3786. .fl-builder-content .fl-node-54ano3ic97l1 a.fl-button,
  3787. .fl-builder-content .fl-node-54ano3ic97l1 a.fl-button:hover,
  3788. .fl-builder-content .fl-node-54ano3ic97l1 a.fl-button:visited {
  3789. background: #f31717;
  3790. }
  3791.  
  3792. .fl-builder-content .fl-node-54ano3ic97l1 a.fl-button:hover {
  3793. background-color: #f31717;
  3794. }
  3795.  
  3796.  
  3797.  
  3798.  
  3799.  
  3800.  
  3801.  
  3802.  
  3803.  
  3804.  
  3805.  
  3806.  
  3807.  
  3808. .fl-node-54ano3ic97l1 .fl-button-wrap {
  3809. text-align: left;
  3810. }
  3811. .fl-builder-content .fl-node-54ano3ic97l1 .fl-button-wrap a.fl-button {
  3812. padding-top: 15px;
  3813. padding-right: 50px;
  3814. padding-bottom: 15px;
  3815. padding-left: 50px;
  3816. }
  3817. .fl-builder-content .fl-node-54ano3ic97l1 a.fl-button, .fl-builder-content .fl-node-54ano3ic97l1 a.fl-button:visited {
  3818. font-family: Poppins, sans-serif;
  3819. font-weight: 500;
  3820. font-size: 18px;
  3821. letter-spacing: 1.1px;
  3822. border: 1px solid #e70b0b;
  3823. border-top-left-radius: 10px;
  3824. border-top-right-radius: 10px;
  3825. border-bottom-left-radius: 10px;
  3826. border-bottom-right-radius: 10px;
  3827. }
  3828. .fl-builder-content .fl-node-54ano3ic97l1 a.fl-button:hover, .fl-builder-content .fl-node-54ano3ic97l1 a.fl-button:focus {
  3829. border: 1px solid #e70b0b;
  3830. border-top-left-radius: 10px;
  3831. border-top-right-radius: 10px;
  3832. border-bottom-left-radius: 10px;
  3833. border-bottom-right-radius: 10px;
  3834. }
  3835. @media(max-width: 768px) {
  3836. .fl-node-54ano3ic97l1 .fl-button-wrap {
  3837. text-align: center;
  3838. }
  3839. .fl-builder-content .fl-node-54ano3ic97l1 .fl-button-wrap a.fl-button {
  3840. padding-top: 15px;
  3841. padding-right: 15px;
  3842. padding-bottom: 15px;
  3843. padding-left: 15px;
  3844. }
  3845. .fl-builder-content .fl-node-54ano3ic97l1 a.fl-button, .fl-builder-content .fl-node-54ano3ic97l1 a.fl-button:visited {
  3846. font-size: 16px;
  3847. }
  3848. }
  3849. .fl-node-54ano3ic97l1 > .fl-module-content {
  3850. margin-top:5px;
  3851. margin-bottom:10px;
  3852. margin-left:20px;
  3853. }
  3854. @media ( max-width: 768px ) {
  3855. .fl-node-54ano3ic97l1.fl-module > .fl-module-content {
  3856. margin-bottom:40px;
  3857. }
  3858. }
  3859. .fl-row .fl-col .fl-node-uqjk9slr5xgy h4.fl-heading a,
  3860. .fl-row .fl-col .fl-node-uqjk9slr5xgy h4.fl-heading .fl-heading-text,
  3861. .fl-row .fl-col .fl-node-uqjk9slr5xgy h4.fl-heading .fl-heading-text *,
  3862. .fl-node-uqjk9slr5xgy h4.fl-heading .fl-heading-text {
  3863. color: #000000;
  3864. }
  3865. .fl-node-uqjk9slr5xgy.fl-module-heading .fl-heading {
  3866. font-family: Poppins, sans-serif;
  3867. font-weight: 400;
  3868. font-size: 22px;
  3869. letter-spacing: 1.1px;
  3870. text-align: center;
  3871. }
  3872. @media(max-width: 992px) {
  3873. .fl-node-uqjk9slr5xgy.fl-module-heading .fl-heading {
  3874. font-size: 20px;
  3875. }
  3876. }
  3877. @media(max-width: 768px) {
  3878. .fl-node-uqjk9slr5xgy.fl-module-heading .fl-heading {
  3879. font-size: 15px;
  3880. }
  3881. }
  3882. .fl-row .fl-col .fl-node-4p3yimqwfk6o h3.fl-heading a,
  3883. .fl-row .fl-col .fl-node-4p3yimqwfk6o h3.fl-heading .fl-heading-text,
  3884. .fl-row .fl-col .fl-node-4p3yimqwfk6o h3.fl-heading .fl-heading-text *,
  3885. .fl-node-4p3yimqwfk6o h3.fl-heading .fl-heading-text {
  3886. color: #000000;
  3887. }
  3888. .fl-node-4p3yimqwfk6o.fl-module-heading .fl-heading {
  3889. font-family: Poppins, sans-serif;
  3890. font-weight: 400;
  3891. font-size: 22px;
  3892. letter-spacing: 1.1px;
  3893. text-align: center;
  3894. }
  3895. @media(max-width: 992px) {
  3896. .fl-node-4p3yimqwfk6o.fl-module-heading .fl-heading {
  3897. font-size: 20px;
  3898. }
  3899. }
  3900. @media(max-width: 768px) {
  3901. .fl-node-4p3yimqwfk6o.fl-module-heading .fl-heading {
  3902. font-size: 15px;
  3903. }
  3904. }
  3905. .fl-node-4p3yimqwfk6o > .fl-module-content {
  3906. margin-top:0px;
  3907. }
  3908. .fl-node-6xr4g25e3dfn .fl-photo {
  3909. text-align: center;
  3910. }
  3911. .fl-node-6xr4g25e3dfn .fl-photo-img {
  3912. border-top-left-radius: 20px;
  3913. border-top-right-radius: 20px;
  3914. border-bottom-left-radius: 20px;
  3915. border-bottom-right-radius: 20px;
  3916. box-shadow: 2px 2px 10px 2px rgba(0,0,0,0.2);
  3917. }
  3918. .fl-node-6xr4g25e3dfn > .fl-module-content {
  3919. margin-top:20px;
  3920. margin-bottom:40px;
  3921. }
  3922. @media (max-width: 768px) { .fl-node-6xr4g25e3dfn > .fl-module-content { margin-bottom:20px; } }.fl-row .fl-col .fl-node-lr8s9031coz2 h4.fl-heading a,
  3923. .fl-row .fl-col .fl-node-lr8s9031coz2 h4.fl-heading .fl-heading-text,
  3924. .fl-row .fl-col .fl-node-lr8s9031coz2 h4.fl-heading .fl-heading-text *,
  3925. .fl-node-lr8s9031coz2 h4.fl-heading .fl-heading-text {
  3926. color: #000000;
  3927. }
  3928. .fl-node-lr8s9031coz2.fl-module-heading .fl-heading {
  3929. font-family: Poppins, sans-serif;
  3930. font-weight: 400;
  3931. font-size: 22px;
  3932. letter-spacing: 1.1px;
  3933. text-align: center;
  3934. }
  3935. @media(max-width: 992px) {
  3936. .fl-node-lr8s9031coz2.fl-module-heading .fl-heading {
  3937. font-size: 20px;
  3938. }
  3939. }
  3940. @media(max-width: 768px) {
  3941. .fl-node-lr8s9031coz2.fl-module-heading .fl-heading {
  3942. font-size: 15px;
  3943. }
  3944. }
  3945. .fl-node-lr8s9031coz2 > .fl-module-content {
  3946. margin-top:0px;
  3947. }
  3948. @media ( max-width: 992px ) {
  3949. .fl-node-lr8s9031coz2.fl-module > .fl-module-content {
  3950. margin-bottom:80px;
  3951. }
  3952. }
  3953. @media ( max-width: 768px ) {
  3954. .fl-node-lr8s9031coz2.fl-module > .fl-module-content {
  3955. margin-bottom:60px;
  3956. }
  3957. }
  3958. .fl-row .fl-col .fl-node-syzion47k9l6 h2.fl-heading a,
  3959. .fl-row .fl-col .fl-node-syzion47k9l6 h2.fl-heading .fl-heading-text,
  3960. .fl-row .fl-col .fl-node-syzion47k9l6 h2.fl-heading .fl-heading-text *,
  3961. .fl-node-syzion47k9l6 h2.fl-heading .fl-heading-text {
  3962. color: #ffffff;
  3963. }
  3964. .fl-node-syzion47k9l6.fl-module-heading .fl-heading {
  3965. font-family: Poppins, sans-serif;
  3966. font-weight: 500;
  3967. font-size: 40px;
  3968. line-height: 1.1;
  3969. letter-spacing: 1.1px;
  3970. text-align: left;
  3971. }
  3972. @media(max-width: 992px) {
  3973. .fl-node-syzion47k9l6.fl-module-heading .fl-heading {
  3974. font-size: 30px;
  3975. }
  3976. }
  3977. @media(max-width: 768px) {
  3978. .fl-node-syzion47k9l6.fl-module-heading .fl-heading {
  3979. font-size: 24px;
  3980. text-align: center;
  3981. }
  3982. }
  3983. .fl-node-syzion47k9l6 > .fl-module-content {
  3984. margin-top:20px;
  3985. }
  3986. .fl-row .fl-col .fl-node-gymbq9ljdhs8 h3.fl-heading a,
  3987. .fl-row .fl-col .fl-node-gymbq9ljdhs8 h3.fl-heading .fl-heading-text,
  3988. .fl-row .fl-col .fl-node-gymbq9ljdhs8 h3.fl-heading .fl-heading-text *,
  3989. .fl-node-gymbq9ljdhs8 h3.fl-heading .fl-heading-text {
  3990. color: #ffffff;
  3991. }
  3992. .fl-node-gymbq9ljdhs8.fl-module-heading .fl-heading {
  3993. font-family: Helvetica, Verdana, Arial, sans-serif;
  3994. font-weight: 400;
  3995. font-size: 26px;
  3996. line-height: 1.4em;
  3997. letter-spacing: 1.1px;
  3998. text-align: left;
  3999. }
  4000. @media(max-width: 992px) {
  4001. .fl-node-gymbq9ljdhs8.fl-module-heading .fl-heading {
  4002. font-size: 22px;
  4003. }
  4004. }
  4005. @media(max-width: 768px) {
  4006. .fl-node-gymbq9ljdhs8.fl-module-heading .fl-heading {
  4007. font-size: 22px;
  4008. text-align: left;
  4009. }
  4010. }
  4011. .fl-node-gymbq9ljdhs8 > .fl-module-content {
  4012. margin-top:20px;
  4013. margin-bottom:0px;
  4014. }
  4015. @media ( max-width: 768px ) {
  4016. .fl-node-gymbq9ljdhs8.fl-module > .fl-module-content {
  4017. margin-bottom:10px;
  4018. }
  4019. }
  4020. .fl-row .fl-col .fl-node-pqz63be1gw7l h5.fl-heading a,
  4021. .fl-row .fl-col .fl-node-pqz63be1gw7l h5.fl-heading .fl-heading-text,
  4022. .fl-row .fl-col .fl-node-pqz63be1gw7l h5.fl-heading .fl-heading-text *,
  4023. .fl-node-pqz63be1gw7l h5.fl-heading .fl-heading-text {
  4024. color: #ffffff;
  4025. }
  4026. .fl-node-pqz63be1gw7l.fl-module-heading .fl-heading {
  4027. font-family: Poppins, sans-serif;
  4028. font-weight: 400;
  4029. font-size: 18px;
  4030. letter-spacing: 1.1px;
  4031. text-align: left;
  4032. }
  4033. @media(max-width: 992px) {
  4034. .fl-node-pqz63be1gw7l.fl-module-heading .fl-heading {
  4035. font-size: 16px;
  4036. }
  4037. }
  4038. @media(max-width: 768px) {
  4039. .fl-node-pqz63be1gw7l.fl-module-heading .fl-heading {
  4040. font-size: 16px;
  4041. }
  4042. }
  4043. .fl-node-pqz63be1gw7l > .fl-module-content {
  4044. margin-top:5px;
  4045. }
  4046. .fl-row .fl-col .fl-node-8mwc64bk01np h3.fl-heading a,
  4047. .fl-row .fl-col .fl-node-8mwc64bk01np h3.fl-heading .fl-heading-text,
  4048. .fl-row .fl-col .fl-node-8mwc64bk01np h3.fl-heading .fl-heading-text *,
  4049. .fl-node-8mwc64bk01np h3.fl-heading .fl-heading-text {
  4050. color: #ffffff;
  4051. }
  4052. .fl-node-8mwc64bk01np.fl-module-heading .fl-heading {
  4053. font-family: Helvetica, Verdana, Arial, sans-serif;
  4054. font-weight: 400;
  4055. font-size: 26px;
  4056. line-height: 1.4em;
  4057. letter-spacing: 1.1px;
  4058. text-align: left;
  4059. text-transform: capitalize;
  4060. }
  4061. @media(max-width: 992px) {
  4062. .fl-node-8mwc64bk01np.fl-module-heading .fl-heading {
  4063. font-size: 22px;
  4064. }
  4065. }
  4066. @media(max-width: 768px) {
  4067. .fl-node-8mwc64bk01np.fl-module-heading .fl-heading {
  4068. font-size: 20px;
  4069. text-align: left;
  4070. }
  4071. }
  4072. .fl-node-8mwc64bk01np > .fl-module-content {
  4073. margin-top:10px;
  4074. margin-bottom:0px;
  4075. }
  4076. @media ( max-width: 768px ) {
  4077. .fl-node-8mwc64bk01np.fl-module > .fl-module-content {
  4078. margin-bottom:10px;
  4079. }
  4080. }
  4081. .fl-row .fl-col .fl-node-tab68p7ef2mj h5.fl-heading a,
  4082. .fl-row .fl-col .fl-node-tab68p7ef2mj h5.fl-heading .fl-heading-text,
  4083. .fl-row .fl-col .fl-node-tab68p7ef2mj h5.fl-heading .fl-heading-text *,
  4084. .fl-node-tab68p7ef2mj h5.fl-heading .fl-heading-text {
  4085. color: #ffffff;
  4086. }
  4087. .fl-node-tab68p7ef2mj.fl-module-heading .fl-heading {
  4088. font-family: Poppins, sans-serif;
  4089. font-weight: 400;
  4090. font-size: 18px;
  4091. letter-spacing: 1.1px;
  4092. text-align: left;
  4093. }
  4094. @media(max-width: 992px) {
  4095. .fl-node-tab68p7ef2mj.fl-module-heading .fl-heading {
  4096. font-size: 16px;
  4097. }
  4098. }
  4099. @media(max-width: 768px) {
  4100. .fl-node-tab68p7ef2mj.fl-module-heading .fl-heading {
  4101. font-size: 16px;
  4102. }
  4103. }
  4104. .fl-node-tab68p7ef2mj > .fl-module-content {
  4105. margin-top:5px;
  4106. margin-bottom:10px;
  4107. }
  4108.  
  4109. .fl-builder-content .fl-node-if3np64lhas1 a.fl-button,
  4110. .fl-builder-content .fl-node-if3np64lhas1 a.fl-button:hover,
  4111. .fl-builder-content .fl-node-if3np64lhas1 a.fl-button:visited {
  4112. background: #f31717;
  4113. }
  4114.  
  4115. .fl-builder-content .fl-node-if3np64lhas1 a.fl-button:hover {
  4116. background-color: #f31717;
  4117. }
  4118.  
  4119.  
  4120.  
  4121.  
  4122.  
  4123.  
  4124.  
  4125.  
  4126.  
  4127.  
  4128.  
  4129.  
  4130.  
  4131. .fl-node-if3np64lhas1 .fl-button-wrap {
  4132. text-align: left;
  4133. }
  4134. .fl-builder-content .fl-node-if3np64lhas1 .fl-button-wrap a.fl-button {
  4135. padding-top: 15px;
  4136. padding-bottom: 15px;
  4137. }
  4138. .fl-builder-content .fl-node-if3np64lhas1 a.fl-button, .fl-builder-content .fl-node-if3np64lhas1 a.fl-button:visited {
  4139. font-family: Poppins, sans-serif;
  4140. font-weight: 500;
  4141. font-size: 18px;
  4142. letter-spacing: 1.1px;
  4143. border: 1px solid #e70b0b;
  4144. border-top-left-radius: 10px;
  4145. border-top-right-radius: 10px;
  4146. border-bottom-left-radius: 10px;
  4147. border-bottom-right-radius: 10px;
  4148. }
  4149. .fl-builder-content .fl-node-if3np64lhas1 a.fl-button:hover, .fl-builder-content .fl-node-if3np64lhas1 a.fl-button:focus {
  4150. border: 1px solid #e70b0b;
  4151. border-top-left-radius: 10px;
  4152. border-top-right-radius: 10px;
  4153. border-bottom-left-radius: 10px;
  4154. border-bottom-right-radius: 10px;
  4155. }
  4156. @media(max-width: 768px) {
  4157. .fl-node-if3np64lhas1 .fl-button-wrap {
  4158. text-align: center;
  4159. }
  4160. .fl-builder-content .fl-node-if3np64lhas1 .fl-button-wrap a.fl-button {
  4161. padding-top: 15px;
  4162. padding-right: 15px;
  4163. padding-bottom: 15px;
  4164. padding-left: 15px;
  4165. }
  4166. .fl-builder-content .fl-node-if3np64lhas1 a.fl-button, .fl-builder-content .fl-node-if3np64lhas1 a.fl-button:visited {
  4167. font-size: 16px;
  4168. }
  4169. }
  4170. .fl-node-if3np64lhas1 > .fl-module-content {
  4171. margin-bottom:10px;
  4172. }
  4173. .fl-row .fl-col .fl-node-d1p0gxvfazi7 h6.fl-heading a,
  4174. .fl-row .fl-col .fl-node-d1p0gxvfazi7 h6.fl-heading .fl-heading-text,
  4175. .fl-row .fl-col .fl-node-d1p0gxvfazi7 h6.fl-heading .fl-heading-text *,
  4176. .fl-node-d1p0gxvfazi7 h6.fl-heading .fl-heading-text {
  4177. color: #ffffff;
  4178. }
  4179. .fl-node-d1p0gxvfazi7.fl-module-heading .fl-heading {
  4180. font-family: Poppins, sans-serif;
  4181. font-weight: 400;
  4182. font-size: 15px;
  4183. letter-spacing: 1.1px;
  4184. text-align: left;
  4185. }
  4186. @media(max-width: 768px) {
  4187. .fl-node-d1p0gxvfazi7.fl-module-heading .fl-heading {
  4188. text-align: center;
  4189. }
  4190. }
  4191. .fl-node-d1p0gxvfazi7 > .fl-module-content {
  4192. margin-top:0px;
  4193. margin-left:40px;
  4194. }
  4195. @media (max-width: 768px) { .fl-node-d1p0gxvfazi7 > .fl-module-content { margin-left:20px; } }.fl-builder-content .fl-rich-text strong {
  4196. font-weight: bold;
  4197. }
  4198. .fl-builder-content .fl-node-dwena2uh7iz5 .fl-module-content .fl-rich-text,
  4199. .fl-builder-content .fl-node-dwena2uh7iz5 .fl-module-content .fl-rich-text * {
  4200. color: #ffffff;
  4201. }
  4202. .fl-builder-content .fl-node-dwena2uh7iz5 .fl-rich-text, .fl-builder-content .fl-node-dwena2uh7iz5 .fl-rich-text *:not(b, strong) {
  4203. font-family: Poppins, sans-serif;
  4204. font-weight: 400;
  4205. font-size: 20px;
  4206. }
  4207. .fl-node-dwena2uh7iz5 > .fl-module-content {
  4208. margin-bottom:0px;
  4209. }
  4210. .fl-number,
  4211. .fl-number .fl-number-circle-container {
  4212. margin: 0 auto;
  4213. }
  4214.  
  4215. .fl-number-before-text,
  4216. .fl-number-after-text {
  4217. display: block;
  4218. }
  4219. .fl-number-before-text {
  4220. margin-bottom: 10px;
  4221. }
  4222. .fl-number-after-text {
  4223. margin-top: 10px;
  4224. }
  4225. .fl-number-string {
  4226. line-height: 1;
  4227. white-space: nowrap;
  4228. overflow: hidden;
  4229. }
  4230.  
  4231. .fl-number .fl-number-text,
  4232. .fl-number .fl-number-circle-container {
  4233. position: relative;
  4234. z-index: 10;
  4235. text-align: center;
  4236. }
  4237.  
  4238. .fl-number.fl-number-bars .fl-number-text {
  4239. text-align: left;
  4240. }
  4241. .fl-number .fl-number-bar {
  4242. text-align: right;
  4243. padding: 0;
  4244. }
  4245.  
  4246. .fl-number .fl-number-position-above .fl-number-bar {
  4247. margin-top: 5px;
  4248. }
  4249. .fl-number .fl-number-position-below .fl-number-bar {
  4250. margin-bottom: 5px;
  4251. }
  4252.  
  4253. .fl-number .svg-container {
  4254. display: inline-block;
  4255. position: relative;
  4256. z-index: 1;
  4257. width: 100%;
  4258. height: auto;
  4259. padding-bottom: 100%;
  4260. }
  4261.  
  4262. .fl-number .svg-container .svg {
  4263. position: absolute;
  4264. overflow: visible;
  4265. top: 0;
  4266. left: 0;
  4267. width: 100%;
  4268. height: 100%;
  4269. }
  4270.  
  4271. /* Bar */
  4272. .fl-number-bars .fl-number-bars-container {
  4273. width: 100%;
  4274. min-height: 10px;
  4275. }
  4276. .fl-number-bars .fl-number-bar {
  4277. width: 0;
  4278. min-height: 10px;
  4279. }
  4280. .fl-number-bars .fl-number-string {
  4281. height: 100%;
  4282. display: flex;
  4283. align-items: center;
  4284. justify-content: flex-end;
  4285. }
  4286.  
  4287. .fl-builder-content .fl-node-1amto42zdexg .fl-module-content .fl-number-int,
  4288. .fl-builder-content .fl-node-1amto42zdexg .fl-module-content .fl-number-string {
  4289. color: #459d53;
  4290. }
  4291.  
  4292. .fl-builder-content .fl-node-1amto42zdexg .fl-module-content .fl-number-before-text,
  4293. .fl-builder-content .fl-node-1amto42zdexg .fl-module-content .fl-number-after-text {
  4294. color: #459d53;
  4295. }
  4296.  
  4297.  
  4298.  
  4299. .fl-node-1amto42zdexg .fl-number .fl-number-text .fl-number-string, .fl-node-1amto42zdexg .fl-number .fl-number-text .fl-number-string span {
  4300. font-size: 50px;
  4301. }
  4302. .fl-row .fl-col .fl-node-om2xd9wn8kj5 h4.fl-heading a,
  4303. .fl-row .fl-col .fl-node-om2xd9wn8kj5 h4.fl-heading .fl-heading-text,
  4304. .fl-row .fl-col .fl-node-om2xd9wn8kj5 h4.fl-heading .fl-heading-text *,
  4305. .fl-node-om2xd9wn8kj5 h4.fl-heading .fl-heading-text {
  4306. color: #000000;
  4307. }
  4308. .fl-node-om2xd9wn8kj5.fl-module-heading .fl-heading {
  4309. font-family: Poppins, sans-serif;
  4310. font-weight: 500;
  4311. font-size: 22px;
  4312. line-height: 1.2;
  4313. letter-spacing: 1.1px;
  4314. text-align: left;
  4315. }
  4316. @media(max-width: 992px) {
  4317. .fl-node-om2xd9wn8kj5.fl-module-heading .fl-heading {
  4318. font-size: 20px;
  4319. }
  4320. }
  4321. @media(max-width: 768px) {
  4322. .fl-node-om2xd9wn8kj5.fl-module-heading .fl-heading {
  4323. font-size: 16px;
  4324. text-align: center;
  4325. }
  4326. }
  4327. .fl-node-om2xd9wn8kj5 > .fl-module-content {
  4328. margin-top:23px;
  4329. }
  4330. @media (max-width: 768px) { .fl-node-om2xd9wn8kj5 > .fl-module-content { margin-top:20px; } }.fl-row .fl-col .fl-node-gto5xqebu214 h2.fl-heading a,
  4331. .fl-row .fl-col .fl-node-gto5xqebu214 h2.fl-heading .fl-heading-text,
  4332. .fl-row .fl-col .fl-node-gto5xqebu214 h2.fl-heading .fl-heading-text *,
  4333. .fl-node-gto5xqebu214 h2.fl-heading .fl-heading-text {
  4334. color: #ffffff;
  4335. }
  4336. .fl-node-gto5xqebu214.fl-module-heading .fl-heading {
  4337. font-family: Poppins, sans-serif;
  4338. font-weight: 500;
  4339. font-size: 40px;
  4340. line-height: 1.1;
  4341. text-align: center;
  4342. }
  4343. @media(max-width: 992px) {
  4344. .fl-node-gto5xqebu214.fl-module-heading .fl-heading {
  4345. font-size: 30px;
  4346. }
  4347. }
  4348. @media(max-width: 768px) {
  4349. .fl-node-gto5xqebu214.fl-module-heading .fl-heading {
  4350. font-size: 24px;
  4351. text-align: center;
  4352. }
  4353. }
  4354. .fl-row .fl-col .fl-node-fzqpu4357hdm h5.fl-heading a,
  4355. .fl-row .fl-col .fl-node-fzqpu4357hdm h5.fl-heading .fl-heading-text,
  4356. .fl-row .fl-col .fl-node-fzqpu4357hdm h5.fl-heading .fl-heading-text *,
  4357. .fl-node-fzqpu4357hdm h5.fl-heading .fl-heading-text {
  4358. color: #ffffff;
  4359. }
  4360. .fl-node-fzqpu4357hdm.fl-module-heading .fl-heading {
  4361. font-family: Poppins, sans-serif;
  4362. font-weight: 300;
  4363. font-size: 18px;
  4364. letter-spacing: 1.1px;
  4365. text-align: center;
  4366. }
  4367. @media(max-width: 992px) {
  4368. .fl-node-fzqpu4357hdm.fl-module-heading .fl-heading {
  4369. font-size: 16px;
  4370. }
  4371. }
  4372. @media(max-width: 768px) {
  4373. .fl-node-fzqpu4357hdm.fl-module-heading .fl-heading {
  4374. font-size: 15.5px;
  4375. text-align: left;
  4376. }
  4377. }
  4378.  
  4379. .fl-builder-content .fl-node-j3pgba1vdk6t a.fl-button,
  4380. .fl-builder-content .fl-node-j3pgba1vdk6t a.fl-button:hover,
  4381. .fl-builder-content .fl-node-j3pgba1vdk6t a.fl-button:visited {
  4382. background: #f31717;
  4383. }
  4384.  
  4385. .fl-builder-content .fl-node-j3pgba1vdk6t a.fl-button:hover {
  4386. background-color: #f31717;
  4387. }
  4388.  
  4389.  
  4390.  
  4391.  
  4392.  
  4393.  
  4394.  
  4395.  
  4396.  
  4397.  
  4398.  
  4399.  
  4400.  
  4401. .fl-node-j3pgba1vdk6t .fl-button-wrap {
  4402. text-align: center;
  4403. }
  4404. .fl-builder-content .fl-node-j3pgba1vdk6t .fl-button-wrap a.fl-button {
  4405. padding-top: 20px;
  4406. padding-bottom: 20px;
  4407. }
  4408. .fl-builder-content .fl-node-j3pgba1vdk6t a.fl-button, .fl-builder-content .fl-node-j3pgba1vdk6t a.fl-button:visited {
  4409. font-family: Poppins, sans-serif;
  4410. font-weight: 500;
  4411. font-size: 22px;
  4412. letter-spacing: 1.1px;
  4413. border: 1px solid #e70b0b;
  4414. border-top-left-radius: 10px;
  4415. border-top-right-radius: 10px;
  4416. border-bottom-left-radius: 10px;
  4417. border-bottom-right-radius: 10px;
  4418. }
  4419. .fl-builder-content .fl-node-j3pgba1vdk6t a.fl-button:hover, .fl-builder-content .fl-node-j3pgba1vdk6t a.fl-button:focus {
  4420. border: 1px solid #e70b0b;
  4421. border-top-left-radius: 10px;
  4422. border-top-right-radius: 10px;
  4423. border-bottom-left-radius: 10px;
  4424. border-bottom-right-radius: 10px;
  4425. }
  4426. @media(max-width: 768px) {
  4427. .fl-node-j3pgba1vdk6t .fl-button-wrap {
  4428. text-align: center;
  4429. }
  4430. .fl-builder-content .fl-node-j3pgba1vdk6t .fl-button-wrap a.fl-button {
  4431. padding-top: 15px;
  4432. padding-right: 15px;
  4433. padding-bottom: 15px;
  4434. padding-left: 15px;
  4435. }
  4436. .fl-builder-content .fl-node-j3pgba1vdk6t a.fl-button, .fl-builder-content .fl-node-j3pgba1vdk6t a.fl-button:visited {
  4437. font-size: 16px;
  4438. }
  4439. }
  4440. .fl-node-j3pgba1vdk6t > .fl-module-content {
  4441. margin-bottom:80px;
  4442. }
  4443. @media (max-width: 768px) { .fl-node-j3pgba1vdk6t > .fl-module-content { margin-bottom:20px; } }.fl-row .fl-col .fl-node-myr85paeun3c h5.fl-heading a,
  4444. .fl-row .fl-col .fl-node-myr85paeun3c h5.fl-heading .fl-heading-text,
  4445. .fl-row .fl-col .fl-node-myr85paeun3c h5.fl-heading .fl-heading-text *,
  4446. .fl-node-myr85paeun3c h5.fl-heading .fl-heading-text {
  4447. color: #ffffff;
  4448. }
  4449. .fl-node-myr85paeun3c.fl-module-heading .fl-heading {
  4450. font-family: Poppins, sans-serif;
  4451. font-weight: 300;
  4452. font-size: 18px;
  4453. letter-spacing: 1.1px;
  4454. text-align: center;
  4455. }
  4456. @media(max-width: 992px) {
  4457. .fl-node-myr85paeun3c.fl-module-heading .fl-heading {
  4458. font-size: 16px;
  4459. }
  4460. }
  4461. @media(max-width: 768px) {
  4462. .fl-node-myr85paeun3c.fl-module-heading .fl-heading {
  4463. font-size: 15.5px;
  4464. text-align: left;
  4465. }
  4466. }
  4467.  
  4468. .fl-builder-content .fl-node-idakwyv9ntso a.fl-button,
  4469. .fl-builder-content .fl-node-idakwyv9ntso a.fl-button:hover,
  4470. .fl-builder-content .fl-node-idakwyv9ntso a.fl-button:visited {
  4471. background: #f31717;
  4472. }
  4473.  
  4474. .fl-builder-content .fl-node-idakwyv9ntso a.fl-button:hover {
  4475. background-color: #f31717;
  4476. }
  4477.  
  4478.  
  4479.  
  4480.  
  4481.  
  4482.  
  4483.  
  4484.  
  4485.  
  4486.  
  4487.  
  4488.  
  4489.  
  4490. .fl-node-idakwyv9ntso .fl-button-wrap {
  4491. text-align: center;
  4492. }
  4493. .fl-builder-content .fl-node-idakwyv9ntso .fl-button-wrap a.fl-button {
  4494. padding-top: 20px;
  4495. padding-bottom: 20px;
  4496. }
  4497. .fl-builder-content .fl-node-idakwyv9ntso a.fl-button, .fl-builder-content .fl-node-idakwyv9ntso a.fl-button:visited {
  4498. font-family: Poppins, sans-serif;
  4499. font-weight: 500;
  4500. font-size: 22px;
  4501. letter-spacing: 1.1px;
  4502. border: 1px solid #e70b0b;
  4503. border-top-left-radius: 10px;
  4504. border-top-right-radius: 10px;
  4505. border-bottom-left-radius: 10px;
  4506. border-bottom-right-radius: 10px;
  4507. }
  4508. .fl-builder-content .fl-node-idakwyv9ntso a.fl-button:hover, .fl-builder-content .fl-node-idakwyv9ntso a.fl-button:focus {
  4509. border: 1px solid #e70b0b;
  4510. border-top-left-radius: 10px;
  4511. border-top-right-radius: 10px;
  4512. border-bottom-left-radius: 10px;
  4513. border-bottom-right-radius: 10px;
  4514. }
  4515. @media(max-width: 768px) {
  4516. .fl-node-idakwyv9ntso .fl-button-wrap {
  4517. text-align: center;
  4518. }
  4519. .fl-builder-content .fl-node-idakwyv9ntso .fl-button-wrap a.fl-button {
  4520. padding-top: 15px;
  4521. padding-right: 15px;
  4522. padding-bottom: 15px;
  4523. padding-left: 15px;
  4524. }
  4525. .fl-builder-content .fl-node-idakwyv9ntso a.fl-button, .fl-builder-content .fl-node-idakwyv9ntso a.fl-button:visited {
  4526. font-size: 16px;
  4527. }
  4528. }
  4529. .fl-node-idakwyv9ntso > .fl-module-content {
  4530. margin-bottom:20px;
  4531. }
  4532. .fl-row .fl-col .fl-node-v2tnlipu7sd9 h2.fl-heading a,
  4533. .fl-row .fl-col .fl-node-v2tnlipu7sd9 h2.fl-heading .fl-heading-text,
  4534. .fl-row .fl-col .fl-node-v2tnlipu7sd9 h2.fl-heading .fl-heading-text *,
  4535. .fl-node-v2tnlipu7sd9 h2.fl-heading .fl-heading-text {
  4536. color: #000000;
  4537. }
  4538. .fl-node-v2tnlipu7sd9.fl-module-heading .fl-heading {
  4539. font-family: Poppins, sans-serif;
  4540. font-weight: 500;
  4541. font-size: 40px;
  4542. line-height: 1.1;
  4543. text-align: center;
  4544. }
  4545. @media(max-width: 992px) {
  4546. .fl-node-v2tnlipu7sd9.fl-module-heading .fl-heading {
  4547. font-size: 30px;
  4548. }
  4549. }
  4550. @media(max-width: 768px) {
  4551. .fl-node-v2tnlipu7sd9.fl-module-heading .fl-heading {
  4552. font-size: 24px;
  4553. }
  4554. }
  4555. .fl-node-v2tnlipu7sd9 > .fl-module-content {
  4556. margin-top:40px;
  4557. }
  4558. @media (max-width: 768px) { .fl-node-v2tnlipu7sd9 > .fl-module-content { margin-top:20px; } }.fl-node-5da1c223c46fc .fl-photo {
  4559. text-align: center;
  4560. }
  4561. .fl-node-5da1c223c46fc > .fl-module-content {
  4562. margin-bottom:0px;
  4563. }
  4564. .fl-builder-content .fl-node-5e5f9bc9a29f6 .fl-module-content .fl-rich-text,
  4565. .fl-builder-content .fl-node-5e5f9bc9a29f6 .fl-module-content .fl-rich-text * {
  4566. color: #000000;
  4567. }
  4568. .fl-builder-content .fl-node-5e5f9bc9a29f6 .fl-rich-text, .fl-builder-content .fl-node-5e5f9bc9a29f6 .fl-rich-text *:not(b, strong) {
  4569. font-family: Poppins, sans-serif;
  4570. font-weight: 400;
  4571. font-size: 9px;
  4572. }
  4573. .fl-node-5e5f9bc9a29f6 > .fl-module-content {
  4574. margin-top:0px;
  4575. margin-bottom:0px;
  4576. }
  4577. .fl-node-5da1c223c4702 .fl-photo {
  4578. text-align: center;
  4579. }
  4580. .fl-node-5da1c223c4702 > .fl-module-content {
  4581. margin-bottom:0px;
  4582. }
  4583. .fl-builder-content .fl-node-5e5f9bed16c1f .fl-module-content .fl-rich-text,
  4584. .fl-builder-content .fl-node-5e5f9bed16c1f .fl-module-content .fl-rich-text * {
  4585. color: #000000;
  4586. }
  4587. .fl-builder-content .fl-node-5e5f9bed16c1f .fl-rich-text, .fl-builder-content .fl-node-5e5f9bed16c1f .fl-rich-text *:not(b, strong) {
  4588. font-family: Poppins, sans-serif;
  4589. font-weight: 400;
  4590. font-size: 9px;
  4591. }
  4592. .fl-node-5e5f9bed16c1f > .fl-module-content {
  4593. margin-top:0px;
  4594. margin-bottom:0px;
  4595. }
  4596. .fl-node-5da1c223c46fd .fl-photo {
  4597. text-align: center;
  4598. }
  4599. .fl-node-5da1c223c46fd > .fl-module-content {
  4600. margin-bottom:0px;
  4601. }
  4602. .fl-builder-content .fl-node-5e5f9bf2da1e9 .fl-module-content .fl-rich-text,
  4603. .fl-builder-content .fl-node-5e5f9bf2da1e9 .fl-module-content .fl-rich-text * {
  4604. color: #000000;
  4605. }
  4606. .fl-builder-content .fl-node-5e5f9bf2da1e9 .fl-rich-text, .fl-builder-content .fl-node-5e5f9bf2da1e9 .fl-rich-text *:not(b, strong) {
  4607. font-family: Poppins, sans-serif;
  4608. font-weight: 400;
  4609. font-size: 9px;
  4610. }
  4611. .fl-node-5e5f9bf2da1e9 > .fl-module-content {
  4612. margin-top:0px;
  4613. margin-bottom:0px;
  4614. }
  4615. .fl-node-5da1c223c4700 .fl-photo {
  4616. text-align: center;
  4617. }
  4618. .fl-node-5da1c223c4700 > .fl-module-content {
  4619. margin-bottom:0px;
  4620. }
  4621. .fl-builder-content .fl-node-5e5f9bf8e53b1 .fl-module-content .fl-rich-text,
  4622. .fl-builder-content .fl-node-5e5f9bf8e53b1 .fl-module-content .fl-rich-text * {
  4623. color: #000000;
  4624. }
  4625. .fl-builder-content .fl-node-5e5f9bf8e53b1 .fl-rich-text, .fl-builder-content .fl-node-5e5f9bf8e53b1 .fl-rich-text *:not(b, strong) {
  4626. font-family: Poppins, sans-serif;
  4627. font-weight: 400;
  4628. font-size: 9px;
  4629. }
  4630. .fl-node-5e5f9bf8e53b1 > .fl-module-content {
  4631. margin-top:0px;
  4632. margin-bottom:0px;
  4633. }
  4634. .fl-node-5e5fa228bdcf9 .fl-photo {
  4635. text-align: center;
  4636. }
  4637. .fl-node-5e5fa228bdcf9 > .fl-module-content {
  4638. margin-bottom:0px;
  4639. }
  4640. .fl-builder-content .fl-node-5e5f9bfdac8f3 .fl-module-content .fl-rich-text,
  4641. .fl-builder-content .fl-node-5e5f9bfdac8f3 .fl-module-content .fl-rich-text * {
  4642. color: #000000;
  4643. }
  4644. .fl-builder-content .fl-node-5e5f9bfdac8f3 .fl-rich-text, .fl-builder-content .fl-node-5e5f9bfdac8f3 .fl-rich-text *:not(b, strong) {
  4645. font-family: Poppins, sans-serif;
  4646. font-weight: 400;
  4647. font-size: 9px;
  4648. }
  4649. .fl-node-5e5f9bfdac8f3 > .fl-module-content {
  4650. margin-top:0px;
  4651. margin-bottom:0px;
  4652. }
  4653. .fl-node-5da1c223c4704 .fl-photo {
  4654. text-align: center;
  4655. }
  4656. .fl-node-5da1c223c4704 .fl-photo-img, .fl-node-5da1c223c4704 .fl-photo-content {
  4657. width: 65px;
  4658. }
  4659. .fl-node-5da1c223c4704 > .fl-module-content {
  4660. margin-bottom:0px;
  4661. }
  4662. .fl-builder-content .fl-node-5e5f9a79921e8 .fl-module-content .fl-rich-text,
  4663. .fl-builder-content .fl-node-5e5f9a79921e8 .fl-module-content .fl-rich-text * {
  4664. color: #000000;
  4665. }
  4666. .fl-builder-content .fl-node-5e5f9a79921e8 .fl-rich-text, .fl-builder-content .fl-node-5e5f9a79921e8 .fl-rich-text *:not(b, strong) {
  4667. font-family: Poppins, sans-serif;
  4668. font-weight: 400;
  4669. font-size: 9px;
  4670. }
  4671. .fl-node-5e5f9a79921e8 > .fl-module-content {
  4672. margin-top:0px;
  4673. margin-bottom:0px;
  4674. }
  4675. .fl-node-5da1c23148615 .fl-photo {
  4676. text-align: center;
  4677. }
  4678. .fl-node-5da1c23148615 .fl-photo-img, .fl-node-5da1c23148615 .fl-photo-content {
  4679. width: 200px;
  4680. }
  4681. .fl-node-5da1c23148615 > .fl-module-content {
  4682. margin-bottom:0px;
  4683. }
  4684. .fl-builder-content .fl-node-5e5f9f322d198 .fl-module-content .fl-rich-text,
  4685. .fl-builder-content .fl-node-5e5f9f322d198 .fl-module-content .fl-rich-text * {
  4686. color: #000000;
  4687. }
  4688. .fl-builder-content .fl-node-5e5f9f322d198 .fl-rich-text, .fl-builder-content .fl-node-5e5f9f322d198 .fl-rich-text *:not(b, strong) {
  4689. font-family: Poppins, sans-serif;
  4690. font-weight: 400;
  4691. font-size: 9px;
  4692. }
  4693. .fl-node-5e5f9f322d198 > .fl-module-content {
  4694. margin-top:0px;
  4695. margin-bottom:0px;
  4696. }
  4697. .fl-node-5e5f9fc306e58 .fl-photo {
  4698. text-align: center;
  4699. }
  4700. .fl-node-5e5f9fc306e58 .fl-photo-img, .fl-node-5e5f9fc306e58 .fl-photo-content {
  4701. width: 200px;
  4702. }
  4703. .fl-node-5e5f9fc306e58 > .fl-module-content {
  4704. margin-bottom:0px;
  4705. }
  4706. .fl-builder-content .fl-node-5e5f9fe0de3c9 .fl-module-content .fl-rich-text,
  4707. .fl-builder-content .fl-node-5e5f9fe0de3c9 .fl-module-content .fl-rich-text * {
  4708. color: #000000;
  4709. }
  4710. .fl-builder-content .fl-node-5e5f9fe0de3c9 .fl-rich-text, .fl-builder-content .fl-node-5e5f9fe0de3c9 .fl-rich-text *:not(b, strong) {
  4711. font-family: Poppins, sans-serif;
  4712. font-weight: 400;
  4713. font-size: 9px;
  4714. }
  4715. .fl-node-5e5f9fe0de3c9 > .fl-module-content {
  4716. margin-top:0px;
  4717. margin-bottom:0px;
  4718. }
  4719. .fl-node-5da1c23148618 .fl-photo {
  4720. text-align: center;
  4721. }
  4722. .fl-node-5da1c23148618 .fl-photo-img, .fl-node-5da1c23148618 .fl-photo-content {
  4723. width: 200px;
  4724. }
  4725. .fl-node-5da1c23148618 > .fl-module-content {
  4726. margin-bottom:0px;
  4727. }
  4728. .fl-builder-content .fl-node-5e5f9fe464e4c .fl-module-content .fl-rich-text,
  4729. .fl-builder-content .fl-node-5e5f9fe464e4c .fl-module-content .fl-rich-text * {
  4730. color: #000000;
  4731. }
  4732. .fl-builder-content .fl-node-5e5f9fe464e4c .fl-rich-text, .fl-builder-content .fl-node-5e5f9fe464e4c .fl-rich-text *:not(b, strong) {
  4733. font-family: Poppins, sans-serif;
  4734. font-weight: 400;
  4735. font-size: 9px;
  4736. }
  4737. .fl-node-5e5f9fe464e4c > .fl-module-content {
  4738. margin-top:0px;
  4739. margin-bottom:0px;
  4740. }
  4741. .fl-node-5da1c2314861d .fl-photo {
  4742. text-align: center;
  4743. }
  4744. .fl-node-5da1c2314861d > .fl-module-content {
  4745. margin-bottom:0px;
  4746. }
  4747. .fl-builder-content .fl-node-5e5f9fe97a9fb .fl-module-content .fl-rich-text,
  4748. .fl-builder-content .fl-node-5e5f9fe97a9fb .fl-module-content .fl-rich-text * {
  4749. color: #000000;
  4750. }
  4751. .fl-builder-content .fl-node-5e5f9fe97a9fb .fl-rich-text, .fl-builder-content .fl-node-5e5f9fe97a9fb .fl-rich-text *:not(b, strong) {
  4752. font-family: Poppins, sans-serif;
  4753. font-weight: 400;
  4754. font-size: 9px;
  4755. }
  4756. .fl-node-5e5f9fe97a9fb > .fl-module-content {
  4757. margin-top:0px;
  4758. margin-bottom:0px;
  4759. }
  4760. .fl-node-5da1c2314861f .fl-photo {
  4761. text-align: center;
  4762. }
  4763. .fl-node-5da1c2314861f > .fl-module-content {
  4764. margin-bottom:0px;
  4765. }
  4766. .fl-builder-content .fl-node-5e5f9fefbac68 .fl-module-content .fl-rich-text,
  4767. .fl-builder-content .fl-node-5e5f9fefbac68 .fl-module-content .fl-rich-text * {
  4768. color: #000000;
  4769. }
  4770. .fl-builder-content .fl-node-5e5f9fefbac68 .fl-rich-text, .fl-builder-content .fl-node-5e5f9fefbac68 .fl-rich-text *:not(b, strong) {
  4771. font-family: Poppins, sans-serif;
  4772. font-weight: 400;
  4773. font-size: 9px;
  4774. }
  4775. .fl-node-5e5f9fefbac68 > .fl-module-content {
  4776. margin-top:0px;
  4777. margin-bottom:0px;
  4778. }
  4779. .fl-node-5da1c23148622 .fl-photo {
  4780. text-align: center;
  4781. }
  4782. .fl-node-5da1c23148622 .fl-photo-img, .fl-node-5da1c23148622 .fl-photo-content {
  4783. width: 190px;
  4784. }
  4785. .fl-node-5da1c23148622 > .fl-module-content {
  4786. margin-bottom:0px;
  4787. }
  4788. .fl-builder-content .fl-node-5e5f9e730f4ae .fl-module-content .fl-rich-text,
  4789. .fl-builder-content .fl-node-5e5f9e730f4ae .fl-module-content .fl-rich-text * {
  4790. color: #000000;
  4791. }
  4792. .fl-builder-content .fl-node-5e5f9e730f4ae .fl-rich-text, .fl-builder-content .fl-node-5e5f9e730f4ae .fl-rich-text *:not(b, strong) {
  4793. font-family: Poppins, sans-serif;
  4794. font-weight: 400;
  4795. font-size: 9px;
  4796. }
  4797. .fl-node-5e5f9e730f4ae > .fl-module-content {
  4798. margin-top:0px;
  4799. margin-bottom:0px;
  4800. }
  4801. .fl-node-5e5fa315da1d1 .fl-photo {
  4802. text-align: center;
  4803. }
  4804. .fl-node-5e5fa315da1d1 > .fl-module-content {
  4805. margin-bottom:0px;
  4806. }
  4807. .fl-builder-content .fl-node-5e5fa2f741627 .fl-module-content .fl-rich-text,
  4808. .fl-builder-content .fl-node-5e5fa2f741627 .fl-module-content .fl-rich-text * {
  4809. color: #000000;
  4810. }
  4811. .fl-builder-content .fl-node-5e5fa2f741627 .fl-rich-text, .fl-builder-content .fl-node-5e5fa2f741627 .fl-rich-text *:not(b, strong) {
  4812. font-family: Poppins, sans-serif;
  4813. font-weight: 400;
  4814. font-size: 9px;
  4815. text-align: center;
  4816. }
  4817. .fl-node-5e5fa2f741627 > .fl-module-content {
  4818. margin-top:0px;
  4819. margin-bottom:0px;
  4820. }
  4821. .fl-node-5e5fa36ac1857 .fl-photo {
  4822. text-align: center;
  4823. }
  4824. .fl-node-5e5fa36ac1857 > .fl-module-content {
  4825. margin-bottom:0px;
  4826. }
  4827. .fl-builder-content .fl-node-5e5fa2fc4be24 .fl-module-content .fl-rich-text,
  4828. .fl-builder-content .fl-node-5e5fa2fc4be24 .fl-module-content .fl-rich-text * {
  4829. color: #000000;
  4830. }
  4831. .fl-builder-content .fl-node-5e5fa2fc4be24 .fl-rich-text, .fl-builder-content .fl-node-5e5fa2fc4be24 .fl-rich-text *:not(b, strong) {
  4832. font-family: Poppins, sans-serif;
  4833. font-weight: 400;
  4834. font-size: 9px;
  4835. text-align: center;
  4836. }
  4837. .fl-node-5e5fa2fc4be24 > .fl-module-content {
  4838. margin-top:0px;
  4839. margin-bottom:0px;
  4840. }
  4841. .fl-node-5da1c242ef91c .fl-photo {
  4842. text-align: center;
  4843. }
  4844. .fl-node-5da1c242ef91c > .fl-module-content {
  4845. margin-bottom:0px;
  4846. }
  4847. .fl-builder-content .fl-node-5e5fa3023744d .fl-module-content .fl-rich-text,
  4848. .fl-builder-content .fl-node-5e5fa3023744d .fl-module-content .fl-rich-text * {
  4849. color: #000000;
  4850. }
  4851. .fl-builder-content .fl-node-5e5fa3023744d .fl-rich-text, .fl-builder-content .fl-node-5e5fa3023744d .fl-rich-text *:not(b, strong) {
  4852. font-family: Poppins, sans-serif;
  4853. font-weight: 400;
  4854. font-size: 9px;
  4855. text-align: center;
  4856. }
  4857. .fl-node-5e5fa3023744d > .fl-module-content {
  4858. margin-top:0px;
  4859. margin-bottom:0px;
  4860. }
  4861. .fl-node-5e5fa5c35db26 .fl-photo {
  4862. text-align: center;
  4863. }
  4864. .fl-node-5e5fa5c35db26 > .fl-module-content {
  4865. margin-bottom:0px;
  4866. }
  4867. .fl-builder-content .fl-node-5e5fa30669be2 .fl-module-content .fl-rich-text,
  4868. .fl-builder-content .fl-node-5e5fa30669be2 .fl-module-content .fl-rich-text * {
  4869. color: #000000;
  4870. }
  4871. .fl-builder-content .fl-node-5e5fa30669be2 .fl-rich-text, .fl-builder-content .fl-node-5e5fa30669be2 .fl-rich-text *:not(b, strong) {
  4872. font-family: Poppins, sans-serif;
  4873. font-weight: 400;
  4874. font-size: 9px;
  4875. text-align: center;
  4876. }
  4877. .fl-node-5e5fa30669be2 > .fl-module-content {
  4878. margin-top:0px;
  4879. margin-bottom:0px;
  4880. }
  4881. .fl-node-5e5fa62cd97c9 .fl-photo {
  4882. text-align: center;
  4883. }
  4884. .fl-node-5e5fa62cd97c9 > .fl-module-content {
  4885. margin-bottom:0px;
  4886. }
  4887. .fl-builder-content .fl-node-5e5fa30b6f8fb .fl-module-content .fl-rich-text,
  4888. .fl-builder-content .fl-node-5e5fa30b6f8fb .fl-module-content .fl-rich-text * {
  4889. color: #000000;
  4890. }
  4891. .fl-builder-content .fl-node-5e5fa30b6f8fb .fl-rich-text, .fl-builder-content .fl-node-5e5fa30b6f8fb .fl-rich-text *:not(b, strong) {
  4892. font-family: Poppins, sans-serif;
  4893. font-weight: 400;
  4894. font-size: 9px;
  4895. text-align: center;
  4896. }
  4897. .fl-node-5e5fa30b6f8fb > .fl-module-content {
  4898. margin-top:0px;
  4899. margin-bottom:0px;
  4900. }
  4901. .fl-node-5da1c242ef920 .fl-photo {
  4902. text-align: center;
  4903. }
  4904. .fl-node-5da1c242ef920 > .fl-module-content {
  4905. margin-bottom:0px;
  4906. }
  4907. .fl-builder-content .fl-node-5e5fa2c8d539d .fl-module-content .fl-rich-text,
  4908. .fl-builder-content .fl-node-5e5fa2c8d539d .fl-module-content .fl-rich-text * {
  4909. color: #000000;
  4910. }
  4911. .fl-builder-content .fl-node-5e5fa2c8d539d .fl-rich-text, .fl-builder-content .fl-node-5e5fa2c8d539d .fl-rich-text *:not(b, strong) {
  4912. font-family: Poppins, sans-serif;
  4913. font-weight: 400;
  4914. font-size: 9px;
  4915. text-align: center;
  4916. }
  4917. .fl-node-5e5fa2c8d539d > .fl-module-content {
  4918. margin-top:0px;
  4919. margin-bottom:0px;
  4920. }
  4921. .fl-row .fl-col .fl-node-yeir3qd4jnb8 h2.fl-heading a,
  4922. .fl-row .fl-col .fl-node-yeir3qd4jnb8 h2.fl-heading .fl-heading-text,
  4923. .fl-row .fl-col .fl-node-yeir3qd4jnb8 h2.fl-heading .fl-heading-text *,
  4924. .fl-node-yeir3qd4jnb8 h2.fl-heading .fl-heading-text {
  4925. color: #ffffff;
  4926. }
  4927. .fl-node-yeir3qd4jnb8.fl-module-heading .fl-heading {
  4928. font-family: Poppins, sans-serif;
  4929. font-weight: 500;
  4930. font-size: 40px;
  4931. line-height: 1.1;
  4932. text-align: left;
  4933. }
  4934. @media(max-width: 992px) {
  4935. .fl-node-yeir3qd4jnb8.fl-module-heading .fl-heading {
  4936. font-size: 30px;
  4937. }
  4938. }
  4939. @media(max-width: 768px) {
  4940. .fl-node-yeir3qd4jnb8.fl-module-heading .fl-heading {
  4941. font-size: 20px;
  4942. text-align: left;
  4943. }
  4944. }
  4945. .fl-row .fl-col .fl-node-r3f891kgyzq4 h5.fl-heading a,
  4946. .fl-row .fl-col .fl-node-r3f891kgyzq4 h5.fl-heading .fl-heading-text,
  4947. .fl-row .fl-col .fl-node-r3f891kgyzq4 h5.fl-heading .fl-heading-text *,
  4948. .fl-node-r3f891kgyzq4 h5.fl-heading .fl-heading-text {
  4949. color: #ffffff;
  4950. }
  4951. .fl-node-r3f891kgyzq4.fl-module-heading .fl-heading {
  4952. font-family: Poppins, sans-serif;
  4953. font-weight: 300;
  4954. font-size: 18px;
  4955. letter-spacing: 1.1px;
  4956. text-align: left;
  4957. }
  4958. @media(max-width: 992px) {
  4959. .fl-node-r3f891kgyzq4.fl-module-heading .fl-heading {
  4960. font-size: 16px;
  4961. }
  4962. }
  4963. @media(max-width: 768px) {
  4964. .fl-node-r3f891kgyzq4.fl-module-heading .fl-heading {
  4965. font-size: 16px;
  4966. }
  4967. }
  4968.  
  4969. .fl-builder-content .fl-node-seiv0muh2oky a.fl-button,
  4970. .fl-builder-content .fl-node-seiv0muh2oky a.fl-button:hover,
  4971. .fl-builder-content .fl-node-seiv0muh2oky a.fl-button:visited {
  4972. background: #f31717;
  4973. }
  4974.  
  4975. .fl-builder-content .fl-node-seiv0muh2oky a.fl-button:hover {
  4976. background-color: #f31717;
  4977. }
  4978.  
  4979.  
  4980.  
  4981.  
  4982.  
  4983.  
  4984.  
  4985.  
  4986.  
  4987.  
  4988.  
  4989.  
  4990.  
  4991. .fl-node-seiv0muh2oky .fl-button-wrap {
  4992. text-align: left;
  4993. }
  4994. .fl-builder-content .fl-node-seiv0muh2oky .fl-button-wrap a.fl-button {
  4995. padding-top: 20px;
  4996. padding-bottom: 20px;
  4997. }
  4998. .fl-builder-content .fl-node-seiv0muh2oky a.fl-button, .fl-builder-content .fl-node-seiv0muh2oky a.fl-button:visited {
  4999. font-family: Poppins, sans-serif;
  5000. font-weight: 500;
  5001. font-size: 22px;
  5002. letter-spacing: 1.1px;
  5003. border: 1px solid #e70b0b;
  5004. border-top-left-radius: 10px;
  5005. border-top-right-radius: 10px;
  5006. border-bottom-left-radius: 10px;
  5007. border-bottom-right-radius: 10px;
  5008. }
  5009. .fl-builder-content .fl-node-seiv0muh2oky a.fl-button:hover, .fl-builder-content .fl-node-seiv0muh2oky a.fl-button:focus {
  5010. border: 1px solid #e70b0b;
  5011. border-top-left-radius: 10px;
  5012. border-top-right-radius: 10px;
  5013. border-bottom-left-radius: 10px;
  5014. border-bottom-right-radius: 10px;
  5015. }
  5016. @media(max-width: 768px) {
  5017. .fl-node-seiv0muh2oky .fl-button-wrap {
  5018. text-align: center;
  5019. }
  5020. .fl-builder-content .fl-node-seiv0muh2oky .fl-button-wrap a.fl-button {
  5021. padding-top: 15px;
  5022. padding-right: 15px;
  5023. padding-bottom: 15px;
  5024. padding-left: 15px;
  5025. }
  5026. .fl-builder-content .fl-node-seiv0muh2oky a.fl-button, .fl-builder-content .fl-node-seiv0muh2oky a.fl-button:visited {
  5027. font-size: 16px;
  5028. }
  5029. }
  5030. .fl-node-seiv0muh2oky > .fl-module-content {
  5031. margin-bottom:10px;
  5032. }
  5033. .fl-node-sg93ehcrzxk1 > .fl-module-content {
  5034. margin-top:20px;
  5035. margin-bottom:0px;
  5036. }
  5037. .fl-row .fl-col .fl-node-u3b60v8ok1yp h2.fl-heading a,
  5038. .fl-row .fl-col .fl-node-u3b60v8ok1yp h2.fl-heading .fl-heading-text,
  5039. .fl-row .fl-col .fl-node-u3b60v8ok1yp h2.fl-heading .fl-heading-text *,
  5040. .fl-node-u3b60v8ok1yp h2.fl-heading .fl-heading-text {
  5041. color: #ffffff;
  5042. }
  5043. .fl-node-u3b60v8ok1yp.fl-module-heading .fl-heading {
  5044. font-family: Helvetica, Verdana, Arial, sans-serif;
  5045. font-weight: 700;
  5046. font-size: 20px;
  5047. line-height: 1.4;
  5048. letter-spacing: 1.1px;
  5049. text-align: center;
  5050. }
  5051. .fl-node-u3b60v8ok1yp > .fl-module-content {
  5052. margin-top:0px;
  5053. }
  5054. .fl-row .fl-col .fl-node-86mwk4vizudb h4.fl-heading a,
  5055. .fl-row .fl-col .fl-node-86mwk4vizudb h4.fl-heading .fl-heading-text,
  5056. .fl-row .fl-col .fl-node-86mwk4vizudb h4.fl-heading .fl-heading-text *,
  5057. .fl-node-86mwk4vizudb h4.fl-heading .fl-heading-text {
  5058. color: #ffffff;
  5059. }
  5060. .fl-node-86mwk4vizudb.fl-module-heading .fl-heading {
  5061. font-family: Poppins, sans-serif;
  5062. font-weight: 500;
  5063. font-size: 22px;
  5064. line-height: 1.2;
  5065. letter-spacing: 1.1px;
  5066. text-align: left;
  5067. }
  5068. @media(max-width: 992px) {
  5069. .fl-node-86mwk4vizudb.fl-module-heading .fl-heading {
  5070. font-size: 20px;
  5071. }
  5072. }
  5073. @media(max-width: 768px) {
  5074. .fl-node-86mwk4vizudb.fl-module-heading .fl-heading {
  5075. font-size: 16px;
  5076. text-align: center;
  5077. }
  5078. }
  5079. .fl-node-86mwk4vizudb > .fl-module-content {
  5080. margin-top:40px;
  5081. }
  5082. @media (max-width: 768px) { .fl-node-86mwk4vizudb > .fl-module-content { margin-top:20px; } }.fl-row .fl-col .fl-node-uhmwnyiopct4 h2.fl-heading a,
  5083. .fl-row .fl-col .fl-node-uhmwnyiopct4 h2.fl-heading .fl-heading-text,
  5084. .fl-row .fl-col .fl-node-uhmwnyiopct4 h2.fl-heading .fl-heading-text *,
  5085. .fl-node-uhmwnyiopct4 h2.fl-heading .fl-heading-text {
  5086. color: #000000;
  5087. }
  5088. .fl-node-uhmwnyiopct4.fl-module-heading .fl-heading {
  5089. font-family: Poppins, sans-serif;
  5090. font-weight: 600;
  5091. font-size: 40px;
  5092. line-height: 1.1;
  5093. text-align: center;
  5094. }
  5095. @media(max-width: 992px) {
  5096. .fl-node-uhmwnyiopct4.fl-module-heading .fl-heading {
  5097. font-size: 30px;
  5098. }
  5099. }
  5100. @media(max-width: 768px) {
  5101. .fl-node-uhmwnyiopct4.fl-module-heading .fl-heading {
  5102. font-size: 26px;
  5103. }
  5104. }
  5105. .fl-node-uhmwnyiopct4 > .fl-module-content {
  5106. margin-top:40px;
  5107. }
  5108. @media (max-width: 768px) { .fl-node-uhmwnyiopct4 > .fl-module-content { margin-top:20px; } }.fl-row .fl-col .fl-node-si78mycv3qg4 h4.fl-heading a,
  5109. .fl-row .fl-col .fl-node-si78mycv3qg4 h4.fl-heading .fl-heading-text,
  5110. .fl-row .fl-col .fl-node-si78mycv3qg4 h4.fl-heading .fl-heading-text *,
  5111. .fl-node-si78mycv3qg4 h4.fl-heading .fl-heading-text {
  5112. color: #000000;
  5113. }
  5114. .fl-node-si78mycv3qg4.fl-module-heading .fl-heading {
  5115. font-family: Poppins, sans-serif;
  5116. font-weight: 700;
  5117. font-size: 22px;
  5118. line-height: 1.1;
  5119. text-align: center;
  5120. }
  5121. @media(max-width: 992px) {
  5122. .fl-node-si78mycv3qg4.fl-module-heading .fl-heading {
  5123. font-size: 20px;
  5124. }
  5125. }
  5126. @media(max-width: 768px) {
  5127. .fl-node-si78mycv3qg4.fl-module-heading .fl-heading {
  5128. font-size: 18px;
  5129. }
  5130. }
  5131. .fl-node-si78mycv3qg4 > .fl-module-content {
  5132. margin-top:0px;
  5133. }
  5134. .fl-row .fl-col .fl-node-ibmftok3647s h5.fl-heading a,
  5135. .fl-row .fl-col .fl-node-ibmftok3647s h5.fl-heading .fl-heading-text,
  5136. .fl-row .fl-col .fl-node-ibmftok3647s h5.fl-heading .fl-heading-text *,
  5137. .fl-node-ibmftok3647s h5.fl-heading .fl-heading-text {
  5138. color: #000000;
  5139. }
  5140. .fl-node-ibmftok3647s.fl-module-heading .fl-heading {
  5141. font-family: Poppins, sans-serif;
  5142. font-weight: 400;
  5143. font-size: 18px;
  5144. letter-spacing: 1.1px;
  5145. text-align: center;
  5146. }
  5147. @media(max-width: 992px) {
  5148. .fl-node-ibmftok3647s.fl-module-heading .fl-heading {
  5149. font-size: 16px;
  5150. }
  5151. }
  5152. @media(max-width: 768px) {
  5153. .fl-node-ibmftok3647s.fl-module-heading .fl-heading {
  5154. font-size: 15px;
  5155. }
  5156. }
  5157. .fl-node-ibmftok3647s > .fl-module-content {
  5158. margin-top:0px;
  5159. }
  5160.  
  5161. .fl-builder-content .fl-node-0atn3m4vgq7f a.fl-button,
  5162. .fl-builder-content .fl-node-0atn3m4vgq7f a.fl-button:hover,
  5163. .fl-builder-content .fl-node-0atn3m4vgq7f a.fl-button:visited {
  5164. background: #f31717;
  5165. }
  5166.  
  5167. .fl-builder-content .fl-node-0atn3m4vgq7f a.fl-button:hover {
  5168. background-color: #f31717;
  5169. }
  5170.  
  5171.  
  5172.  
  5173.  
  5174.  
  5175.  
  5176.  
  5177.  
  5178.  
  5179.  
  5180.  
  5181.  
  5182.  
  5183. .fl-node-0atn3m4vgq7f .fl-button-wrap {
  5184. text-align: center;
  5185. }
  5186. .fl-builder-content .fl-node-0atn3m4vgq7f .fl-button-wrap a.fl-button {
  5187. padding-top: 20px;
  5188. padding-bottom: 20px;
  5189. }
  5190. .fl-builder-content .fl-node-0atn3m4vgq7f a.fl-button, .fl-builder-content .fl-node-0atn3m4vgq7f a.fl-button:visited {
  5191. font-family: Poppins, sans-serif;
  5192. font-weight: 500;
  5193. font-size: 22px;
  5194. letter-spacing: 1.1px;
  5195. border: 1px solid #e70b0b;
  5196. border-top-left-radius: 10px;
  5197. border-top-right-radius: 10px;
  5198. border-bottom-left-radius: 10px;
  5199. border-bottom-right-radius: 10px;
  5200. }
  5201. .fl-builder-content .fl-node-0atn3m4vgq7f a.fl-button:hover, .fl-builder-content .fl-node-0atn3m4vgq7f a.fl-button:focus {
  5202. border: 1px solid #e70b0b;
  5203. border-top-left-radius: 10px;
  5204. border-top-right-radius: 10px;
  5205. border-bottom-left-radius: 10px;
  5206. border-bottom-right-radius: 10px;
  5207. }
  5208. @media(max-width: 768px) {
  5209. .fl-builder-content .fl-node-0atn3m4vgq7f .fl-button-wrap a.fl-button {
  5210. padding-top: 15px;
  5211. padding-right: 15px;
  5212. padding-bottom: 15px;
  5213. padding-left: 15px;
  5214. }
  5215. .fl-builder-content .fl-node-0atn3m4vgq7f a.fl-button, .fl-builder-content .fl-node-0atn3m4vgq7f a.fl-button:visited {
  5216. font-size: 16px;
  5217. }
  5218. }
  5219. .fl-node-0atn3m4vgq7f > .fl-module-content {
  5220. margin-bottom:10px;
  5221. }
  5222. .fl-builder-content .fl-node-gwe0jk3alh9o .fl-module-content .fl-rich-text,
  5223. .fl-builder-content .fl-node-gwe0jk3alh9o .fl-module-content .fl-rich-text * {
  5224. color: #ffffff;
  5225. }
  5226. .fl-builder-content .fl-node-gwe0jk3alh9o .fl-rich-text, .fl-builder-content .fl-node-gwe0jk3alh9o .fl-rich-text *:not(b, strong) {
  5227. font-family: Poppins, sans-serif;
  5228. font-weight: 400;
  5229. font-size: 28px;
  5230. line-height: 1.4em;
  5231. letter-spacing: 1.1px;
  5232. }
  5233.  
  5234. .fl-builder-content .fl-node-oypn68w59kbu a.fl-button,
  5235. .fl-builder-content .fl-node-oypn68w59kbu a.fl-button:hover,
  5236. .fl-builder-content .fl-node-oypn68w59kbu a.fl-button:visited {
  5237. background: #f31717;
  5238. }
  5239.  
  5240. .fl-builder-content .fl-node-oypn68w59kbu a.fl-button:hover {
  5241. background-color: #f31717;
  5242. }
  5243.  
  5244.  
  5245.  
  5246.  
  5247.  
  5248.  
  5249.  
  5250.  
  5251.  
  5252.  
  5253.  
  5254.  
  5255.  
  5256. .fl-node-oypn68w59kbu .fl-button-wrap {
  5257. text-align: left;
  5258. }
  5259. .fl-builder-content .fl-node-oypn68w59kbu .fl-button-wrap a.fl-button {
  5260. padding-top: 20px;
  5261. padding-bottom: 20px;
  5262. }
  5263. .fl-builder-content .fl-node-oypn68w59kbu a.fl-button, .fl-builder-content .fl-node-oypn68w59kbu a.fl-button:visited {
  5264. font-family: Poppins, sans-serif;
  5265. font-weight: 500;
  5266. font-size: 22px;
  5267. letter-spacing: 1.1px;
  5268. border: 1px solid #e70b0b;
  5269. border-top-left-radius: 10px;
  5270. border-top-right-radius: 10px;
  5271. border-bottom-left-radius: 10px;
  5272. border-bottom-right-radius: 10px;
  5273. }
  5274. .fl-builder-content .fl-node-oypn68w59kbu a.fl-button:hover, .fl-builder-content .fl-node-oypn68w59kbu a.fl-button:focus {
  5275. border: 1px solid #e70b0b;
  5276. border-top-left-radius: 10px;
  5277. border-top-right-radius: 10px;
  5278. border-bottom-left-radius: 10px;
  5279. border-bottom-right-radius: 10px;
  5280. }
  5281. @media(max-width: 768px) {
  5282. .fl-node-oypn68w59kbu .fl-button-wrap {
  5283. text-align: center;
  5284. }
  5285. .fl-builder-content .fl-node-oypn68w59kbu .fl-button-wrap a.fl-button {
  5286. padding-top: 15px;
  5287. padding-right: 15px;
  5288. padding-bottom: 15px;
  5289. padding-left: 15px;
  5290. }
  5291. .fl-builder-content .fl-node-oypn68w59kbu a.fl-button, .fl-builder-content .fl-node-oypn68w59kbu a.fl-button:visited {
  5292. font-size: 16px;
  5293. }
  5294. }
  5295. .fl-node-oypn68w59kbu > .fl-module-content {
  5296. margin-bottom:10px;
  5297. }
  5298. .fl-row .fl-col .fl-node-4giq8syl0e1c h2.fl-heading a,
  5299. .fl-row .fl-col .fl-node-4giq8syl0e1c h2.fl-heading .fl-heading-text,
  5300. .fl-row .fl-col .fl-node-4giq8syl0e1c h2.fl-heading .fl-heading-text *,
  5301. .fl-node-4giq8syl0e1c h2.fl-heading .fl-heading-text {
  5302. color: #000000;
  5303. }
  5304. .fl-node-4giq8syl0e1c.fl-module-heading .fl-heading {
  5305. font-family: Poppins, sans-serif;
  5306. font-weight: 500;
  5307. font-size: 40px;
  5308. line-height: 1.1;
  5309. letter-spacing: 1.1px;
  5310. text-align: center;
  5311. }
  5312. @media(max-width: 992px) {
  5313. .fl-node-4giq8syl0e1c.fl-module-heading .fl-heading {
  5314. font-size: 30px;
  5315. }
  5316. }
  5317. @media(max-width: 768px) {
  5318. .fl-node-4giq8syl0e1c.fl-module-heading .fl-heading {
  5319. font-size: 22px;
  5320. }
  5321. }
  5322. @media (max-width: 768px) { .fl-module-icon {
  5323. text-align: center;
  5324. }
  5325. }.fl-node-enzg86lb97s5 .fl-icon i,
  5326. .fl-node-enzg86lb97s5 .fl-icon i:before {
  5327. color: #000000;
  5328. }
  5329.  
  5330.  
  5331.  
  5332.  
  5333. .fl-node-enzg86lb97s5 .fl-icon i, .fl-node-enzg86lb97s5 .fl-icon i:before {
  5334. font-size: 30px;
  5335. }
  5336. .fl-node-enzg86lb97s5 .fl-icon-wrap .fl-icon-text {
  5337. height: 52.5px;
  5338. }
  5339. .fl-node-enzg86lb97s5.fl-module-icon {
  5340. text-align: left;
  5341. }
  5342. @media(max-width: 1200px) {
  5343. .fl-node-enzg86lb97s5 .fl-icon-wrap .fl-icon-text {
  5344. height: 52.5px;
  5345. }
  5346. }
  5347. @media(max-width: 992px) {
  5348. .fl-node-enzg86lb97s5 .fl-icon-wrap .fl-icon-text {
  5349. height: 52.5px;
  5350. }
  5351. }
  5352. @media(max-width: 768px) {
  5353. .fl-node-enzg86lb97s5 .fl-icon-wrap .fl-icon-text {
  5354. height: 52.5px;
  5355. }
  5356. .fl-node-enzg86lb97s5.fl-module-icon {
  5357. text-align: center;
  5358. }
  5359. }
  5360. .fl-builder-content .fl-node-j8ybztfr21vd .fl-module-content .fl-rich-text,
  5361. .fl-builder-content .fl-node-j8ybztfr21vd .fl-module-content .fl-rich-text * {
  5362. color: #000000;
  5363. }
  5364. .fl-builder-content .fl-node-j8ybztfr21vd .fl-rich-text, .fl-builder-content .fl-node-j8ybztfr21vd .fl-rich-text *:not(b, strong) {
  5365. font-family: Poppins, sans-serif;
  5366. font-weight: 300;
  5367. font-size: 17.5px;
  5368. line-height: 1.4;
  5369. letter-spacing: 1.1px;
  5370. }
  5371. @media(max-width: 992px) {
  5372. .fl-builder-content .fl-node-j8ybztfr21vd .fl-rich-text, .fl-builder-content .fl-node-j8ybztfr21vd .fl-rich-text *:not(b, strong) {
  5373. font-size: 16px;
  5374. }
  5375. }
  5376. .fl-node-6dxayc9frv80 .fl-photo {
  5377. text-align: center;
  5378. }
  5379. .fl-node-6dxayc9frv80 .fl-photo-img, .fl-node-6dxayc9frv80 .fl-photo-content {
  5380. width: 350px;
  5381. }
  5382. .fl-node-6dxayc9frv80 > .fl-module-content {
  5383. margin-top:0px;
  5384. margin-bottom:10px;
  5385. }
  5386. .fl-builder-content .fl-node-imgq56byfrkt .fl-module-content .fl-rich-text,
  5387. .fl-builder-content .fl-node-imgq56byfrkt .fl-module-content .fl-rich-text * {
  5388. color: #000000;
  5389. }
  5390. .fl-builder-content .fl-node-imgq56byfrkt .fl-rich-text, .fl-builder-content .fl-node-imgq56byfrkt .fl-rich-text *:not(b, strong) {
  5391. font-family: Poppins, sans-serif;
  5392. font-weight: 300;
  5393. font-size: 18px;
  5394. line-height: 1.4;
  5395. letter-spacing: 1.1px;
  5396. }
  5397. @media(max-width: 992px) {
  5398. .fl-builder-content .fl-node-imgq56byfrkt .fl-rich-text, .fl-builder-content .fl-node-imgq56byfrkt .fl-rich-text *:not(b, strong) {
  5399. font-size: 16px;
  5400. }
  5401. }
  5402. .fl-node-imgq56byfrkt > .fl-module-content {
  5403. margin-top:0px;
  5404. }
  5405. .fl-node-laj5uhzemcs9 .fl-icon i,
  5406. .fl-node-laj5uhzemcs9 .fl-icon i:before {
  5407. color: #000000;
  5408. }
  5409.  
  5410.  
  5411.  
  5412.  
  5413. .fl-node-laj5uhzemcs9 .fl-icon i, .fl-node-laj5uhzemcs9 .fl-icon i:before {
  5414. font-size: 30px;
  5415. }
  5416. .fl-node-laj5uhzemcs9 .fl-icon-wrap .fl-icon-text {
  5417. height: 52.5px;
  5418. }
  5419. .fl-node-laj5uhzemcs9.fl-module-icon {
  5420. text-align: left;
  5421. }
  5422. @media(max-width: 1200px) {
  5423. .fl-node-laj5uhzemcs9 .fl-icon-wrap .fl-icon-text {
  5424. height: 52.5px;
  5425. }
  5426. }
  5427. @media(max-width: 992px) {
  5428. .fl-node-laj5uhzemcs9 .fl-icon-wrap .fl-icon-text {
  5429. height: 52.5px;
  5430. }
  5431. }
  5432. @media(max-width: 768px) {
  5433. .fl-node-laj5uhzemcs9 .fl-icon-wrap .fl-icon-text {
  5434. height: 52.5px;
  5435. }
  5436. .fl-node-laj5uhzemcs9.fl-module-icon {
  5437. text-align: center;
  5438. }
  5439. }
  5440. .fl-node-laj5uhzemcs9 > .fl-module-content {
  5441. margin-top:140px;
  5442. }
  5443. @media (max-width: 768px) { .fl-node-laj5uhzemcs9 > .fl-module-content { margin-top:20px; } }.fl-row .fl-col .fl-node-dhmwp5c43ovb h2.fl-heading a,
  5444. .fl-row .fl-col .fl-node-dhmwp5c43ovb h2.fl-heading .fl-heading-text,
  5445. .fl-row .fl-col .fl-node-dhmwp5c43ovb h2.fl-heading .fl-heading-text *,
  5446. .fl-node-dhmwp5c43ovb h2.fl-heading .fl-heading-text {
  5447. color: #ffffff;
  5448. }
  5449. .fl-node-dhmwp5c43ovb.fl-module-heading .fl-heading {
  5450. font-family: Poppins, sans-serif;
  5451. font-weight: 500;
  5452. font-size: 40px;
  5453. line-height: 1.1;
  5454. letter-spacing: 1.1px;
  5455. text-align: center;
  5456. }
  5457. @media(max-width: 992px) {
  5458. .fl-node-dhmwp5c43ovb.fl-module-heading .fl-heading {
  5459. font-size: 30px;
  5460. }
  5461. }
  5462. @media(max-width: 768px) {
  5463. .fl-node-dhmwp5c43ovb.fl-module-heading .fl-heading {
  5464. font-size: 22px;
  5465. }
  5466. }
  5467. .fl-row .fl-col .fl-node-un4wkv3bdz17 h4.fl-heading a,
  5468. .fl-row .fl-col .fl-node-un4wkv3bdz17 h4.fl-heading .fl-heading-text,
  5469. .fl-row .fl-col .fl-node-un4wkv3bdz17 h4.fl-heading .fl-heading-text *,
  5470. .fl-node-un4wkv3bdz17 h4.fl-heading .fl-heading-text {
  5471. color: #ffffff;
  5472. }
  5473. .fl-node-un4wkv3bdz17.fl-module-heading .fl-heading {
  5474. font-family: Helvetica, Verdana, Arial, sans-serif;
  5475. font-weight: 400;
  5476. font-size: 22px;
  5477. line-height: 1.4;
  5478. letter-spacing: 1.1px;
  5479. text-align: center;
  5480. }
  5481. .fl-node-un4wkv3bdz17 > .fl-module-content {
  5482. margin-top:20px;
  5483. }
  5484. .fl-builder-content .fl-node-nyjp8o6crmq1 .fl-module-content .fl-rich-text,
  5485. .fl-builder-content .fl-node-nyjp8o6crmq1 .fl-module-content .fl-rich-text * {
  5486. color: #ffffff;
  5487. }
  5488. .fl-builder-content .fl-node-nyjp8o6crmq1 .fl-rich-text, .fl-builder-content .fl-node-nyjp8o6crmq1 .fl-rich-text *:not(b, strong) {
  5489. font-family: Helvetica, Verdana, Arial, sans-serif;
  5490. font-weight: 400;
  5491. font-size: 18px;
  5492. line-height: 1.4;
  5493. letter-spacing: 1.1px;
  5494. text-align: center;
  5495. }
  5496. .fl-node-nyjp8o6crmq1 > .fl-module-content {
  5497. margin-top:10px;
  5498. margin-bottom:0px;
  5499. }
  5500. .fl-node-qo8d2mwrbzpj > .fl-module-content {
  5501. margin-top:0px;
  5502. margin-bottom:0px;
  5503. }
  5504. .fl-row .fl-col .fl-node-8b6z7fc2y1i0 h4.fl-heading a,
  5505. .fl-row .fl-col .fl-node-8b6z7fc2y1i0 h4.fl-heading .fl-heading-text,
  5506. .fl-row .fl-col .fl-node-8b6z7fc2y1i0 h4.fl-heading .fl-heading-text *,
  5507. .fl-node-8b6z7fc2y1i0 h4.fl-heading .fl-heading-text {
  5508. color: #ffffff;
  5509. }
  5510. .fl-node-8b6z7fc2y1i0.fl-module-heading .fl-heading {
  5511. font-family: Helvetica, Verdana, Arial, sans-serif;
  5512. font-weight: 400;
  5513. font-size: 22px;
  5514. line-height: 1.4;
  5515. letter-spacing: 1.1px;
  5516. text-align: center;
  5517. }
  5518. .fl-node-8b6z7fc2y1i0 > .fl-module-content {
  5519. margin-top:60px;
  5520. }
  5521. @media (max-width: 768px) { .fl-node-8b6z7fc2y1i0 > .fl-module-content { margin-top:20px; } } .fl-builder-content .fl-node-nxfhz02w8qkv .fl-module-content .fl-rich-text,
  5522. .fl-builder-content .fl-node-nxfhz02w8qkv .fl-module-content .fl-rich-text * {
  5523. color: #ffffff;
  5524. }
  5525. .fl-builder-content .fl-node-nxfhz02w8qkv .fl-rich-text, .fl-builder-content .fl-node-nxfhz02w8qkv .fl-rich-text *:not(b, strong) {
  5526. font-family: Helvetica, Verdana, Arial, sans-serif;
  5527. font-weight: 400;
  5528. font-size: 18px;
  5529. line-height: 1.4;
  5530. letter-spacing: 1.1px;
  5531. text-align: center;
  5532. }
  5533. .fl-node-nxfhz02w8qkv > .fl-module-content {
  5534. margin-top:10px;
  5535. margin-bottom:0px;
  5536. }
  5537. .fl-node-4t5xdhcvrqm2 > .fl-module-content {
  5538. margin-top:0px;
  5539. margin-bottom:0px;
  5540. }
  5541. .fl-row .fl-col .fl-node-tud73nb4y5zx h4.fl-heading a,
  5542. .fl-row .fl-col .fl-node-tud73nb4y5zx h4.fl-heading .fl-heading-text,
  5543. .fl-row .fl-col .fl-node-tud73nb4y5zx h4.fl-heading .fl-heading-text *,
  5544. .fl-node-tud73nb4y5zx h4.fl-heading .fl-heading-text {
  5545. color: #ffffff;
  5546. }
  5547. .fl-node-tud73nb4y5zx.fl-module-heading .fl-heading {
  5548. font-family: Helvetica, Verdana, Arial, sans-serif;
  5549. font-weight: 400;
  5550. font-size: 22px;
  5551. line-height: 1.4;
  5552. letter-spacing: 1.1px;
  5553. text-align: center;
  5554. }
  5555. .fl-node-tud73nb4y5zx > .fl-module-content {
  5556. margin-top:60px;
  5557. }
  5558. @media (max-width: 768px) { .fl-node-tud73nb4y5zx > .fl-module-content { margin-top:20px; } } .fl-builder-content .fl-node-frwinz3amk7b .fl-module-content .fl-rich-text,
  5559. .fl-builder-content .fl-node-frwinz3amk7b .fl-module-content .fl-rich-text * {
  5560. color: #ffffff;
  5561. }
  5562. .fl-builder-content .fl-node-frwinz3amk7b .fl-rich-text, .fl-builder-content .fl-node-frwinz3amk7b .fl-rich-text *:not(b, strong) {
  5563. font-family: Helvetica, Verdana, Arial, sans-serif;
  5564. font-weight: 400;
  5565. font-size: 18px;
  5566. line-height: 1.4;
  5567. letter-spacing: 1.1px;
  5568. text-align: center;
  5569. }
  5570. .fl-node-frwinz3amk7b > .fl-module-content {
  5571. margin-top:10px;
  5572. margin-bottom:0px;
  5573. }
  5574. .fl-node-l8er0xo9bip2 > .fl-module-content {
  5575. margin-top:0px;
  5576. margin-bottom:0px;
  5577. }
  5578. .fl-row .fl-col .fl-node-uv2a1mqlwe7n h2.fl-heading a,
  5579. .fl-row .fl-col .fl-node-uv2a1mqlwe7n h2.fl-heading .fl-heading-text,
  5580. .fl-row .fl-col .fl-node-uv2a1mqlwe7n h2.fl-heading .fl-heading-text *,
  5581. .fl-node-uv2a1mqlwe7n h2.fl-heading .fl-heading-text {
  5582. color: #000000;
  5583. }
  5584. .fl-node-uv2a1mqlwe7n.fl-module-heading .fl-heading {
  5585. font-family: Poppins, sans-serif;
  5586. font-weight: 500;
  5587. font-size: 40px;
  5588. line-height: 1.1;
  5589. text-align: center;
  5590. }
  5591. @media(max-width: 992px) {
  5592. .fl-node-uv2a1mqlwe7n.fl-module-heading .fl-heading {
  5593. font-size: 30px;
  5594. }
  5595. }
  5596. @media(max-width: 768px) {
  5597. .fl-node-uv2a1mqlwe7n.fl-module-heading .fl-heading {
  5598. font-size: 22px;
  5599. }
  5600. }
  5601. .fl-node-uv2a1mqlwe7n > .fl-module-content {
  5602. margin-top:40px;
  5603. }
  5604. @media (max-width: 768px) { .fl-node-uv2a1mqlwe7n > .fl-module-content { margin-top:20px; } }
  5605. .fl-builder-content .fl-node-cjydzigf3lna a.fl-button,
  5606. .fl-builder-content .fl-node-cjydzigf3lna a.fl-button:hover,
  5607. .fl-builder-content .fl-node-cjydzigf3lna a.fl-button:visited {
  5608. background: #f31717;
  5609. }
  5610.  
  5611. .fl-builder-content .fl-node-cjydzigf3lna a.fl-button:hover {
  5612. background-color: #f31717;
  5613. }
  5614.  
  5615.  
  5616.  
  5617.  
  5618.  
  5619.  
  5620.  
  5621.  
  5622.  
  5623.  
  5624.  
  5625.  
  5626.  
  5627. .fl-node-cjydzigf3lna .fl-button-wrap {
  5628. text-align: center;
  5629. }
  5630. .fl-builder-content .fl-node-cjydzigf3lna .fl-button-wrap a.fl-button {
  5631. padding-top: 20px;
  5632. padding-bottom: 20px;
  5633. }
  5634. .fl-builder-content .fl-node-cjydzigf3lna a.fl-button, .fl-builder-content .fl-node-cjydzigf3lna a.fl-button:visited {
  5635. font-family: Poppins, sans-serif;
  5636. font-weight: 500;
  5637. font-size: 22px;
  5638. letter-spacing: 1.1px;
  5639. border: 1px solid #e70b0b;
  5640. border-top-left-radius: 10px;
  5641. border-top-right-radius: 10px;
  5642. border-bottom-left-radius: 10px;
  5643. border-bottom-right-radius: 10px;
  5644. }
  5645. .fl-builder-content .fl-node-cjydzigf3lna a.fl-button:hover, .fl-builder-content .fl-node-cjydzigf3lna a.fl-button:focus {
  5646. border: 1px solid #e70b0b;
  5647. border-top-left-radius: 10px;
  5648. border-top-right-radius: 10px;
  5649. border-bottom-left-radius: 10px;
  5650. border-bottom-right-radius: 10px;
  5651. }
  5652. @media(max-width: 768px) {
  5653. .fl-builder-content .fl-node-cjydzigf3lna .fl-button-wrap a.fl-button {
  5654. padding-top: 15px;
  5655. padding-right: 15px;
  5656. padding-bottom: 15px;
  5657. padding-left: 15px;
  5658. }
  5659. .fl-builder-content .fl-node-cjydzigf3lna a.fl-button, .fl-builder-content .fl-node-cjydzigf3lna a.fl-button:visited {
  5660. font-size: 16px;
  5661. }
  5662. }
  5663. .fl-node-cjydzigf3lna > .fl-module-content {
  5664. margin-bottom:10px;
  5665. }
  5666. .fl-row .fl-col .fl-node-k63ltzcbxvm4 h6.fl-heading a,
  5667. .fl-row .fl-col .fl-node-k63ltzcbxvm4 h6.fl-heading .fl-heading-text,
  5668. .fl-row .fl-col .fl-node-k63ltzcbxvm4 h6.fl-heading .fl-heading-text *,
  5669. .fl-node-k63ltzcbxvm4 h6.fl-heading .fl-heading-text {
  5670. color: #000000;
  5671. }
  5672. .fl-node-k63ltzcbxvm4.fl-module-heading .fl-heading {
  5673. font-family: Poppins, sans-serif;
  5674. font-weight: 400;
  5675. font-size: 15px;
  5676. letter-spacing: 1.1px;
  5677. text-align: center;
  5678. }
  5679. @media(max-width: 768px) {
  5680. .fl-node-k63ltzcbxvm4.fl-module-heading .fl-heading {
  5681. font-size: 16px;
  5682. }
  5683. }
  5684. .fl-node-k63ltzcbxvm4 > .fl-module-content {
  5685. margin-top:0px;
  5686. }
  5687. /* Generic Styles */
  5688. .fl-module-post-grid .fl-sep {
  5689. display: inline-block;
  5690. margin: 0 2px;
  5691. }
  5692.  
  5693. /* Post Columns */
  5694. body.rtl .fl-post-column {
  5695. float: right;
  5696. }
  5697. .fl-post-column {
  5698. float: left;
  5699. }
  5700. .fl-post-column .fl-post-grid-post {
  5701. visibility: visible;
  5702. }
  5703.  
  5704. /* Post Grid */
  5705. .fl-post-grid {
  5706. margin: 0 auto;
  5707. position: relative;
  5708. }
  5709. .fl-post-grid:before,
  5710. .fl-post-grid:after {
  5711. display: table;
  5712. content: " ";
  5713. }
  5714. .fl-post-grid:after {
  5715. clear: both;
  5716. }
  5717. .fl-post-grid-post {
  5718. background: #fff;
  5719. border: 1px solid #e6e6e6;
  5720. visibility: hidden;
  5721. }
  5722. .fl-post-grid-post,
  5723. .fl-post-feed-post {
  5724. overflow: hidden;
  5725. }
  5726.  
  5727. .fl-post-grid-image {
  5728. position: relative;
  5729. }
  5730. .fl-post-grid-image img {
  5731. height: auto !important;
  5732. width: 100% !important;
  5733. }
  5734. .fl-post-grid-text {
  5735. padding: 20px;
  5736. }
  5737. .fl-post-grid-title {
  5738. padding-bottom: 7px;
  5739. }
  5740. body .fl-post-grid-text,
  5741. body .fl-post-grid-content p {
  5742. font-size: 14px;
  5743. line-height: 22px;
  5744. }
  5745. body .fl-post-grid-text > *:last-child {
  5746. margin-bottom: 0;
  5747. padding-bottom: 0;
  5748. }
  5749. body .fl-post-grid-content p:last-of-type {
  5750. margin-bottom: 0;
  5751. padding-bottom: 0;
  5752. }
  5753. body .fl-post-grid-text a {
  5754. text-decoration: none;
  5755. }
  5756. body .fl-post-grid-title {
  5757. font-size: 20px;
  5758. line-height: 26px;
  5759. margin: 0 0 10px;
  5760. padding: 0;
  5761. }
  5762. body .fl-post-grid-meta {
  5763. font-size: 14px;
  5764. padding-bottom: 10px;
  5765. }
  5766. .fl-post-feed-comments .fa {
  5767. vertical-align: text-top;
  5768. }
  5769. .fl-post-grid-more {
  5770. margin-top: 10px;
  5771. display: inline-block;
  5772. }
  5773. .fl-post-grid #infscr-loading {
  5774. bottom: 0;
  5775. left: 0;
  5776. right: 0;
  5777. padding: 40px 0;
  5778. position: absolute;
  5779. text-align: center;
  5780. width: 100%;
  5781. }
  5782.  
  5783. /* Post Gallery */
  5784. .fl-post-gallery-post {
  5785. overflow: hidden;
  5786. position: relative;
  5787. visibility: hidden;
  5788. }
  5789. .fl-post-gallery-link {
  5790. display: block;
  5791. height: 100%;
  5792. }
  5793. .fl-post-gallery-img {
  5794. position: relative;
  5795. z-index: 1;
  5796. }
  5797. .fl-post-gallery-img-horiz {
  5798. height: 100% !important;
  5799. max-height: 100% !important;
  5800. max-width: none !important;
  5801. width: auto !important;
  5802. }
  5803. .fl-post-gallery-img-vert {
  5804. height: auto !important;
  5805. max-height: none !important;
  5806. max-width: 100% !important;
  5807. width: 100% !important;
  5808. }
  5809. .fl-post-gallery-text-wrap {
  5810. position: absolute;
  5811. top: 0;
  5812. bottom: 0;
  5813. z-index: 2;
  5814. width: 100%;
  5815. height: 100%;
  5816. padding: 0 20px;
  5817. text-align: center;
  5818. filter: alpha(opacity = 0);
  5819. opacity: 0;
  5820. -webkit-transition: all 0.3s;
  5821.   -moz-transition: all 0.3s;
  5822.    -ms-transition: all 0.3s;
  5823.        transition: all 0.3s;
  5824. }
  5825.  
  5826. .fl-post-gallery-link:hover .fl-post-gallery-text-wrap {
  5827. filter: alpha(opacity = 100);
  5828. opacity: 1;
  5829. }
  5830.  
  5831. .fl-post-gallery-text {
  5832. position: absolute;
  5833. top: 50%;
  5834. left: 50%;
  5835. display: block;
  5836. width: 100%;
  5837. -webkit-transition: all 0.3s;
  5838.   -moz-transition: all 0.3s;
  5839.    -ms-transition: all 0.3s;
  5840.        transition: all 0.3s;
  5841. }
  5842.  
  5843. /* Gallery Transitions */
  5844. .fl-post-gallery-text,
  5845. .fl-post-gallery-link:hover .fl-post-gallery-text{
  5846. -webkit-transform: translate3d(-50%,-50%,0);
  5847.   -moz-transform: translate3d(-50%,-50%,0);
  5848.    -ms-transform: translate(-50%,-50%);
  5849. transform: translate3d(-50%,-50%,0);
  5850. }
  5851.  
  5852. /* Gallery Icons */
  5853. .fl-post-gallery-text .fl-gallery-icon{
  5854. display: block;
  5855. margin-left: auto;
  5856. margin-right: auto;
  5857. text-align: center;
  5858. }
  5859. .fl-post-gallery-text .fl-gallery-icon i,
  5860. .fl-post-gallery-text .fl-gallery-icon i:before{
  5861. width: 24px;
  5862. height: 24px;
  5863. font-size: 24px;
  5864. }
  5865.  
  5866. .fl-post-gallery-text h2.fl-post-gallery-title {
  5867. font-size: 22px;
  5868. margin: 0 0 5px 0;
  5869. }
  5870. .fl-post-gallery #infscr-loading {
  5871. clear: both;
  5872. padding: 40px 0;
  5873. text-align: center;
  5874. width: 100%;
  5875. }
  5876.  
  5877. /* Post Feed */
  5878. .fl-post-feed-post {
  5879. border-bottom: 1px solid #e6e6e6;
  5880. margin-bottom: 40px;
  5881. }
  5882. .fl-post-feed-post:last-child {
  5883. border-bottom: none;
  5884. margin-bottom: 0;
  5885. padding-bottom: 0;
  5886. }
  5887. .fl-post-feed-header {
  5888. margin-bottom: 20px;
  5889. }
  5890. .fl-post-feed-header a {
  5891. text-decoration: none;
  5892. }
  5893. body h2.fl-post-feed-title {
  5894. margin: 0 0 10px;
  5895. padding: 0;
  5896. clear: none;
  5897. }
  5898. body .fl-post-feed-meta {
  5899. font-size: 14px;
  5900. margin-bottom: 5px;
  5901. }
  5902. .fl-post-feed-meta .fl-sep {
  5903. margin: 0 3px;
  5904. }
  5905. .fl-post-feed-image {
  5906. margin-bottom: 25px;
  5907. position: relative;
  5908. }
  5909. .fl-post-feed-image img {
  5910. height: auto !important;
  5911. width: 100% !important;
  5912. }
  5913. .fl-post-feed-image-beside .fl-post-feed-image,
  5914. .fl-post-feed-image-beside-content .fl-post-feed-image {
  5915. float: left;
  5916. margin-bottom: 0;
  5917. width: 33%;
  5918. }
  5919. .fl-post-feed-image-beside .fl-post-feed-text,
  5920. .fl-post-feed-image-beside-content .fl-post-feed-text {
  5921. margin-left: 37%;
  5922. }
  5923. .fl-post-feed-image-beside-right .fl-post-feed-image,
  5924. .fl-post-feed-image-beside-content-right .fl-post-feed-image {
  5925. float: right;
  5926. margin-bottom: 0;
  5927. width: 33%;
  5928. }
  5929. .fl-post-feed-image-beside-right .fl-post-feed-text,
  5930. .fl-post-feed-image-beside-content-right .fl-post-feed-text {
  5931. margin-right: 37%;
  5932. }
  5933. .fl-post-feed-content a {
  5934. text-decoration: none;
  5935. }
  5936. .fl-post-feed-content p:last-of-type {
  5937. margin-bottom: 0;
  5938. padding-bottom: 0;
  5939. }
  5940. .fl-post-feed-more {
  5941. margin-top: 15px;
  5942. display: inline-block;
  5943. }
  5944. .fl-post-feed #infscr-loading {
  5945. padding: 40px 0;
  5946. text-align: center;
  5947. width: 100%;
  5948. }
  5949.  
  5950. /* No posts message */
  5951. .fl-post-grid-empty {
  5952. }
  5953.  
  5954. li.fl-post-feed-post,li.fl-post-gallery-post, li.fl-post-grid-post {
  5955. list-style: none;
  5956. }
  5957. @media (max-width: 768px) { /* Post Feed */
  5958. .fl-post-feed-post.fl-post-feed-image-beside,
  5959. .fl-post-feed-post.fl-post-feed-image-beside-content,
  5960. .fl-post-feed-post.fl-post-feed-image-beside-right,
  5961. .fl-post-feed-post.fl-post-feed-image-beside-content-right {
  5962. max-width: 300px;
  5963. margin-left: auto;
  5964. margin-right: auto;
  5965. }
  5966. .fl-post-feed-image-beside .fl-post-feed-image,
  5967. .fl-post-feed-image-beside .fl-post-feed-image img,
  5968. .fl-post-feed-image-beside-content .fl-post-feed-image,
  5969. .fl-post-feed-image-beside-content .fl-post-feed-image img,
  5970. .fl-post-feed-image-beside-right .fl-post-feed-image,
  5971. .fl-post-feed-image-beside-right .fl-post-feed-image img,
  5972. .fl-post-feed-image-beside-content-right .fl-post-feed-image,
  5973. .fl-post-feed-image-beside-content-right .fl-post-feed-image img {
  5974. float: none;
  5975. width: 100% !important;
  5976. }
  5977. .fl-post-feed-image-beside .fl-post-feed-image,
  5978. .fl-post-feed-image-beside-content .fl-post-feed-image,
  5979. .fl-post-feed-image-beside-right .fl-post-feed-image,
  5980. .fl-post-feed-image-beside-content-right .fl-post-feed-image {
  5981. margin-bottom: 20px;
  5982. }
  5983. .fl-post-feed-image-beside .fl-post-feed-text,
  5984. .fl-post-feed-image-beside-content .fl-post-feed-text,
  5985. .fl-post-feed-image-beside-right .fl-post-feed-text,
  5986. .fl-post-feed-image-beside-content-right .fl-post-feed-text {
  5987. margin-left: 0 !important;
  5988. margin-right: 0 !important;
  5989. }
  5990. }.fl-node-s0mh1z5teapq div.fl-post-grid-post {
  5991. margin-bottom: 60px;
  5992. width: 340px;
  5993. }
  5994. .fl-node-s0mh1z5teapq .fl-post-grid-sizer {
  5995. width: 340px;
  5996. }
  5997. @media screen and (max-width: 400px) {
  5998. .fl-node-s0mh1z5teapq .fl-post-grid,
  5999. .fl-node-s0mh1z5teapq .fl-post-grid-post,
  6000. .fl-node-s0mh1z5teapq .fl-post-grid-sizer {
  6001. width: 100% !important;
  6002. }
  6003. }
  6004.  
  6005. .fl-node-s0mh1z5teapq .fl-post-grid-post {
  6006.  
  6007. }
  6008.  
  6009. .fl-node-s0mh1z5teapq .fl-post-grid-text {
  6010. padding: 20px;
  6011. }
  6012.  
  6013.  
  6014.  
  6015.  
  6016.  
  6017.  
  6018.  
  6019.  
  6020. .fl-node-s0mh1z5teapq > .fl-module-content {
  6021. margin-top:0px;
  6022. margin-bottom:0px;
  6023. }
  6024.  
  6025. .fl-builder-content .fl-node-kd9msnt7qajo a.fl-button,
  6026. .fl-builder-content .fl-node-kd9msnt7qajo a.fl-button:hover,
  6027. .fl-builder-content .fl-node-kd9msnt7qajo a.fl-button:visited {
  6028. background: #f31717;
  6029. }
  6030.  
  6031. .fl-builder-content .fl-node-kd9msnt7qajo a.fl-button:hover {
  6032. background-color: #f31717;
  6033. }
  6034.  
  6035.  
  6036.  
  6037.  
  6038.  
  6039.  
  6040.  
  6041.  
  6042.  
  6043.  
  6044.  
  6045.  
  6046.  
  6047. .fl-node-kd9msnt7qajo .fl-button-wrap {
  6048. text-align: center;
  6049. }
  6050. .fl-builder-content .fl-node-kd9msnt7qajo .fl-button-wrap a.fl-button {
  6051. padding-top: 20px;
  6052. padding-bottom: 20px;
  6053. }
  6054. .fl-builder-content .fl-node-kd9msnt7qajo a.fl-button, .fl-builder-content .fl-node-kd9msnt7qajo a.fl-button:visited {
  6055. font-family: Poppins, sans-serif;
  6056. font-weight: 500;
  6057. font-size: 22px;
  6058. letter-spacing: 1.1px;
  6059. border: 1px solid #e70b0b;
  6060. border-top-left-radius: 10px;
  6061. border-top-right-radius: 10px;
  6062. border-bottom-left-radius: 10px;
  6063. border-bottom-right-radius: 10px;
  6064. }
  6065. .fl-builder-content .fl-node-kd9msnt7qajo a.fl-button:hover, .fl-builder-content .fl-node-kd9msnt7qajo a.fl-button:focus {
  6066. border: 1px solid #e70b0b;
  6067. border-top-left-radius: 10px;
  6068. border-top-right-radius: 10px;
  6069. border-bottom-left-radius: 10px;
  6070. border-bottom-right-radius: 10px;
  6071. }
  6072. @media(max-width: 768px) {
  6073. .fl-builder-content .fl-node-kd9msnt7qajo .fl-button-wrap a.fl-button {
  6074. padding-top: 15px;
  6075. padding-right: 15px;
  6076. padding-bottom: 15px;
  6077. padding-left: 15px;
  6078. }
  6079. .fl-builder-content .fl-node-kd9msnt7qajo a.fl-button, .fl-builder-content .fl-node-kd9msnt7qajo a.fl-button:visited {
  6080. font-size: 16px;
  6081. }
  6082. }
  6083. .fl-node-kd9msnt7qajo > .fl-module-content {
  6084. margin-top:0px;
  6085. margin-bottom:60px;
  6086. }
  6087. @media (max-width: 768px) { .fl-node-kd9msnt7qajo > .fl-module-content { margin-bottom:20px; } } .fl-node-apy2qifcxmk8 > .fl-module-content {
  6088. margin-top:0px;
  6089. margin-right:0px;
  6090. margin-bottom:0px;
  6091. margin-left:0px;
  6092. }
  6093. .fl-node-agky1pq8zxfi .fl-photo {
  6094. text-align: left;
  6095. }
  6096. .fl-node-agky1pq8zxfi .fl-photo-img, .fl-node-agky1pq8zxfi .fl-photo-content {
  6097. width: 140px;
  6098. }
  6099. @media(max-width: 768px) {
  6100. .fl-node-agky1pq8zxfi .fl-photo {
  6101. text-align: center;
  6102. }
  6103. }
  6104. .fl-node-agky1pq8zxfi > .fl-module-content {
  6105. margin-top:5px;
  6106. }
  6107. .fl-builder-content .fl-node-v0y8bul1nwf5 .fl-module-content .fl-rich-text,
  6108. .fl-builder-content .fl-node-v0y8bul1nwf5 .fl-module-content .fl-rich-text * {
  6109. color: #ffffff;
  6110. }
  6111. .fl-builder-content .fl-node-v0y8bul1nwf5 .fl-rich-text, .fl-builder-content .fl-node-v0y8bul1nwf5 .fl-rich-text *:not(b, strong) {
  6112. font-family: Oswald, sans-serif;
  6113. font-weight: 300;
  6114. font-size: 16px;
  6115. line-height: 1.4;
  6116. letter-spacing: 1.1px;
  6117. }
  6118. @media(max-width: 768px) {
  6119. .fl-builder-content .fl-node-v0y8bul1nwf5 .fl-rich-text, .fl-builder-content .fl-node-v0y8bul1nwf5 .fl-rich-text *:not(b, strong) {
  6120. text-align: center;
  6121. }
  6122. }
  6123. .fl-node-v0y8bul1nwf5 > .fl-module-content {
  6124. margin-top:5px;
  6125. }
  6126. .fl-builder-content .fl-node-7692tdu1ro03 .fl-module-content .fl-rich-text,
  6127. .fl-builder-content .fl-node-7692tdu1ro03 .fl-module-content .fl-rich-text * {
  6128. color: #ffffff;
  6129. }
  6130. .fl-builder-content .fl-node-7692tdu1ro03 .fl-rich-text, .fl-builder-content .fl-node-7692tdu1ro03 .fl-rich-text *:not(b, strong) {
  6131. font-size: 16px;
  6132. line-height: 1.4em;
  6133. letter-spacing: 1.1px;
  6134. text-align: left;
  6135. }
  6136. @media(max-width: 768px) {
  6137. .fl-builder-content .fl-node-7692tdu1ro03 .fl-rich-text, .fl-builder-content .fl-node-7692tdu1ro03 .fl-rich-text *:not(b, strong) {
  6138. text-align: center;
  6139. }
  6140. }
  6141. .fl-node-7692tdu1ro03 > .fl-module-content {
  6142. margin-top:50px;
  6143. }
  6144. @media (max-width: 768px) { .fl-node-7692tdu1ro03 > .fl-module-content { margin-top:20px; } } .fl-builder-content .fl-node-1qodn7jf6bpa .fl-module-content .fl-rich-text,
  6145. .fl-builder-content .fl-node-1qodn7jf6bpa .fl-module-content .fl-rich-text * {
  6146. color: #ffffff;
  6147. }
  6148. .fl-builder-content .fl-node-1qodn7jf6bpa .fl-rich-text, .fl-builder-content .fl-node-1qodn7jf6bpa .fl-rich-text *:not(b, strong) {
  6149. font-size: 16px;
  6150. line-height: 1.4em;
  6151. letter-spacing: 1.1px;
  6152. text-align: left;
  6153. }
  6154. @media(max-width: 768px) {
  6155. .fl-builder-content .fl-node-1qodn7jf6bpa .fl-rich-text, .fl-builder-content .fl-node-1qodn7jf6bpa .fl-rich-text *:not(b, strong) {
  6156. text-align: center;
  6157. }
  6158. }
  6159. .fl-node-1qodn7jf6bpa > .fl-module-content {
  6160. margin-top:50px;
  6161. }
  6162. @media (max-width: 768px) { .fl-node-1qodn7jf6bpa > .fl-module-content { margin-top:20px; } } .fl-builder-content .fl-node-rc75bvu9jd10 .fl-module-content .fl-rich-text,
  6163. .fl-builder-content .fl-node-rc75bvu9jd10 .fl-module-content .fl-rich-text * {
  6164. color: #ffffff;
  6165. }
  6166. .fl-builder-content .fl-node-rc75bvu9jd10 .fl-rich-text, .fl-builder-content .fl-node-rc75bvu9jd10 .fl-rich-text *:not(b, strong) {
  6167. font-size: 16px;
  6168. line-height: 1.4em;
  6169. letter-spacing: 1.1px;
  6170. text-align: left;
  6171. }
  6172. @media(max-width: 768px) {
  6173. .fl-builder-content .fl-node-rc75bvu9jd10 .fl-rich-text, .fl-builder-content .fl-node-rc75bvu9jd10 .fl-rich-text *:not(b, strong) {
  6174. text-align: center;
  6175. }
  6176. }
  6177. .fl-node-rc75bvu9jd10 > .fl-module-content {
  6178. margin-top:0px;
  6179. margin-bottom:0px;
  6180. }
  6181. .fl-builder-content .fl-node-uosp64zqrnwt .fl-icon-wrap .fl-icon-text,
  6182. .fl-builder-content .fl-node-uosp64zqrnwt .fl-icon-wrap .fl-icon-text * {
  6183. color: #ffffff;
  6184. }
  6185. .fl-node-uosp64zqrnwt .fl-icon i,
  6186. .fl-node-uosp64zqrnwt .fl-icon i:before {
  6187. color: #ffffff;
  6188. }
  6189.  
  6190.  
  6191.  
  6192. .fl-node-uosp64zqrnwt .fl-icon i:hover,
  6193. .fl-node-uosp64zqrnwt .fl-icon i:hover:before,
  6194. .fl-node-uosp64zqrnwt .fl-icon a:hover i,
  6195. .fl-node-uosp64zqrnwt .fl-icon a:hover i:before {
  6196. color: #ffffff;
  6197. }
  6198.  
  6199. .fl-node-uosp64zqrnwt .fl-icon i, .fl-node-uosp64zqrnwt .fl-icon i:before {
  6200. font-size: 20px;
  6201. }
  6202. .fl-node-uosp64zqrnwt .fl-icon-wrap .fl-icon-text {
  6203. height: 35px;
  6204. }
  6205. .fl-node-uosp64zqrnwt.fl-module-icon {
  6206. text-align: left;
  6207. }
  6208. .fl-builder-content .fl-node-uosp64zqrnwt .fl-icon-wrap .fl-icon-text, .fl-builder-content .fl-node-uosp64zqrnwt .fl-icon-wrap .fl-icon-text-link * {
  6209. color: #ffffff;
  6210. }
  6211. .fl-node-uosp64zqrnwt .fl-icon-text, .fl-node-uosp64zqrnwt .fl-icon-text-link {
  6212. font-family: Oswald, sans-serif;
  6213. font-weight: 300;
  6214. font-size: 16px;
  6215. line-height: 1.4em;
  6216. letter-spacing: 1.1px;
  6217. }
  6218. @media(max-width: 1200px) {
  6219. .fl-node-uosp64zqrnwt .fl-icon-wrap .fl-icon-text {
  6220. height: 35px;
  6221. }
  6222. }
  6223. @media(max-width: 992px) {
  6224. .fl-node-uosp64zqrnwt .fl-icon-wrap .fl-icon-text {
  6225. height: 35px;
  6226. }
  6227. }
  6228. @media(max-width: 768px) {
  6229. .fl-node-uosp64zqrnwt .fl-icon-wrap .fl-icon-text {
  6230. height: 35px;
  6231. }
  6232. .fl-node-uosp64zqrnwt.fl-module-icon {
  6233. text-align: center;
  6234. }
  6235. }
  6236. .fl-node-uosp64zqrnwt > .fl-module-content {
  6237. margin-top:0px;
  6238. margin-bottom:0px;
  6239. }
  6240. .fl-builder-content .fl-node-0j2b863nwzpa .fl-icon-wrap .fl-icon-text,
  6241. .fl-builder-content .fl-node-0j2b863nwzpa .fl-icon-wrap .fl-icon-text * {
  6242. color: #ffffff;
  6243. }
  6244. .fl-node-0j2b863nwzpa .fl-icon i,
  6245. .fl-node-0j2b863nwzpa .fl-icon i:before {
  6246. color: #ffffff;
  6247. }
  6248.  
  6249.  
  6250.  
  6251. .fl-node-0j2b863nwzpa .fl-icon i:hover,
  6252. .fl-node-0j2b863nwzpa .fl-icon i:hover:before,
  6253. .fl-node-0j2b863nwzpa .fl-icon a:hover i,
  6254. .fl-node-0j2b863nwzpa .fl-icon a:hover i:before {
  6255. color: #ffffff;
  6256. }
  6257.  
  6258. .fl-node-0j2b863nwzpa .fl-icon i, .fl-node-0j2b863nwzpa .fl-icon i:before {
  6259. font-size: 20px;
  6260. }
  6261. .fl-node-0j2b863nwzpa .fl-icon-wrap .fl-icon-text {
  6262. height: 35px;
  6263. }
  6264. .fl-node-0j2b863nwzpa.fl-module-icon {
  6265. text-align: left;
  6266. }
  6267. .fl-builder-content .fl-node-0j2b863nwzpa .fl-icon-wrap .fl-icon-text, .fl-builder-content .fl-node-0j2b863nwzpa .fl-icon-wrap .fl-icon-text-link * {
  6268. color: #ffffff;
  6269. }
  6270. .fl-node-0j2b863nwzpa .fl-icon-text, .fl-node-0j2b863nwzpa .fl-icon-text-link {
  6271. font-family: Oswald, sans-serif;
  6272. font-weight: 300;
  6273. font-size: 16px;
  6274. line-height: 1.4em;
  6275. letter-spacing: 1.1px;
  6276. }
  6277. @media(max-width: 1200px) {
  6278. .fl-node-0j2b863nwzpa .fl-icon-wrap .fl-icon-text {
  6279. height: 35px;
  6280. }
  6281. }
  6282. @media(max-width: 992px) {
  6283. .fl-node-0j2b863nwzpa .fl-icon-wrap .fl-icon-text {
  6284. height: 35px;
  6285. }
  6286. }
  6287. @media(max-width: 768px) {
  6288. .fl-node-0j2b863nwzpa .fl-icon-wrap .fl-icon-text {
  6289. height: 35px;
  6290. }
  6291. .fl-node-0j2b863nwzpa.fl-module-icon {
  6292. text-align: center;
  6293. }
  6294. }
  6295. .fl-node-0j2b863nwzpa > .fl-module-content {
  6296. margin-top:3px;
  6297. margin-bottom:0px;
  6298. }
  6299. .fl-builder-content .fl-node-m3orpzjw7qcy .fl-icon-wrap .fl-icon-text,
  6300. .fl-builder-content .fl-node-m3orpzjw7qcy .fl-icon-wrap .fl-icon-text * {
  6301. color: #ffffff;
  6302. }
  6303. .fl-node-m3orpzjw7qcy .fl-icon i,
  6304. .fl-node-m3orpzjw7qcy .fl-icon i:before {
  6305. color: #ffffff;
  6306. }
  6307.  
  6308.  
  6309.  
  6310. .fl-node-m3orpzjw7qcy .fl-icon i:hover,
  6311. .fl-node-m3orpzjw7qcy .fl-icon i:hover:before,
  6312. .fl-node-m3orpzjw7qcy .fl-icon a:hover i,
  6313. .fl-node-m3orpzjw7qcy .fl-icon a:hover i:before {
  6314. color: #ffffff;
  6315. }
  6316.  
  6317. .fl-node-m3orpzjw7qcy .fl-icon i, .fl-node-m3orpzjw7qcy .fl-icon i:before {
  6318. font-size: 20px;
  6319. }
  6320. .fl-node-m3orpzjw7qcy .fl-icon-wrap .fl-icon-text {
  6321. height: 35px;
  6322. }
  6323. .fl-node-m3orpzjw7qcy.fl-module-icon {
  6324. text-align: left;
  6325. }
  6326. .fl-builder-content .fl-node-m3orpzjw7qcy .fl-icon-wrap .fl-icon-text, .fl-builder-content .fl-node-m3orpzjw7qcy .fl-icon-wrap .fl-icon-text-link * {
  6327. color: #ffffff;
  6328. }
  6329. .fl-node-m3orpzjw7qcy .fl-icon-text, .fl-node-m3orpzjw7qcy .fl-icon-text-link {
  6330. font-family: Oswald, sans-serif;
  6331. font-weight: 300;
  6332. font-size: 16px;
  6333. line-height: 1.4em;
  6334. letter-spacing: 1.1px;
  6335. }
  6336. @media(max-width: 1200px) {
  6337. .fl-node-m3orpzjw7qcy .fl-icon-wrap .fl-icon-text {
  6338. height: 35px;
  6339. }
  6340. }
  6341. @media(max-width: 992px) {
  6342. .fl-node-m3orpzjw7qcy .fl-icon-wrap .fl-icon-text {
  6343. height: 35px;
  6344. }
  6345. }
  6346. @media(max-width: 768px) {
  6347. .fl-node-m3orpzjw7qcy .fl-icon-wrap .fl-icon-text {
  6348. height: 35px;
  6349. }
  6350. .fl-node-m3orpzjw7qcy.fl-module-icon {
  6351. text-align: center;
  6352. }
  6353. }
  6354. .fl-node-m3orpzjw7qcy > .fl-module-content {
  6355. margin-top:0px;
  6356. margin-bottom:0px;
  6357. }
  6358. .fl-builder-content .fl-node-ga3fq79eb8tj .fl-icon-wrap .fl-icon-text,
  6359. .fl-builder-content .fl-node-ga3fq79eb8tj .fl-icon-wrap .fl-icon-text * {
  6360. color: #ffffff;
  6361. }
  6362. .fl-node-ga3fq79eb8tj .fl-icon i,
  6363. .fl-node-ga3fq79eb8tj .fl-icon i:before {
  6364. color: #ffffff;
  6365. }
  6366.  
  6367.  
  6368.  
  6369. .fl-node-ga3fq79eb8tj .fl-icon i:hover,
  6370. .fl-node-ga3fq79eb8tj .fl-icon i:hover:before,
  6371. .fl-node-ga3fq79eb8tj .fl-icon a:hover i,
  6372. .fl-node-ga3fq79eb8tj .fl-icon a:hover i:before {
  6373. color: #ffffff;
  6374. }
  6375.  
  6376. .fl-node-ga3fq79eb8tj .fl-icon i, .fl-node-ga3fq79eb8tj .fl-icon i:before {
  6377. font-size: 20px;
  6378. }
  6379. .fl-node-ga3fq79eb8tj .fl-icon-wrap .fl-icon-text {
  6380. height: 35px;
  6381. }
  6382. .fl-node-ga3fq79eb8tj.fl-module-icon {
  6383. text-align: left;
  6384. }
  6385. .fl-builder-content .fl-node-ga3fq79eb8tj .fl-icon-wrap .fl-icon-text, .fl-builder-content .fl-node-ga3fq79eb8tj .fl-icon-wrap .fl-icon-text-link * {
  6386. color: #ffffff;
  6387. }
  6388. .fl-node-ga3fq79eb8tj .fl-icon-text, .fl-node-ga3fq79eb8tj .fl-icon-text-link {
  6389. font-family: Oswald, sans-serif;
  6390. font-weight: 300;
  6391. font-size: 16px;
  6392. line-height: 1.4em;
  6393. letter-spacing: 1.1px;
  6394. }
  6395. @media(max-width: 1200px) {
  6396. .fl-node-ga3fq79eb8tj .fl-icon-wrap .fl-icon-text {
  6397. height: 35px;
  6398. }
  6399. }
  6400. @media(max-width: 992px) {
  6401. .fl-node-ga3fq79eb8tj .fl-icon-wrap .fl-icon-text {
  6402. height: 35px;
  6403. }
  6404. }
  6405. @media(max-width: 768px) {
  6406. .fl-node-ga3fq79eb8tj .fl-icon-wrap .fl-icon-text {
  6407. height: 35px;
  6408. }
  6409. .fl-node-ga3fq79eb8tj.fl-module-icon {
  6410. text-align: center;
  6411. }
  6412. }
  6413. .fl-node-ga3fq79eb8tj > .fl-module-content {
  6414. margin-top:0px;
  6415. margin-bottom:0px;
  6416. }
  6417. .fl-builder-content .fl-node-5d9b23ebee65a .fl-module-content .fl-rich-text,
  6418. .fl-builder-content .fl-node-5d9b23ebee65a .fl-module-content .fl-rich-text * {
  6419. color: #000000;
  6420. }
  6421. .fl-builder-content .fl-node-5d9b23ebee65a .fl-rich-text, .fl-builder-content .fl-node-5d9b23ebee65a .fl-rich-text *:not(b, strong) {
  6422. font-family: Poppins, sans-serif;
  6423. font-weight: 400;
  6424. font-size: 10px;
  6425. letter-spacing: 1.1px;
  6426. }
  6427. @media(max-width: 768px) {
  6428. .fl-builder-content .fl-node-5d9b23ebee65a .fl-rich-text, .fl-builder-content .fl-node-5d9b23ebee65a .fl-rich-text *:not(b, strong) {
  6429. text-align: center;
  6430. }
  6431. }
  6432. .fl-node-5d9b23ebee65a > .fl-module-content {
  6433. margin-bottom:5px;
  6434. }
  6435.  
  6436. /* Start Global CSS */
  6437.  
  6438. /* End Global CSS */
  6439.  
  6440.  
  6441. /* Start Global Nodes CSS */
  6442.  
  6443. /* End Global Nodes CSS */
  6444.  
  6445.  
  6446. /* Start Layout CSS */
  6447. .body-sup-tm {
  6448.    top: -5px !important;
  6449. }
  6450. .free-trial-button {
  6451.    background: #f31717 !important;
  6452. }
  6453. @media only screen and (max-width: 768px) {
  6454. .floating-soc {
  6455. display: none !important;
  6456. }
  6457. #menu-linktek {
  6458.    background: #000 !important;
  6459.    padding:20px 10px;
  6460. }
  6461. }
  6462. @media only screen and (min-width: 769px) {
  6463. .floating-soc {
  6464. position: fixed;
  6465. display: grid;
  6466. top: 300px;
  6467. left: 5px;
  6468. }
  6469. .footer-social {
  6470. margin-bottom: 10px;
  6471. background: #29a6dd;
  6472. border-radius: 5px;
  6473. box-shadow: 0px 10px 15px #0006;
  6474. }
  6475. }
  6476. h1, h2, h3, h4, h5, p {
  6477. line-height: 1.4em !important;
  6478. letter-spacing: 1.1px !important;
  6479. }
  6480. .fl-node-60f7f69acdbb1 > .fl-col-content {
  6481. border-top-right-radius: 0px !important;
  6482. }
  6483. .fl-builder-content {
  6484. background: #fff;
  6485. }
  6486. .header-click-to-call {
  6487. display: none !important;
  6488. }
  6489. .black-image {
  6490. filter: brightness(0) invert(1);
  6491. }
  6492. span.custom-em-dash {
  6493. font-size: 45px;
  6494. }
  6495. sup {
  6496. font-size: 12px !important;
  6497. top: -10px !important;
  6498. position: relative;
  6499. }
  6500. em.extra-space {
  6501. margin-right: 5px !important;
  6502. }
  6503. .video-slide-section h2 {
  6504. font-size: 22px !important;
  6505. }
  6506. .video-slide-section h3 {
  6507. font-size: 18px !important;
  6508. margin-top: 30px !important;
  6509. }
  6510. .testimonial-company-logo {
  6511. max-width: 350px;
  6512. margin: 20px auto !important;
  6513. }
  6514. a.slider-next {
  6515. top: -180px;
  6516. left: 51%;
  6517. }
  6518. a.slider-prev {
  6519. top: -180px;
  6520. left: 46% !important;
  6521. }
  6522. .fl-node-5d387bd371cd7 .fl-content-slider-svg-container {
  6523. width: 25px;
  6524. height: 25px;
  6525. }
  6526. .yellow-highlight {
  6527. background: #F5F717;
  6528. text-shadow: -10px 0 10px #F5F717,3px 0px 3px #F5F717,6px 0px 6px #F5F717,-6px 0px 6px #f1e321;
  6529. }
  6530. .sub-menu a {
  6531. color: #000 !important;
  6532. }
  6533. .video-section img {
  6534. max-width: 120px !important;
  6535. }
  6536.  
  6537. .fl-builder-content.fl-builder-content-39699.fl-builder-content-primary > div.fl-row.fl-row-full-width.fl-row-bg-video.fl-node-97dkmqwelhfr.fl-row-custom-height.fl-row-align-center.fl-row-bg-overlay > div {
  6538.    padding-right:0 !important;
  6539.    padding-bottom: 0 !important;
  6540. }
  6541.  
  6542.  
  6543. @media screen and (max-width:768px) {
  6544.    .fl-node-bklhvfwum1it {
  6545.        display:none !important;
  6546.    }
  6547. }
  6548.  
  6549. .blog-feed img {
  6550.    object-fit:cover !important
  6551. }
  6552.  
  6553. /* End Layout CSS */
  6554.  
  6555. /* Generic */
  6556. .fl-post-module-woo-ordering {
  6557. padding-bottom: 40px;
  6558. }
  6559.  
  6560. .fl-product-ordering{
  6561. text-align: center;
  6562. }
  6563.  
  6564. /* Grid */
  6565. .fl-module-post-grid .woocommerce-product-gallery {
  6566. opacity: 1 !important;
  6567. }
  6568. .woocommerce.fl-post-grid-woo-meta {
  6569. padding-bottom: 5px;
  6570. }
  6571. .woocommerce.fl-post-grid-woo-meta .star-rating,
  6572. .woocommerce.fl-post-grid-woo-meta .price {
  6573. clear: both;
  6574. display: block;
  6575. float: none;
  6576. margin: 0 0 5px;
  6577. }
  6578. .fl-post-align-center .woocommerce.fl-post-grid-woo-meta .star-rating {
  6579. margin: 0 auto 5px;
  6580. }
  6581. .fl-post-align-right .woocommerce.fl-post-grid-woo-meta .star-rating {
  6582. float: right;
  6583. margin: 0 0 5px;
  6584. }
  6585. .fl-module-post-grid .woocommerce.fl-post-grid-woo-button {
  6586. padding-top: 10px;
  6587. }
  6588. .woocommerce .fl-post-grid-post {
  6589. overflow: inherit;
  6590. }
  6591.  
  6592. /* Feed */
  6593. .fl-post-feed-woo-meta {
  6594. overflow: hidden;
  6595. }
  6596. .woocommerce.fl-post-feed-woo-meta .price {
  6597. display: inline-block;
  6598. }
  6599. .woocommerce.fl-post-feed-woo-meta .star-rating {
  6600. display: inline-block;
  6601. float: none;
  6602. margin: 0 0 0 5px;
  6603. }
  6604. .fl-module-post-grid .woocommerce.fl-post-feed-woo-button {
  6605. margin-top: 20px;
  6606. }
  6607.  
  6608. /* Gallery */
  6609. .woocommerce.fl-post-gallery-woo-meta .star-rating,
  6610. .woocommerce.fl-post-gallery-woo-meta .price {
  6611. clear: both;
  6612. display: block;
  6613. float: none;
  6614. margin: 0 0 5px;
  6615. }
  6616. .woocommerce.fl-post-gallery-woo-meta .star-rating {
  6617. margin: 0 auto 5px;
  6618. }
  6619. .woocommerce.fl-post-gallery-woo-meta .star-rating:before {
  6620. color: #999 !important;
  6621. }
  6622. .woocommerce.fl-post-gallery-woo-meta .star-rating span:before {
  6623. color: #fff;
  6624. }
  6625.  
  6626.  
  6627.  
  6628.  
  6629.  
  6630.  
  6631.  
  6632.  
  6633.  
  6634.  
  6635.  
  6636. .fl-builder-content .fl-node-s0mh1z5teapq .fl-post-module-woo-button a.button {
  6637. display: none;
  6638. }
  6639. /* Equal height Column Bottom Alignment */
  6640. .fl-col-group-equal-height.fl-col-group-align-bottom .fl-col-content {
  6641.    -webkit-justify-content: flex-end;
  6642.            justify-content: flex-end;
  6643.          -webkit-box-align: end;
  6644.           -webkit-box-pack: end;
  6645.              -ms-flex-pack: end;
  6646. }
  6647.  
  6648. /* H1-H6 Margin Reset in all Modules */
  6649. .uabb-module-content h1,
  6650. .uabb-module-content h2,
  6651. .uabb-module-content h3,
  6652. .uabb-module-content h4,
  6653. .uabb-module-content h5,
  6654. .uabb-module-content h6 {
  6655.    margin: 0;
  6656.    clear: both;
  6657. }
  6658.  
  6659. /* Anchor Tag Css */
  6660.  
  6661. .fl-module-content a,
  6662. .fl-module-content a:hover,
  6663. .fl-module-content a:focus {
  6664.    text-decoration: none;
  6665. }
  6666.  
  6667. /* Row Separator CSS */
  6668.  
  6669. .uabb-row-separator {
  6670.    position: absolute;
  6671.    width: 100%;
  6672.    left: 0;
  6673. }
  6674.  
  6675. .uabb-top-row-separator {
  6676.    top: 0;
  6677.    bottom: auto
  6678. }
  6679.  
  6680. .uabb-bottom-row-separator {
  6681.    top: auto;
  6682.    bottom: 0;
  6683. }
  6684.  
  6685. .fl-builder-content-editing .fl-visible-medium.uabb-row,
  6686. .fl-builder-content-editing .fl-visible-medium-mobile.uabb-row,
  6687. .fl-builder-content-editing .fl-visible-mobile.uabb-row {
  6688.    display: none !important;
  6689. }
  6690.  
  6691. @media (max-width: 992px) {
  6692.  
  6693.    .fl-builder-content-editing .fl-visible-desktop.uabb-row,
  6694.    .fl-builder-content-editing .fl-visible-mobile.uabb-row {
  6695.        display: none !important;
  6696.    }
  6697.  
  6698.    .fl-builder-content-editing .fl-visible-desktop-medium.uabb-row,
  6699.    .fl-builder-content-editing .fl-visible-medium.uabb-row,
  6700.    .fl-builder-content-editing .fl-visible-medium-mobile.uabb-row {
  6701.        display: block !important;
  6702.    }
  6703. }
  6704.  
  6705. @media (max-width: 768px) {
  6706.    .fl-builder-content-editing .fl-visible-desktop.uabb-row,
  6707.    .fl-builder-content-editing .fl-visible-desktop-medium.uabb-row,
  6708.    .fl-builder-content-editing .fl-visible-medium.uabb-row {
  6709.        display: none !important;
  6710.    }
  6711.  
  6712.    .fl-builder-content-editing .fl-visible-medium-mobile.uabb-row,
  6713.    .fl-builder-content-editing .fl-visible-mobile.uabb-row {
  6714.        display: block !important;
  6715.    }
  6716. }
  6717.  
  6718. .fl-responsive-preview-content .fl-builder-content-editing {
  6719.    overflow-x: hidden;
  6720.    overflow-y: visible;
  6721. }
  6722.  
  6723. .uabb-row-separator svg {
  6724.    width: 100%;
  6725. }
  6726.  
  6727. .uabb-top-row-separator.uabb-has-svg svg {
  6728.    position: absolute;
  6729.    padding: 0;
  6730.    margin: 0;
  6731.    left: 50%;
  6732.    top: -1px;
  6733.    bottom: auto;
  6734.    -webkit-transform: translateX(-50%);
  6735.    -ms-transform: translateX(-50%);
  6736.    transform: translateX(-50%);
  6737. }
  6738.  
  6739. .uabb-bottom-row-separator.uabb-has-svg svg {
  6740.    position: absolute;
  6741.    padding: 0;
  6742.    margin: 0;
  6743.    left: 50%;
  6744.    bottom: -1px;
  6745.    top: auto;
  6746.    -webkit-transform: translateX(-50%);
  6747.    -ms-transform: translateX(-50%);
  6748.    transform: translateX(-50%);
  6749. }
  6750. .uabb-bottom-row-separator.uabb-has-svg .uasvg-wave-separator {
  6751.    bottom: 0;
  6752. }
  6753. .uabb-top-row-separator.uabb-has-svg .uasvg-wave-separator {
  6754.    top: 0;
  6755. }
  6756.  
  6757. /**
  6758. *
  6759. *  Svg Triangle Separator
  6760. *  Big Triangle Separator
  6761. *  Big Triangle Left Separator
  6762. *  Svg Half Circle Separator
  6763. *  Curve Center Separator
  6764. *  Waves Separator
  6765. *  Stamp
  6766. *  Grass
  6767. *  Slime
  6768. *  Grass Bend
  6769. *  Wave Slide
  6770. *  Muliple Triangles
  6771. *  Pine Tree
  6772. *  Pine Tree Bend
  6773. *
  6774. ***************************************/
  6775. .uabb-bottom-row-separator.uabb-svg-triangle svg,
  6776. .uabb-bottom-row-separator.uabb-xlarge-triangle svg,
  6777. .uabb-top-row-separator.uabb-xlarge-triangle-left svg,
  6778. .uabb-bottom-row-separator.uabb-svg-circle svg,
  6779. .uabb-top-row-separator.uabb-slime-separator svg,
  6780. .uabb-top-row-separator.uabb-grass-separator svg,
  6781. .uabb-top-row-separator.uabb-grass-bend-separator svg,
  6782. .uabb-bottom-row-separator.uabb-mul-triangles-separator svg,
  6783. .uabb-top-row-separator.uabb-wave-slide-separator svg,
  6784. .uabb-top-row-separator.uabb-pine-tree-separator svg,
  6785. .uabb-top-row-separator.uabb-pine-tree-bend-separator svg,
  6786. .uabb-bottom-row-separator.uabb-stamp-separator svg,
  6787. .uabb-bottom-row-separator.uabb-xlarge-circle svg,
  6788. .uabb-top-row-separator.uabb-wave-separator svg{
  6789.    left: 50%;
  6790.    -webkit-transform: translateX(-50%) scaleY(-1);
  6791.       -moz-transform: translateX(-50%) scaleY(-1);
  6792.        -ms-transform: translateX(-50%) scaleY(-1);
  6793.         -o-transform: translateX(-50%) scaleY(-1);
  6794.            transform: translateX(-50%) scaleY(-1);
  6795. }
  6796.  
  6797. /*
  6798. *  Big Triangle
  6799. */
  6800. .uabb-bottom-row-separator.uabb-big-triangle svg {
  6801.    left: 50%;
  6802.    -webkit-transform: scale(1) scaleY(-1) translateX(-50%);
  6803.       -moz-transform: scale(1) scaleY(-1) translateX(-50%);
  6804.        -ms-transform: scale(1) scaleY(-1) translateX(-50%);
  6805.         -o-transform: scale(1) scaleY(-1) translateX(-50%);
  6806.            transform: scale(1) scaleY(-1) translateX(-50%);
  6807. }
  6808.  
  6809. .uabb-top-row-separator.uabb-big-triangle svg {
  6810.    left: 50%;
  6811.    -webkit-transform: translateX(-50%) scale(1);
  6812.       -moz-transform: translateX(-50%) scale(1);
  6813.        -ms-transform: translateX(-50%) scale(1);
  6814.         -o-transform: translateX(-50%) scale(1);
  6815.            transform: translateX(-50%) scale(1);
  6816. }
  6817.  
  6818. /**
  6819. *
  6820. *  Big Triangle Right Separator
  6821. *
  6822. ***************************************/
  6823. .uabb-top-row-separator.uabb-xlarge-triangle-right svg {
  6824.    left: 50%;
  6825.    -webkit-transform: translateX(-50%) scale(-1);
  6826.       -moz-transform: translateX(-50%) scale(-1);
  6827.        -ms-transform: translateX(-50%) scale(-1);
  6828.         -o-transform: translateX(-50%) scale(-1);
  6829.            transform: translateX(-50%) scale(-1);
  6830. }
  6831.  
  6832. .uabb-bottom-row-separator.uabb-xlarge-triangle-right svg {
  6833.    left: 50%;
  6834.    -webkit-transform: translateX(-50%) scaleX(-1);
  6835.       -moz-transform: translateX(-50%) scaleX(-1);
  6836.        -ms-transform: translateX(-50%) scaleX(-1);
  6837.         -o-transform: translateX(-50%) scaleX(-1);
  6838.            transform: translateX(-50%) scaleX(-1);
  6839. }
  6840.  
  6841. /**
  6842. *
  6843. *  Curve Left Separator
  6844. *  Curve Right Separator
  6845. *
  6846. ***************************************/
  6847. .uabb-top-row-separator.uabb-curve-up-separator svg {
  6848.    left: 50%;
  6849.     -webkit-transform: translateX(-50%) scaleY(-1);
  6850.       -moz-transform: translateX(-50%) scaleY(-1);
  6851.        -ms-transform: translateX(-50%) scaleY(-1);
  6852.         -o-transform: translateX(-50%) scaleY(-1);
  6853.            transform: translateX(-50%) scaleY(-1);
  6854. }
  6855.  
  6856. .uabb-top-row-separator.uabb-curve-down-separator svg {
  6857.    left: 50%;
  6858.    -webkit-transform: translateX(-50%) scale(-1);
  6859.       -moz-transform: translateX(-50%) scale(-1);
  6860.        -ms-transform: translateX(-50%) scale(-1);
  6861.         -o-transform: translateX(-50%) scale(-1);
  6862.            transform: translateX(-50%) scale(-1);
  6863. }
  6864.  
  6865. .uabb-bottom-row-separator.uabb-curve-down-separator svg {
  6866.    left: 50%;
  6867.    -webkit-transform: translateX(-50%) scaleX(-1);
  6868.       -moz-transform: translateX(-50%) scaleX(-1);
  6869.        -ms-transform: translateX(-50%) scaleX(-1);
  6870.         -o-transform: translateX(-50%) scaleX(-1);
  6871.            transform: translateX(-50%) scaleX(-1);
  6872. }
  6873.  
  6874.  
  6875. /**
  6876. *
  6877. *  Tilt Left Separator
  6878. *  Tilt Right Separator
  6879. *
  6880. ***************************************/
  6881.  
  6882. .uabb-top-row-separator.uabb-tilt-left-separator svg {
  6883.    left: 50%;
  6884.    -webkit-transform: translateX(-50%) scale(-1);
  6885.       -moz-transform: translateX(-50%) scale(-1);
  6886.        -ms-transform: translateX(-50%) scale(-1);
  6887.         -o-transform: translateX(-50%) scale(-1);
  6888.            transform: translateX(-50%) scale(-1);
  6889. }
  6890.  
  6891. .uabb-top-row-separator.uabb-tilt-right-separator svg{
  6892.    left: 50%;
  6893.    -webkit-transform: translateX(-50%) scaleY(-1);
  6894.       -moz-transform: translateX(-50%) scaleY(-1);
  6895.        -ms-transform: translateX(-50%) scaleY(-1);
  6896.         -o-transform: translateX(-50%) scaleY(-1);
  6897.            transform: translateX(-50%) scaleY(-1);
  6898. }
  6899.  
  6900. .uabb-bottom-row-separator.uabb-tilt-left-separator svg {
  6901.    left: 50%;
  6902.    -webkit-transform: translateX(-50%);
  6903.       -moz-transform: translateX(-50%);
  6904.        -ms-transform: translateX(-50%);
  6905.         -o-transform: translateX(-50%);
  6906.            transform: translateX(-50%);
  6907. }
  6908.  
  6909. .uabb-bottom-row-separator.uabb-tilt-right-separator svg {
  6910.    left: 50%;
  6911.    -webkit-transform: translateX(-50%) scaleX(-1);
  6912.       -moz-transform: translateX(-50%) scaleX(-1);
  6913.        -ms-transform: translateX(-50%) scaleX(-1);
  6914.         -o-transform: translateX(-50%) scaleX(-1);
  6915.            transform: translateX(-50%) scaleX(-1);
  6916. }
  6917.  
  6918. .uabb-top-row-separator.uabb-tilt-left-separator,
  6919. .uabb-top-row-separator.uabb-tilt-right-separator {
  6920.    top: 0;
  6921. }
  6922.  
  6923. .uabb-bottom-row-separator.uabb-tilt-left-separator,
  6924. .uabb-bottom-row-separator.uabb-tilt-right-separator {
  6925.    bottom: 0;
  6926. }
  6927.  
  6928. /**
  6929. *
  6930. *  Clouds Separator
  6931. *  Multi Triangle
  6932. *  Arrow Inward
  6933. *  Arrow Outward
  6934. *
  6935. ***************************************/
  6936.  
  6937. .uabb-top-row-separator.uabb-arrow-outward-separator svg,
  6938. .uabb-top-row-separator.uabb-arrow-inward-separator svg,
  6939. .uabb-top-row-separator.uabb-cloud-separator svg,
  6940. .uabb-top-row-separator.uabb-multi-triangle svg {
  6941.    left: 50%;
  6942.    -webkit-transform: translateX(-50%) scaleY(-1);
  6943.       -moz-transform: translateX(-50%) scaleY(-1);
  6944.        -ms-transform: translateX(-50%) scaleY(-1);
  6945.         -o-transform: translateX(-50%) scaleY(-1);
  6946.            transform: translateX(-50%) scaleY(-1);
  6947. }
  6948.  
  6949. .uabb-bottom-row-separator.uabb-multi-triangle svg {
  6950.    bottom: -2px;
  6951. }
  6952.  
  6953. .uabb-row-separator.uabb-round-split:after,
  6954. .uabb-row-separator.uabb-round-split:before {
  6955.    left: 0;
  6956.    width: 50%;
  6957.    background: inherit inherit/inherit inherit inherit inherit;
  6958.    content: '';
  6959.    position: absolute
  6960. }
  6961.  
  6962.  
  6963. /* Buttons
  6964. ------------------------------------------------------ */
  6965.  
  6966. .uabb-button-wrap a,
  6967. .uabb-button-wrap a:visited {
  6968.    display: inline-block;
  6969.    font-size: 16px;
  6970.    line-height: 18px;
  6971.    text-decoration: none;
  6972.    text-shadow: none;
  6973. }
  6974.  
  6975. .fl-builder-content .uabb-button:hover {
  6976.    text-decoration: none;
  6977. }
  6978.  
  6979. .fl-builder-content .uabb-button-width-full .uabb-button {
  6980.    display: block;
  6981.    text-align: center;
  6982. }
  6983.  
  6984. .uabb-button-width-custom .uabb-button {
  6985.    display: inline-block;
  6986.    text-align: center;
  6987.    max-width: 100%;
  6988. }
  6989. .fl-builder-content .uabb-button-left {
  6990.    text-align: left;
  6991. }
  6992. .fl-builder-content .uabb-button-center {
  6993.    text-align: center;
  6994. }
  6995. .fl-builder-content .uabb-button-right {
  6996.    text-align: right;
  6997. }
  6998.  
  6999. .fl-builder-content .uabb-button i,
  7000. .fl-builder-content .uabb-button i:before {
  7001.    font-size: 1em;
  7002.    height: 1em;
  7003.    line-height: 1em;
  7004.    width: 1em;
  7005. }
  7006.  
  7007. .uabb-button .uabb-button-icon-after {
  7008.    margin-left: 8px;
  7009.    margin-right: 0;
  7010. }
  7011. .uabb-button .uabb-button-icon-before {
  7012.    margin-left: 0;
  7013.    margin-right: 8px;
  7014. }
  7015. .uabb-button .uabb-button-icon-no-text {
  7016.    margin: 0;
  7017. }
  7018. .uabb-button-has-icon .uabb-button-text {
  7019.    vertical-align: middle;
  7020. }
  7021.  
  7022. /* Icons
  7023. ------------------------------------------------------ */
  7024.  
  7025. .uabb-icon-wrap {
  7026.    display: inline-block;
  7027. }
  7028. .uabb-icon a {
  7029.    text-decoration: none;
  7030. }
  7031. .uabb-icon i {
  7032.    display: block;
  7033. }
  7034. .uabb-icon i:before {
  7035.    border: none !important;
  7036.    background: none !important;
  7037. }
  7038. .uabb-icon-text {
  7039.    display: table-cell;
  7040.    text-align: left;
  7041.    padding-left: 15px;
  7042.    vertical-align: middle;
  7043. }
  7044. .uabb-icon-text *:last-child {
  7045.    margin: 0 !important;
  7046.    padding: 0 !important;
  7047. }
  7048. .uabb-icon-text a {
  7049.    text-decoration: none;
  7050. }
  7051.  
  7052. /* Photos
  7053. ------------------------------------------------------ */
  7054.  
  7055. .uabb-photo {
  7056.    line-height: 0;
  7057.    position: relative;
  7058.    z-index: 2;
  7059. }
  7060. .uabb-photo-align-left {
  7061.    text-align: left;
  7062. }
  7063. .uabb-photo-align-center {
  7064.    text-align: center;
  7065. }
  7066. .uabb-photo-align-right {
  7067.    text-align: right;
  7068. }
  7069. .uabb-photo-content {
  7070.    border-radius: 0;
  7071.    display: inline-block;
  7072.    line-height: 0;
  7073.    position: relative;
  7074.    max-width: 100%;
  7075.    overflow: hidden;
  7076. }
  7077. .uabb-photo-content img {
  7078.    border-radius: inherit;
  7079.    display: inline;
  7080.    height: auto;
  7081.    max-width: 100%;
  7082.    width: auto;
  7083. }
  7084. .fl-builder-content .uabb-photo-crop-circle img {
  7085.    -webkit-border-radius: 100%;
  7086.    -moz-border-radius: 100%;
  7087.    border-radius: 100%;
  7088. }
  7089. .fl-builder-content .uabb-photo-crop-square img {
  7090.    -webkit-border-radius: 0;
  7091.    -moz-border-radius: 0;
  7092.    border-radius: 0;
  7093. }
  7094. .uabb-photo-caption {
  7095.    font-size: 13px;
  7096.    line-height: 18px;
  7097.    overflow: hidden;
  7098.    text-overflow: ellipsis;
  7099.    white-space: nowrap;
  7100. }
  7101. .uabb-photo-caption-below {
  7102.    padding-bottom: 20px;
  7103.    padding-top: 10px;
  7104. }
  7105. .uabb-photo-caption-hover {
  7106.    background: rgba(0,0,0,0.7);
  7107.    bottom: 0;
  7108.    color: #fff;
  7109.    left: 0;
  7110.    opacity: 0;
  7111.    visibility: hidden;
  7112.    filter: alpha(opacity = 0);
  7113.    padding: 10px 15px;
  7114.    position: absolute;
  7115.    right: 0;
  7116.    -webkit-transition:visibility 200ms linear;
  7117.    -moz-transition:visibility 200ms linear;
  7118.    transition:visibility 200ms linear;
  7119. }
  7120. .uabb-photo-content:hover .uabb-photo-caption-hover {
  7121.    opacity: 100;
  7122.    visibility: visible;
  7123. }
  7124.  
  7125. /* Panel & Buttons
  7126. ------------------------------------------------------ */
  7127. .uabb-active-btn {
  7128.    background: #1e8cbe;
  7129.    border-color: #0074a2;
  7130.    -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,.6);
  7131.    box-shadow: inset 0 1px 0 rgba(120,200,230,.6);
  7132.    color: white;
  7133. }
  7134. .fl-builder-bar .fl-builder-add-content-button {
  7135.    display: block !important;
  7136.    opacity: 1 !important;
  7137. }
  7138.  
  7139. /* Image Icon Object */
  7140. .uabb-imgicon-wrap .uabb-icon {
  7141.    display: block;
  7142. }
  7143. .uabb-imgicon-wrap .uabb-icon i{
  7144.    float: none;
  7145. }
  7146.  
  7147. /* Photo */
  7148. .uabb-imgicon-wrap .uabb-image {
  7149.    line-height: 0;
  7150.    position: relative;
  7151. }
  7152. .uabb-imgicon-wrap .uabb-image-align-left {
  7153.    text-align: left;
  7154. }
  7155. .uabb-imgicon-wrap .uabb-image-align-center {
  7156.    text-align: center;
  7157. }
  7158. .uabb-imgicon-wrap .uabb-image-align-right {
  7159.    text-align: right;
  7160. }
  7161. .uabb-imgicon-wrap .uabb-image-content {
  7162.    display: inline-block;
  7163.    border-radius: 0;
  7164.    line-height: 0;
  7165.    position: relative;
  7166.    max-width: 100%;
  7167. }
  7168. .uabb-imgicon-wrap .uabb-image-content img {
  7169.    display: inline;
  7170.    height: auto !important;
  7171.    max-width: 100%;
  7172.    width: auto;
  7173.    border-radius: inherit;
  7174.    box-shadow: none;
  7175.    box-sizing: content-box;
  7176. }
  7177. .fl-builder-content .uabb-imgicon-wrap .uabb-image-crop-circle img {
  7178.    -webkit-border-radius: 100%;
  7179.    -moz-border-radius: 100%;
  7180.    border-radius: 100%;
  7181. }
  7182. .fl-builder-content .uabb-imgicon-wrap .uabb-image-crop-square img {
  7183.    -webkit-border-radius: 0;
  7184.    -moz-border-radius: 0;
  7185.    border-radius: 0;
  7186. }
  7187.  
  7188.  
  7189. /* Creative Button
  7190. ___________________________________________________________________________*/
  7191.  
  7192. .uabb-creative-button-wrap a,
  7193. .uabb-creative-button-wrap a:visited {
  7194.    background: #fafafa;
  7195.    border: 1px solid #ccc;
  7196.    color: #333;
  7197.    display: inline-block;
  7198.    vertical-align: middle;
  7199.    text-align: center;
  7200.    overflow: hidden;
  7201.    text-decoration: none;
  7202.    text-shadow: none;
  7203.    box-shadow: none;
  7204.    position: relative;
  7205.    -webkit-transition: all 200ms linear;
  7206.       -moz-transition: all 200ms linear;
  7207.        -ms-transition: all 200ms linear;
  7208.         -o-transition: all 200ms linear;
  7209.            transition: all 200ms linear;
  7210.  
  7211. }
  7212.  
  7213. .uabb-creative-button-wrap a:focus {
  7214.    text-decoration: none;
  7215.    text-shadow: none;
  7216.    box-shadow: none;
  7217. }
  7218.  
  7219. .uabb-creative-button-wrap a .uabb-creative-button-text,
  7220. .uabb-creative-button-wrap a .uabb-creative-button-icon,
  7221. .uabb-creative-button-wrap a:visited .uabb-creative-button-text,
  7222. .uabb-creative-button-wrap a:visited .uabb-creative-button-icon {
  7223.    -webkit-transition: all 200ms linear;
  7224.       -moz-transition: all 200ms linear;
  7225.        -ms-transition: all 200ms linear;
  7226.         -o-transition: all 200ms linear;
  7227.            transition: all 200ms linear;
  7228. }
  7229.  
  7230. .uabb-creative-button-wrap a:hover {
  7231.    text-decoration: none;
  7232. }
  7233.  
  7234. .uabb-creative-button-wrap .uabb-creative-button-width-full .uabb-creative-button {
  7235.    display: block;
  7236.    text-align: center;
  7237. }
  7238. .uabb-creative-button-wrap .uabb-creative-button-width-custom .uabb-creative-button {
  7239.    display: inline-block;
  7240.    text-align: center;
  7241.    max-width: 100%;
  7242. }
  7243. .uabb-creative-button-wrap .uabb-creative-button-left {
  7244.    text-align: left;
  7245. }
  7246. .uabb-creative-button-wrap .uabb-creative-button-center {
  7247.    text-align: center;
  7248. }
  7249. .uabb-creative-button-wrap .uabb-creative-button-right {
  7250.    text-align: right;
  7251. }
  7252. .uabb-creative-button-wrap .uabb-creative-button i {
  7253.    font-size: 1.3em;
  7254.    height: auto;
  7255.    vertical-align: middle;
  7256.    width: auto;
  7257. }
  7258.  
  7259. .uabb-creative-button-wrap .uabb-creative-button .uabb-creative-button-icon-after {
  7260.    margin-left: 8px;
  7261.    margin-right: 0;
  7262. }
  7263. .uabb-creative-button-wrap .uabb-creative-button .uabb-creative-button-icon-before {
  7264.    margin-right: 8px;
  7265.    margin-left: 0;
  7266. }
  7267. .uabb-creative-button-wrap.uabb-creative-button-icon-no-text .uabb-creative-button i {
  7268.    margin: 0;
  7269. }
  7270.  
  7271. .uabb-creative-button-wrap .uabb-creative-button-has-icon .uabb-creative-button-text {
  7272.    vertical-align: middle;
  7273. }
  7274. .uabb-creative-button-wrap a,
  7275. .uabb-creative-button-wrap a:visited {
  7276.    padding: 12px 24px;
  7277. }
  7278.  
  7279. /*  Translate Button styles */
  7280.  
  7281. .uabb-creative-button.uabb-creative-transparent-btn {
  7282.    background: transparent;
  7283. }
  7284. .uabb-creative-button.uabb-creative-transparent-btn:after {
  7285.    content: '';
  7286.    position: absolute;
  7287.    z-index: 1;
  7288.    -webkit-transition: all 200ms linear;
  7289.       -moz-transition: all 200ms linear;
  7290.        -ms-transition: all 200ms linear;
  7291.         -o-transition: all 200ms linear;
  7292.            transition: all 200ms linear;
  7293. }
  7294.  
  7295. /* transparent-fill-top, transparent-fill-bottom  */
  7296. .uabb-transparent-fill-top-btn:after,
  7297. .uabb-transparent-fill-bottom-btn:after {
  7298.    width: 100%;
  7299.    height: 0;
  7300.    left: 0;
  7301. }
  7302.  
  7303. /* transparent-fill-top */
  7304. .uabb-transparent-fill-top-btn:after {
  7305.    top: 0;
  7306. }
  7307. /* transparent-fill-bottom */
  7308. .uabb-transparent-fill-bottom-btn:after {
  7309.    bottom: 0;
  7310. }
  7311.  
  7312. /* transparent-fill-left, transparent-fill-right */
  7313. .uabb-transparent-fill-left-btn:after,
  7314. .uabb-transparent-fill-right-btn:after {
  7315.    width: 0;
  7316.    height: 100%;
  7317.    top: 0;
  7318. }
  7319.  
  7320. /* transparent-fill-left */
  7321. .uabb-transparent-fill-left-btn:after {
  7322.    left: 0;
  7323. }
  7324. /* transparent-fill-right */
  7325. .uabb-transparent-fill-right-btn:after {
  7326.    right: 0;
  7327. }
  7328.  
  7329.  
  7330. /* transparent-fill-center */
  7331. .uabb-transparent-fill-center-btn:after{
  7332.    width: 0;
  7333.    height: 100%;
  7334.    top: 50%;
  7335.    left: 50%;
  7336.    -webkit-transform: translateX(-50%) translateY(-50%);
  7337.       -moz-transform: translateX(-50%) translateY(-50%);
  7338.        -ms-transform: translateX(-50%) translateY(-50%);
  7339.         -o-transform: translateX(-50%) translateY(-50%);
  7340.            transform: translateX(-50%) translateY(-50%);
  7341. }
  7342.  
  7343. /*  transparent-fill-diagonal, transparent-fill-horizontal  */
  7344. .uabb-transparent-fill-diagonal-btn:after,
  7345. .uabb-transparent-fill-horizontal-btn:after {
  7346.    width: 100%;
  7347.    height: 0;
  7348.    top: 50%;
  7349.    left: 50%;
  7350. }
  7351.  
  7352. /*  transparent-fill-diagonal */
  7353. .uabb-transparent-fill-diagonal-btn{
  7354.    overflow: hidden;
  7355. }
  7356. .uabb-transparent-fill-diagonal-btn:after{
  7357.    -webkit-transform: translateX(-50%) translateY(-50%) rotate( 45deg );
  7358.       -moz-transform: translateX(-50%) translateY(-50%) rotate( 45deg );
  7359.        -ms-transform: translateX(-50%) translateY(-50%) rotate( 45deg );
  7360.         -o-transform: translateX(-50%) translateY(-50%) rotate( 45deg );
  7361.            transform: translateX(-50%) translateY(-50%) rotate( 45deg );
  7362. }
  7363. /* transparent-fill-horizontal */
  7364. .uabb-transparent-fill-horizontal-btn:after{
  7365.    -webkit-transform: translateX(-50%) translateY(-50%);
  7366.       -moz-transform: translateX(-50%) translateY(-50%);
  7367.        -ms-transform: translateX(-50%) translateY(-50%);
  7368.         -o-transform: translateX(-50%) translateY(-50%);
  7369.            transform: translateX(-50%) translateY(-50%);
  7370. }
  7371.  
  7372.  
  7373. /*  3D Button styles */
  7374. .uabb-creative-button-wrap .uabb-creative-threed-btn.uabb-threed_down-btn,
  7375. .uabb-creative-button-wrap .uabb-creative-threed-btn.uabb-threed_up-btn,
  7376. .uabb-creative-button-wrap .uabb-creative-threed-btn.uabb-threed_left-btn,
  7377. .uabb-creative-button-wrap .uabb-creative-threed-btn.uabb-threed_right-btn {
  7378.    -webkit-transition: none;
  7379.       -moz-transition: none;
  7380.        -ms-transition: none;
  7381.         -o-transition: none;
  7382.            transition: none;
  7383. }
  7384.  
  7385. .perspective {
  7386.    -webkit-perspective: 800px;
  7387.       -moz-perspective: 800px;
  7388.            perspective: 800px;
  7389.            margin: 0;
  7390. }
  7391. .uabb-creative-button.uabb-creative-threed-btn:after {
  7392.    content: '';
  7393.    position: absolute;
  7394.    z-index: -1;
  7395.    -webkit-transition: all 200ms linear;
  7396.       -moz-transition: all 200ms linear;
  7397.            transition: all 200ms linear;
  7398. }
  7399.  
  7400. .uabb-creative-button.uabb-creative-threed-btn {
  7401.    outline: 1px solid transparent;
  7402.    -webkit-transform-style: preserve-3d;
  7403.       -moz-transform-style: preserve-3d;
  7404.            transform-style: preserve-3d;
  7405. }
  7406.  
  7407. /*  3D Button styles --- Animate to top */
  7408. .uabb-creative-threed-btn.uabb-animate_top-btn:after {
  7409.    height: 40%;
  7410.    left: 0;
  7411.    top: -40%;
  7412.    width: 100%;
  7413.    -webkit-transform-origin: 0% 100%;
  7414.       -moz-transform-origin: 0% 100%;
  7415.            transform-origin: 0% 100%;
  7416.    -webkit-transform: rotateX(90deg);
  7417.       -moz-transform: rotateX(90deg);
  7418.            transform: rotateX(90deg);
  7419. }
  7420.  
  7421. /*  3D Button styles --- Animate to bottom */
  7422. .uabb-creative-threed-btn.uabb-animate_bottom-btn:after {
  7423.    width: 100%;
  7424.    height: 40%;
  7425.    left: 0;
  7426.    top: 100%;
  7427.    -webkit-transform-origin: 0% 0%;
  7428.       -moz-transform-origin: 0% 0%;
  7429.        -ms-transform-origin: 0% 0%;
  7430.            transform-origin: 0% 0%;
  7431.    -webkit-transform: rotateX(-90deg);
  7432.       -moz-transform: rotateX(-90deg);
  7433.        -ms-transform: rotateX(-90deg);
  7434.            transform: rotateX(-90deg);
  7435. }
  7436.  
  7437. /*  3D Button styles --- Animate to Left */
  7438. .uabb-creative-threed-btn.uabb-animate_left-btn:after {
  7439.    width: 20%;
  7440.    height: 100%;
  7441.    left: -20%;
  7442.    top: 0;
  7443.    -webkit-transform-origin: 100% 0%;
  7444.       -moz-transform-origin: 100% 0%;
  7445.        -ms-transform-origin: 100% 0%;
  7446.            transform-origin: 100% 0%;
  7447.    -webkit-transform: rotateY(-60deg);
  7448.       -moz-transform: rotateY(-60deg);
  7449.        -ms-transform: rotateY(-60deg);
  7450.            transform: rotateY(-60deg);
  7451. }
  7452.  
  7453. /*  3D Button styles --- Animate to Right */
  7454. .uabb-creative-threed-btn.uabb-animate_right-btn:after {
  7455.    width: 20%;
  7456.    height: 100%;
  7457.    left: 104%;
  7458.    top: 0;
  7459.    -webkit-transform-origin: 0% 0%;
  7460.       -moz-transform-origin: 0% 0%;
  7461.        -ms-transform-origin: 0% 0%;
  7462.            transform-origin: 0% 0%;
  7463.    -webkit-transform: rotateY(120deg);
  7464.       -moz-transform: rotateY(120deg);
  7465.        -ms-transform: rotateY(120deg);
  7466.            transform: rotateY(120deg);
  7467. }
  7468.  
  7469.  
  7470. /* Animate Top */
  7471. .uabb-animate_top-btn:hover{
  7472.    -webkit-transform: rotateX(-15deg);
  7473.       -moz-transform: rotateX(-15deg);
  7474.        -ms-transform: rotateX(-15deg);
  7475.         -o-transform: rotateX(-15deg);
  7476.            transform: rotateX(-15deg);
  7477.  
  7478. }
  7479.  
  7480. /* Animate Bottom */
  7481. .uabb-animate_bottom-btn:hover{
  7482.    -webkit-transform: rotateX(15deg);
  7483.       -moz-transform: rotateX(15deg);
  7484.        -ms-transform: rotateX(15deg);
  7485.         -o-transform: rotateX(15deg);
  7486.            transform: rotateX(15deg);
  7487.  
  7488. }
  7489.  
  7490. /* Animate Left */
  7491. .uabb-animate_left-btn:hover{
  7492.    -webkit-transform: rotateY(6deg);
  7493.       -moz-transform: rotateY(6deg);
  7494.        -ms-transform: rotateY(6deg);
  7495.         -o-transform: rotateY(6deg);
  7496.            transform: rotateY(6deg);
  7497. }
  7498.  
  7499. /* Animate Right */
  7500. .uabb-animate_right-btn:hover{
  7501.    -webkit-transform: rotateY(-6deg);
  7502.       -moz-transform: rotateY(-6deg);
  7503.        -ms-transform: rotateY(-6deg);
  7504.         -o-transform: rotateY(-6deg);
  7505.            transform: rotateY(-6deg);
  7506.  
  7507. }
  7508.  
  7509. /*  Flat Button styles  */
  7510.  
  7511. /*  Common Classes  */
  7512. .uabb-creative-flat-btn.uabb-animate_to_right-btn,
  7513. .uabb-creative-flat-btn.uabb-animate_to_left-btn,
  7514. .uabb-creative-flat-btn.uabb-animate_from_top-btn,
  7515. .uabb-creative-flat-btn.uabb-animate_from_bottom-btn {
  7516.    overflow: hidden;
  7517.    position: relative;
  7518. }
  7519.  
  7520. .uabb-creative-flat-btn.uabb-animate_to_right-btn i,
  7521. .uabb-creative-flat-btn.uabb-animate_to_left-btn i,
  7522. .uabb-creative-flat-btn.uabb-animate_from_top-btn i,
  7523. .uabb-creative-flat-btn.uabb-animate_from_bottom-btn i {
  7524.    bottom: 0;
  7525.    height: 100%;
  7526.    margin: 0;
  7527.    opacity: 1;
  7528.    position: absolute;
  7529.    right: 0;
  7530.    width: 100%;
  7531.    -webkit-transition: all 200ms linear;
  7532.       -moz-transition: all 200ms linear;
  7533.            transition: all 200ms linear;
  7534.    -webkit-transform: translateY(0);
  7535.       -moz-transform: translateY(0);
  7536.         -o-transform: translateY(0);
  7537.        -ms-transform: translateY(0);
  7538.            transform: translateY(0);
  7539. }
  7540.  
  7541. .uabb-creative-flat-btn.uabb-animate_to_right-btn .uabb-button-text,
  7542. .uabb-creative-flat-btn.uabb-animate_to_left-btn .uabb-button-text,
  7543. .uabb-creative-flat-btn.uabb-animate_from_top-btn .uabb-button-text,
  7544. .uabb-creative-flat-btn.uabb-animate_from_bottom-btn .uabb-button-text {
  7545.    display: inline-block;
  7546.    width: 100%;
  7547.    height: 100%;
  7548.    -webkit-transition: all 200ms linear;
  7549.       -moz-transition: all 200ms linear;
  7550.        -ms-transition: all 200ms linear;
  7551.         -o-transition: all 200ms linear;
  7552.            transition: all 200ms linear;
  7553.    -webkit-backface-visibility: hidden;
  7554.       -moz-backface-visibility: hidden;
  7555.            backface-visibility: hidden;
  7556. }
  7557.  
  7558. /*  Making Icon position center  */
  7559. .uabb-creative-flat-btn.uabb-animate_to_right-btn i:before,
  7560. .uabb-creative-flat-btn.uabb-animate_to_left-btn i:before,
  7561. .uabb-creative-flat-btn.uabb-animate_from_top-btn i:before,
  7562. .uabb-creative-flat-btn.uabb-animate_from_bottom-btn i:before {
  7563.    position: absolute;
  7564.    top: 50%;
  7565.    left: 50%;
  7566.    -webkit-transform: translateX(-50%) translateY(-50%);
  7567.    -moz-transform: translateX(-50%) translateY(-50%);
  7568.    -o-transform: translateX(-50%) translateY(-50%);
  7569.    -ms-transform: translateX(-50%) translateY(-50%);
  7570.    transform: translateX(-50%) translateY(-50%);
  7571. }
  7572.  
  7573. /*  Common Hover Classes */
  7574. .uabb-creative-flat-btn.uabb-animate_to_right-btn:hover i,
  7575. .uabb-creative-flat-btn.uabb-animate_to_left-btn:hover i {
  7576.    left: 0;
  7577. }
  7578. .uabb-creative-flat-btn.uabb-animate_from_top-btn:hover i,
  7579. .uabb-creative-flat-btn.uabb-animate_from_bottom-btn:hover i {
  7580.    top: 0;
  7581. }
  7582.  
  7583. /*  Animate Icon to the right */
  7584. .uabb-creative-flat-btn.uabb-animate_to_right-btn i {
  7585.    top: 0;
  7586.    left: -100%;
  7587. }
  7588. .uabb-creative-flat-btn.uabb-animate_to_right-btn:hover .uabb-button-text {
  7589.    -webkit-transform: translateX(200%);
  7590.       -moz-transform: translateX(200%);
  7591.        -ms-transform: translateX(200%);
  7592.         -o-transform: translateX(200%);
  7593.            transform: translateX(200%);
  7594. }
  7595.  
  7596. /*  Animate Icon to the left */
  7597. .uabb-creative-flat-btn.uabb-animate_to_left-btn i {
  7598.    top: 0;
  7599.    left: 100%;
  7600. }
  7601.  
  7602. .uabb-creative-flat-btn.uabb-animate_to_left-btn:hover .uabb-button-text {
  7603.    -webkit-transform: translateX(-200%);
  7604.       -moz-transform: translateX(-200%);
  7605.        -ms-transform: translateX(-200%);
  7606.         -o-transform: translateX(-200%);
  7607.            transform: translateX(-200%);
  7608. }
  7609.  
  7610.  
  7611. /*  Animate Icon From the Top */
  7612. .uabb-creative-flat-btn.uabb-animate_from_top-btn i {
  7613.    top: -100%;
  7614.    left: 0;
  7615. }
  7616.  
  7617. .uabb-creative-flat-btn.uabb-animate_from_top-btn:hover .uabb-button-text {
  7618.    -webkit-transform: translateY(400px);
  7619.       -moz-transform: translateY(400px);
  7620.        -ms-transform: translateY(400px);
  7621.         -o-transform: translateY(400px);
  7622.            transform: translateY(400px);
  7623. }
  7624.  
  7625. /*  Animate Icon From the Bottom */
  7626. .uabb-creative-flat-btn.uabb-animate_from_bottom-btn i {
  7627.    top: 100%;
  7628.    left: 0;
  7629. }
  7630.  
  7631. .uabb-creative-flat-btn.uabb-animate_from_bottom-btn:hover .uabb-button-text {
  7632.    -webkit-transform: translateY(-400px);
  7633.       -moz-transform: translateY(-400px);
  7634.        -ms-transform: translateY(-400px);
  7635.         -o-transform: translateY(-400px);
  7636.            transform: translateY(-400px);
  7637. }
  7638.  
  7639. /* Media/Video CSS */
  7640. .uabb-tab-acc-content .wp-video,
  7641. .uabb-tab-acc-content video.wp-video-shortcode,
  7642. .uabb-tab-acc-content .mejs-container:not(.mejs-audio),
  7643. .uabb-tab-acc-content .mejs-overlay.load,
  7644. .uabb-adv-accordion-content .wp-video,
  7645. .uabb-adv-accordion-content video.wp-video-shortcode,
  7646. .uabb-adv-accordion-content .mejs-container:not(.mejs-audio),
  7647. .uabb-adv-accordion-content .mejs-overlay.load {
  7648.    width: 100% !important;
  7649.    height: 100% !important;
  7650. }
  7651. .uabb-tab-acc-content .mejs-container:not(.mejs-audio),
  7652. .uabb-adv-accordion-content .mejs-container:not(.mejs-audio) {
  7653.    padding-top: 56.25%;
  7654. }
  7655. .uabb-tab-acc-content .wp-video,
  7656. .uabb-tab-acc-content video.wp-video-shortcode,
  7657. .uabb-adv-accordion-content .wp-video,
  7658. .uabb-adv-accordion-content video.wp-video-shortcode {
  7659.    max-width: 100% !important;
  7660. }
  7661. .uabb-tab-acc-content video.wp-video-shortcode,
  7662. .uabb-adv-accordion-content video.wp-video-shortcode {
  7663.    position: relative;
  7664. }
  7665. .uabb-tab-acc-content .mejs-container:not(.mejs-audio) .mejs-mediaelement,
  7666. .uabb-adv-accordion-content .mejs-container:not(.mejs-audio) .mejs-mediaelement {
  7667.    position: absolute;
  7668.    top: 0;
  7669.    right: 0;
  7670.    bottom: 0;
  7671.    left: 0;
  7672. }
  7673. .uabb-tab-acc-content .mejs-overlay-play,
  7674. .uabb-adv-accordion-content .mejs-overlay-play {
  7675.    top: 0;
  7676.    right: 0;
  7677.    bottom: 0;
  7678.    left: 0;
  7679.    width: auto !important;
  7680.    height: auto !important;
  7681. }
  7682. .fl-row-content-wrap .uabb-row-particles-background,
  7683. .uabb-col-particles-background {
  7684.    width:100%;
  7685.    height:100%;
  7686.    position:absolute;
  7687.    left:0;
  7688.    top:0;
  7689. }
  7690. /* Theme Button
  7691. ------------------------------------------------------ */
  7692. /*.fl-builder-content a.uabb-button,
  7693. .fl-builder-content a.uabb-button:visited,
  7694. .fl-builder-content a.uabb-creative-button,
  7695. .fl-builder-content a.uabb-creative-button:visited*/
  7696.  
  7697. .uabb-creative-button-wrap a,
  7698. .uabb-creative-button-wrap a:visited {
  7699. }
  7700.  
  7701. .uabb-dual-button .uabb-btn,
  7702. .uabb-dual-button .uabb-btn:visited {
  7703. }
  7704.  
  7705.  
  7706. /* Responsive Js Breakpoint Css */
  7707.  
  7708. .uabb-js-breakpoint {
  7709. content:"default";
  7710. display:none;
  7711. }
  7712. @media screen and (max-width: 992px) {
  7713. .uabb-js-breakpoint {
  7714. content:"992";
  7715. }
  7716. }
  7717.  
  7718. @media screen and (max-width: 768px) {
  7719. .uabb-js-breakpoint {
  7720. content:"768";
  7721. }
  7722. }
  7723.  
  7724.  
  7725.                                
  7726.        
  7727.                                
  7728.        
  7729.                                
  7730.        
  7731.                                
  7732.        
  7733.                                
  7734.        
  7735.                                
  7736.        
  7737.                                
  7738.        
  7739.                                
  7740.        
  7741.                                
  7742.        
  7743.                                
  7744.        
  7745.                                
  7746.        
  7747.                                
  7748.        
  7749.                                
  7750.        
  7751.                                
  7752.        
  7753.                                
  7754.        
  7755.                                
  7756.        
  7757.                                
  7758.        
  7759.                                
  7760.        
  7761.                                
  7762.        
  7763.                                
  7764.        
  7765.                                
  7766.        
  7767.        .fl-builder-row-settings #fl-field-separator_position {
  7768.            display: none !important;
  7769.        }
  7770.        
  7771.        
  7772.        .fl-builder-row-settings #fl-field-separator_position {
  7773.            display: none !important;
  7774.        }
  7775.        
  7776.        
  7777.        .fl-builder-row-settings #fl-field-separator_position {
  7778.            display: none !important;
  7779.        }
  7780.        
  7781.        
  7782.        .fl-builder-row-settings #fl-field-separator_position {
  7783.            display: none !important;
  7784.        }
  7785.        
  7786.        
  7787.        .fl-builder-row-settings #fl-field-separator_position {
  7788.            display: none !important;
  7789.        }
  7790.        
  7791.        
  7792.        .fl-builder-row-settings #fl-field-separator_position {
  7793.            display: none !important;
  7794.        }
  7795.        
  7796.        
  7797.        .fl-builder-row-settings #fl-field-separator_position {
  7798.            display: none !important;
  7799.        }
  7800.        
  7801.        
  7802.        .fl-builder-row-settings #fl-field-separator_position {
  7803.            display: none !important;
  7804.        }
  7805.        
  7806.        
  7807.        .fl-builder-row-settings #fl-field-separator_position {
  7808.            display: none !important;
  7809.        }
  7810.        
  7811.        
  7812.        .fl-builder-row-settings #fl-field-separator_position {
  7813.            display: none !important;
  7814.        }
  7815.        
  7816.        
  7817.        .fl-builder-row-settings #fl-field-separator_position {
  7818.            display: none !important;
  7819.        }
  7820.        
  7821.        
  7822.        .fl-builder-row-settings #fl-field-separator_position {
  7823.            display: none !important;
  7824.        }
  7825.        
  7826.        
  7827.        .fl-builder-row-settings #fl-field-separator_position {
  7828.            display: none !important;
  7829.        }
  7830.        
  7831.        
  7832.        .fl-builder-row-settings #fl-field-separator_position {
  7833.            display: none !important;
  7834.        }
  7835.        
  7836.        
  7837.        .fl-builder-row-settings #fl-field-separator_position {
  7838.            display: none !important;
  7839.        }
  7840.        
  7841.        
  7842.        .fl-builder-row-settings #fl-field-separator_position {
  7843.            display: none !important;
  7844.        }
  7845.        
  7846.        
  7847.        .fl-builder-row-settings #fl-field-separator_position {
  7848.            display: none !important;
  7849.        }
  7850.        
  7851.        
  7852.        .fl-builder-row-settings #fl-field-separator_position {
  7853.            display: none !important;
  7854.        }
  7855.        
  7856.        
  7857.        .fl-builder-row-settings #fl-field-separator_position {
  7858.            display: none !important;
  7859.        }
  7860.        
  7861.        
  7862.        .fl-builder-row-settings #fl-field-separator_position {
  7863.            display: none !important;
  7864.        }
  7865.        
  7866.        
  7867.        .fl-builder-row-settings #fl-field-separator_position {
  7868.            display: none !important;
  7869.        }
  7870.        
  7871.        
  7872.        
  7873.        
  7874.        
  7875.        
  7876.        
  7877.        
  7878.        
  7879.        
  7880.        
  7881.        
  7882.        
  7883.        
  7884.        
  7885.        
  7886.        
  7887.        
  7888.        
  7889.        
  7890.        
  7891.        
  7892.        
  7893.        
  7894.        
  7895.        
  7896.        
  7897.        
  7898.        
  7899.        
  7900.        
  7901.        
  7902.        
  7903.        
  7904.        
  7905.        
  7906.        
  7907.        
  7908.        
  7909.        
  7910.        
  7911.        
  7912.        
  7913.        
  7914.        
  7915.        
  7916.        
  7917.        
  7918.                    .fl-node-uabt3lg89oyq .pp-down-arrow-container {
  7919.                margin-top: 0px;
  7920.            }
  7921.            .fl-node-uabt3lg89oyq .pp-down-arrow-wrap {
  7922.                text-align: center;
  7923.                position: absolute;
  7924.                width: 100%;
  7925.                left: 0;
  7926.                bottom: 30px;
  7927.                z-index: 1;
  7928.            }
  7929.  
  7930.            .fl-node-uabt3lg89oyq .pp-down-arrow-wrap .pp-down-arrow {
  7931.                display: inline-block;
  7932.                background-color: transparent;
  7933.                border: 0px solid #000000;
  7934.                border-radius: 0px;
  7935.                line-height: 0;
  7936.                cursor: pointer;
  7937.                padding: 0px;
  7938.            }
  7939.            .fl-node-uabt3lg89oyq .pp-down-arrow-wrap .pp-down-arrow:hover {
  7940.                background-color: transparent;
  7941.                border-color: #000000;
  7942.            }
  7943.            .fl-node-uabt3lg89oyq .pp-down-arrow-wrap .pp-down-arrow.pp-da-bounce {
  7944.                -moz-animation: bounce 2s infinite;
  7945.                -webkit-animation: bounce 2s infinite;
  7946.                animation: bounce 2s infinite;
  7947.            }
  7948.            .fl-node-uabt3lg89oyq .pp-down-arrow-wrap .pp-down-arrow svg {
  7949.                width: 45px;
  7950.            height: 45px;
  7951.            }
  7952.            .fl-node-uabt3lg89oyq .pp-down-arrow-wrap .pp-down-arrow svg path {
  7953.                stroke: #000000;
  7954.            fill: #000000;
  7955.            stroke-width: 0px;
  7956.            }
  7957.            .fl-node-uabt3lg89oyq .pp-down-arrow-wrap .pp-down-arrow:hover svg path {
  7958.                stroke: #000000;
  7959.            fill: #000000;
  7960.            }
  7961.            @media only screen and (max-width: 767px) {
  7962.                .fl-node-uabt3lg89oyq .pp-down-arrow-container {
  7963.                                    }
  7964.            }
  7965.  
  7966.            @-moz-keyframes pp-da-bounce {
  7967.              0%, 20%, 50%, 80%, 100% {
  7968.                -moz-transform: translateY(0);
  7969.                transform: translateY(0);
  7970.              }
  7971.              40% {
  7972.                -moz-transform: translateY(-30px);
  7973.                transform: translateY(-30px);
  7974.              }
  7975.              60% {
  7976.                -moz-transform: translateY(-15px);
  7977.                transform: translateY(-15px);
  7978.              }
  7979.            }
  7980.            @-webkit-keyframes pp-da-bounce {
  7981.              0%, 20%, 50%, 80%, 100% {
  7982.                -webkit-transform: translateY(0);
  7983.                transform: translateY(0);
  7984.              }
  7985.              40% {
  7986.                -webkit-transform: translateY(-30px);
  7987.                transform: translateY(-30px);
  7988.              }
  7989.              60% {
  7990.                -webkit-transform: translateY(-15px);
  7991.                transform: translateY(-15px);
  7992.              }
  7993.            }
  7994.            @keyframes pp-da-bounce {
  7995.              0%, 20%, 50%, 80%, 100% {
  7996.                -moz-transform: translateY(0);
  7997.                -ms-transform: translateY(0);
  7998.                -webkit-transform: translateY(0);
  7999.                transform: translateY(0);
  8000.              }
  8001.              40% {
  8002.                -moz-transform: translateY(-30px);
  8003.                -ms-transform: translateY(-30px);
  8004.                -webkit-transform: translateY(-30px);
  8005.                transform: translateY(-30px);
  8006.              }
  8007.              60% {
  8008.                -moz-transform: translateY(-15px);
  8009.                -ms-transform: translateY(-15px);
  8010.                -webkit-transform: translateY(-15px);
  8011.                transform: translateY(-15px);
  8012.              }
  8013.            }
  8014.        
  8015.        
  8016.        
  8017.        
  8018.        
  8019.        
  8020.        
  8021.        
  8022.        
  8023.        
  8024.        
  8025.        
  8026.        
  8027.        
  8028.        
  8029.        
  8030.        
  8031.        
  8032.        
  8033.        
  8034.        
  8035.        
  8036.        
  8037.        
  8038.        
  8039.        
  8040.        
  8041.        
  8042.        
  8043.        
  8044.        
  8045.        
  8046.        
  8047.        
  8048.        
  8049.        
  8050.        
  8051.        
  8052.        
  8053.        
  8054.        
  8055.        
  8056.        
  8057.        
  8058.        
  8059.        
  8060.        
  8061.        
  8062.        
  8063.        
  8064.        
  8065.        
  8066.        
  8067.        
  8068.        
  8069.        
  8070.        
  8071.        
  8072.        
  8073.        
  8074.        
  8075.        
  8076.        
  8077.        
  8078.        
  8079.        
  8080.        
  8081.        
  8082.        
  8083.        
  8084.        
  8085.        
  8086.        
  8087.        
  8088.        
  8089.        
  8090.        
  8091.        
  8092.        
  8093.        
  8094.        
  8095.         .fl-node-97dkmqwelhfr .fl-row-content {
  8096. min-width: 0px;
  8097. }
  8098.         .fl-node-uabt3lg89oyq .fl-row-content {
  8099. min-width: 0px;
  8100. }
  8101.         .fl-node-8anhq1ezd3tp .fl-row-content {
  8102. min-width: 0px;
  8103. }
  8104.         .fl-node-4zukfjielvs1 .fl-row-content {
  8105. min-width: 0px;
  8106. }
  8107.         .fl-node-6jhens7mwyda .fl-row-content {
  8108. min-width: 0px;
  8109. }
  8110.         .fl-node-v06dcmb5l3we .fl-row-content {
  8111. min-width: 0px;
  8112. }
  8113.         .fl-node-au713nzpbof4 .fl-row-content {
  8114. min-width: 0px;
  8115. }
  8116.         .fl-node-g2cn8p9h14xd .fl-row-content {
  8117. min-width: 0px;
  8118. }
  8119.         .fl-node-w85gi6hcvjor .fl-row-content {
  8120. min-width: 0px;
  8121. }
  8122.         .fl-node-qplduwj8gxaz .fl-row-content {
  8123. min-width: 0px;
  8124. }
  8125.         .fl-node-7fwcvznr3mh1 .fl-row-content {
  8126. min-width: 0px;
  8127. }
  8128.         .fl-node-v5tgxpyfalqn .fl-row-content {
  8129. min-width: 0px;
  8130. }
  8131.         .fl-node-okz7yf5icr9l .fl-row-content {
  8132. min-width: 0px;
  8133. }
  8134.         .fl-node-dhl195zr0cjm .fl-row-content {
  8135. min-width: 0px;
  8136. }
  8137.         .fl-node-nbcvy4fiht98 .fl-row-content {
  8138. min-width: 0px;
  8139. }
  8140.        
  8141.         .fl-node-va9fs2y1tpzq .fl-row-content {
  8142. min-width: 0px;
  8143. }
  8144.         .fl-node-6ysg8vzt3nhb .fl-row-content {
  8145. min-width: 0px;
  8146. }
  8147.         .fl-node-82d9njpo06s1 .fl-row-content {
  8148. min-width: 0px;
  8149. }
  8150.         .fl-node-5u8fedmj02rz .fl-row-content {
  8151. min-width: 0px;
  8152. }
  8153. </style>
  8154. <link rel='stylesheet' id='woocommerce-layout-css' href='https://linktek.com/wp-content/plugins/woocommerce/assets/css/woocommerce-layout.css' media='all' />
  8155. <link rel='stylesheet' id='woocommerce-smallscreen-css' href='https://linktek.com/wp-content/plugins/woocommerce/assets/css/woocommerce-smallscreen.css' media='only screen and (max-width: 767px)' />
  8156. <link rel='stylesheet' id='woocommerce-general-css' href='https://linktek.com/wp-content/plugins/woocommerce/assets/css/woocommerce.css' media='all' />
  8157. <style id='woocommerce-inline-inline-css'>
  8158. .woocommerce form .form-row .required { visibility: visible; }
  8159. </style>
  8160. <link rel='stylesheet' id='wp-job-manager-job-listings-css' href='https://linktek.com/wp-content/uploads/hummingbird-assets/ea07f910c1822d8b71f52d5dacc918fc.css' media='all' />
  8161. <link rel='stylesheet' id='passster-public-css' href='https://linktek.com/wp-content/plugins/content-protector/assets/public/passster-public.min.css' media='all' />
  8162. <style id='fl-builder-layout-55653-inline-css'>
  8163.  
  8164.  
  8165.  
  8166.  
  8167.  
  8168.  
  8169. .fl-node-yor4ftqixk7h > .fl-row-content-wrap {
  8170. background-color: #ffffff;
  8171. }
  8172. .fl-node-yor4ftqixk7h .fl-row-content {
  8173. max-width: 1400px;
  8174. }
  8175. .fl-node-yor4ftqixk7h > .fl-row-content-wrap {
  8176. padding-top:10px;
  8177. padding-bottom:10px;
  8178. }
  8179. @media ( max-width: 992px ) {
  8180. .fl-node-yor4ftqixk7h.fl-row > .fl-row-content-wrap {
  8181. padding-right:10px;
  8182. padding-left:10px;
  8183. }
  8184. }
  8185.  
  8186.  
  8187.  
  8188.  
  8189. .fl-node-6gzme5hoc9pv {
  8190. width: 18.63%;
  8191. }
  8192.  
  8193.  
  8194.  
  8195.  
  8196. .fl-node-uj53n42pqfzm {
  8197. width: 73.37%;
  8198. }
  8199.  
  8200.  
  8201.  
  8202.  
  8203. .fl-node-f5huq9kmlg14 {
  8204. width: 8%;
  8205. }
  8206. .fl-node-xpfims4bz8r5 .fl-photo {
  8207. text-align: center;
  8208. }
  8209. .fl-node-xpfims4bz8r5 .fl-photo-img, .fl-node-xpfims4bz8r5 .fl-photo-content {
  8210. width: 120px;
  8211. }
  8212. @media(max-width: 768px) {
  8213. .fl-node-xpfims4bz8r5 .fl-photo {
  8214. text-align: center;
  8215. }
  8216. }
  8217. .fl-node-xpfims4bz8r5 > .fl-module-content {
  8218. margin-right:0px;
  8219. }
  8220. .fl-node-bmoj6uxe325c .fl-menu .menu {
  8221. }
  8222. .fl-node-bmoj6uxe325c .menu a{
  8223. padding-left: 14px;
  8224. padding-right: 14px;
  8225. padding-top: 14px;
  8226. padding-bottom: 14px;
  8227. }
  8228.  
  8229. .fl-builder-content .fl-node-bmoj6uxe325c .menu > li > a,
  8230. .fl-builder-content .fl-node-bmoj6uxe325c .menu > li > .fl-has-submenu-container > a,
  8231. .fl-builder-content .fl-node-bmoj6uxe325c .sub-menu > li > a,
  8232. .fl-builder-content .fl-node-bmoj6uxe325c .sub-menu > li > .fl-has-submenu-container > a{
  8233. color: #000000;
  8234. }
  8235.  
  8236. .fl-node-bmoj6uxe325c .fl-menu .fl-toggle-arrows .fl-menu-toggle:before,
  8237. .fl-node-bmoj6uxe325c .fl-menu .fl-toggle-none .fl-menu-toggle:before {
  8238. border-color: #000000;
  8239. }
  8240. .fl-node-bmoj6uxe325c .menu .fl-has-submenu .sub-menu{
  8241. display: none;
  8242. }
  8243. .fl-node-bmoj6uxe325c .fl-menu .sub-menu {
  8244. background-color: #ffffff;-webkit-box-shadow: 0 1px 20px rgba(0,0,0,0.1);-ms-box-shadow: 0 1px 20px rgba(0,0,0,0.1);box-shadow: 0 1px 20px rgba(0,0,0,0.1);}
  8245. .fl-node-bmoj6uxe325c .fl-menu-horizontal.fl-toggle-arrows .fl-has-submenu-container a{
  8246. padding-right: 28px;
  8247. }
  8248. .fl-node-bmoj6uxe325c .fl-menu-horizontal.fl-toggle-arrows .fl-menu-toggle,
  8249. .fl-node-bmoj6uxe325c .fl-menu-horizontal.fl-toggle-none .fl-menu-toggle{
  8250. width: 28px;
  8251. height: 28px;
  8252. margin: -14px 0 0;
  8253. }
  8254. .fl-node-bmoj6uxe325c .fl-menu-horizontal.fl-toggle-arrows .fl-menu-toggle,
  8255. .fl-node-bmoj6uxe325c .fl-menu-horizontal.fl-toggle-none .fl-menu-toggle,
  8256. .fl-node-bmoj6uxe325c .fl-menu-vertical.fl-toggle-arrows .fl-menu-toggle,
  8257. .fl-node-bmoj6uxe325c .fl-menu-vertical.fl-toggle-none .fl-menu-toggle{
  8258. width: 28px;
  8259. height: 28px;
  8260. margin: -14px 0 0;
  8261. }
  8262. .fl-node-bmoj6uxe325c .fl-menu li{
  8263. border-top: 1px solid transparent;
  8264. }
  8265. .fl-node-bmoj6uxe325c .fl-menu li:first-child{
  8266. border-top: none;
  8267. }
  8268. @media ( max-width: 768px ) {
  8269.  
  8270. .fl-node-bmoj6uxe325c .fl-menu ul.menu {
  8271. display: none;
  8272.  
  8273. float: none;
  8274. }
  8275. .fl-node-bmoj6uxe325c .fl-menu .sub-menu {
  8276. -webkit-box-shadow: none;
  8277. -ms-box-shadow: none;
  8278. box-shadow: none;
  8279. }
  8280. .fl-node-bmoj6uxe325c .mega-menu.fl-active .hide-heading > .sub-menu,
  8281. .fl-node-bmoj6uxe325c .mega-menu-disabled.fl-active .hide-heading > .sub-menu {
  8282. display: block !important;
  8283. }
  8284.  
  8285. .fl-node-bmoj6uxe325c .fl-menu-logo,
  8286. .fl-node-bmoj6uxe325c .fl-menu-search-item {
  8287. display: none;
  8288. }
  8289.  
  8290. }
  8291. @media ( min-width: 769px ) {
  8292.  
  8293. .fl-node-bmoj6uxe325c .fl-menu .menu > li{ display: inline-block; }
  8294.  
  8295. .fl-node-bmoj6uxe325c .menu li{
  8296. border-left: 1px solid transparent;
  8297. border-top: none;
  8298. }
  8299.  
  8300. .fl-node-bmoj6uxe325c .menu li:first-child{
  8301. border: none;
  8302. }
  8303. .fl-node-bmoj6uxe325c .menu li li{
  8304. border-top: 1px solid transparent;
  8305. border-left: none;
  8306. }
  8307.  
  8308. .fl-node-bmoj6uxe325c .menu .fl-has-submenu .sub-menu{
  8309. position: absolute;
  8310. top: 100%;
  8311. left: 0;
  8312. z-index: 10;
  8313. visibility: hidden;
  8314. opacity: 0;
  8315. text-align:left;
  8316. }
  8317.  
  8318. .fl-node-bmoj6uxe325c .fl-has-submenu .fl-has-submenu .sub-menu{
  8319. top: 0;
  8320. left: 100%;
  8321. }
  8322.  
  8323. .fl-node-bmoj6uxe325c .fl-menu .fl-has-submenu:hover > .sub-menu,
  8324. .fl-node-bmoj6uxe325c .fl-menu .fl-has-submenu.focus > .sub-menu{
  8325. display: block;
  8326. visibility: visible;
  8327. opacity: 1;
  8328. }
  8329.  
  8330. .fl-node-bmoj6uxe325c .menu .fl-has-submenu.fl-menu-submenu-right .sub-menu{
  8331. left: inherit;
  8332. right: 0;
  8333. }
  8334.  
  8335. .fl-node-bmoj6uxe325c .menu .fl-has-submenu .fl-has-submenu.fl-menu-submenu-right .sub-menu{
  8336. top: 0;
  8337. left: inherit;
  8338. right: 100%;
  8339. }
  8340.  
  8341. .fl-node-bmoj6uxe325c .fl-menu .fl-has-submenu.fl-active > .fl-has-submenu-container .fl-menu-toggle{
  8342. -webkit-transform: none;
  8343. -ms-transform: none;
  8344. transform: none;
  8345. }
  8346.  
  8347. .fl-node-bmoj6uxe325c .fl-menu .fl-menu-toggle{
  8348. display: none;
  8349. }
  8350. .fl-node-bmoj6uxe325c ul.sub-menu {
  8351. padding-top: 0px;
  8352. padding-right: 0px;
  8353. padding-bottom: 0px;
  8354. padding-left: 0px;
  8355. }
  8356.  
  8357. .fl-node-bmoj6uxe325c ul.sub-menu a {
  8358. }
  8359.  
  8360. .fl-node-bmoj6uxe325c .fl-menu-mobile-toggle{
  8361. display: none;
  8362. }
  8363. }
  8364.  
  8365. .fl-node-bmoj6uxe325c .fl-menu-mobile-toggle{
  8366. color: #000000; font-size: 16px;
  8367. text-transform: capitalize;
  8368. padding-left: 14px;
  8369. padding-right: 14px;
  8370. padding-top: 14px;
  8371. padding-bottom: 14px;
  8372. border-color: rgba( 0,0,0,0.1 );
  8373. }
  8374. .fl-node-bmoj6uxe325c .fl-menu-mobile-toggle rect{
  8375. fill: #000000; }
  8376. .fl-node-bmoj6uxe325c .fl-menu-mobile-toggle:hover,
  8377. .fl-node-bmoj6uxe325c .fl-menu-mobile-toggle.fl-active{
  8378. }
  8379.  
  8380. .fl-node-bmoj6uxe325c .fl-menu-mobile-toggle:hover rect,
  8381. .fl-node-bmoj6uxe325c .fl-menu-mobile-toggle.fl-active rect{
  8382. }
  8383. .fl-node-bmoj6uxe325c ul.fl-menu-horizontal li.mega-menu > ul.sub-menu > li > .fl-has-submenu-container a:hover {
  8384. color: #000000;
  8385. }
  8386. .fl-node-bmoj6uxe325c .fl-menu .menu, .fl-node-bmoj6uxe325c .fl-menu .menu > li {
  8387. font-family: Poppins, sans-serif;
  8388. font-weight: 500;
  8389. font-size: 14px;
  8390. text-transform: capitalize;
  8391. }
  8392. .fl-node-bmoj6uxe325c .fl-menu {
  8393. text-align: right;
  8394. }
  8395. .fl-node-bmoj6uxe325c .fl-menu .menu {
  8396. justify-content: right;
  8397. }
  8398. .fl-node-bmoj6uxe325c .fl-menu .menu .sub-menu > li {
  8399. font-size: 16px;
  8400. line-height: 1;
  8401. }
  8402. .fl-node-bmoj6uxe325c .fl-menu-mobile-toggle {
  8403. float: right;
  8404. }
  8405. @media(max-width: 1200px) {
  8406. .fl-node-bmoj6uxe325c .fl-menu-mobile-toggle {
  8407. float: none;
  8408. }
  8409. }
  8410. @media(max-width: 992px) {
  8411. .fl-node-bmoj6uxe325c .fl-menu-mobile-toggle {
  8412. float: none;
  8413. }
  8414. }
  8415. @media(max-width: 768px) {
  8416. .fl-node-bmoj6uxe325c .fl-menu {
  8417. text-align: center;
  8418. }
  8419. .fl-node-bmoj6uxe325c .fl-menu .menu {
  8420. justify-content: center;
  8421. }
  8422. .fl-node-bmoj6uxe325c .menu li.fl-has-submenu ul.sub-menu {
  8423. padding-left: 15px;
  8424. }
  8425. .fl-node-bmoj6uxe325c .fl-menu .sub-menu {
  8426. background-color: transparent;
  8427. }
  8428. .fl-node-bmoj6uxe325c .fl-menu-mobile-toggle {
  8429. float: none;
  8430. }
  8431. }
  8432. .fl-node-bmoj6uxe325c > .fl-module-content {
  8433. margin-top:25px;
  8434. margin-right:0px;
  8435. }
  8436. @media ( max-width: 768px ) {
  8437. .fl-node-bmoj6uxe325c.fl-module > .fl-module-content {
  8438. margin-top:-10px;
  8439. margin-bottom:10px;
  8440. }
  8441. }
  8442.  
  8443. .fl-builder-content .fl-node-jp3ilq1bg50m a.fl-button,
  8444. .fl-builder-content .fl-node-jp3ilq1bg50m a.fl-button:hover,
  8445. .fl-builder-content .fl-node-jp3ilq1bg50m a.fl-button:visited {
  8446. background: rgba(41,166,221,0);
  8447. }
  8448.  
  8449. .fl-builder-content .fl-node-jp3ilq1bg50m a.fl-button:hover {
  8450. background-color: rgba(41,166,221,0);
  8451. }
  8452.  
  8453.  
  8454.  
  8455.  
  8456.  
  8457.  
  8458.  
  8459.  
  8460.  
  8461.  
  8462.  
  8463.  
  8464. .fl-builder-content .fl-node-jp3ilq1bg50m .fl-button i.fl-button-icon-before {
  8465. margin-right: 0;
  8466. }
  8467. .fl-node-jp3ilq1bg50m .fl-search-form-wrap {
  8468. font-size: 16px;
  8469. padding: 10px;
  8470. width: 900px;
  8471. min-height: 0px;
  8472. padding-top: 0px;
  8473. padding-right: 0px;
  8474. padding-bottom: 0px;
  8475. padding-left: 0px;
  8476. }
  8477. .fl-node-jp3ilq1bg50m .fl-search-form {
  8478. text-align: center;
  8479. }
  8480. .fl-node-jp3ilq1bg50m .fl-form-field input[type=search] {
  8481. border-radius: 4px;
  8482. font-size: 16px;
  8483. line-height: 16px;
  8484. padding: 12px 24px;
  8485. background-color: #ffffff;
  8486. padding-top: 12px;
  8487. padding-right: 12px;
  8488. padding-bottom: 12px;
  8489. padding-left: 12px;
  8490. }
  8491. .fl-node-jp3ilq1bg50m .fl-form-field input[type=search],.fl-node-jp3ilq1bg50m .fl-form-field input[type=search]::placeholder {
  8492. color: #000000;
  8493. }
  8494. .fl-node-jp3ilq1bg50m .fl-button-wrap {
  8495. text-align: center;
  8496. }
  8497. .fl-builder-content .fl-node-jp3ilq1bg50m .fl-button-wrap a.fl-button {
  8498. padding-right: 0px;
  8499. padding-left: 0px;
  8500. }
  8501. .fl-builder-content .fl-node-jp3ilq1bg50m a.fl-button, .fl-builder-content .fl-node-jp3ilq1bg50m a.fl-button:visited {
  8502. border: 1px solid rgba(29,154,209,0);
  8503. }
  8504. .fl-builder-content .fl-node-jp3ilq1bg50m a.fl-button:hover, .fl-builder-content .fl-node-jp3ilq1bg50m a.fl-button:focus {
  8505. border: 1px solid rgba(29,154,209,0);
  8506. }
  8507. @media(max-width: 768px) {
  8508. .fl-node-jp3ilq1bg50m .fl-search-form {
  8509. text-align: center;
  8510. }
  8511. }
  8512. .fl-node-jp3ilq1bg50m .mfp-container .fl-search-form-input-wrap {
  8513. width: 600px;
  8514. margin: 74px auto;
  8515. }
  8516. .mfp-bg.fl-node-jp3ilq1bg50m {
  8517. background-color: rgba(7,0,0,0.31);
  8518. opacity: 1;
  8519. filter: none;
  8520. }
  8521. .mfp-wrap.fl-node-jp3ilq1bg50m button.mfp-close {
  8522. background-color: #595454 !important;
  8523. border-radius: 50%;
  8524. top: 33px !important;
  8525. right: 33px;
  8526. height: 32px;
  8527. width: 32px;
  8528. line-height: 33px;
  8529. }
  8530. .mfp-wrap.fl-node-jp3ilq1bg50m button.mfp-close:hover {
  8531. top: 33px !important;
  8532. }
  8533. .fl-node-jp3ilq1bg50m .fl-button-icon:before {
  8534. color: #29A6DD;
  8535. }
  8536. .fl-node-jp3ilq1bg50m .fl-button:hover .fl-button-icon:before {
  8537. color: #29A6DD;
  8538. }
  8539. .fl-node-jp3ilq1bg50m > .fl-module-content {
  8540. margin-top:25px;
  8541. margin-right:0px;
  8542. margin-left:0px;
  8543. }
  8544. @media ( max-width: 768px ) {
  8545. .fl-node-jp3ilq1bg50m.fl-module > .fl-module-content {
  8546. margin-top:-10px;
  8547. margin-right:-20px;
  8548. margin-bottom:-5px;
  8549. }
  8550. }
  8551.  
  8552. /* Start Global Nodes CSS */
  8553.  
  8554. /* End Global Nodes CSS */
  8555.  
  8556.  
  8557. /* Start Layout CSS */
  8558.  
  8559. /* End Layout CSS */
  8560.  
  8561. /* Sticky */
  8562. .fl-builder-content[data-type="header"].fl-theme-builder-header-sticky {
  8563. position: fixed;
  8564. width: 100%;
  8565. z-index: 100;
  8566. }
  8567.  
  8568. /* Sticky - fix flyout menu  */
  8569. .fl-theme-builder-flyout-menu-push-left .fl-builder-content[data-type="header"].fl-theme-builder-header-sticky {
  8570. left: auto !important;
  8571. transition: left 0.2s !important;
  8572. }
  8573. .fl-theme-builder-flyout-menu-push-right .fl-builder-content[data-type="header"].fl-theme-builder-header-sticky {
  8574. right: auto !important;
  8575. transition: right 0.2s !important;
  8576. }
  8577. .fl-builder-content[data-type="header"].fl-theme-builder-header-sticky .fl-menu .fl-menu-mobile-opacity {
  8578. height: 100vh;
  8579. width: 100vw;
  8580. }
  8581. .fl-builder-content[data-type="header"]:not([data-overlay="1"]).fl-theme-builder-header-sticky .fl-menu-mobile-flyout {
  8582. top: 0px;
  8583. }
  8584. .fl-theme-builder-flyout-menu-active body {
  8585. margin-left: 0px !important;
  8586. margin-right: 0px !important;
  8587. }
  8588. .fl-theme-builder-has-flyout-menu, .fl-theme-builder-has-flyout-menu body {
  8589. overflow-x: hidden;
  8590. }
  8591. .fl-theme-builder-flyout-menu-push-right {
  8592. right: 0px;
  8593. transition: right 0.2s ease-in-out;
  8594. }
  8595. .fl-theme-builder-flyout-menu-push-left {
  8596. left: 0px;
  8597. transition: left 0.2s ease-in-out;
  8598. }
  8599. .fl-theme-builder-flyout-menu-active .fl-theme-builder-flyout-menu-push-right {
  8600. position: relative;
  8601. right: 250px;
  8602. }
  8603. .fl-theme-builder-flyout-menu-active .fl-theme-builder-flyout-menu-push-left {
  8604. position: relative;
  8605. left: 250px;
  8606. }
  8607. .fl-theme-builder-flyout-menu-active .fl-builder-content[data-type="header"] .fl-menu-disable-transition {
  8608. transition: none;
  8609. }
  8610.  
  8611. /* Shrink */
  8612. .fl-builder-content[data-shrink="1"] .fl-row-content-wrap,
  8613. .fl-builder-content[data-shrink="1"] .fl-col-content,
  8614. .fl-builder-content[data-shrink="1"] .fl-module-content,
  8615. .fl-builder-content[data-shrink="1"] img {
  8616. -webkit-transition: all 0.4s ease-in-out, background-position 1ms;
  8617. -moz-transition: all 0.4s ease-in-out, background-position 1ms;
  8618. transition: all 0.4s ease-in-out, background-position 1ms;
  8619. }
  8620. .fl-builder-content[data-shrink="1"] img {
  8621. width: auto;
  8622. }
  8623. .fl-builder-content[data-shrink="1"] img.fl-photo-img {
  8624. width: auto;
  8625. height: auto;
  8626. }
  8627. .fl-builder-content[data-type="header"].fl-theme-builder-header-shrink .fl-row-content-wrap {
  8628. margin-bottom: 0;
  8629. margin-top: 0;
  8630. }
  8631. .fl-theme-builder-header-shrink-row-bottom.fl-row-content-wrap {
  8632. padding-bottom: 5px;
  8633. }
  8634. .fl-theme-builder-header-shrink-row-top.fl-row-content-wrap {
  8635. padding-top: 5px;
  8636. }
  8637. .fl-builder-content[data-type="header"].fl-theme-builder-header-shrink .fl-col-content {
  8638. margin-bottom: 0;
  8639. margin-top: 0;
  8640. padding-bottom: 0;
  8641. padding-top: 0;
  8642. }
  8643. .fl-theme-builder-header-shrink-module-bottom.fl-module-content {
  8644. margin-bottom: 5px;
  8645. }
  8646. .fl-theme-builder-header-shrink-module-top.fl-module-content {
  8647. margin-top: 5px;
  8648. }
  8649. .fl-builder-content[data-type="header"].fl-theme-builder-header-shrink img {
  8650. -webkit-transition: all 0.4s ease-in-out, background-position 1ms;
  8651. -moz-transition: all 0.4s ease-in-out, background-position 1ms;
  8652. transition: all 0.4s ease-in-out, background-position 1ms;
  8653. }
  8654.  
  8655. /* Overlay */
  8656. .fl-builder-content[data-overlay="1"]:not(.fl-theme-builder-header-sticky):not(.fl-builder-content-editing) {
  8657. position: absolute;
  8658. width: 100%;
  8659. z-index: 100;
  8660. }
  8661. .fl-builder-edit body:not(.single-fl-theme-layout) .fl-builder-content[data-overlay="1"] {
  8662. display: none;
  8663. }
  8664. body:not(.single-fl-theme-layout) .fl-builder-content[data-overlay="1"]:not(.fl-theme-builder-header-scrolled):not([data-overlay-bg="default"]) .fl-row-content-wrap,
  8665. body:not(.single-fl-theme-layout) .fl-builder-content[data-overlay="1"]:not(.fl-theme-builder-header-scrolled):not([data-overlay-bg="default"]) .fl-col-content {
  8666. background: transparent;
  8667. }
  8668. /* Equal height Column Bottom Alignment */
  8669. .fl-col-group-equal-height.fl-col-group-align-bottom .fl-col-content {
  8670.    -webkit-justify-content: flex-end;
  8671.            justify-content: flex-end;
  8672.          -webkit-box-align: end;
  8673.           -webkit-box-pack: end;
  8674.              -ms-flex-pack: end;
  8675. }
  8676.  
  8677. /* H1-H6 Margin Reset in all Modules */
  8678. .uabb-module-content h1,
  8679. .uabb-module-content h2,
  8680. .uabb-module-content h3,
  8681. .uabb-module-content h4,
  8682. .uabb-module-content h5,
  8683. .uabb-module-content h6 {
  8684.    margin: 0;
  8685.    clear: both;
  8686. }
  8687.  
  8688. /* Anchor Tag Css */
  8689.  
  8690. .fl-module-content a,
  8691. .fl-module-content a:hover,
  8692. .fl-module-content a:focus {
  8693.    text-decoration: none;
  8694. }
  8695.  
  8696. /* Row Separator CSS */
  8697.  
  8698. .uabb-row-separator {
  8699.    position: absolute;
  8700.    width: 100%;
  8701.    left: 0;
  8702. }
  8703.  
  8704. .uabb-top-row-separator {
  8705.    top: 0;
  8706.    bottom: auto
  8707. }
  8708.  
  8709. .uabb-bottom-row-separator {
  8710.    top: auto;
  8711.    bottom: 0;
  8712. }
  8713.  
  8714. .fl-builder-content-editing .fl-visible-medium.uabb-row,
  8715. .fl-builder-content-editing .fl-visible-medium-mobile.uabb-row,
  8716. .fl-builder-content-editing .fl-visible-mobile.uabb-row {
  8717.    display: none !important;
  8718. }
  8719.  
  8720. @media (max-width: 992px) {
  8721.  
  8722.    .fl-builder-content-editing .fl-visible-desktop.uabb-row,
  8723.    .fl-builder-content-editing .fl-visible-mobile.uabb-row {
  8724.        display: none !important;
  8725.    }
  8726.  
  8727.    .fl-builder-content-editing .fl-visible-desktop-medium.uabb-row,
  8728.    .fl-builder-content-editing .fl-visible-medium.uabb-row,
  8729.    .fl-builder-content-editing .fl-visible-medium-mobile.uabb-row {
  8730.        display: block !important;
  8731.    }
  8732. }
  8733.  
  8734. @media (max-width: 768px) {
  8735.    .fl-builder-content-editing .fl-visible-desktop.uabb-row,
  8736.    .fl-builder-content-editing .fl-visible-desktop-medium.uabb-row,
  8737.    .fl-builder-content-editing .fl-visible-medium.uabb-row {
  8738.        display: none !important;
  8739.    }
  8740.  
  8741.    .fl-builder-content-editing .fl-visible-medium-mobile.uabb-row,
  8742.    .fl-builder-content-editing .fl-visible-mobile.uabb-row {
  8743.        display: block !important;
  8744.    }
  8745. }
  8746.  
  8747. .fl-responsive-preview-content .fl-builder-content-editing {
  8748.    overflow-x: hidden;
  8749.    overflow-y: visible;
  8750. }
  8751.  
  8752. .uabb-row-separator svg {
  8753.    width: 100%;
  8754. }
  8755.  
  8756. .uabb-top-row-separator.uabb-has-svg svg {
  8757.    position: absolute;
  8758.    padding: 0;
  8759.    margin: 0;
  8760.    left: 50%;
  8761.    top: -1px;
  8762.    bottom: auto;
  8763.    -webkit-transform: translateX(-50%);
  8764.    -ms-transform: translateX(-50%);
  8765.    transform: translateX(-50%);
  8766. }
  8767.  
  8768. .uabb-bottom-row-separator.uabb-has-svg svg {
  8769.    position: absolute;
  8770.    padding: 0;
  8771.    margin: 0;
  8772.    left: 50%;
  8773.    bottom: -1px;
  8774.    top: auto;
  8775.    -webkit-transform: translateX(-50%);
  8776.    -ms-transform: translateX(-50%);
  8777.    transform: translateX(-50%);
  8778. }
  8779. .uabb-bottom-row-separator.uabb-has-svg .uasvg-wave-separator {
  8780.    bottom: 0;
  8781. }
  8782. .uabb-top-row-separator.uabb-has-svg .uasvg-wave-separator {
  8783.    top: 0;
  8784. }
  8785.  
  8786. /**
  8787. *
  8788. *  Svg Triangle Separator
  8789. *  Big Triangle Separator
  8790. *  Big Triangle Left Separator
  8791. *  Svg Half Circle Separator
  8792. *  Curve Center Separator
  8793. *  Waves Separator
  8794. *  Stamp
  8795. *  Grass
  8796. *  Slime
  8797. *  Grass Bend
  8798. *  Wave Slide
  8799. *  Muliple Triangles
  8800. *  Pine Tree
  8801. *  Pine Tree Bend
  8802. *
  8803. ***************************************/
  8804. .uabb-bottom-row-separator.uabb-svg-triangle svg,
  8805. .uabb-bottom-row-separator.uabb-xlarge-triangle svg,
  8806. .uabb-top-row-separator.uabb-xlarge-triangle-left svg,
  8807. .uabb-bottom-row-separator.uabb-svg-circle svg,
  8808. .uabb-top-row-separator.uabb-slime-separator svg,
  8809. .uabb-top-row-separator.uabb-grass-separator svg,
  8810. .uabb-top-row-separator.uabb-grass-bend-separator svg,
  8811. .uabb-bottom-row-separator.uabb-mul-triangles-separator svg,
  8812. .uabb-top-row-separator.uabb-wave-slide-separator svg,
  8813. .uabb-top-row-separator.uabb-pine-tree-separator svg,
  8814. .uabb-top-row-separator.uabb-pine-tree-bend-separator svg,
  8815. .uabb-bottom-row-separator.uabb-stamp-separator svg,
  8816. .uabb-bottom-row-separator.uabb-xlarge-circle svg,
  8817. .uabb-top-row-separator.uabb-wave-separator svg{
  8818.    left: 50%;
  8819.    -webkit-transform: translateX(-50%) scaleY(-1);
  8820.       -moz-transform: translateX(-50%) scaleY(-1);
  8821.        -ms-transform: translateX(-50%) scaleY(-1);
  8822.         -o-transform: translateX(-50%) scaleY(-1);
  8823.            transform: translateX(-50%) scaleY(-1);
  8824. }
  8825.  
  8826. /*
  8827. *  Big Triangle
  8828. */
  8829. .uabb-bottom-row-separator.uabb-big-triangle svg {
  8830.    left: 50%;
  8831.    -webkit-transform: scale(1) scaleY(-1) translateX(-50%);
  8832.       -moz-transform: scale(1) scaleY(-1) translateX(-50%);
  8833.        -ms-transform: scale(1) scaleY(-1) translateX(-50%);
  8834.         -o-transform: scale(1) scaleY(-1) translateX(-50%);
  8835.            transform: scale(1) scaleY(-1) translateX(-50%);
  8836. }
  8837.  
  8838. .uabb-top-row-separator.uabb-big-triangle svg {
  8839.    left: 50%;
  8840.    -webkit-transform: translateX(-50%) scale(1);
  8841.       -moz-transform: translateX(-50%) scale(1);
  8842.        -ms-transform: translateX(-50%) scale(1);
  8843.         -o-transform: translateX(-50%) scale(1);
  8844.            transform: translateX(-50%) scale(1);
  8845. }
  8846.  
  8847. /**
  8848. *
  8849. *  Big Triangle Right Separator
  8850. *
  8851. ***************************************/
  8852. .uabb-top-row-separator.uabb-xlarge-triangle-right svg {
  8853.    left: 50%;
  8854.    -webkit-transform: translateX(-50%) scale(-1);
  8855.       -moz-transform: translateX(-50%) scale(-1);
  8856.        -ms-transform: translateX(-50%) scale(-1);
  8857.         -o-transform: translateX(-50%) scale(-1);
  8858.            transform: translateX(-50%) scale(-1);
  8859. }
  8860.  
  8861. .uabb-bottom-row-separator.uabb-xlarge-triangle-right svg {
  8862.    left: 50%;
  8863.    -webkit-transform: translateX(-50%) scaleX(-1);
  8864.       -moz-transform: translateX(-50%) scaleX(-1);
  8865.        -ms-transform: translateX(-50%) scaleX(-1);
  8866.         -o-transform: translateX(-50%) scaleX(-1);
  8867.            transform: translateX(-50%) scaleX(-1);
  8868. }
  8869.  
  8870. /**
  8871. *
  8872. *  Curve Left Separator
  8873. *  Curve Right Separator
  8874. *
  8875. ***************************************/
  8876. .uabb-top-row-separator.uabb-curve-up-separator svg {
  8877.    left: 50%;
  8878.     -webkit-transform: translateX(-50%) scaleY(-1);
  8879.       -moz-transform: translateX(-50%) scaleY(-1);
  8880.        -ms-transform: translateX(-50%) scaleY(-1);
  8881.         -o-transform: translateX(-50%) scaleY(-1);
  8882.            transform: translateX(-50%) scaleY(-1);
  8883. }
  8884.  
  8885. .uabb-top-row-separator.uabb-curve-down-separator svg {
  8886.    left: 50%;
  8887.    -webkit-transform: translateX(-50%) scale(-1);
  8888.       -moz-transform: translateX(-50%) scale(-1);
  8889.        -ms-transform: translateX(-50%) scale(-1);
  8890.         -o-transform: translateX(-50%) scale(-1);
  8891.            transform: translateX(-50%) scale(-1);
  8892. }
  8893.  
  8894. .uabb-bottom-row-separator.uabb-curve-down-separator svg {
  8895.    left: 50%;
  8896.    -webkit-transform: translateX(-50%) scaleX(-1);
  8897.       -moz-transform: translateX(-50%) scaleX(-1);
  8898.        -ms-transform: translateX(-50%) scaleX(-1);
  8899.         -o-transform: translateX(-50%) scaleX(-1);
  8900.            transform: translateX(-50%) scaleX(-1);
  8901. }
  8902.  
  8903.  
  8904. /**
  8905. *
  8906. *  Tilt Left Separator
  8907. *  Tilt Right Separator
  8908. *
  8909. ***************************************/
  8910.  
  8911. .uabb-top-row-separator.uabb-tilt-left-separator svg {
  8912.    left: 50%;
  8913.    -webkit-transform: translateX(-50%) scale(-1);
  8914.       -moz-transform: translateX(-50%) scale(-1);
  8915.        -ms-transform: translateX(-50%) scale(-1);
  8916.         -o-transform: translateX(-50%) scale(-1);
  8917.            transform: translateX(-50%) scale(-1);
  8918. }
  8919.  
  8920. .uabb-top-row-separator.uabb-tilt-right-separator svg{
  8921.    left: 50%;
  8922.    -webkit-transform: translateX(-50%) scaleY(-1);
  8923.       -moz-transform: translateX(-50%) scaleY(-1);
  8924.        -ms-transform: translateX(-50%) scaleY(-1);
  8925.         -o-transform: translateX(-50%) scaleY(-1);
  8926.            transform: translateX(-50%) scaleY(-1);
  8927. }
  8928.  
  8929. .uabb-bottom-row-separator.uabb-tilt-left-separator svg {
  8930.    left: 50%;
  8931.    -webkit-transform: translateX(-50%);
  8932.       -moz-transform: translateX(-50%);
  8933.        -ms-transform: translateX(-50%);
  8934.         -o-transform: translateX(-50%);
  8935.            transform: translateX(-50%);
  8936. }
  8937.  
  8938. .uabb-bottom-row-separator.uabb-tilt-right-separator svg {
  8939.    left: 50%;
  8940.    -webkit-transform: translateX(-50%) scaleX(-1);
  8941.       -moz-transform: translateX(-50%) scaleX(-1);
  8942.        -ms-transform: translateX(-50%) scaleX(-1);
  8943.         -o-transform: translateX(-50%) scaleX(-1);
  8944.            transform: translateX(-50%) scaleX(-1);
  8945. }
  8946.  
  8947. .uabb-top-row-separator.uabb-tilt-left-separator,
  8948. .uabb-top-row-separator.uabb-tilt-right-separator {
  8949.    top: 0;
  8950. }
  8951.  
  8952. .uabb-bottom-row-separator.uabb-tilt-left-separator,
  8953. .uabb-bottom-row-separator.uabb-tilt-right-separator {
  8954.    bottom: 0;
  8955. }
  8956.  
  8957. /**
  8958. *
  8959. *  Clouds Separator
  8960. *  Multi Triangle
  8961. *  Arrow Inward
  8962. *  Arrow Outward
  8963. *
  8964. ***************************************/
  8965.  
  8966. .uabb-top-row-separator.uabb-arrow-outward-separator svg,
  8967. .uabb-top-row-separator.uabb-arrow-inward-separator svg,
  8968. .uabb-top-row-separator.uabb-cloud-separator svg,
  8969. .uabb-top-row-separator.uabb-multi-triangle svg {
  8970.    left: 50%;
  8971.    -webkit-transform: translateX(-50%) scaleY(-1);
  8972.       -moz-transform: translateX(-50%) scaleY(-1);
  8973.        -ms-transform: translateX(-50%) scaleY(-1);
  8974.         -o-transform: translateX(-50%) scaleY(-1);
  8975.            transform: translateX(-50%) scaleY(-1);
  8976. }
  8977.  
  8978. .uabb-bottom-row-separator.uabb-multi-triangle svg {
  8979.    bottom: -2px;
  8980. }
  8981.  
  8982. .uabb-row-separator.uabb-round-split:after,
  8983. .uabb-row-separator.uabb-round-split:before {
  8984.    left: 0;
  8985.    width: 50%;
  8986.    background: inherit inherit/inherit inherit inherit inherit;
  8987.    content: '';
  8988.    position: absolute
  8989. }
  8990.  
  8991.  
  8992. /* Buttons
  8993. ------------------------------------------------------ */
  8994.  
  8995. .uabb-button-wrap a,
  8996. .uabb-button-wrap a:visited {
  8997.    display: inline-block;
  8998.    font-size: 16px;
  8999.    line-height: 18px;
  9000.    text-decoration: none;
  9001.    text-shadow: none;
  9002. }
  9003.  
  9004. .fl-builder-content .uabb-button:hover {
  9005.    text-decoration: none;
  9006. }
  9007.  
  9008. .fl-builder-content .uabb-button-width-full .uabb-button {
  9009.    display: block;
  9010.    text-align: center;
  9011. }
  9012.  
  9013. .uabb-button-width-custom .uabb-button {
  9014.    display: inline-block;
  9015.    text-align: center;
  9016.    max-width: 100%;
  9017. }
  9018. .fl-builder-content .uabb-button-left {
  9019.    text-align: left;
  9020. }
  9021. .fl-builder-content .uabb-button-center {
  9022.    text-align: center;
  9023. }
  9024. .fl-builder-content .uabb-button-right {
  9025.    text-align: right;
  9026. }
  9027.  
  9028. .fl-builder-content .uabb-button i,
  9029. .fl-builder-content .uabb-button i:before {
  9030.    font-size: 1em;
  9031.    height: 1em;
  9032.    line-height: 1em;
  9033.    width: 1em;
  9034. }
  9035.  
  9036. .uabb-button .uabb-button-icon-after {
  9037.    margin-left: 8px;
  9038.    margin-right: 0;
  9039. }
  9040. .uabb-button .uabb-button-icon-before {
  9041.    margin-left: 0;
  9042.    margin-right: 8px;
  9043. }
  9044. .uabb-button .uabb-button-icon-no-text {
  9045.    margin: 0;
  9046. }
  9047. .uabb-button-has-icon .uabb-button-text {
  9048.    vertical-align: middle;
  9049. }
  9050.  
  9051. /* Icons
  9052. ------------------------------------------------------ */
  9053.  
  9054. .uabb-icon-wrap {
  9055.    display: inline-block;
  9056. }
  9057. .uabb-icon a {
  9058.    text-decoration: none;
  9059. }
  9060. .uabb-icon i {
  9061.    display: block;
  9062. }
  9063. .uabb-icon i:before {
  9064.    border: none !important;
  9065.    background: none !important;
  9066. }
  9067. .uabb-icon-text {
  9068.    display: table-cell;
  9069.    text-align: left;
  9070.    padding-left: 15px;
  9071.    vertical-align: middle;
  9072. }
  9073. .uabb-icon-text *:last-child {
  9074.    margin: 0 !important;
  9075.    padding: 0 !important;
  9076. }
  9077. .uabb-icon-text a {
  9078.    text-decoration: none;
  9079. }
  9080.  
  9081. /* Photos
  9082. ------------------------------------------------------ */
  9083.  
  9084. .uabb-photo {
  9085.    line-height: 0;
  9086.    position: relative;
  9087.    z-index: 2;
  9088. }
  9089. .uabb-photo-align-left {
  9090.    text-align: left;
  9091. }
  9092. .uabb-photo-align-center {
  9093.    text-align: center;
  9094. }
  9095. .uabb-photo-align-right {
  9096.    text-align: right;
  9097. }
  9098. .uabb-photo-content {
  9099.    border-radius: 0;
  9100.    display: inline-block;
  9101.    line-height: 0;
  9102.    position: relative;
  9103.    max-width: 100%;
  9104.    overflow: hidden;
  9105. }
  9106. .uabb-photo-content img {
  9107.    border-radius: inherit;
  9108.    display: inline;
  9109.    height: auto;
  9110.    max-width: 100%;
  9111.    width: auto;
  9112. }
  9113. .fl-builder-content .uabb-photo-crop-circle img {
  9114.    -webkit-border-radius: 100%;
  9115.    -moz-border-radius: 100%;
  9116.    border-radius: 100%;
  9117. }
  9118. .fl-builder-content .uabb-photo-crop-square img {
  9119.    -webkit-border-radius: 0;
  9120.    -moz-border-radius: 0;
  9121.    border-radius: 0;
  9122. }
  9123. .uabb-photo-caption {
  9124.    font-size: 13px;
  9125.    line-height: 18px;
  9126.    overflow: hidden;
  9127.    text-overflow: ellipsis;
  9128.    white-space: nowrap;
  9129. }
  9130. .uabb-photo-caption-below {
  9131.    padding-bottom: 20px;
  9132.    padding-top: 10px;
  9133. }
  9134. .uabb-photo-caption-hover {
  9135.    background: rgba(0,0,0,0.7);
  9136.    bottom: 0;
  9137.    color: #fff;
  9138.    left: 0;
  9139.    opacity: 0;
  9140.    visibility: hidden;
  9141.    filter: alpha(opacity = 0);
  9142.    padding: 10px 15px;
  9143.    position: absolute;
  9144.    right: 0;
  9145.    -webkit-transition:visibility 200ms linear;
  9146.    -moz-transition:visibility 200ms linear;
  9147.    transition:visibility 200ms linear;
  9148. }
  9149. .uabb-photo-content:hover .uabb-photo-caption-hover {
  9150.    opacity: 100;
  9151.    visibility: visible;
  9152. }
  9153.  
  9154. /* Panel & Buttons
  9155. ------------------------------------------------------ */
  9156. .uabb-active-btn {
  9157.    background: #1e8cbe;
  9158.    border-color: #0074a2;
  9159.    -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,.6);
  9160.    box-shadow: inset 0 1px 0 rgba(120,200,230,.6);
  9161.    color: white;
  9162. }
  9163. .fl-builder-bar .fl-builder-add-content-button {
  9164.    display: block !important;
  9165.    opacity: 1 !important;
  9166. }
  9167.  
  9168. /* Image Icon Object */
  9169. .uabb-imgicon-wrap .uabb-icon {
  9170.    display: block;
  9171. }
  9172. .uabb-imgicon-wrap .uabb-icon i{
  9173.    float: none;
  9174. }
  9175.  
  9176. /* Photo */
  9177. .uabb-imgicon-wrap .uabb-image {
  9178.    line-height: 0;
  9179.    position: relative;
  9180. }
  9181. .uabb-imgicon-wrap .uabb-image-align-left {
  9182.    text-align: left;
  9183. }
  9184. .uabb-imgicon-wrap .uabb-image-align-center {
  9185.    text-align: center;
  9186. }
  9187. .uabb-imgicon-wrap .uabb-image-align-right {
  9188.    text-align: right;
  9189. }
  9190. .uabb-imgicon-wrap .uabb-image-content {
  9191.    display: inline-block;
  9192.    border-radius: 0;
  9193.    line-height: 0;
  9194.    position: relative;
  9195.    max-width: 100%;
  9196. }
  9197. .uabb-imgicon-wrap .uabb-image-content img {
  9198.    display: inline;
  9199.    height: auto !important;
  9200.    max-width: 100%;
  9201.    width: auto;
  9202.    border-radius: inherit;
  9203.    box-shadow: none;
  9204.    box-sizing: content-box;
  9205. }
  9206. .fl-builder-content .uabb-imgicon-wrap .uabb-image-crop-circle img {
  9207.    -webkit-border-radius: 100%;
  9208.    -moz-border-radius: 100%;
  9209.    border-radius: 100%;
  9210. }
  9211. .fl-builder-content .uabb-imgicon-wrap .uabb-image-crop-square img {
  9212.    -webkit-border-radius: 0;
  9213.    -moz-border-radius: 0;
  9214.    border-radius: 0;
  9215. }
  9216.  
  9217.  
  9218. /* Creative Button
  9219. ___________________________________________________________________________*/
  9220.  
  9221. .uabb-creative-button-wrap a,
  9222. .uabb-creative-button-wrap a:visited {
  9223.    background: #fafafa;
  9224.    border: 1px solid #ccc;
  9225.    color: #333;
  9226.    display: inline-block;
  9227.    vertical-align: middle;
  9228.    text-align: center;
  9229.    overflow: hidden;
  9230.    text-decoration: none;
  9231.    text-shadow: none;
  9232.    box-shadow: none;
  9233.    position: relative;
  9234.    -webkit-transition: all 200ms linear;
  9235.       -moz-transition: all 200ms linear;
  9236.        -ms-transition: all 200ms linear;
  9237.         -o-transition: all 200ms linear;
  9238.            transition: all 200ms linear;
  9239.  
  9240. }
  9241.  
  9242. .uabb-creative-button-wrap a:focus {
  9243.    text-decoration: none;
  9244.    text-shadow: none;
  9245.    box-shadow: none;
  9246. }
  9247.  
  9248. .uabb-creative-button-wrap a .uabb-creative-button-text,
  9249. .uabb-creative-button-wrap a .uabb-creative-button-icon,
  9250. .uabb-creative-button-wrap a:visited .uabb-creative-button-text,
  9251. .uabb-creative-button-wrap a:visited .uabb-creative-button-icon {
  9252.    -webkit-transition: all 200ms linear;
  9253.       -moz-transition: all 200ms linear;
  9254.        -ms-transition: all 200ms linear;
  9255.         -o-transition: all 200ms linear;
  9256.            transition: all 200ms linear;
  9257. }
  9258.  
  9259. .uabb-creative-button-wrap a:hover {
  9260.    text-decoration: none;
  9261. }
  9262.  
  9263. .uabb-creative-button-wrap .uabb-creative-button-width-full .uabb-creative-button {
  9264.    display: block;
  9265.    text-align: center;
  9266. }
  9267. .uabb-creative-button-wrap .uabb-creative-button-width-custom .uabb-creative-button {
  9268.    display: inline-block;
  9269.    text-align: center;
  9270.    max-width: 100%;
  9271. }
  9272. .uabb-creative-button-wrap .uabb-creative-button-left {
  9273.    text-align: left;
  9274. }
  9275. .uabb-creative-button-wrap .uabb-creative-button-center {
  9276.    text-align: center;
  9277. }
  9278. .uabb-creative-button-wrap .uabb-creative-button-right {
  9279.    text-align: right;
  9280. }
  9281. .uabb-creative-button-wrap .uabb-creative-button i {
  9282.    font-size: 1.3em;
  9283.    height: auto;
  9284.    vertical-align: middle;
  9285.    width: auto;
  9286. }
  9287.  
  9288. .uabb-creative-button-wrap .uabb-creative-button .uabb-creative-button-icon-after {
  9289.    margin-left: 8px;
  9290.    margin-right: 0;
  9291. }
  9292. .uabb-creative-button-wrap .uabb-creative-button .uabb-creative-button-icon-before {
  9293.    margin-right: 8px;
  9294.    margin-left: 0;
  9295. }
  9296. .uabb-creative-button-wrap.uabb-creative-button-icon-no-text .uabb-creative-button i {
  9297.    margin: 0;
  9298. }
  9299.  
  9300. .uabb-creative-button-wrap .uabb-creative-button-has-icon .uabb-creative-button-text {
  9301.    vertical-align: middle;
  9302. }
  9303. .uabb-creative-button-wrap a,
  9304. .uabb-creative-button-wrap a:visited {
  9305.    padding: 12px 24px;
  9306. }
  9307.  
  9308. /*  Translate Button styles */
  9309.  
  9310. .uabb-creative-button.uabb-creative-transparent-btn {
  9311.    background: transparent;
  9312. }
  9313. .uabb-creative-button.uabb-creative-transparent-btn:after {
  9314.    content: '';
  9315.    position: absolute;
  9316.    z-index: 1;
  9317.    -webkit-transition: all 200ms linear;
  9318.       -moz-transition: all 200ms linear;
  9319.        -ms-transition: all 200ms linear;
  9320.         -o-transition: all 200ms linear;
  9321.            transition: all 200ms linear;
  9322. }
  9323.  
  9324. /* transparent-fill-top, transparent-fill-bottom  */
  9325. .uabb-transparent-fill-top-btn:after,
  9326. .uabb-transparent-fill-bottom-btn:after {
  9327.    width: 100%;
  9328.    height: 0;
  9329.    left: 0;
  9330. }
  9331.  
  9332. /* transparent-fill-top */
  9333. .uabb-transparent-fill-top-btn:after {
  9334.    top: 0;
  9335. }
  9336. /* transparent-fill-bottom */
  9337. .uabb-transparent-fill-bottom-btn:after {
  9338.    bottom: 0;
  9339. }
  9340.  
  9341. /* transparent-fill-left, transparent-fill-right */
  9342. .uabb-transparent-fill-left-btn:after,
  9343. .uabb-transparent-fill-right-btn:after {
  9344.    width: 0;
  9345.    height: 100%;
  9346.    top: 0;
  9347. }
  9348.  
  9349. /* transparent-fill-left */
  9350. .uabb-transparent-fill-left-btn:after {
  9351.    left: 0;
  9352. }
  9353. /* transparent-fill-right */
  9354. .uabb-transparent-fill-right-btn:after {
  9355.    right: 0;
  9356. }
  9357.  
  9358.  
  9359. /* transparent-fill-center */
  9360. .uabb-transparent-fill-center-btn:after{
  9361.    width: 0;
  9362.    height: 100%;
  9363.    top: 50%;
  9364.    left: 50%;
  9365.    -webkit-transform: translateX(-50%) translateY(-50%);
  9366.       -moz-transform: translateX(-50%) translateY(-50%);
  9367.        -ms-transform: translateX(-50%) translateY(-50%);
  9368.         -o-transform: translateX(-50%) translateY(-50%);
  9369.            transform: translateX(-50%) translateY(-50%);
  9370. }
  9371.  
  9372. /*  transparent-fill-diagonal, transparent-fill-horizontal  */
  9373. .uabb-transparent-fill-diagonal-btn:after,
  9374. .uabb-transparent-fill-horizontal-btn:after {
  9375.    width: 100%;
  9376.    height: 0;
  9377.    top: 50%;
  9378.    left: 50%;
  9379. }
  9380.  
  9381. /*  transparent-fill-diagonal */
  9382. .uabb-transparent-fill-diagonal-btn{
  9383.    overflow: hidden;
  9384. }
  9385. .uabb-transparent-fill-diagonal-btn:after{
  9386.    -webkit-transform: translateX(-50%) translateY(-50%) rotate( 45deg );
  9387.       -moz-transform: translateX(-50%) translateY(-50%) rotate( 45deg );
  9388.        -ms-transform: translateX(-50%) translateY(-50%) rotate( 45deg );
  9389.         -o-transform: translateX(-50%) translateY(-50%) rotate( 45deg );
  9390.            transform: translateX(-50%) translateY(-50%) rotate( 45deg );
  9391. }
  9392. /* transparent-fill-horizontal */
  9393. .uabb-transparent-fill-horizontal-btn:after{
  9394.    -webkit-transform: translateX(-50%) translateY(-50%);
  9395.       -moz-transform: translateX(-50%) translateY(-50%);
  9396.        -ms-transform: translateX(-50%) translateY(-50%);
  9397.         -o-transform: translateX(-50%) translateY(-50%);
  9398.            transform: translateX(-50%) translateY(-50%);
  9399. }
  9400.  
  9401.  
  9402. /*  3D Button styles */
  9403. .uabb-creative-button-wrap .uabb-creative-threed-btn.uabb-threed_down-btn,
  9404. .uabb-creative-button-wrap .uabb-creative-threed-btn.uabb-threed_up-btn,
  9405. .uabb-creative-button-wrap .uabb-creative-threed-btn.uabb-threed_left-btn,
  9406. .uabb-creative-button-wrap .uabb-creative-threed-btn.uabb-threed_right-btn {
  9407.    -webkit-transition: none;
  9408.       -moz-transition: none;
  9409.        -ms-transition: none;
  9410.         -o-transition: none;
  9411.            transition: none;
  9412. }
  9413.  
  9414. .perspective {
  9415.    -webkit-perspective: 800px;
  9416.       -moz-perspective: 800px;
  9417.            perspective: 800px;
  9418.            margin: 0;
  9419. }
  9420. .uabb-creative-button.uabb-creative-threed-btn:after {
  9421.    content: '';
  9422.    position: absolute;
  9423.    z-index: -1;
  9424.    -webkit-transition: all 200ms linear;
  9425.       -moz-transition: all 200ms linear;
  9426.            transition: all 200ms linear;
  9427. }
  9428.  
  9429. .uabb-creative-button.uabb-creative-threed-btn {
  9430.    outline: 1px solid transparent;
  9431.    -webkit-transform-style: preserve-3d;
  9432.       -moz-transform-style: preserve-3d;
  9433.            transform-style: preserve-3d;
  9434. }
  9435.  
  9436. /*  3D Button styles --- Animate to top */
  9437. .uabb-creative-threed-btn.uabb-animate_top-btn:after {
  9438.    height: 40%;
  9439.    left: 0;
  9440.    top: -40%;
  9441.    width: 100%;
  9442.    -webkit-transform-origin: 0% 100%;
  9443.       -moz-transform-origin: 0% 100%;
  9444.            transform-origin: 0% 100%;
  9445.    -webkit-transform: rotateX(90deg);
  9446.       -moz-transform: rotateX(90deg);
  9447.            transform: rotateX(90deg);
  9448. }
  9449.  
  9450. /*  3D Button styles --- Animate to bottom */
  9451. .uabb-creative-threed-btn.uabb-animate_bottom-btn:after {
  9452.    width: 100%;
  9453.    height: 40%;
  9454.    left: 0;
  9455.    top: 100%;
  9456.    -webkit-transform-origin: 0% 0%;
  9457.       -moz-transform-origin: 0% 0%;
  9458.        -ms-transform-origin: 0% 0%;
  9459.            transform-origin: 0% 0%;
  9460.    -webkit-transform: rotateX(-90deg);
  9461.       -moz-transform: rotateX(-90deg);
  9462.        -ms-transform: rotateX(-90deg);
  9463.            transform: rotateX(-90deg);
  9464. }
  9465.  
  9466. /*  3D Button styles --- Animate to Left */
  9467. .uabb-creative-threed-btn.uabb-animate_left-btn:after {
  9468.    width: 20%;
  9469.    height: 100%;
  9470.    left: -20%;
  9471.    top: 0;
  9472.    -webkit-transform-origin: 100% 0%;
  9473.       -moz-transform-origin: 100% 0%;
  9474.        -ms-transform-origin: 100% 0%;
  9475.            transform-origin: 100% 0%;
  9476.    -webkit-transform: rotateY(-60deg);
  9477.       -moz-transform: rotateY(-60deg);
  9478.        -ms-transform: rotateY(-60deg);
  9479.            transform: rotateY(-60deg);
  9480. }
  9481.  
  9482. /*  3D Button styles --- Animate to Right */
  9483. .uabb-creative-threed-btn.uabb-animate_right-btn:after {
  9484.    width: 20%;
  9485.    height: 100%;
  9486.    left: 104%;
  9487.    top: 0;
  9488.    -webkit-transform-origin: 0% 0%;
  9489.       -moz-transform-origin: 0% 0%;
  9490.        -ms-transform-origin: 0% 0%;
  9491.            transform-origin: 0% 0%;
  9492.    -webkit-transform: rotateY(120deg);
  9493.       -moz-transform: rotateY(120deg);
  9494.        -ms-transform: rotateY(120deg);
  9495.            transform: rotateY(120deg);
  9496. }
  9497.  
  9498.  
  9499. /* Animate Top */
  9500. .uabb-animate_top-btn:hover{
  9501.    -webkit-transform: rotateX(-15deg);
  9502.       -moz-transform: rotateX(-15deg);
  9503.        -ms-transform: rotateX(-15deg);
  9504.         -o-transform: rotateX(-15deg);
  9505.            transform: rotateX(-15deg);
  9506.  
  9507. }
  9508.  
  9509. /* Animate Bottom */
  9510. .uabb-animate_bottom-btn:hover{
  9511.    -webkit-transform: rotateX(15deg);
  9512.       -moz-transform: rotateX(15deg);
  9513.        -ms-transform: rotateX(15deg);
  9514.         -o-transform: rotateX(15deg);
  9515.            transform: rotateX(15deg);
  9516.  
  9517. }
  9518.  
  9519. /* Animate Left */
  9520. .uabb-animate_left-btn:hover{
  9521.    -webkit-transform: rotateY(6deg);
  9522.       -moz-transform: rotateY(6deg);
  9523.        -ms-transform: rotateY(6deg);
  9524.         -o-transform: rotateY(6deg);
  9525.            transform: rotateY(6deg);
  9526. }
  9527.  
  9528. /* Animate Right */
  9529. .uabb-animate_right-btn:hover{
  9530.    -webkit-transform: rotateY(-6deg);
  9531.       -moz-transform: rotateY(-6deg);
  9532.        -ms-transform: rotateY(-6deg);
  9533.         -o-transform: rotateY(-6deg);
  9534.            transform: rotateY(-6deg);
  9535.  
  9536. }
  9537.  
  9538. /*  Flat Button styles  */
  9539.  
  9540. /*  Common Classes  */
  9541. .uabb-creative-flat-btn.uabb-animate_to_right-btn,
  9542. .uabb-creative-flat-btn.uabb-animate_to_left-btn,
  9543. .uabb-creative-flat-btn.uabb-animate_from_top-btn,
  9544. .uabb-creative-flat-btn.uabb-animate_from_bottom-btn {
  9545.    overflow: hidden;
  9546.    position: relative;
  9547. }
  9548.  
  9549. .uabb-creative-flat-btn.uabb-animate_to_right-btn i,
  9550. .uabb-creative-flat-btn.uabb-animate_to_left-btn i,
  9551. .uabb-creative-flat-btn.uabb-animate_from_top-btn i,
  9552. .uabb-creative-flat-btn.uabb-animate_from_bottom-btn i {
  9553.    bottom: 0;
  9554.    height: 100%;
  9555.    margin: 0;
  9556.    opacity: 1;
  9557.    position: absolute;
  9558.    right: 0;
  9559.    width: 100%;
  9560.    -webkit-transition: all 200ms linear;
  9561.       -moz-transition: all 200ms linear;
  9562.            transition: all 200ms linear;
  9563.    -webkit-transform: translateY(0);
  9564.       -moz-transform: translateY(0);
  9565.         -o-transform: translateY(0);
  9566.        -ms-transform: translateY(0);
  9567.            transform: translateY(0);
  9568. }
  9569.  
  9570. .uabb-creative-flat-btn.uabb-animate_to_right-btn .uabb-button-text,
  9571. .uabb-creative-flat-btn.uabb-animate_to_left-btn .uabb-button-text,
  9572. .uabb-creative-flat-btn.uabb-animate_from_top-btn .uabb-button-text,
  9573. .uabb-creative-flat-btn.uabb-animate_from_bottom-btn .uabb-button-text {
  9574.    display: inline-block;
  9575.    width: 100%;
  9576.    height: 100%;
  9577.    -webkit-transition: all 200ms linear;
  9578.       -moz-transition: all 200ms linear;
  9579.        -ms-transition: all 200ms linear;
  9580.         -o-transition: all 200ms linear;
  9581.            transition: all 200ms linear;
  9582.    -webkit-backface-visibility: hidden;
  9583.       -moz-backface-visibility: hidden;
  9584.            backface-visibility: hidden;
  9585. }
  9586.  
  9587. /*  Making Icon position center  */
  9588. .uabb-creative-flat-btn.uabb-animate_to_right-btn i:before,
  9589. .uabb-creative-flat-btn.uabb-animate_to_left-btn i:before,
  9590. .uabb-creative-flat-btn.uabb-animate_from_top-btn i:before,
  9591. .uabb-creative-flat-btn.uabb-animate_from_bottom-btn i:before {
  9592.    position: absolute;
  9593.    top: 50%;
  9594.    left: 50%;
  9595.    -webkit-transform: translateX(-50%) translateY(-50%);
  9596.    -moz-transform: translateX(-50%) translateY(-50%);
  9597.    -o-transform: translateX(-50%) translateY(-50%);
  9598.    -ms-transform: translateX(-50%) translateY(-50%);
  9599.    transform: translateX(-50%) translateY(-50%);
  9600. }
  9601.  
  9602. /*  Common Hover Classes */
  9603. .uabb-creative-flat-btn.uabb-animate_to_right-btn:hover i,
  9604. .uabb-creative-flat-btn.uabb-animate_to_left-btn:hover i {
  9605.    left: 0;
  9606. }
  9607. .uabb-creative-flat-btn.uabb-animate_from_top-btn:hover i,
  9608. .uabb-creative-flat-btn.uabb-animate_from_bottom-btn:hover i {
  9609.    top: 0;
  9610. }
  9611.  
  9612. /*  Animate Icon to the right */
  9613. .uabb-creative-flat-btn.uabb-animate_to_right-btn i {
  9614.    top: 0;
  9615.    left: -100%;
  9616. }
  9617. .uabb-creative-flat-btn.uabb-animate_to_right-btn:hover .uabb-button-text {
  9618.    -webkit-transform: translateX(200%);
  9619.       -moz-transform: translateX(200%);
  9620.        -ms-transform: translateX(200%);
  9621.         -o-transform: translateX(200%);
  9622.            transform: translateX(200%);
  9623. }
  9624.  
  9625. /*  Animate Icon to the left */
  9626. .uabb-creative-flat-btn.uabb-animate_to_left-btn i {
  9627.    top: 0;
  9628.    left: 100%;
  9629. }
  9630.  
  9631. .uabb-creative-flat-btn.uabb-animate_to_left-btn:hover .uabb-button-text {
  9632.    -webkit-transform: translateX(-200%);
  9633.       -moz-transform: translateX(-200%);
  9634.        -ms-transform: translateX(-200%);
  9635.         -o-transform: translateX(-200%);
  9636.            transform: translateX(-200%);
  9637. }
  9638.  
  9639.  
  9640. /*  Animate Icon From the Top */
  9641. .uabb-creative-flat-btn.uabb-animate_from_top-btn i {
  9642.    top: -100%;
  9643.    left: 0;
  9644. }
  9645.  
  9646. .uabb-creative-flat-btn.uabb-animate_from_top-btn:hover .uabb-button-text {
  9647.    -webkit-transform: translateY(400px);
  9648.       -moz-transform: translateY(400px);
  9649.        -ms-transform: translateY(400px);
  9650.         -o-transform: translateY(400px);
  9651.            transform: translateY(400px);
  9652. }
  9653.  
  9654. /*  Animate Icon From the Bottom */
  9655. .uabb-creative-flat-btn.uabb-animate_from_bottom-btn i {
  9656.    top: 100%;
  9657.    left: 0;
  9658. }
  9659.  
  9660. .uabb-creative-flat-btn.uabb-animate_from_bottom-btn:hover .uabb-button-text {
  9661.    -webkit-transform: translateY(-400px);
  9662.       -moz-transform: translateY(-400px);
  9663.        -ms-transform: translateY(-400px);
  9664.         -o-transform: translateY(-400px);
  9665.            transform: translateY(-400px);
  9666. }
  9667.  
  9668. /* Media/Video CSS */
  9669. .uabb-tab-acc-content .wp-video,
  9670. .uabb-tab-acc-content video.wp-video-shortcode,
  9671. .uabb-tab-acc-content .mejs-container:not(.mejs-audio),
  9672. .uabb-tab-acc-content .mejs-overlay.load,
  9673. .uabb-adv-accordion-content .wp-video,
  9674. .uabb-adv-accordion-content video.wp-video-shortcode,
  9675. .uabb-adv-accordion-content .mejs-container:not(.mejs-audio),
  9676. .uabb-adv-accordion-content .mejs-overlay.load {
  9677.    width: 100% !important;
  9678.    height: 100% !important;
  9679. }
  9680. .uabb-tab-acc-content .mejs-container:not(.mejs-audio),
  9681. .uabb-adv-accordion-content .mejs-container:not(.mejs-audio) {
  9682.    padding-top: 56.25%;
  9683. }
  9684. .uabb-tab-acc-content .wp-video,
  9685. .uabb-tab-acc-content video.wp-video-shortcode,
  9686. .uabb-adv-accordion-content .wp-video,
  9687. .uabb-adv-accordion-content video.wp-video-shortcode {
  9688.    max-width: 100% !important;
  9689. }
  9690. .uabb-tab-acc-content video.wp-video-shortcode,
  9691. .uabb-adv-accordion-content video.wp-video-shortcode {
  9692.    position: relative;
  9693. }
  9694. .uabb-tab-acc-content .mejs-container:not(.mejs-audio) .mejs-mediaelement,
  9695. .uabb-adv-accordion-content .mejs-container:not(.mejs-audio) .mejs-mediaelement {
  9696.    position: absolute;
  9697.    top: 0;
  9698.    right: 0;
  9699.    bottom: 0;
  9700.    left: 0;
  9701. }
  9702. .uabb-tab-acc-content .mejs-overlay-play,
  9703. .uabb-adv-accordion-content .mejs-overlay-play {
  9704.    top: 0;
  9705.    right: 0;
  9706.    bottom: 0;
  9707.    left: 0;
  9708.    width: auto !important;
  9709.    height: auto !important;
  9710. }
  9711. .fl-row-content-wrap .uabb-row-particles-background,
  9712. .uabb-col-particles-background {
  9713.    width:100%;
  9714.    height:100%;
  9715.    position:absolute;
  9716.    left:0;
  9717.    top:0;
  9718. }
  9719. /* Theme Button
  9720. ------------------------------------------------------ */
  9721. /*.fl-builder-content a.uabb-button,
  9722. .fl-builder-content a.uabb-button:visited,
  9723. .fl-builder-content a.uabb-creative-button,
  9724. .fl-builder-content a.uabb-creative-button:visited*/
  9725.  
  9726. .uabb-creative-button-wrap a,
  9727. .uabb-creative-button-wrap a:visited {
  9728. }
  9729.  
  9730. .uabb-dual-button .uabb-btn,
  9731. .uabb-dual-button .uabb-btn:visited {
  9732. }
  9733.  
  9734.  
  9735. /* Responsive Js Breakpoint Css */
  9736.  
  9737. .uabb-js-breakpoint {
  9738. content:"default";
  9739. display:none;
  9740. }
  9741. @media screen and (max-width: 992px) {
  9742. .uabb-js-breakpoint {
  9743. content:"992";
  9744. }
  9745. }
  9746.  
  9747. @media screen and (max-width: 768px) {
  9748. .uabb-js-breakpoint {
  9749. content:"768";
  9750. }
  9751. }
  9752.  
  9753.  
  9754.                                
  9755.        
  9756.        .fl-builder-row-settings #fl-field-separator_position {
  9757.            display: none !important;
  9758.        }
  9759.        
  9760.        
  9761.        
  9762.        
  9763.        
  9764.        
  9765.        
  9766.        
  9767.         .fl-node-yor4ftqixk7h .fl-row-content {
  9768. min-width: 0px;
  9769. }
  9770. </style>
  9771. <link rel='stylesheet' id='customs-css' href='https://linktek.com/wp-content/themes/bb-theme-child/css/customs.css' media='all' />
  9772. <link rel='stylesheet' id='gform_basic-css' href='https://linktek.com/wp-content/plugins/gravityforms/assets/css/dist/basic.min.css' media='all' />
  9773. <link rel='stylesheet' id='gform_theme_components-css' href='https://linktek.com/wp-content/plugins/gravityforms/assets/css/dist/theme-components.min.css' media='all' />
  9774. <link rel='stylesheet' id='gform_theme_ie11-css' href='https://linktek.com/wp-content/plugins/gravityforms/assets/css/dist/theme-ie11.min.css' media='all' />
  9775. <link rel='stylesheet' id='gform_theme-css' href='https://linktek.com/wp-content/plugins/gravityforms/assets/css/dist/theme.min.css' media='all' />
  9776. <link rel='stylesheet' id='popup-maker-site-css' href='//linktek.com/wp-content/uploads/pum/pum-site-styles.css?generated=1727969613&#038;ver=1.20.2' media='all' />
  9777. <link rel='stylesheet' id='__EPYT__style-css' href='https://linktek.com/wp-content/plugins/youtube-embed-plus/styles/ytprefs.min.css' media='all' />
  9778. <style id='__EPYT__style-inline-css'>
  9779.  
  9780.                .epyt-gallery-thumb {
  9781.                        width: 33.333%;
  9782.                }
  9783.                
  9784. </style>
  9785. <link rel='stylesheet' id='base-css' href='https://linktek.com/wp-content/themes/bb-theme/css/base.min.css' media='all' />
  9786. <link rel='stylesheet' id='bb-theme-style-css' href='https://linktek.com/wp-content/themes/bb-theme-child/style.css' media='all' />
  9787. <style id='bb-theme-style-inline-css'>
  9788. body{background-color:#f2f2f2;color:#808080;font-family:"Helvetica",Verdana,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.45;font-style:normal;padding:0;word-wrap:break-word}body.modal-open .media-modal-close:hover,body.modal-open .media-modal-close:focus{background:none;border:none;padding:1px}body.modal-open .media-modal-close:focus{position:absolute}h1,h2,h3,h4,h5,h6{color:#333;font-family:"Helvetica",Verdana,Arial,sans-serif;font-weight:400;line-height:1.4;text-transform:none;font-style:normal}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:#333}h1 a:hover,h2 a:hover,h3 a:hover,h4 a:hover,h5 a:hover,h6 a:hover{text-decoration:none}h1{font-size:36px;line-height:1.4;letter-spacing:0px;color:#333;font-family:"Helvetica",Verdana,Arial,sans-serif;font-weight:400;font-style:normal;text-transform:none}h1 a{color:#333}h2{font-size:30px;line-height:1.4;letter-spacing:0px}h3{font-size:24px;line-height:1.4;letter-spacing:0px}h4{font-size:18px;line-height:1.4;letter-spacing:0px}h5{font-size:14px;line-height:1.4;letter-spacing:0px}h6{font-size:12px;line-height:1.4;letter-spacing:0px}a{color:#428bca}a:hover,a:focus{color:#428bca}blockquote{border-color:#e6e6e6}iframe{max-width:100%}img{max-width:100%;height:auto}.fl-screen-reader-text{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.fl-screen-reader-text:focus{position:static;width:auto;height:auto}body.rtl .fl-screen-reader-text{right:-10000px}.screen-reader-text{clip:rect(1px, 1px, 1px, 1px);position:absolute;height:1px;width:1px;overflow:hidden}.container{padding-left:20px;padding-right:20px}.fl-page{position:relative;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;margin:0 auto}.fl-page-header{border-color:#e6e6e6;background-color:#fff;color:#808080}.fl-page-header *,.fl-page-header h1,.fl-page-header h2,.fl-page-header h3,.fl-page-header h4,.fl-page-header h5,.fl-page-header h6{color:#808080}.fl-page-header a,.fl-page-header a *,.fl-page-header a.fas,.fl-page-header a.fab{color:#808080}.fl-page-header a:hover,.fl-page-header a:focus,.fl-page-header a:hover *,.fl-page-header a:focus *,.fl-page-header a.fas:hover,.fl-page-header a.fab:hover,.fl-page-header a.fas:focus,.fl-page-header a.fab:focus{color:#428bca}.fl-page-header .navbar-nav li>a{color:#808080}.fl-page-header .navbar-nav li>a:hover,.fl-page-header .navbar-nav li>a:focus{color:#428bca}.fl-page-header .navbar-nav li.current-menu-ancestor>a,.fl-page-header .navbar-nav li.current-menu-parent>a,.fl-page-header .navbar-nav li.current-menu-item>a{color:#428bca}.fl-page-header .navbar-nav li.current-menu-item~li.current-menu-item>a{color:#428bca}.fl-page-header-container{padding-bottom:30px;padding-top:30px}.fl-page-header-logo{text-align:center}.fl-page-header-logo a{text-decoration:none}.fl-logo-text{font-family:"Helvetica",Verdana,Arial,sans-serif;font-weight:400;font-size:30px;color:#808080 !important}.fl-logo-text:hover,.fl-logo-text:focus{color:#428bca !important}.fl-theme-tagline{color:#808080 !important}.fl-logo-img{max-width:100%}.fl-page-header-primary .fl-logo-img{height:auto !important}.fl-logo-img.sticky-logo{display:none}.fl-page-header-fixed .fl-logo-img{display:inherit}.fl-page-header-fixed .fl-logo-img.sticky-logo{display:inherit}.fl-nav-mobile-offcanvas .fl-button-close{display:none}.fl-page-nav-wrap{padding-bottom:20px}.fl-page-nav{background:transparent;border:none;min-height:0;margin-bottom:0;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.fl-page-nav .navbar-nav>li>a{padding:15px}.fl-page-nav .navbar-toggle{border:none;float:none;font-family:"Helvetica",Verdana,Arial,sans-serif;font-size:16px;font-weight:400;line-height:1.4;text-transform:none;margin:0;width:100%;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.fl-page-nav .navbar-toggle:hover{outline:none}.fl-page-nav .navbar-toggle:focus{outline:auto}.fl-page-nav .navbar-nav,.fl-page-nav .navbar-nav a{font-family:"Helvetica",Verdana,Arial,sans-serif;font-size:16px;font-weight:400;line-height:1.4;text-transform:none}.fl-full-width .fl-page-nav{margin:0 auto}.fl-page-nav .mega-menu a[href="#"]:hover,.fl-page-nav .mega-menu a[href="#"]:focus{color:#808080 !important;cursor:default}.mega-menu-spacer{background:none;display:block;left:0;position:absolute;width:100%}.fl-page-header[class*=" fl-page-nav-toggle-visible"] ul.navbar-nav li.hide-heading{border-top:0 none !important}.fl-page-header[class*=" fl-page-nav-toggle-visible"] ul.navbar-nav li.hide-heading>a,.fl-page-header[class*=" fl-page-nav-toggle-visible"] ul.navbar-nav li.hide-heading>.fl-submenu-icon-wrap{display:none !important}.fl-page-header[class*=" fl-page-nav-toggle-visible"] ul.navbar-nav li.hide-heading>ul.sub-menu{margin-left:0}.fl-page-nav-collapse{border:none;max-height:none;padding:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.fl-page-nav-collapse ul.navbar-nav{margin:0}.fl-page-nav-collapse ul.navbar-nav>li{border-bottom:1px solid #e6e6e6}.fl-page-nav-collapse ul.navbar-nav>li:last-child{border-bottom:none}.fl-page-nav-collapse.in{overflow-y:visible}.fl-page-nav-search{bottom:0;display:none;position:absolute;right:0;top:0}.fl-page-nav-search a.fa-search{color:#808080;font-size:20px;padding:8px;position:absolute;right:0;top:5px}.fl-page-nav-search a.fa-search:hover,.fl-page-nav-search a.fa-search:focus{color:#428bca;text-decoration:none}.fl-page-nav-search form{background-color:#fff;border-top:3px solid #a1c5e5;display:none;padding:20px;position:absolute;right:0;top:100%;width:400px;z-index:1000;-moz-box-shadow:0 1px 20px rgba(0,0,0,0.15);-webkit-box-shadow:0 1px 20px rgba(0,0,0,0.15);box-shadow:0 1px 20px rgba(0,0,0,0.15)}.fl-page-nav-search form input.fl-search-input{background-color:#fff;border-color:#e6e6e6;color:#808080}.fl-page-nav-search form input.fl-search-input:focus{color:#808080}.fl-page-nav ul.sub-menu{background-clip:padding-box;background-color:#fff;border-top:3px solid #a1c5e5;font-size:14px;float:none;left:-99999px;list-style:none;padding:10px 0;position:absolute;top:100%;width:240px;z-index:1000;-moz-box-shadow:0 1px 20px rgba(0,0,0,0.15);-webkit-box-shadow:0 1px 20px rgba(0,0,0,0.15);box-shadow:0 1px 20px rgba(0,0,0,0.15)}.fl-page-nav ul.sub-menu ul.sub-menu{left:-99999px;padding-bottom:10px;top:-13px}.fl-page-nav ul.sub-menu li{border:none}.fl-page-nav ul.sub-menu li a{clear:none;color:#808080;display:block;font-weight:400;line-height:20px;margin:0 10px;padding:10px 15px}.fl-page-nav ul.sub-menu li a:hover,.fl-page-nav ul.sub-menu li a:focus{color:#428bca;text-decoration:none}.fl-page-nav ul.sub-menu li a:before{content:'';margin-right:0}.fl-page-nav ul li{position:relative}.fl-page-nav ul li.fl-sub-menu-open>ul.sub-menu{left:auto}.fl-page-nav ul li.fl-sub-menu-open>ul.sub-menu li.fl-sub-menu-open>ul.sub-menu{left:100%}.fl-page-nav ul li.fl-sub-menu-open>ul.sub-menu li.fl-sub-menu-open.fl-sub-menu-right>ul.sub-menu{left:auto;right:100%}.fl-page-nav ul li.fl-sub-menu-open.fl-sub-menu-right>ul.sub-menu{right:0}.fl-page-nav ul li.fl-sub-menu-open .hide-heading>ul.sub-menu{position:static;padding:0;border-top:0 none;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none}.fl-page-content{background-color:#fff}.fl-content,.fl-sidebar{margin:20px 0}.fl-sidebar{display:none}.fl-sidebar.fl-sidebar-display-always{display:block}#fl-to-top{display:none;background-color:#ccc;background-color:rgba(0,0,0,0.2);position:fixed;bottom:15px;right:15px;width:44px;height:42px;text-align:center;z-index:1003}#fl-to-top:hover{background-color:rgba(0,0,0,0.3)}#fl-to-top i{position:absolute;top:12px;left:14px;color:#fff;font-size:16px;line-height:16px}.fl-social-icons .fa-stack.icon-facebook-f i.fa-circle.branded,.fl-social-icons .fa-facebook-f.branded{color:#3b5997}.fl-social-icons .fa-stack.icon-twitter i.fa-circle.branded,.fl-social-icons .fa-twitter.branded{color:#00aaef}.fl-social-icons .fa-stack.icon-google i.fa-circle.branded,.fl-social-icons .fa-google.branded{color:#d13e2b}.fl-social-icons .fa-stack.icon-google-maps i.fa-circle.branded,.fl-social-icons .fa-map-marker-alt.branded{color:#eb5f1a}.fl-social-icons .fa-stack.icon-linkedin i.fa-circle.branded,.fl-social-icons .fa-linkedin.branded{color:#007ab8}.fl-social-icons .fa-stack.icon-yelp i.fa-circle.branded,.fl-social-icons .fa-yelp.branded{color:#c31200}.fl-social-icons .fa-stack.icon-xing i.fa-circle.branded,.fl-social-icons .fa-xing.branded{color:#006567}.fl-social-icons .fa-stack.icon-pinterest i.fa-circle.branded,.fl-social-icons .fa-pinterest.branded{color:#cb2127}.fl-social-icons .fa-stack.icon-tumblr i.fa-circle.branded,.fl-social-icons .fa-tumblr.branded{color:#304e6c}.fl-social-icons .fa-stack.icon-vimeo i.fa-circle.branded,.fl-social-icons .fa-vimeo.branded{color:#41b1db}.fl-social-icons .fa-stack.icon-youtube i.fa-circle.branded,.fl-social-icons .fa-youtube.branded{color:#d6000f}.fl-social-icons .fa-stack.icon-flickr i.fa-circle.branded,.fl-social-icons .fa-flickr.branded{color:#ec1982}.fl-social-icons .fa-stack.icon-instagram i.fa-circle.branded,.fl-social-icons .fa-instagram.branded{color:#517fa5}.fl-social-icons .fa-stack.icon-dribbble i.fa-circle.branded,.fl-social-icons .fa-dribbble.branded{color:#eb4a88}.fl-social-icons .fa-stack.icon-skype i.fa-circle.branded,.fl-social-icons .fa-skype.branded{color:#009EE5}.fl-social-icons .fa-stack.icon-500px i.fa-circle.branded,.fl-social-icons .fa-500px.branded{color:#333333}.fl-social-icons .fa-stack.icon-github i.fa-circle.branded,.fl-social-icons .fa-github.branded{color:#333333}.fl-social-icons .fa-stack.icon-rss i.fa-circle.branded,.fl-social-icons .fa-rss.branded{color:#e09026}.fl-social-icons .fa-stack.icon-envelope i.fa-circle.branded,.fl-social-icons .fa-envelope.branded{color:#333333}.fl-social-icons .fa-stack.icon-blogger i.fa-circle.branded,.fl-social-icons .fa-blogger.branded{color:#fe7300}.fl-social-icons .fa-stack.icon-snapchat i.fa-circle.branded,.fl-social-icons .fa-snapchat.branded{color:#FFFC00}.fl-social-icons .fa-stack.icon-wordpress i.fa-circle.branded,.fl-social-icons .fa-wordpress.branded{color:#15aabf}.fl-social-icons .fa-stack.icon-spotify i.fa-circle.branded,.fl-social-icons .fa-spotify.branded{color:#1cd760}.fl-social-icons .fa-stack.icon-tiktok i.fa-circle.branded,.fl-social-icons .fa-tiktok.branded{color:#000000}.fl-social-icons .fa-stack i.branded{color:#fff}.fl-social-icons .fa-stack{margin:0 0 10px 8px}.fl-social-icons .fallback{height:28px;width:28px;margin:0 0 10px 5px !important;vertical-align:inherit;font-size:30px}.fl-social-icons .fallback:before{width:28px !important;display:inline-block;height:28px !important}.fl-page-header-content .fa-stack i.fa-inverse.mono{color:#fff}.fa-stack i.fa-inverse.mono{color:#fff}.fl-404{padding:30px 0 50px;text-align:center}.fl-404 .fl-post-header{margin-bottom:45px}.fl-404 .fl-post-header h2{font-size:24px}.fl-404 form{margin:0 auto;max-width:400px}.fl-archive .fl-post{border-bottom:1px solid #e6e6e6;padding-bottom:40px}.fl-archive .fl-post:last-child{border-bottom:none;padding-bottom:0}.fl-archive .fl-archive-title{border-bottom:1px solid #e6e6e6;font-size:18px;margin-bottom:40px;padding-bottom:8px}.fl-archive .fl-archive-title a:hover{text-decoration:none}.fl-archive .fl-archive-nav-prev{float:left}.fl-archive .fl-archive-nav-next{float:right}.wp-pagenavi a,.wp-pagenavi span{border:1px solid #e6e6e6;border-right:none;margin:0;padding:6px 10px}.wp-pagenavi a:hover{border-color:#e6e6e6}.wp-pagenavi>*:last-child{border-right:1px solid #e6e6e6}.wp-pagenavi span.current,.wp-pagenavi a:hover{border-color:#e6e6e6;color:#fff;background:#428bca;font-weight:normal}.search .page .fl-post-header{display:block}.fl-post{margin-bottom:40px}.fl-post:last-child{margin-bottom:0}.fl-post img[class*="wp-image-"],.fl-post img.alignnone,.fl-post img.alignleft,.fl-post img.aligncenter,.fl-post img.alignright{height:auto;max-width:100%}.fl-post img[class*="wp-block-cover"]{height:100%}.fl-post .fl-post-image-beside{float:left;margin-right:25px}.fl-post .fl-author-box{margin-top:40px;background:#f5f5f5;border:1px solid #ddd;padding:20px}.fl-post .fl-author-box .fl-author-avatar{float:left;margin-right:25px}.fl-post .fl-author-box .fl-author-description h4{margin-top:0;margin-bottom:5px}.fl-post-thumb{margin-bottom:25px}.fl-post-thumb img{height:auto !important;max-width:100%}.fl-post-header{margin-bottom:25px}.fl-post-title{margin-top:0}.fl-post-meta .fl-sep{margin:0 3px}.fl-post-meta-bottom{border-top:1px solid #e6e6e6;font-style:italic;margin-top:20px;padding-top:10px}.fl-comments-popup-link a:hover{text-decoration:none}.fl-comments-popup-link i{vertical-align:text-top}.post-edit-link{color:#428bca;font-size:14px;font-weight:normal}.fl-post-nav{border-top:1px solid #e6e6e6;margin-top:10px;padding-top:10px}.fl-post-nav-prev{float:left}.fl-post-nav-next{float:right}.alignnone{margin:5px 20px 20px 0}.aligncenter,div.aligncenter{display:block;margin:5px auto 5px auto}.alignright{float:right;margin:5px 0 20px 20px}.alignleft{float:left;margin:5px 20px 20px 0}.aligncenter{display:block;margin:5px auto 5px auto}a img.alignright{float:right;margin:5px 0 20px 20px}a img.alignnone{margin:5px 20px 20px 0}a img.alignleft{float:left;margin:5px 20px 20px 0}a img.aligncenter{display:block;margin-left:auto;margin-right:auto}.wp-caption{background:#f7f7f7;border:1px solid #e6e6e6;max-width:100%;padding:10px;text-align:center}.wp-caption.alignnone{margin:5px 20px 20px 0}.wp-caption.alignleft{margin:5px 20px 20px 0}.wp-caption.alignright{margin:5px 0 20px 20px}.wp-caption img{border:0 none;height:auto;margin:0;max-width:100%;padding:0;width:auto}.wp-caption p.wp-caption-text{font-size:11px;line-height:17px;margin:0;padding:5px}.fl-comments{margin-top:60px}.fl-comment-form .fl-comment-form-cancel{padding:15px 0}.fl-comments-list ol{margin:0;padding:0}.fl-comments-list ol li{line-height:inherit;list-style:none}.fl-comments-list .fl-comments-list-nav{border-top:1px solid #e6e6e6;margin-top:30px;padding:10px 0 30px 0}.fl-comments-list .fl-comments-list-prev{float:left}.fl-comments-list .fl-comments-list-next{float:right}.fl-comments-list .fl-comments-respond-title{margin-top:0}.fl-comments-list .comment-meta{margin:20px 0 10px}.fl-comments-list .comment-avatar img{height:auto;max-width:40px;-moz-border-radius:100%;-webkit-border-radius:100%;border-radius:100%}.fl-comments-list .comment-author-link{font-size:16px;font-weight:bold;margin-left:10px}.fl-comments-list .comment-content{border:1px solid #e6e6e6;padding:15px}.fl-comments-list .comment-reply-link{padding:5px;text-align:right}.fl-comments-list ul.children{margin:0;padding:0}.fl-comments-list ul.children li{margin:0 0 0 6%}#wp-comment-cookies-consent{margin-right:5px}.fl-widget{margin-bottom:40px}.fl-module-widget .fl-widget{margin-bottom:0}.fl-widget .fl-widget-title{margin-bottom:20px}.fl-widget ul{list-style:none;padding:0}.fl-widget ul li{display:block;margin-bottom:8px}.fl-widget ul li:last-child{margin-bottom:0}.fl-widget ul.sub-menu li{margin:0;padding:5px}.fl-widget ul.sub-menu li:before{content:"\2013";padding-right:5px}input[type=text].fl-search-input{color:rgba(128,128,128,0.6);width:100%}input[type=text].fl-search-input:focus{color:#808080}.widget_calendar table{width:100%}.widget_calendar caption,.widget_calendar th,.widget_calendar td{border-bottom:1px solid #e6e6e6;padding:3px 0;text-align:center}.widget_calendar caption td,.widget_calendar tfoot td{border:none}.widget_calendar caption #prev,.widget_calendar tfoot #prev{text-align:left}.widget_calendar caption #next,.widget_calendar tfoot #next{text-align:right}.woocommerce-account .woocommerce-Address{max-width:none}.fl-page .fl-module span.onsale{color:#fff;background:#428bca;font-size:13px;font-weight:normal;left:10px;margin:0;padding:2px 13px;right:auto;text-shadow:none;top:10px;min-height:3.236em;min-width:3.236em;position:absolute;text-align:center;line-height:3.236;z-index:9;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.fl-page .fl-module-woocommerce a.button,.fl-page .fl-module-woocommerce button.button.alt,.fl-page .fl-post-module-woo-button button[type=submit],.fl-page .fl-post-module-woo-button button[type=submit].alt.disabled,.fl-page .fl-post-module-woo-button a.button{color:#fff;background-color:#428bca;font-family:"Helvetica",Verdana,Arial,sans-serif;font-weight:normal;font-size:16px;line-height:1.2;text-transform:none;border:1px solid #2d6ca2;border-radius:4px}.fl-page .fl-module-woocommerce a.button:hover,.fl-page .fl-module-woocommerce button.button.alt:hover,.fl-page .fl-post-module-woo-button button[type=submit]:hover,.fl-page .fl-post-module-woo-button a.button:hover{background-color:#428bca;color:#fff;border:1px solid #2d6ca2;border-radius:4px;border-color:#2d6ca2}.fl-page .fl-module-woocommerce button.button:disabled,.fl-page .fl-module-woocommerce button.button:disabled[disabled],.fl-page .fl-module-woocommerce button.alt.disabled{padding:6px 12px}.woocommerce-page ul.products li.product a.button,.woocommerce-page .woocommerce-message a.button,.woocommerce-page .woocommerce-message a.button.wc-forward,.woocommerce-page .woocommerce a.button.wc-forward,.woocommerce-page button.button,.woocommerce-page button.button.alt,.woocommerce-page a.button,.woocommerce-page a.button.alt,.woocommerce-page .woocommerce button[type=submit],.woocommerce-page button[type=submit].alt.disabled{color:#fff;background-color:#428bca;font-family:"Helvetica",Verdana,Arial,sans-serif;font-weight:normal;font-size:16px;line-height:1.2;text-transform:none;border:1px solid #2d6ca2;border-radius:4px}.woocommerce-page button.button:disabled,.woocommerce-page button.button:disabled[disabled],.woocommerce-page button.alt.disabled{padding:6px 12px}.woocommerce-page ul.products li.product a.button:hover,.woocommerce-page .woocommerce-message a.button:hover,.woocommerce-page button.button:hover,.woocommerce-page button.button.alt:hover,.woocommerce-page a.button.alt:hover,.woocommerce-page a.button:hover,.woocommerce-page .woocommerce button[type=submit]:hover,.woocommerce-page button[type=submit].alt.disabled:hover{background-color:#428bca;color:#fff;border:1px solid #2d6ca2;border-radius:4px;border-color:#2d6ca2}.woocommerce-page button.pswp__button:hover{border:0px}.woocommerce-page button.pswp__button.pswp__button--arrow--left,.woocommerce-page button.pswp__button.pswp__button--arrow--right{position:absolute;top:50%}.woocommerce form .form-row .input-checkbox{position:static}a.fl-button,a.fl-button:visited{background:#428bca;color:#fff;border:1px solid #2d6ca2}a.fl-button:hover,.fl-builder-content a.fl-button:hover{color:#fff;background:#428bca}a.fl-button *,a.fl-button:visited *{color:#fff}a.fl-button:hover *{color:#fff}a.fl-button:hover,a.button:hover{color:#fff;background-color:#428bca;border:1px solid #2d6ca2}.woocommerce a.button,.woocommerce a.button:hover{border:1px solid transparent}.wp-block-button .wp-block-button__link{font-size:16px;line-height:1.2}button,input[type=button],input[type=submit]{background-color:#428bca;color:#fff;font-size:16px;line-height:1.2;padding:6px 12px;font-weight:normal;text-shadow:none;border:1px solid #2d6ca2;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}button:hover,input[type=button]:hover,input[type=submit]:hover{background-color:#428bca;color:#fff;border:1px solid #2d6ca2;text-decoration:none}button:active,input[type=button]:active,input[type=submit]:active,button:focus,input[type=button]:focus,input[type=submit]:focus{background-color:#428bca;color:#fff;border:1px solid #2d6ca2;outline:none;position:relative;top:1px}button.btn-default,input[type=button].btn-default,input[type=submit].btn-default,button.btn-default:hover,input[type=button].btn-default:hover,input[type=submit].btn-default:hover,button.btn-default:focus,input[type=button].btn-default:focus,input[type=submit].btn-default:focus,button.btn-default.active,input[type=button].btn-default.active,input[type=submit].btn-default.active{color:#808080;background-color:#fcfcfc;border-color:#ccc}.mejs-button button .mejs-button button:active,.mejs-button button:hover,.mejs-button button:visited,.mejs-button button:focus{background-color:transparent;border:none}input[type=text],input[type=password],input[type=email],input[type=tel],input[type=date],input[type=month],input[type=week],input[type=time],input[type=number],input[type=search],input[type=url],textarea{display:block;width:100%;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#808080;vertical-align:middle;background-color:#fcfcfc;background-image:none;border:1px solid #e6e6e6;-moz-transition:all ease-in-out .15s;-webkit-transition:all ease-in-out .15s;transition:all ease-in-out .15s;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}input[type=text]::-webkit-input-placeholder,input[type=password]::-webkit-input-placeholder,input[type=email]::-webkit-input-placeholder,input[type=tel]::-webkit-input-placeholder,input[type=date]::-webkit-input-placeholder,input[type=month]::-webkit-input-placeholder,input[type=week]::-webkit-input-placeholder,input[type=time]::-webkit-input-placeholder,input[type=number]::-webkit-input-placeholder,input[type=search]::-webkit-input-placeholder,input[type=url]::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:rgba(128,128,128,0.4)}input[type=text]:-moz-placeholder,input[type=password]:-moz-placeholder,input[type=email]:-moz-placeholder,input[type=tel]:-moz-placeholder,input[type=date]:-moz-placeholder,input[type=month]:-moz-placeholder,input[type=week]:-moz-placeholder,input[type=time]:-moz-placeholder,input[type=number]:-moz-placeholder,input[type=search]:-moz-placeholder,input[type=url]:-moz-placeholder,textarea:-moz-placeholder{color:rgba(128,128,128,0.4)}input[type=text]::-moz-placeholder,input[type=password]::-moz-placeholder,input[type=email]::-moz-placeholder,input[type=tel]::-moz-placeholder,input[type=date]::-moz-placeholder,input[type=month]::-moz-placeholder,input[type=week]::-moz-placeholder,input[type=time]::-moz-placeholder,input[type=number]::-moz-placeholder,input[type=search]::-moz-placeholder,input[type=url]::-moz-placeholder,textarea::-moz-placeholder{color:rgba(128,128,128,0.4)}input[type=text]:-ms-input-placeholder,input[type=password]:-ms-input-placeholder,input[type=email]:-ms-input-placeholder,input[type=tel]:-ms-input-placeholder,input[type=date]:-ms-input-placeholder,input[type=month]:-ms-input-placeholder,input[type=week]:-ms-input-placeholder,input[type=time]:-ms-input-placeholder,input[type=number]:-ms-input-placeholder,input[type=search]:-ms-input-placeholder,input[type=url]:-ms-input-placeholder,textarea:-ms-input-placeholder{color:rgba(128,128,128,0.4)}input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,input[type=tel]:focus,input[type=date]:focus,input[type=month]:focus,input[type=week]:focus,input[type=time]:focus,input[type=number]:focus,input[type=search]:focus,input[type=url]:focus,textarea:focus{background-color:#fff;border-color:#ccc;outline:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.form-control{background-color:#fcfcfc;border-color:#e6e6e6;color:#808080;-moz-transition:all ease-in-out .15s;-webkit-transition:all ease-in-out .15s;transition:all ease-in-out .15s}.form-control::-webkit-input-placeholder{color:rgba(128,128,128,0.4)}.form-control:-moz-placeholder{color:rgba(128,128,128,0.4)}.form-control::-moz-placeholder{color:rgba(128,128,128,0.4)}.form-control:-ms-input-placeholder{color:rgba(128,128,128,0.4)}.form-control:focus{background-color:#fff;border-color:#ccc;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.mfp-wrap button.mfp-arrow,.mfp-wrap button.mfp-arrow:active,.mfp-wrap button.mfp-arrow:hover,.mfp-wrap button.mfp-arrow:focus{background:transparent !important;border:none !important;outline:none;position:absolute;top:50%;box-shadow:none !important;-moz-box-shadow:none !important;-webkit-box-shadow:none !important}.mfp-wrap .mfp-close,.mfp-wrap .mfp-close:active,.mfp-wrap .mfp-close:hover,.mfp-wrap .mfp-close:focus{background:transparent !important;border:none !important;outline:none;position:absolute;top:0;box-shadow:none !important;-moz-box-shadow:none !important;-webkit-box-shadow:none !important}img.mfp-img{padding:0}.mfp-counter{display:none}.fl-builder-edit .fl-page-header-fixed{display:none !important}.fl-builder .container.fl-content-full{margin:0;padding:0;width:auto;max-width:none}.fl-builder .container.fl-content-full>.row{margin:0}.fl-builder .container.fl-content-full .fl-content{margin:0;padding:0}.fl-builder .container.fl-content-full .fl-post-header{margin-left:20px;margin-right:20px;padding-top:40px}.fl-builder .container.fl-content-full .fl-comments{margin-left:20px;margin-right:20px}@media (max-width:767px){.fl-post .fl-post-image-beside{float:none;margin-right:0}.fl-post .fl-post-image-beside,.fl-post .fl-post-content-beside{padding:0 15px}.fl-page-header-logo img[data-mobile]{display:none}}@media (max-width:992px){body.woocommerce-page.fl-framework-bootstrap .row,body.woocommerce-page.fl-framework-base .row{display:flex;flex-wrap:wrap;flex-direction:column}body.woocommerce-page.fl-framework-bootstrap .fl-page-content .row .fl-woo-content,body.woocommerce-page.fl-framework-base .fl-page-content .row .fl-woo-content{box-sizing:border-box;width:100%}body.woocommerce-page.fl-framework-bootstrap .fl-woo-content-right,body.woocommerce-page.fl-framework-base .fl-woo-content-right{order:1;width:100%}body.woocommerce-page.fl-framework-bootstrap .fl-woo-sidebar-left,body.woocommerce-page.fl-framework-base .fl-woo-sidebar-left,body.woocommerce-page.fl-framework-bootstrap .fl-sidebar,body.woocommerce-page.fl-framework-base .fl-sidebar{width:100%}}@media (min-width:768px){.container{padding-left:40px;padding-right:40px;width:auto}.fl-page-nav{background:transparent}.fl-page-nav .navbar-nav li>a{padding:15px 15px;color:#808080}.fl-page-nav .navbar-nav li>a:hover,.fl-page-nav .navbar-nav li>a:focus{color:#428bca}.fl-page-nav .navbar-nav li.current-menu-ancestor>a,.fl-page-nav .navbar-nav li.current-menu-parent>a,.fl-page-nav .navbar-nav li.current-menu-item>a{color:#428bca}.fl-page-nav .navbar-nav li.current-menu-item~li.current-menu-item>a{color:#808080}.fl-page-nav-wrap{border-bottom:1px solid #e6e6e6;border-top:1px solid #e6e6e6;padding:0;border-color:#e6e6e6;background-color:#fff;color:#808080}.fl-page-nav-wrap *,.fl-page-nav-wrap h1,.fl-page-nav-wrap h2,.fl-page-nav-wrap h3,.fl-page-nav-wrap h4,.fl-page-nav-wrap h5,.fl-page-nav-wrap h6{color:#808080}.fl-page-nav-wrap a,.fl-page-nav-wrap a *,.fl-page-nav-wrap a.fas,.fl-page-nav-wrap a.fab{color:#808080}.fl-page-nav-wrap a:hover,.fl-page-nav-wrap a:focus,.fl-page-nav-wrap a:hover *,.fl-page-nav-wrap a:focus *,.fl-page-nav-wrap a.fas:hover,.fl-page-nav-wrap a.fab:hover,.fl-page-nav-wrap a.fas:focus,.fl-page-nav-wrap a.fab:focus{color:#428bca}.fl-page-nav-wrap .navbar-nav li>a{color:#808080}.fl-page-nav-wrap .navbar-nav li>a:hover,.fl-page-nav-wrap .navbar-nav li>a:focus{color:#428bca}.fl-page-nav-wrap .navbar-nav li.current-menu-ancestor>a,.fl-page-nav-wrap .navbar-nav li.current-menu-parent>a,.fl-page-nav-wrap .navbar-nav li.current-menu-item>a{color:#428bca}.fl-page-nav-wrap .navbar-nav li.current-menu-item~li.current-menu-item>a{color:#428bca}.fl-page-nav-toggle-visible-always .fl-page-header-wrap .fl-page-header-container,.fl-page-nav-toggle-visible-medium-mobile .fl-page-header-wrap .fl-page-header-container{padding-left:40px;padding-right:40px}.fl-page-nav-collapse ul.navbar-nav>li{border:none}.fl-page-nav-collapse ul.navbar-nav>li:first-child{border:none}.fl-page-header-container,.fl-page-nav-container{position:relative}.fl-page-nav-col,.fl-page-nav,.fl-page-fixed-nav-wrap{position:inherit}ul.navbar-nav li.mega-menu{position:inherit}ul.navbar-nav li.mega-menu.fl-sub-menu-open>ul.sub-menu{left:0}ul.navbar-nav li.mega-menu>ul.sub-menu{position:absolute !important;width:100%;padding:20px;display:table}ul.navbar-nav li.mega-menu>ul.sub-menu ul.sub-menu{position:relative;width:auto;left:0 !important;top:0;opacity:1 !important;padding:0;border-top:none;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}ul.navbar-nav li.mega-menu>ul.sub-menu>li{position:relative;float:none;display:table-cell;height:auto;vertical-align:top;border-right:1px solid #d9e8f4}ul.navbar-nav li.mega-menu>ul.sub-menu>li:last-child{border-right:none}ul.navbar-nav li.mega-menu>ul.sub-menu>li li li a::before{font-family:'Font Awesome 5 Pro';content:'\f105';font-weight:900;margin-right:10px}ul.navbar-nav li.mega-menu>ul.sub-menu>li>a{font-weight:bold}ul.navbar-nav li.mega-menu.mega-menu-items-1>ul>li{width:100%}ul.navbar-nav li.mega-menu.mega-menu-items-2>ul>li{width:50%}ul.navbar-nav li.mega-menu.mega-menu-items-3>ul>li{width:33.33%}ul.navbar-nav li.mega-menu.mega-menu-items-4>ul>li{width:25%}ul.navbar-nav li.mega-menu.mega-menu-items-5>ul>li{width:20%}ul.navbar-nav li.mega-menu.mega-menu-items-6>ul>li{width:16.66%}.fl-content,.fl-sidebar{margin:40px 0}.fl-full-width.fl-footer-effect .fl-page-footer-wrap{z-index:-1;position:fixed;bottom:0;left:0;width:100%}.fl-full-width.fl-footer-effect .fl-page{z-index:10}.fl-404{padding:100px 0 150px}.fl-404 .fl-post-header h2{font-size:30px}.fl-builder .container.fl-content-full .fl-post-header,.fl-builder .container.fl-content-full .fl-comments{margin:0 40px;width:auto}}@media (min-width:992px){body.fl-fixed-width:not(.fl-nav-vertical):not(.fl-fixed-header):not(.fl-shrink){padding:0}.container{padding-left:0;padding-right:0;width:900px}.fl-full-width .container{padding-left:40px;padding-right:40px;width:auto}.fl-page{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;width:980px}.fl-full-width .fl-page{width:auto}.fl-page-nav-search{display:block}.fl-scroll-header .fl-page-header-primary,.fl-scroll-header .fl-page-bar{-webkit-transform:translateY(-200%);-ms-transform:translateY(-200%);transform:translateY(-200%);-webkit-transition:-webkit-transform .4s ease-in-out;-moz-transition:transform .4s ease-in-out;-o-transition:transform .4s ease-in-out;transition:transform .4s ease-in-out}.fl-scroll-header .fl-page-header-primary.fl-show,.fl-scroll-header .fl-page-bar.fl-show{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.fl-sidebar{display:block}.fl-content{margin:40px 0}.fl-content-left{border-right:1px solid #e6e6e6;padding-right:40px}.fl-content-right{border-left:1px solid #e6e6e6;padding-left:40px}.fl-woo-content-left{float:left}.fl-woo-content-right{float:right}.fl-sidebar-right{padding-left:40px}.fl-sidebar-left{padding-right:40px}.fl-builder.fl-full-width .container.fl-content-full .fl-post-header,.fl-builder.fl-full-width .container.fl-content-full .fl-comments{margin:0 40px;width:auto}}@media (min-width:1100px){.fl-fixed-width .fl-page{width:1100px;max-width:90%}.container{width:1020px;max-width:90%}.fl-full-width .container{padding-left:0;padding-right:0;width:1020px}.fl-page-nav-toggle-visible-always .fl-page-header-wrap .fl-page-header-container,.fl-page-nav-toggle-visible-medium-mobile .fl-page-header-wrap .fl-page-header-container{padding-left:0;padding-right:0}.fl-builder.fl-full-width .container.fl-content-full .fl-post-header,.fl-builder.fl-full-width .container.fl-content-full .fl-comments{margin:0 auto;width:1020px}}body.fl-framework-base-4 nav a.no-menu,body.fl-framework-bootstrap-4 nav a.no-menu{display:block}@media (max-width:767px){body:not(.fl-nav-mobile-offcanvas) .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile.fl-page-nav-right .fl-page-nav-collapse{width:100%}body:not(.fl-nav-mobile-offcanvas) .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile.fl-page-nav-right .fl-page-nav-collapse ul.navbar-nav{flex:0 0 100%}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile.fl-page-nav-right .fl-page-nav-collapse ul.navbar-nav{float:none !important}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile.fl-page-nav-right .fl-page-header-row .fl-page-header-logo{padding-bottom:30px}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile.fl-page-nav-right .fl-page-header-logo-col,.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile.fl-page-nav-right .fl-page-nav-col{width:100%}.fl-framework-bootstrap-4 .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile.fl-page-nav-right .fl-page-header-logo-col,.fl-framework-bootstrap-4 .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile.fl-page-nav-right .fl-page-nav-col{flex-basis:100%;max-width:100%}body:not(.fl-nav-mobile-offcanvas) .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile.fl-page-nav-left .fl-page-nav-collapse{width:100%}body:not(.fl-nav-mobile-offcanvas) .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile.fl-page-nav-left .fl-page-nav-collapse ul.navbar-nav{flex:0 0 100%}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile.fl-page-nav-left .fl-page-header-row .fl-page-header-logo{padding-bottom:30px}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile.fl-page-nav-left .fl-page-nav ul.navbar-nav>li:first-child a{padding-left:17px}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile.fl-page-nav-left .fl-page-logo-wrap,.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile.fl-page-nav-left .fl-page-nav-col{width:100%}.fl-framework-bootstrap-4 .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile.fl-page-nav-left .fl-page-header-logo-col,.fl-framework-bootstrap-4 .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile.fl-page-nav-left .fl-page-nav-col{flex-basis:100%;max-width:100%}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile.fl-page-nav-centered-inline-logo{text-align:left}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile.fl-page-nav-centered-inline-logo .fl-page-header-logo{display:block}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile.fl-page-header-vertical{top:0}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav-collapse{border-top:1px solid #e6e6e6;padding-bottom:10px}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav-collapse.collapse{display:none !important;visibility:hidden !important}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav-collapse.collapse.in,.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav-collapse.collapse.show{display:block !important;visibility:visible !important}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav-collapse.collapsing{display:block !important}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav-collapse ul.navbar-nav{display:block;float:none}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav-collapse ul.navbar-nav>li{border-color:#e6e6e6;border-bottom-style:solid;border-bottom-width:1px;display:block;float:none;position:relative}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav-collapse ul.navbar-nav>li>a{color:#808080;text-align:left}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav-collapse ul.navbar-nav>li>a:hover,.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav-collapse ul.navbar-nav>li>a:focus{color:#428bca}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav-collapse ul.navbar-nav>li.current-menu-item>a,.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav-collapse ul.navbar-nav>li.current-menu-item>.fl-submenu-icon-wrap .fl-submenu-toggle-icon{color:#428bca}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav-collapse ul.sub-menu li{border-color:#e6e6e6}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav-collapse ul.sub-menu li a{color:#808080}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav-collapse ul.sub-menu li a:hover{color:#428bca}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav-collapse ul.sub-menu li.current-menu-item a{color:#428bca}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav-collapse .fl-page-nav-search{display:none}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav ul.sub-menu{background-color:transparent;border:none;float:none;height:100%;list-style:none;overflow:hidden;padding:0;position:absolute;top:0;width:auto;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav ul.sub-menu ul.sub-menu{padding-bottom:0;margin-left:15px}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav ul.sub-menu li{border-top:1px solid #e6e6e6}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav ul.sub-menu li a{clear:both;color:#808080;display:block;font-weight:400;line-height:20px;margin:0;padding:15px}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav ul.sub-menu li a:hover,.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav ul.sub-menu li a:focus{color:#428bca;text-decoration:none}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav ul.sub-menu li a:before{font-family:'Font Awesome 5 Pro';content:'\f105';font-weight:900;margin-right:10px}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav ul li.fl-mobile-sub-menu-open ul.sub-menu{position:static}.fl-submenu-toggle .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav ul.navbar-nav .sub-menu{position:absolute}.fl-submenu-toggle .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav ul.navbar-nav li.menu-item-has-children>a{padding-right:40px}.fl-submenu-toggle .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav ul.navbar-nav li.menu-item-has-children>.fl-submenu-icon-wrap{visibility:visible}.fl-submenu-toggle .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav ul.navbar-nav li.fl-mobile-sub-menu-open>.fl-submenu-icon-wrap .fl-submenu-toggle-icon:after{content:'\f106'}.fl-submenu-toggle .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav ul.navbar-nav li.fl-mobile-sub-menu-open>ul.sub-menu,.fl-submenu-toggle .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav ul.navbar-nav li.fl-mobile-sub-menu-open .hide-heading>ul.sub-menu{position:static}.fl-submenu-toggle .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav ul.navbar-nav li a{padding:15px}.fl-submenu-toggle .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav ul.navbar-nav li:hover>.fl-submenu-icon-wrap .fl-submenu-toggle-icon,.fl-submenu-toggle .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav ul.navbar-nav li:focus>.fl-submenu-icon-wrap .fl-submenu-toggle-icon{color:#428bca}.fl-submenu-indicator .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile ul.navbar-nav li.menu-item-has-children>a{padding-right:40px}.fl-submenu-indicator .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile ul.navbar-nav li.menu-item-has-children>a:after{content:'' !important}.fl-submenu-indicator .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile ul.navbar-nav li.menu-item-has-children>.fl-submenu-icon-wrap{visibility:visible}.fl-submenu-indicator .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile ul.navbar-nav li.menu-item-has-children:hover>.fl-submenu-icon-wrap .fl-submenu-toggle-icon,.fl-submenu-indicator .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile ul.navbar-nav li.menu-item-has-children:focus>.fl-submenu-icon-wrap .fl-submenu-toggle-icon{color:#428bca}.fl-submenu-indicator .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile ul.navbar-nav li.menu-item-has-children.fl-mobile-sub-menu-open>.fl-submenu-icon-wrap .fl-submenu-toggle-icon:after{content:'\f106'}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-submenu-icon-wrap{visibility:hidden}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-submenu-icon-wrap .fl-submenu-toggle-icon{position:absolute;padding:15px;top:0;right:0;bottom:0;cursor:pointer}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-submenu-icon-wrap .fl-submenu-toggle-icon:after{font-family:'Font Awesome 5 Pro';content:'\f107';font-weight:900;font-size:16px;float:right}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav-wrap{border:0 none;margin:0;padding-bottom:20px}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav .navbar-toggle{display:block;background:#e6e6e6;color:#808080}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav .navbar-toggle *{color:#808080}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav .navbar-toggle:hover,.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile .fl-page-nav .navbar-toggle:focus{background:#e6e6e6}.fl-page-nav-toggle-button.fl-page-nav-toggle-visible-mobile.fl-page-header-fixed .fl-page-nav-wrap{padding-top:20px}}.fl-page-nav-right.fl-page-header-fixed,.fl-page-header-fixed{display:none;left:auto;position:fixed !important;top:0;width:100%;z-index:100;border-color:#e6e6e6;background-color:#fff;color:#808080;-moz-box-shadow:0 0 7px rgba(0,0,0,0.1);-webkit-box-shadow:0 0 7px rgba(0,0,0,0.1);box-shadow:0 0 7px rgba(0,0,0,0.1)}.fl-page-nav-right.fl-page-header-fixed *,.fl-page-header-fixed *,.fl-page-nav-right.fl-page-header-fixed h1,.fl-page-header-fixed h1,.fl-page-nav-right.fl-page-header-fixed h2,.fl-page-header-fixed h2,.fl-page-nav-right.fl-page-header-fixed h3,.fl-page-header-fixed h3,.fl-page-nav-right.fl-page-header-fixed h4,.fl-page-header-fixed h4,.fl-page-nav-right.fl-page-header-fixed h5,.fl-page-header-fixed h5,.fl-page-nav-right.fl-page-header-fixed h6,.fl-page-header-fixed h6{color:#808080}.fl-page-nav-right.fl-page-header-fixed a,.fl-page-header-fixed a,.fl-page-nav-right.fl-page-header-fixed a *,.fl-page-header-fixed a *,.fl-page-nav-right.fl-page-header-fixed a.fas,.fl-page-header-fixed a.fas,.fl-page-nav-right.fl-page-header-fixed a.fab,.fl-page-header-fixed a.fab{color:#808080}.fl-page-nav-right.fl-page-header-fixed a:hover,.fl-page-header-fixed a:hover,.fl-page-nav-right.fl-page-header-fixed a:focus,.fl-page-header-fixed a:focus,.fl-page-nav-right.fl-page-header-fixed a:hover *,.fl-page-header-fixed a:hover *,.fl-page-nav-right.fl-page-header-fixed a:focus *,.fl-page-header-fixed a:focus *,.fl-page-nav-right.fl-page-header-fixed a.fas:hover,.fl-page-header-fixed a.fas:hover,.fl-page-nav-right.fl-page-header-fixed a.fab:hover,.fl-page-header-fixed a.fab:hover,.fl-page-nav-right.fl-page-header-fixed a.fas:focus,.fl-page-header-fixed a.fas:focus,.fl-page-nav-right.fl-page-header-fixed a.fab:focus,.fl-page-header-fixed a.fab:focus{color:#428bca}.fl-page-nav-right.fl-page-header-fixed .navbar-nav li>a,.fl-page-header-fixed .navbar-nav li>a{color:#808080}.fl-page-nav-right.fl-page-header-fixed .navbar-nav li>a:hover,.fl-page-header-fixed .navbar-nav li>a:hover,.fl-page-nav-right.fl-page-header-fixed .navbar-nav li>a:focus,.fl-page-header-fixed .navbar-nav li>a:focus{color:#428bca}.fl-page-nav-right.fl-page-header-fixed .navbar-nav li.current-menu-ancestor>a,.fl-page-header-fixed .navbar-nav li.current-menu-ancestor>a,.fl-page-nav-right.fl-page-header-fixed .navbar-nav li.current-menu-parent>a,.fl-page-header-fixed .navbar-nav li.current-menu-parent>a,.fl-page-nav-right.fl-page-header-fixed .navbar-nav li.current-menu-item>a,.fl-page-header-fixed .navbar-nav li.current-menu-item>a{color:#428bca}.fl-page-nav-right.fl-page-header-fixed .navbar-nav li.current-menu-item~li.current-menu-item>a,.fl-page-header-fixed .navbar-nav li.current-menu-item~li.current-menu-item>a{color:#428bca}.fl-page-nav-right.fl-page-header-fixed .fl-page-header-container.container,.fl-page-header-fixed .fl-page-header-container.container{padding-bottom:8px;padding-top:8px}.fl-page-nav-right.fl-page-header-fixed.fl-page-header.fl-page-nav-toggle-visible-always .fl-page-header-row .fl-page-header-logo,.fl-page-header-fixed.fl-page-header.fl-page-nav-toggle-visible-always .fl-page-header-row .fl-page-header-logo{padding-bottom:0}.fl-page-nav-right.fl-page-header-fixed.fl-page-header.fl-page-nav-toggle-visible-always .fl-page-nav-collapse,.fl-page-header-fixed.fl-page-header.fl-page-nav-toggle-visible-always .fl-page-nav-collapse{margin-top:20px}.fl-page-nav-right.fl-page-header-fixed.fl-page-header.fl-page-nav-toggle-visible-always .fl-page-nav .navbar-toggle,.fl-page-header-fixed.fl-page-header.fl-page-nav-toggle-visible-always .fl-page-nav .navbar-toggle{top:15px}.fl-page-nav-right.fl-page-header-fixed .fl-logo-img,.fl-page-header-fixed .fl-logo-img{max-height:46px !important;width:auto !important}.fl-page-nav-right.fl-page-header-fixed .fl-logo-text,.fl-page-header-fixed .fl-logo-text{font-size:28px}.fl-page-nav-right.fl-page-header-fixed .fl-page-nav-wrap .navbar-nav>li>a,.fl-page-header-fixed .fl-page-nav-wrap .navbar-nav>li>a{padding:10px 15px}.fl-page-nav-right.fl-page-header-fixed .fl-page-nav ul.sub-menu,.fl-page-header-fixed .fl-page-nav ul.sub-menu{background-color:#fff}.admin-bar .fl-page-nav-right.fl-page-header-fixed,.admin-bar .fl-page-header-fixed,.admin-bar .fl-page-header-vertical{top:32px}@media (min-width:991px){.fl-page-header-fixed .fl-page-fixed-nav-wrap{padding-right:0}}@media (min-width:992px){.fl-fixed-width .fl-page-nav-right.fl-page-header-fixed,.fl-fixed-width .fl-page-header-fixed{width:980px}}@media (min-width:1100px){.fl-fixed-width .fl-page-nav-right.fl-page-header-fixed,.fl-fixed-width .fl-page-header-fixed{width:1100px;max-width:90%}}.fl-page-nav-right .fl-page-header-container{padding-bottom:0}.fl-page-nav-right .fl-page-header-logo{padding-bottom:30px}.fl-page-nav-right .fl-page-nav-search{order:1;position:relative}.fl-page-nav-right .fl-page-nav-search a.fa-search{padding:13px 0 13px 15px;position:static}.fl-page-nav-right .fl-page-nav-collapse{display:inline-flex !important;align-items:center;justify-content:flex-end}@media (min-width:768px){.fl-page-nav-right{text-align:center}.fl-page-nav-right .fl-page-header-container{padding-left:15px;padding-right:15px}.fl-page-nav-right .fl-page-header-logo{padding-left:40px;padding-right:40px}.fl-page-nav-right .fl-page-nav-wrap{margin-left:-15px;margin-right:-15px}.fl-page-nav-right .fl-page-nav ul.navbar-nav{float:none !important}.fl-page-nav-right .fl-page-nav ul.navbar-nav:last-child{margin-right:0}.fl-page-nav-right .fl-page-nav ul.navbar-nav>li{display:inline-block;float:none}.fl-page-nav-right .fl-page-nav ul.sub-menu{text-align:left}}@media (min-width:992px){.fl-page-nav-right{text-align:right}.fl-page-nav-right .fl-page-header-wrap{border-bottom:1px solid rgba(128,128,128,0.13)}.fl-page-nav-right .fl-page-header-container{padding-bottom:30px}.fl-page-nav-right .fl-page-header-row{display:table;table-layout:fixed;width:100%;margin-left:0;margin-right:0}.fl-page-nav-right .fl-page-header-row>div{display:table-cell;float:none;vertical-align:middle}.fl-page-nav-right .fl-page-header-row .fl-page-header-logo-col{padding-left:0}.fl-page-nav-right .fl-page-header-row .fl-page-logo-wrap{padding-left:0}.fl-page-nav-right .fl-page-header-row .fl-page-nav-col{padding-right:0}.fl-page-nav-right.fl-page-nav-toggle-visible-always .fl-page-header-row{display:block;width:auto}.fl-page-nav-right.fl-page-nav-toggle-visible-always .fl-page-header-row>div{display:block;width:100%}.fl-page-nav-right .fl-page-header-logo{padding:0;text-align:left}.fl-page-nav-right .fl-page-nav-wrap{border-color:#e6e6e6;background-color:#fff;color:#808080;background:none;border:none;margin-left:0;margin-right:0}.fl-page-nav-right .fl-page-nav-wrap *,.fl-page-nav-right .fl-page-nav-wrap h1,.fl-page-nav-right .fl-page-nav-wrap h2,.fl-page-nav-right .fl-page-nav-wrap h3,.fl-page-nav-right .fl-page-nav-wrap h4,.fl-page-nav-right .fl-page-nav-wrap h5,.fl-page-nav-right .fl-page-nav-wrap h6{color:#808080}.fl-page-nav-right .fl-page-nav-wrap a,.fl-page-nav-right .fl-page-nav-wrap a *,.fl-page-nav-right .fl-page-nav-wrap a.fas,.fl-page-nav-right .fl-page-nav-wrap a.fab{color:#808080}.fl-page-nav-right .fl-page-nav-wrap a:hover,.fl-page-nav-right .fl-page-nav-wrap a:focus,.fl-page-nav-right .fl-page-nav-wrap a:hover *,.fl-page-nav-right .fl-page-nav-wrap a:focus *,.fl-page-nav-right .fl-page-nav-wrap a.fas:hover,.fl-page-nav-right .fl-page-nav-wrap a.fab:hover,.fl-page-nav-right .fl-page-nav-wrap a.fas:focus,.fl-page-nav-right .fl-page-nav-wrap a.fab:focus{color:#428bca}.fl-page-nav-right .fl-page-nav-wrap .navbar-nav li>a{color:#808080}.fl-page-nav-right .fl-page-nav-wrap .navbar-nav li>a:hover,.fl-page-nav-right .fl-page-nav-wrap .navbar-nav li>a:focus{color:#428bca}.fl-page-nav-right .fl-page-nav-wrap .navbar-nav li.current-menu-ancestor>a,.fl-page-nav-right .fl-page-nav-wrap .navbar-nav li.current-menu-parent>a,.fl-page-nav-right .fl-page-nav-wrap .navbar-nav li.current-menu-item>a{color:#428bca}.fl-page-nav-right .fl-page-nav-wrap .navbar-nav li.current-menu-item~li.current-menu-item>a{color:#428bca}.fl-page-nav-right .fl-page-nav{border:none;margin:0}.fl-page-nav-right .fl-page-nav ul.navbar-nav{float:right !important}.fl-page-nav-right .fl-page-nav ul.navbar-nav>li{display:block;float:left}.fl-fixed-width .fl-page-nav-right .fl-page-header-container{padding-left:0;padding-right:0}}@media (min-width:1100px){.fl-page-nav-right.fl-page-nav-toggle-visible-always .fl-page-header-container,.fl-page-nav-right.fl-page-nav-toggle-visible-medium-mobile .fl-page-header-container,.fl-page-nav-right .fl-page-header-container{padding-left:0;padding-right:0}}.fl-page-footer-widgets{border-top:1px solid #e6e6e6;border-color:#e6e6e6;background-color:#fff;color:#808080}.fl-page-footer-widgets *,.fl-page-footer-widgets h1,.fl-page-footer-widgets h2,.fl-page-footer-widgets h3,.fl-page-footer-widgets h4,.fl-page-footer-widgets h5,.fl-page-footer-widgets h6{color:#808080}.fl-page-footer-widgets a,.fl-page-footer-widgets a *,.fl-page-footer-widgets a.fas,.fl-page-footer-widgets a.fab{color:#428bca}.fl-page-footer-widgets a:hover,.fl-page-footer-widgets a:focus,.fl-page-footer-widgets a:hover *,.fl-page-footer-widgets a:focus *,.fl-page-footer-widgets a.fas:hover,.fl-page-footer-widgets a.fab:hover,.fl-page-footer-widgets a.fas:focus,.fl-page-footer-widgets a.fab:focus{color:#428bca}.fl-page-footer-widgets .navbar-nav li>a{color:#428bca}.fl-page-footer-widgets .navbar-nav li>a:hover,.fl-page-footer-widgets .navbar-nav li>a:focus{color:#428bca}.fl-page-footer-widgets .navbar-nav li.current-menu-ancestor>a,.fl-page-footer-widgets .navbar-nav li.current-menu-parent>a,.fl-page-footer-widgets .navbar-nav li.current-menu-item>a{color:#428bca}.fl-page-footer-widgets .navbar-nav li.current-menu-item~li.current-menu-item>a{color:#428bca}.fl-page-footer-widgets-container{padding-top:30px}@media (min-width:992px){.fl-page-footer-widgets{display:block}}.fl-page-footer{border-top:1px solid #e6e6e6;font-size:12px;border-color:#e6e6e6;background-color:#fff;color:#808080}.fl-page-footer *,.fl-page-footer h1,.fl-page-footer h2,.fl-page-footer h3,.fl-page-footer h4,.fl-page-footer h5,.fl-page-footer h6{color:#808080}.fl-page-footer a,.fl-page-footer a *,.fl-page-footer a.fas,.fl-page-footer a.fab{color:#428bca}.fl-page-footer a:hover,.fl-page-footer a:focus,.fl-page-footer a:hover *,.fl-page-footer a:focus *,.fl-page-footer a.fas:hover,.fl-page-footer a.fab:hover,.fl-page-footer a.fas:focus,.fl-page-footer a.fab:focus{color:#428bca}.fl-page-footer .navbar-nav li>a{color:#428bca}.fl-page-footer .navbar-nav li>a:hover,.fl-page-footer .navbar-nav li>a:focus{color:#428bca}.fl-page-footer .navbar-nav li.current-menu-ancestor>a,.fl-page-footer .navbar-nav li.current-menu-parent>a,.fl-page-footer .navbar-nav li.current-menu-item>a{color:#428bca}.fl-page-footer .navbar-nav li.current-menu-item~li.current-menu-item>a{color:#428bca}.fl-page-footer-container{padding-top:20px}.fl-page-footer-text{padding-bottom:20px;text-align:center}.fl-page-footer .fl-social-icons{text-align:center}.fl-page-footer .fl-social-icons .fl-icon{margin:0 5px 20px 5px}.fl-page-footer .fl-social-icons .fallback{font-size:26px;line-height:24px}.fl-page-footer .fl-social-icons-stacked{font-size:1em}.fl-page-footer .fl-social-icons-stacked .fas{color:#000}.fl-page-footer .fl-social-icons-stacked .fab,.fl-page-footer .fl-social-icons-stacked .fas.fa-envelope,.fl-page-footer .fl-social-icons-stacked .fas.fa-rss,.fl-page-footer .fl-social-icons-stacked .fas.fa-map-marker-alt{color:#fff;transition:opacity .2s ease-in-out;opacity:0.8}.fl-page-footer .fl-social-icons-stacked .fab:hover,.fl-page-footer .fl-social-icons-stacked .fas.fa-envelope:hover,.fl-page-footer .fl-social-icons-stacked .fas.fa-rss:hover,.fl-page-footer .fl-social-icons-stacked .fas.fa-map-marker-alt:hover{color:#666;opacity:1}.fl-page-footer .fl-social-icons-stacked .fab,.fl-page-footer .fl-social-icons-stacked .fas{vertical-align:inherit;width:inherit;height:inherit;line-height:inherit}.fl-page-footer-nav{float:none;text-align:center;margin:0 0 10px}.fl-page-footer-nav>li{display:inline-block;float:none}.fl-page-footer-nav ul.sub-menu{display:none}.fl-page-footer-nav>li>a{padding-top:0}.fl-page-footer-nav>li>a:hover,.fl-page-footer-nav>li>a:focus{background:transparent}@media (min-width:768px){.fl-page-footer .fl-page-footer-text,.fl-page-footer .fl-social-icons{text-align:inherit}.fl-page-footer .fl-page-footer-nav{margin:0 -15px 10px}.fl-page-footer .text-left .fl-social-icons .fl-icon{margin:0 10px 20px 0}.fl-page-footer .text-left .fl-page-footer-nav{text-align:left}.fl-page-footer .text-right .fl-social-icons .fl-icon{margin:0 0 20px 10px}.fl-page-footer .text-right .fl-page-footer-nav{text-align:right}}@media (min-width:992px){.fl-page-footer-container{padding:20px 0 0}}div.woocommerce h2,div.woocommerce h3{font-size:18px}.woocommerce ul.products li.product .price,.woocommerce-page ul.products li.product .price,.woocommerce .woocommerce-breadcrumb,.woocommerce-page .woocommerce-breadcrumb,.woocommerce div.product span.price,.woocommerce-page div.product span.price,.woocommerce div.product p.price,.woocommerce-page div.product p.price,.woocommerce div.product .stock,.woocommerce-page div.product .stock{color:#808080}.woocommerce .woocommerce-breadcrumb a,.woocommerce-page .woocommerce-breadcrumb a{color:#428bca}.woocommerce .woocommerce-breadcrumb a:hover,.woocommerce-page .woocommerce-breadcrumb a:hover{color:#428bca}.woocommerce .product .price ins,.woocommerce-page .product .price ins{text-decoration:none}.woocommerce .fl-page-content .quantity input.qty,.woocommerce-page .fl-page-content .quantity input.qty{padding:.25em}.woocommerce .col2-set .col-1,.woocommerce-page .col2-set .col-1,.woocommerce .col2-set .col-2,.woocommerce-page .col2-set .col-2{width:100%}.woocommerce form .form-row-first,.woocommerce-page form .form-row-first,.woocommerce form .form-row-last,.woocommerce-page form .form-row-last{width:100%}.woocommerce .ppt,.woocommerce-page .ppt,.woocommerce .pp_description,.woocommerce-page .pp_description{display:none !important}.woocommerce .pp_overlay,.woocommerce-page .pp_overlay{background-color:rgba(255,255,255,0.8)}.woocommerce div.pp_woocommerce .pp_content_container,.woocommerce-page div.pp_woocommerce .pp_content_container{background:#fff;border:1px solid #e6e6e6;padding:40px 0 20px 0}.woocommerce div.pp_woocommerce .pp_content_container #respond #reply-title,.woocommerce-page div.pp_woocommerce .pp_content_container #respond #reply-title{margin:20px 0}.woocommerce div.pp_woocommerce .pp_content_container #respond input,.woocommerce-page div.pp_woocommerce .pp_content_container #respond input,.woocommerce div.pp_woocommerce .pp_content_container #respond textarea,.woocommerce-page div.pp_woocommerce .pp_content_container #respond textarea{margin-left:15px}.woocommerce div.pp_woocommerce .pp_content_container #respond p,.woocommerce-page div.pp_woocommerce .pp_content_container #respond p{margin-bottom:20px}.woocommerce div.pp_woocommerce .pp_content_container #respond .comment-form-rating,.woocommerce-page div.pp_woocommerce .pp_content_container #respond .comment-form-rating{margin-bottom:10px}.woocommerce div.pp_woocommerce .pp_content_container #respond .stars,.woocommerce-page div.pp_woocommerce .pp_content_container #respond .stars{margin-bottom:30px}.woocommerce div.pp_woocommerce .pp_content_container #respond .comment-form-comment,.woocommerce-page div.pp_woocommerce .pp_content_container #respond .comment-form-comment{margin-bottom:40px}.woocommerce a.button,.woocommerce-page a.button,.woocommerce button.button,.woocommerce-page button.button,.woocommerce input.button,.woocommerce-page input.button,.woocommerce #respond input#submit,.woocommerce-page #respond input#submit,.woocommerce #content input.button,.woocommerce-page #content input.button{background:#fcfcfc;color:#808080;font-size:14px;line-height:20px;padding:6px 12px;font-weight:normal;text-shadow:none;border:1px solid #ccc;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.woocommerce a.button:hover,.woocommerce-page a.button:hover,.woocommerce button.button:hover,.woocommerce-page button.button:hover,.woocommerce input.button:hover,.woocommerce-page input.button:hover,.woocommerce #respond input#submit:hover,.woocommerce-page #respond input#submit:hover,.woocommerce #content input.button:hover,.woocommerce-page #content input.button:hover{color:#808080;background:#fcfcfc;border:1px solid #ccc;text-decoration:none}.woocommerce a.button:active,.woocommerce-page a.button:active,.woocommerce button.button:active,.woocommerce-page button.button:active,.woocommerce input.button:active,.woocommerce-page input.button:active,.woocommerce #respond input#submit:active,.woocommerce-page #respond input#submit:active,.woocommerce #content input.button:active,.woocommerce-page #content input.button:active{background-image:none;outline:0}.woocommerce a.button.loading,.woocommerce-page a.button.loading,.woocommerce button.button.loading,.woocommerce-page button.button.loading,.woocommerce input.button.loading,.woocommerce-page input.button.loading,.woocommerce #respond input#submit.loading,.woocommerce-page #respond input#submit.loading,.woocommerce #content input.button.loading,.woocommerce-page #content input.button.loading{border:1px solid #e6e6e6;color:#808080;filter:alpha(opacity = 50);opacity:0.5}.woocommerce a.button.added:before,.woocommerce-page a.button.added:before,.woocommerce button.button.added:before,.woocommerce-page button.button.added:before,.woocommerce input.button.added:before,.woocommerce-page input.button.added:before,.woocommerce #respond input#submit.added:before,.woocommerce-page #respond input#submit.added:before,.woocommerce #content input.button.added:before,.woocommerce-page #content input.button.added:before{display:none}.woocommerce.tax-product_cat .add_to_cart_button,.woocommerce-page.tax-product_cat .add_to_cart_button{display:none}.woocommerce form .form-row input.input-text,.woocommerce-page form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce-page form .form-row textarea,.woocommerce form .form-row select,.woocommerce-page form .form-row select,.woocommerce table.cart td.actions .coupon .input-text,.woocommerce-page table.cart td.actions .coupon .input-text{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#808080;vertical-align:middle;background-color:#fcfcfc;background-image:none;border:1px solid #e6e6e6;-moz-transition:all ease-in-out .15s;-webkit-transition:all ease-in-out .15s;transition:all ease-in-out .15s;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.woocommerce form .form-row input.input-text::-webkit-input-placeholder,.woocommerce-page form .form-row input.input-text::-webkit-input-placeholder,.woocommerce form .form-row textarea::-webkit-input-placeholder,.woocommerce-page form .form-row textarea::-webkit-input-placeholder,.woocommerce form .form-row select::-webkit-input-placeholder,.woocommerce-page form .form-row select::-webkit-input-placeholder,.woocommerce table.cart td.actions .coupon .input-text::-webkit-input-placeholder,.woocommerce-page table.cart td.actions .coupon .input-text::-webkit-input-placeholder{color:rgba(128,128,128,0.4)}.woocommerce form .form-row input.input-text:-moz-placeholder,.woocommerce-page form .form-row input.input-text:-moz-placeholder,.woocommerce form .form-row textarea:-moz-placeholder,.woocommerce-page form .form-row textarea:-moz-placeholder,.woocommerce form .form-row select:-moz-placeholder,.woocommerce-page form .form-row select:-moz-placeholder,.woocommerce table.cart td.actions .coupon .input-text:-moz-placeholder,.woocommerce-page table.cart td.actions .coupon .input-text:-moz-placeholder{color:rgba(128,128,128,0.4)}.woocommerce form .form-row input.input-text::-moz-placeholder,.woocommerce-page form .form-row input.input-text::-moz-placeholder,.woocommerce form .form-row textarea::-moz-placeholder,.woocommerce-page form .form-row textarea::-moz-placeholder,.woocommerce form .form-row select::-moz-placeholder,.woocommerce-page form .form-row select::-moz-placeholder,.woocommerce table.cart td.actions .coupon .input-text::-moz-placeholder,.woocommerce-page table.cart td.actions .coupon .input-text::-moz-placeholder{color:rgba(128,128,128,0.4)}.woocommerce form .form-row input.input-text:-ms-input-placeholder,.woocommerce-page form .form-row input.input-text:-ms-input-placeholder,.woocommerce form .form-row textarea:-ms-input-placeholder,.woocommerce-page form .form-row textarea:-ms-input-placeholder,.woocommerce form .form-row select:-ms-input-placeholder,.woocommerce-page form .form-row select:-ms-input-placeholder,.woocommerce table.cart td.actions .coupon .input-text:-ms-input-placeholder,.woocommerce-page table.cart td.actions .coupon .input-text:-ms-input-placeholder{color:rgba(128,128,128,0.4)}.woocommerce table.cart td.actions .coupon .input-text,.woocommerce-page table.cart td.actions .coupon .input-text{background-color:#fff}.woocommerce form .form-row input.input-text:focus,.woocommerce-page form .form-row input.input-text:focus,.woocommerce form .form-row textarea:focus,.woocommerce-page form .form-row textarea:focus,.woocommerce form .form-row select:focus,.woocommerce-page form .form-row select:focus,.woocommerce table.cart td.actions .coupon .input-text:focus,.woocommerce-page table.cart td.actions .coupon .input-text:focus{background-color:#fff;border-color:#ccc;outline:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.woocommerce form .form-row textarea,.woocommerce-page form .form-row textarea{height:160px}.woocommerce form.login,.woocommerce-page form.login,.woocommerce form.checkout_coupon,.woocommerce-page form.checkout_coupon,.woocommerce form.register,.woocommerce-page form.register{border:1px solid #e6e6e6}.woocommerce .chzn-container-active .chzn-single,.woocommerce-page .chzn-container-active .chzn-single{border:1px solid #428bca}.woocommerce .chzn-container .chzn-results,.woocommerce-page .chzn-container .chzn-results{color:#333}.woocommerce .chzn-container .chzn-results .highlighted,.woocommerce-page .chzn-container .chzn-results .highlighted{background:#428bca;color:#fff}.woocommerce .woocommerce-result-count,.woocommerce-page .woocommerce-result-count,.woocommerce .woocommerce-ordering,.woocommerce-page .woocommerce-ordering{margin-bottom:0}.woocommerce ul.products,.woocommerce-page ul.products{padding-top:40px}.woocommerce ul.products li.product,.woocommerce-page ul.products li.product,.woocommerce .related ul.products li.product,.woocommerce-page .related ul.products li.product,.woocommerce .upsells.products ul.products li.product,.woocommerce-page .upsells.products ul.products li.product,.woocommerce[class*=columns-] ul.products li.product,.woocommerce-page[class*=columns-] ul.products li.product{float:none !important;margin-left:auto;margin-right:auto;max-width:280px;text-align:center;width:auto}.woocommerce ul.products li.product a img,.woocommerce-page ul.products li.product a img,.woocommerce .related ul.products li.product a img,.woocommerce-page .related ul.products li.product a img,.woocommerce .upsells.products ul.products li.product a img,.woocommerce-page .upsells.products ul.products li.product a img,.woocommerce[class*=columns-] ul.products li.product a img,.woocommerce-page[class*=columns-] ul.products li.product a img,.woocommerce ul.products li.product a:hover img,.woocommerce-page ul.products li.product a:hover img,.woocommerce .related ul.products li.product a:hover img,.woocommerce-page .related ul.products li.product a:hover img,.woocommerce .upsells.products ul.products li.product a:hover img,.woocommerce-page .upsells.products ul.products li.product a:hover img,.woocommerce[class*=columns-] ul.products li.product a:hover img,.woocommerce-page[class*=columns-] ul.products li.product a:hover img{border:1px solid #e6e6e6;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.woocommerce ul.products li.product .price .from,.woocommerce-page ul.products li.product .price .from,.woocommerce .related ul.products li.product .price .from,.woocommerce-page .related ul.products li.product .price .from,.woocommerce .upsells.products ul.products li.product .price .from,.woocommerce-page .upsells.products ul.products li.product .price .from,.woocommerce[class*=columns-] ul.products li.product .price .from,.woocommerce-page[class*=columns-] ul.products li.product .price .from{color:#808080}.woocommerce ul.products li.product .price del,.woocommerce-page ul.products li.product .price del,.woocommerce .related ul.products li.product .price del,.woocommerce-page .related ul.products li.product .price del,.woocommerce .upsells.products ul.products li.product .price del,.woocommerce-page .upsells.products ul.products li.product .price del,.woocommerce[class*=columns-] ul.products li.product .price del,.woocommerce-page[class*=columns-] ul.products li.product .price del{font-size:inherit}.woocommerce ul.products li.product a.added_to_cart,.woocommerce-page ul.products li.product a.added_to_cart,.woocommerce .related ul.products li.product a.added_to_cart,.woocommerce-page .related ul.products li.product a.added_to_cart,.woocommerce .upsells.products ul.products li.product a.added_to_cart,.woocommerce-page .upsells.products ul.products li.product a.added_to_cart,.woocommerce[class*=columns-] ul.products li.product a.added_to_cart,.woocommerce-page[class*=columns-] ul.products li.product a.added_to_cart{margin-left:5px}.woocommerce ul.products li.product mark,.woocommerce-page ul.products li.product mark,.woocommerce .related ul.products li.product mark,.woocommerce-page .related ul.products li.product mark,.woocommerce .upsells.products ul.products li.product mark,.woocommerce-page .upsells.products ul.products li.product mark,.woocommerce[class*=columns-] ul.products li.product mark,.woocommerce-page[class*=columns-] ul.products li.product mark{background:transparent;color:#333}.woocommerce .products .star-rating,.woocommerce-page .products .star-rating,.woocommerce .star-rating,.woocommerce-page .star-rating{margin-left:auto;margin-right:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.woocommerce .products .star-rating span:before,.woocommerce-page .products .star-rating span:before,.woocommerce .star-rating span:before,.woocommerce-page .star-rating span:before{color:#428bca}.woocommerce .products .star-rating:before,.woocommerce-page .products .star-rating:before,.woocommerce .star-rating:before,.woocommerce-page .star-rating:before{content:"\53\53\53\53\53" !important;color:#808080}.woocommerce ul.products li.product .onsale,.woocommerce-page ul.products li.product .onsale,.woocommerce span.onsale,.woocommerce-page span.onsale{color:#fff;background:#428bca;font-size:13px;font-weight:normal;left:10px;margin:0;padding:2px 13px;right:auto;text-shadow:none;top:10px;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.woocommerce nav.woocommerce-pagination ul,.woocommerce-page nav.woocommerce-pagination ul{border:1px solid #e6e6e6;border-right:none}.woocommerce nav.woocommerce-pagination ul li,.woocommerce-page nav.woocommerce-pagination ul li{border-right:1px solid #e6e6e6}.woocommerce nav.woocommerce-pagination ul li a,.woocommerce-page nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span,.woocommerce-page nav.woocommerce-pagination ul li span{padding:6px 10px}.woocommerce nav.woocommerce-pagination ul li a:hover,.woocommerce-page nav.woocommerce-pagination ul li a:hover,.woocommerce nav.woocommerce-pagination ul li span.current,.woocommerce-page nav.woocommerce-pagination ul li span.current{border-color:#e6e6e6;color:#fff;background:#428bca}.woocommerce .product_meta,.woocommerce-page .product_meta{border-top:1px solid #e6e6e6;padding-top:10px}.woocommerce .product_meta span span,.woocommerce-page .product_meta span span,.woocommerce .product_meta span a,.woocommerce-page .product_meta span a{font-weight:bold}.woocommerce .quantity input.qty,.woocommerce-page .quantity input.qty{background:#fff !important;border-color:#ccc;color:#808080;height:35px;text-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.woocommerce .quantity .plus,.woocommerce-page .quantity .plus,.woocommerce .quantity .minus,.woocommerce-page .quantity .minus{background:#fff !important;border-color:#ccc;color:#808080;height:18px;text-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.woocommerce .quantity .plus:focus,.woocommerce-page .quantity .plus:focus,.woocommerce .quantity .minus:focus,.woocommerce-page .quantity .minus:focus{top:auto}.woocommerce .quantity .plus,.woocommerce-page .quantity .plus{border-bottom:1px solid #ccc}.woocommerce div.product div.images,.woocommerce-page div.product div.images{float:none;margin:0 auto 40px;width:auto}.woocommerce div.product div.images img,.woocommerce-page div.product div.images img{border:1px solid #e6e6e6;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.woocommerce div.product div.summary,.woocommerce-page div.product div.summary{float:none;width:auto}.woocommerce div.product .related.products,.woocommerce-page div.product .related.products{clear:both}.woocommerce div.product span.price del,.woocommerce-page div.product span.price del,.woocommerce div.product p.price del,.woocommerce-page div.product p.price del{font-size:inherit}.woocommerce div.product form.cart,.woocommerce-page div.product form.cart{margin-top:20px}.woocommerce div.product form.cart .variations,.woocommerce-page div.product form.cart .variations{margin-top:30px}.woocommerce div.product form.cart .variations input,.woocommerce-page div.product form.cart .variations input,.woocommerce div.product form.cart .variations select,.woocommerce-page div.product form.cart .variations select{max-width:100%}.woocommerce div.product form.cart .variations td,.woocommerce-page div.product form.cart .variations td{padding-bottom:20px}.woocommerce div.product form.cart .variations td.label,.woocommerce-page div.product form.cart .variations td.label{color:#808080;font-size:inherit}.woocommerce div.product form.cart .variations td.label label,.woocommerce-page div.product form.cart .variations td.label label{font-weight:normal}.woocommerce div.product form.cart .reset_variations,.woocommerce-page div.product form.cart .reset_variations{clear:both;display:block;padding-top:10px}.woocommerce div.product form.cart div.quantity,.woocommerce-page div.product form.cart div.quantity{margin:0 15px 0 0}.woocommerce div.product .woocommerce-tabs,.woocommerce-page div.product .woocommerce-tabs{padding:20px 0 1px}.woocommerce div.product .woocommerce-tabs ul.tabs,.woocommerce-page div.product .woocommerce-tabs ul.tabs{margin:0;padding:0 5px}.woocommerce div.product .woocommerce-tabs ul.tabs:before,.woocommerce-page div.product .woocommerce-tabs ul.tabs:before{border-bottom:1px solid #e6e6e6}.woocommerce div.product .woocommerce-tabs ul.tabs li,.woocommerce-page div.product .woocommerce-tabs ul.tabs li{background:#f7f7f7;border:1px solid #e6e6e6;border-bottom:none;display:block;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.woocommerce div.product .woocommerce-tabs ul.tabs li.active,.woocommerce-page div.product .woocommerce-tabs ul.tabs li.active{background:#fff}.woocommerce div.product .woocommerce-tabs ul.tabs li:after,.woocommerce-page div.product .woocommerce-tabs ul.tabs li:after,.woocommerce div.product .woocommerce-tabs ul.tabs li:before,.woocommerce-page div.product .woocommerce-tabs ul.tabs li:before{display:none}.woocommerce div.product .woocommerce-tabs ul.tabs li a,.woocommerce-page div.product .woocommerce-tabs ul.tabs li a,.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover,.woocommerce-page div.product .woocommerce-tabs ul.tabs li a:hover{color:#808080;display:block;text-shadow:none}.woocommerce div.product .woocommerce-tabs .panel,.woocommerce-page div.product .woocommerce-tabs .panel{background:#fff;border:1px solid #e6e6e6;border-top:none;padding:30px;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.woocommerce div.product .woocommerce-tabs .panel h2,.woocommerce-page div.product .woocommerce-tabs .panel h2{margin-top:0}.woocommerce #reviews #comments h2,.woocommerce-page #reviews #comments h2{margin-bottom:30px}.woocommerce #reviews #comments>div .star-rating,.woocommerce-page #reviews #comments>div .star-rating{float:none;margin-bottom:10px}.woocommerce #reviews #comments ol.commentlist,.woocommerce-page #reviews #comments ol.commentlist{padding-left:0}.woocommerce #reviews #comments ol.commentlist li,.woocommerce-page #reviews #comments ol.commentlist li{border-top:1px solid #e6e6e6;padding-top:20px}.woocommerce #reviews #comments ol.commentlist li img.avatar,.woocommerce-page #reviews #comments ol.commentlist li img.avatar{background:transparent;border:none;display:none;padding:0;top:19px;width:40px;-moz-border-radius:100%;-webkit-border-radius:100%;border-radius:100%}.woocommerce #reviews #comments ol.commentlist li .comment-text,.woocommerce-page #reviews #comments ol.commentlist li .comment-text{border:none;margin:0;padding:0}.woocommerce #reviews #comments .add_review,.woocommerce-page #reviews #comments .add_review{border-top:1px solid #e6e6e6;padding-top:20px}.woocommerce table.shop_attributes td,.woocommerce-page table.shop_attributes td,.woocommerce table.shop_attributes th,.woocommerce-page table.shop_attributes th,.woocommerce table.shop_attributes .alt td,.woocommerce-page table.shop_attributes .alt td,.woocommerce table.shop_attributes .alt th,.woocommerce-page table.shop_attributes .alt th{background:none;border-bottom:1px solid #e6e6e6}.woocommerce .related h2,.woocommerce-page .related h2,.woocommerce .upsells.products h2,.woocommerce-page .upsells.products h2{margin:20px auto;max-width:280px}.woocommerce .label,.woocommerce-page .label,.woocommerce .value,.woocommerce-page .value{white-space:normal}.woocommerce table.cart td.actions .button,.woocommerce-page table.cart td.actions .button{display:block;margin-bottom:10px;width:100%}.woocommerce table.cart td.actions .checkout-button,.woocommerce-page table.cart td.actions .checkout-button{margin-bottom:0}.woocommerce table.cart td.actions .coupon,.woocommerce-page table.cart td.actions .coupon{border-bottom:1px solid #e6e6e6;float:none;margin-bottom:12px;padding-bottom:12px}.woocommerce table.cart td.actions .coupon .input-text,.woocommerce-page table.cart td.actions .coupon .input-text{float:left;height:28px;width:48%}.woocommerce table.cart td.actions .coupon .button,.woocommerce-page table.cart td.actions .coupon .button{float:right;margin-bottom:0;width:48%}.woocommerce table.cart td.actions .coupon:before,.woocommerce-page table.cart td.actions .coupon:before,.woocommerce table.cart td.actions .coupon:after,.woocommerce-page table.cart td.actions .coupon:after{display:table;content:" "}.woocommerce table.cart td.actions .coupon:after,.woocommerce-page table.cart td.actions .coupon:after{clear:both}.woocommerce .cart-collaterals h2,.woocommerce-page .cart-collaterals h2{font-size:18px}.woocommerce .cart-collaterals .cart_totals,.woocommerce-page .cart-collaterals .cart_totals,.woocommerce .cart-collaterals .shipping_calculator,.woocommerce-page .cart-collaterals .shipping_calculator{text-align:left;width:100%}.woocommerce .cart-collaterals .cart_totals table,.woocommerce-page .cart-collaterals .cart_totals table{width:100%}.woocommerce .cart-collaterals .cart_totals table th,.woocommerce-page .cart-collaterals .cart_totals table th,.woocommerce .cart-collaterals .cart_totals table td,.woocommerce-page .cart-collaterals .cart_totals table td{border-top:none;border-bottom:1px solid #e6e6e6;padding:10px 0}.woocommerce .cart-collaterals .cart_totals table th,.woocommerce-page .cart-collaterals .cart_totals table th{padding:10px}.woocommerce .cart-collaterals .shipping_calculator .form-row,.woocommerce-page .cart-collaterals .shipping_calculator .form-row{padding:0 0 12px 0}.woocommerce ul#shipping_method li,.woocommerce-page ul#shipping_method li{padding:0;text-indent:0}.woocommerce ul#shipping_method li label,.woocommerce-page ul#shipping_method li label{margin-left:5px}.woocommerce .checkout #shiptobilling,.woocommerce-page .checkout #shiptobilling{float:none;padding:20px 0 0 0;text-align:left}.woocommerce .checkout #shiptobilling label,.woocommerce-page .checkout #shiptobilling label{font-size:inherit;padding:0}.woocommerce .checkout .woocommerce-form__input-checkbox,.woocommerce-page .checkout .woocommerce-form__input-checkbox{position:initial}.woocommerce table.shop_table,.woocommerce-page table.shop_table{background:#fcfcfc;border:1px solid #e6e6e6;-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px}.woocommerce table.shop_table th,.woocommerce-page table.shop_table th,.woocommerce table.shop_table td,.woocommerce-page table.shop_table td{border-color:#e6e6e6 !important;padding:18px 10px}.woocommerce table.shop_table thead th,.woocommerce-page table.shop_table thead th{border-bottom:2px solid #e6e6e6}.woocommerce #order_review_heading,.woocommerce-page #order_review_heading{margin-top:40px}.woocommerce #order_review,.woocommerce-page #order_review{background:#f7f7f7;padding:10px;-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px}.woocommerce #order_review .shop_table,.woocommerce-page #order_review .shop_table{margin-bottom:10px}.woocommerce #payment,.woocommerce-page #payment{background:#fcfcfc;border:1px solid #e6e6e6}.woocommerce #payment h3,.woocommerce-page #payment h3{padding:0 15px}.woocommerce #payment .form-row.place-order,.woocommerce-page #payment .form-row.place-order{margin-bottom:0;padding:10px}.woocommerce #payment ul.payment_methods,.woocommerce-page #payment ul.payment_methods{border-bottom:1px solid #e6e6e6}.woocommerce #payment div.payment_box,.woocommerce-page #payment div.payment_box{background:#f7f7f7;color:#808080;margin:10px 0 20px;text-shadow:none;width:100%}.woocommerce #payment div.payment_box:after,.woocommerce-page #payment div.payment_box:after{display:none}.woocommerce #payment div.form-row,.woocommerce-page #payment div.form-row{border:none}.woocommerce .order_details,.woocommerce-page .order_details{background:#fcfcfc;border:1px solid #e6e6e6;-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px}.woocommerce .order_details li,.woocommerce-page .order_details li{border:none;border-bottom:1px solid #e6e6e6;display:block;float:none;font-size:14px;margin:0;padding:15px 20px;text-transform:none}.woocommerce .order_details li strong,.woocommerce-page .order_details li strong{font-size:14px}.woocommerce .woocommerce-order-overview.woocommerce-thankyou-order-details,.woocommerce-page .woocommerce-order-overview.woocommerce-thankyou-order-details{padding-left:20px}.woocommerce .customer_details,.woocommerce-page .customer_details,.woocommerce .addresses address,.woocommerce-page .addresses address{border-top:1px solid #e6e6e6;padding-top:10px}.woocommerce .addresses .title,.woocommerce-page .addresses .title{position:relative}.woocommerce .addresses .title a,.woocommerce-page .addresses .title a{bottom:10px;position:absolute;right:0}.woocommerce input[name='change_password'],.woocommerce-page input[name='change_password'],.woocommerce input[name='save_address'],.woocommerce-page input[name='save_address']{margin:3px 0 0 2px}.woocommerce .woocommerce-MyAccount-navigation ul,.woocommerce-page .woocommerce-MyAccount-navigation ul{list-style-type:none;margin-bottom:30px;padding-left:0}.woocommerce .woocommerce-MyAccount-navigation ul li,.woocommerce-page .woocommerce-MyAccount-navigation ul li{border-top:1px solid #e6e6e6}.woocommerce .woocommerce-MyAccount-navigation ul li:last-child,.woocommerce-page .woocommerce-MyAccount-navigation ul li:last-child{border-bottom:1px solid #e6e6e6}.woocommerce .woocommerce-MyAccount-navigation ul li a,.woocommerce-page .woocommerce-MyAccount-navigation ul li a{display:block;padding:10px 0}.woocommerce .woocommerce-message,.woocommerce-page .woocommerce-message,.woocommerce .woocommerce-info,.woocommerce-page .woocommerce-info,.woocommerce .woocommerce-error,.woocommerce-page .woocommerce-error{background:#fcfcfc;border:1px solid #e6e6e6;color:#808080;font-weight:bold;padding:15px 25px !important;text-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.woocommerce .woocommerce-message:before,.woocommerce-page .woocommerce-message:before,.woocommerce .woocommerce-info:before,.woocommerce-page .woocommerce-info:before,.woocommerce .woocommerce-error:before,.woocommerce-page .woocommerce-error:before{display:none}.woocommerce .woocommerce-message a.button,.woocommerce-page .woocommerce-message a.button,.woocommerce .woocommerce-info a.button,.woocommerce-page .woocommerce-info a.button,.woocommerce .woocommerce-error a.button,.woocommerce-page .woocommerce-error a.button{display:block;float:none;margin-bottom:20px}.woocommerce .woocommerce-error,.woocommerce-page .woocommerce-error{background-color:#fff2f3;border-color:#eb989d;color:#b84048}.woocommerce .woocommerce-error a.button,.woocommerce-page .woocommerce-error a.button,.woocommerce .woocommerce-error a.button:hover,.woocommerce-page .woocommerce-error a.button:hover{color:#b84048}.woocommerce ul.product_list_widget li,.woocommerce-page ul.product_list_widget li{clear:both;padding:0 0 10px 0}.woocommerce ul.product_list_widget li img,.woocommerce-page ul.product_list_widget li img{float:left;margin:0 15px 0 0;width:50px}.woocommerce ul.product_list_widget li .star-rating,.woocommerce-page ul.product_list_widget li .star-rating{margin:3px 0 3px 65px}.woocommerce ul.product_list_widget li .amount,.woocommerce-page ul.product_list_widget li .amount{margin:0 4px 0 0}.fl-sidebar .widget_product_categories ul ul li{padding-left:1.618em}@media (min-width:768px){.woocommerce .col2-set .col-1,.woocommerce-page .col2-set .col-1,.woocommerce .col2-set .col-2,.woocommerce-page .col2-set .col-2{width:48%}.woocommerce form .form-row-first,.woocommerce-page form .form-row-first,.woocommerce form .form-row-last,.woocommerce-page form .form-row-last{width:48%}.woocommerce.columns-1 ul.products.columns-1 li.product,.woocommerce-page.columns-1 ul.products.columns-1 li.product,.woocommerce.woo-1.archive ul.products.columns-1 li.product,.woocommerce-page.woo-1.archive ul.products.columns-1 li.product{width:100% !important;margin-right:0 !important}.woocommerce.columns-2 ul.products.columns-2 li.product,.woocommerce-page.columns-2 ul.products.columns-2 li.product,.woocommerce.woo-2.archive ul.products.columns-2 li.product,.woocommerce-page.woo-2.archive ul.products.columns-2 li.product{width:48% !important}.woocommerce.columns-3 ul.products.columns-3 li.product,.woocommerce-page.columns-3 ul.products.columns-3 li.product,.woocommerce.woo-3.archive ul.products.columns-3 li.product,.woocommerce-page.woo-3.archive ul.products.columns-3 li.product{width:30.75% !important}.woocommerce.columns-4 ul.products.columns-4 li.product,.woocommerce-page.columns-4 ul.products.columns-4 li.product,.woocommerce.woo-4.archive ul.products.columns-4 li.product,.woocommerce-page.woo-4.archive ul.products.columns-4 li.product{width:22.05% !important}.woocommerce.columns-5 ul.products.columns-5 li.product,.woocommerce-page.columns-5 ul.products.columns-5 li.product,.woocommerce.woo-5.archive ul.products.columns-5 li.product,.woocommerce-page.woo-5.archive ul.products.columns-5 li.product{width:16.95% !important}.woocommerce.columns-6 ul.products.columns-6 li.product,.woocommerce-page.columns-6 ul.products.columns-6 li.product,.woocommerce.woo-6.archive ul.products.columns-6 li.product,.woocommerce-page.woo-6.archive ul.products.columns-6 li.product{width:13.5% !important}.woocommerce li.product.last,.woocommerce-page li.product.last{clear:right;margin-right:0 !important}.woocommerce ul.products li.product,.woocommerce-page ul.products li.product,.woocommerce .related ul.products li.product,.woocommerce-page .related ul.products li.product,.woocommerce .upsells.products ul.products li.product,.woocommerce-page .upsells.products ul.products li.product,.woocommerce[class*=columns-] ul.products li.product,.woocommerce-page[class*=columns-] ul.products li.product{clear:none;float:left !important;margin-right:3.8%;max-width:none;width:22.05%}.woocommerce ul.products li.product.first,.woocommerce-page ul.products li.product.first,.woocommerce .related ul.products li.product.first,.woocommerce-page .related ul.products li.product.first,.woocommerce .upsells.products ul.products li.product.first,.woocommerce-page .upsells.products ul.products li.product.first,.woocommerce[class*=columns-] ul.products li.product.first,.woocommerce-page[class*=columns-] ul.products li.product.first{clear:both}.woocommerce ul.products li.product.last,.woocommerce-page ul.products li.product.last,.woocommerce .related ul.products li.product.last,.woocommerce-page .related ul.products li.product.last,.woocommerce .upsells.products ul.products li.product.last,.woocommerce-page .upsells.products ul.products li.product.last,.woocommerce[class*=columns-] ul.products li.product.last,.woocommerce-page[class*=columns-] ul.products li.product.last{clear:right;margin-right:0 !important}.woocommerce div.product div.images,.woocommerce-page div.product div.images{float:left;margin-bottom:2em;max-width:none;width:48%}.woocommerce div.product div.summary,.woocommerce-page div.product div.summary{float:right;width:48%}.woocommerce div.product .woocommerce-tabs ul.tabs,.woocommerce-page div.product .woocommerce-tabs ul.tabs{padding:0 0 0 30px}.woocommerce div.product .woocommerce-tabs ul.tabs li,.woocommerce-page div.product .woocommerce-tabs ul.tabs li{display:inline-block}.woocommerce #reviews #comments>div .star-rating,.woocommerce-page #reviews #comments>div .star-rating{float:right;margin-bottom:0}.woocommerce #reviews #comments ol.commentlist li img.avatar,.woocommerce-page #reviews #comments ol.commentlist li img.avatar{display:block}.woocommerce #reviews #comments ol.commentlist li .comment-text,.woocommerce-page #reviews #comments ol.commentlist li .comment-text{border:none;margin:0 0 0 55px;padding:0}.woocommerce .related h2,.woocommerce-page .related h2,.woocommerce .upsells.products h2,.woocommerce-page .upsells.products h2{max-width:none}.woocommerce table.cart .product-remove,.woocommerce-page table.cart .product-remove,.woocommerce table.cart .product-thumbnail,.woocommerce-page table.cart .product-thumbnail,.woocommerce table.cart .product-price,.woocommerce-page table.cart .product-price{display:table-cell}.woocommerce table.cart .product-thumbnail img,.woocommerce-page table.cart .product-thumbnail img{max-width:100px}.woocommerce table.cart td.actions .button:disabled,.woocommerce-page table.cart td.actions .button:disabled{background-color:inherit}.woocommerce table.cart td.actions .button,.woocommerce-page table.cart td.actions .button{display:inline-block;margin-bottom:0;width:auto}.woocommerce table.cart td.actions .coupon,.woocommerce-page table.cart td.actions .coupon{border-bottom:none;float:left;margin-bottom:0;padding-bottom:0}.woocommerce table.cart td.actions .coupon .input-text,.woocommerce-page table.cart td.actions .coupon .input-text{width:200px}.woocommerce table.cart td.actions .coupon .button,.woocommerce-page table.cart td.actions .coupon .button{width:auto}.woocommerce .cart-collaterals .cart_totals,.woocommerce-page .cart-collaterals .cart_totals,.woocommerce .cart-collaterals .shipping_calculator,.woocommerce-page .cart-collaterals .shipping_calculator{text-align:left;width:48%}.woocommerce .order_details li,.woocommerce-page .order_details li{border:none;border-right:1px solid #e6e6e6;float:left}.woocommerce .woocommerce-message a.button,.woocommerce-page .woocommerce-message a.button,.woocommerce .woocommerce-info a.button,.woocommerce-page .woocommerce-info a.button,.woocommerce .woocommerce-error a.button,.woocommerce-page .woocommerce-error a.button{display:inline;float:right;margin-bottom:0}}@media (max-width:767px){.woocommerce ul.products[class*="columns-"] li.product,.woocommerce-page ul.products[class*="columns-"] li.product{width:100%;margin-left:auto;margin-right:auto}}body.has-blocks .fl-post-content>.alignwide{max-width:1100px}body.fl-fixed-width.has-blocks:not(.fl-has-sidebar) .fl-post-content .alignfull{width:auto;max-width:100vw}body.fl-full-width.has-blocks:not(.fl-has-sidebar) .fl-post-content .alignfull{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:auto;max-width:100vw}body.has-blocks .fl-post-content>.alignfull,body.fl-full-width.page-template-tpl-sidebar.has-blocks .fl-post-content .alignfull{margin:1.5em 0;max-width:100%}body.has-blocks .fl-post-content .alignwide{margin-left:-5%;margin-right:-5%;width:auto;max-width:100vw}body.has-blocks .fl-post-content ul,body.has-blocks .fl-post-content ol{margin:1.5em 0;list-style-position:outside}body.has-blocks .fl-post-content .alignwide ul,body.has-blocks .fl-post-content .alignfull ul,body.has-blocks .fl-post-content .alignwide ol,body.has-blocks .fl-post-content .alignfull ol{max-width:100%}body.has-blocks .fl-post-content li{list-style-position:outside}body.has-blocks .fl-post-content .wp-block-navigation{margin-bottom:1.5em}body.has-blocks .fl-post-content .wp-block-navigation ul{margin-top:0;margin-bottom:0}.wp-block-embed.type-video>.wp-block-embed__wrapper{position:relative;width:100%;height:0;padding-top:56.25%}.wp-block-embed.type-video>.wp-block-embed__wrapper>iframe{position:absolute;width:100%;height:100%;top:0;left:0;bottom:0;right:0}.wp-block-gallery:not(.components-placeholder){margin:1.5em auto}.wp-block-cover-text p{padding:1.5em 20px}@media screen and (min-width:768px){.wp-block-cover-text p{padding:1.5em 0}}ul.wp-block-latest-posts.alignwide,ul.wp-block-latest-posts.alignfull,ul.wp-block-latest-posts.is-grid.alignwide,ul.wp-block-latest-posts.is-grid.alignwide{padding:0 20px}.wp-block-table{display:block;overflow-x:auto}.wp-block-table table{border-collapse:collapse;width:100%}.wp-block-table td,.wp-block-table th{padding:.5em}@media (max-width:991px){body{font-size:14px;line-height:1.45}h1{font-size:36px;line-height:1.4;letter-spacing:0px}h2{font-size:30px;line-height:1.4;letter-spacing:0px}h3{font-size:24px;line-height:1.4;letter-spacing:0px}h4{font-size:18px;line-height:1.4;letter-spacing:0px}h5{font-size:14px;line-height:1.4;letter-spacing:0px}h6{font-size:12px;line-height:1.4;letter-spacing:0px}.wp-block-button .wp-block-button__link{font-size:16px;line-height:1.2}.fl-page button,.fl-page input[type=button],.fl-page input[type=submit]{font-size:16px;line-height:1.2}a.fl-button,a.fl-button:visited,.fl-page a.fl-button,.fl-page a.fl-button:visited{font-size:16px;line-height:1.2}a.fl-button:hover{font-size:16px;line-height:1.2}.fl-page .fl-module-woocommerce a.button,.fl-page .fl-post-module-woo-button a.button,.fl-page .fl-module-woocommerce a.button:visited,.fl-page .fl-post-module-woo-button a.button:visited,.fl-page .fl-module-woocommerce button[type=button],.fl-page .fl-post-module-woo-button button[type=button],.fl-page .fl-module-woocommerce button[type=submit],.fl-page .fl-post-module-woo-button button[type=submit]{font-size:16px;line-height:1.2}}@media (max-width:767px){body{font-size:14px;line-height:1.45}h1{font-size:36px;line-height:1.4;letter-spacing:0px}h2{font-size:30px;line-height:1.4;letter-spacing:0px}h3{font-size:24px;line-height:1.4;letter-spacing:0px}h3{font-size:24px;line-height:1.4;letter-spacing:0px}h4{font-size:18px;line-height:1.4;letter-spacing:0px}h5{font-size:14px;line-height:1.4;letter-spacing:0px}h6{font-size:12px;line-height:1.4;letter-spacing:0px}.wp-block-button .wp-block-button__link{font-size:16px;line-height:1.2}.fl-page button,.fl-page input[type=button],.fl-page input[type=submit]{font-size:16px;line-height:1.2}a.fl-button,a.fl-button:visited,.fl-page a.fl-button,.fl-page a.fl-button:visited{font-size:16px;line-height:1.2}.fl-page .fl-module-woocommerce a.button,.fl-page .fl-post-module-woo-button a.button,.fl-page .fl-module-woocommerce a.button:visited,.fl-page .fl-post-module-woo-button a.button:visited,.fl-page .fl-module-woocommerce button[type=button],.fl-page .fl-post-module-woo-button button[type=button],.fl-page .fl-module-woocommerce button[type=submit],.fl-page .fl-post-module-woo-button button[type=submit]{font-size:16px;line-height:1.2}}
  9789. </style>
  9790. <link rel='stylesheet' id='pp-animate-css' href='https://linktek.com/wp-content/plugins/bbpowerpack/assets/css/animate.min.css' media='all' />
  9791. <link rel="preload" as="style" href="//fonts.googleapis.com/css?family=Poppins%3A500%2C400%2C700%2C300%2C600%7COswald%3A300%2C700&#038;ver=6.6.2" /><link rel='stylesheet' id='fl-builder-google-fonts-ee2b30e5c5bebd6646d75818e3a53317-css' href='//fonts.googleapis.com/css?family=Poppins%3A500%2C400%2C700%2C300%2C600%7COswald%3A300%2C700&#038;ver=6.6.2' media='print' onload='this.media=&#34;all&#34;' />
  9792. <script src="https://linktek.com/wp-includes/js/jquery/jquery.min.js" id="jquery-core-js"></script>
  9793. <script src="https://linktek.com/wp-includes/js/imagesloaded.min.js" id="imagesloaded-js"></script>
  9794. <script src="https://linktek.com/wp-content/plugins/handl-utm-grabber-v3/js/js.cookie.js" id="js.cookie-js"></script>
  9795. <script id="handl-utm-grabber-js-extra">
  9796. var handl_utm = [];
  9797. var handl_utm_all_params = ["utm_source","utm_medium","utm_term","utm_content","utm_campaign","first_utm_source","first_utm_medium","first_utm_term","first_utm_content","first_utm_campaign","fbclid","msclkid","gclid","handl_original_ref","handl_landing_page","handl_landing_page_base","handl_ip","handl_ref","handl_url","handl_ref_domain","handl_url_base","gaclientid","organic_source","organic_source_str","user_agent","traffic_source","first_traffic_source","handlID","utm_campaignid"];
  9798. var handl_utm_cookie_duration = ["1825","1"];
  9799. var handl_utm_append_params = ["utm_source","utm_medium","utm_term","utm_content","utm_campaign","gclid","utm_campaignid"];
  9800. var handl_utm_first_touch_params = ["utm_source","utm_medium","utm_term","utm_content","utm_campaign"];
  9801. var handl_utm_custom_params = ["utm_campaignid",""];
  9802. var handl_utm_predefined = [];
  9803. </script>
  9804. <script src="https://linktek.com/wp-content/plugins/handl-utm-grabber-v3/js/handl-utm-grabber.js" id="handl-utm-grabber-js"></script>
  9805. <script src="https://linktek.com/wp-content/plugins/woocommerce/assets/js/jquery-blockui/jquery.blockUI.min.js" id="jquery-blockui-js" defer data-wp-strategy="defer"></script>
  9806. <script id="wc-add-to-cart-js-extra">
  9807. var wc_add_to_cart_params = {"ajax_url":"\/wp-admin\/admin-ajax.php","wc_ajax_url":"\/?wc-ajax=%%endpoint%%","i18n_view_cart":"View cart","cart_url":"https:\/\/linktek.com\/?page_id=42126","is_cart":"","cart_redirect_after_add":"yes"};
  9808. </script>
  9809. <script src="https://linktek.com/wp-content/plugins/woocommerce/assets/js/frontend/add-to-cart.min.js" id="wc-add-to-cart-js" defer data-wp-strategy="defer"></script>
  9810. <script src="https://linktek.com/wp-content/plugins/woocommerce/assets/js/js-cookie/js.cookie.min.js" id="js-cookie-js" defer data-wp-strategy="defer"></script>
  9811. <script id="woocommerce-js-extra">
  9812. var woocommerce_params = {"ajax_url":"\/wp-admin\/admin-ajax.php","wc_ajax_url":"\/?wc-ajax=%%endpoint%%"};
  9813. </script>
  9814. <script src="https://linktek.com/wp-content/plugins/woocommerce/assets/js/frontend/woocommerce.min.js" id="woocommerce-js" defer data-wp-strategy="defer"></script>
  9815. <script src="https://linktek.com/wp-content/plugins/content-protector/assets/public/cookie.js" id="passster-cookie-js"></script>
  9816. <script id="passster-public-js-extra">
  9817. var ps_ajax = {"ajax_url":"https:\/\/linktek.com\/wp-admin\/admin-ajax.php","nonce":"d273971931","hash_nonce":"289eef1f92","logout_nonce":"3c607acb4e","post_id":"39699","shortcodes":[],"permalink":"https:\/\/linktek.com\/","cookie_duration_unit":"days","cookie_duration":"30","disable_cookie":"","unlock_mode":""};
  9818. </script>
  9819. <script src="https://linktek.com/wp-content/plugins/content-protector/assets/public/passster-public.min.js" id="passster-public-js"></script>
  9820. <script defer='defer' src="https://linktek.com/wp-content/plugins/gravityforms/js/jquery.json.min.js" id="gform_json-js"></script>
  9821. <script id="gform_gravityforms-js-extra">
  9822. var gf_global = {"gf_currency_config":{"name":"U.S. Dollar","symbol_left":"$","symbol_right":"","symbol_padding":"","thousand_separator":",","decimal_separator":".","decimals":2,"code":"USD"},"base_url":"https:\/\/linktek.com\/wp-content\/plugins\/gravityforms","number_formats":[],"spinnerUrl":"https:\/\/linktek.com\/wp-content\/plugins\/gravityforms\/images\/spinner.svg","version_hash":"f6f249d0416e881ab9bd12cca5f963e7","strings":{"newRowAdded":"New row added.","rowRemoved":"Row removed","formSaved":"The form has been saved.  The content contains the link to return and complete the form."}};
  9823. var gf_global = {"gf_currency_config":{"name":"U.S. Dollar","symbol_left":"$","symbol_right":"","symbol_padding":"","thousand_separator":",","decimal_separator":".","decimals":2,"code":"USD"},"base_url":"https:\/\/linktek.com\/wp-content\/plugins\/gravityforms","number_formats":[],"spinnerUrl":"https:\/\/linktek.com\/wp-content\/plugins\/gravityforms\/images\/spinner.svg","version_hash":"f6f249d0416e881ab9bd12cca5f963e7","strings":{"newRowAdded":"New row added.","rowRemoved":"Row removed","formSaved":"The form has been saved.  The content contains the link to return and complete the form."}};
  9824. var gf_global = {"gf_currency_config":{"name":"U.S. Dollar","symbol_left":"$","symbol_right":"","symbol_padding":"","thousand_separator":",","decimal_separator":".","decimals":2,"code":"USD"},"base_url":"https:\/\/linktek.com\/wp-content\/plugins\/gravityforms","number_formats":[],"spinnerUrl":"https:\/\/linktek.com\/wp-content\/plugins\/gravityforms\/images\/spinner.svg","version_hash":"f6f249d0416e881ab9bd12cca5f963e7","strings":{"newRowAdded":"New row added.","rowRemoved":"Row removed","formSaved":"The form has been saved.  The content contains the link to return and complete the form."}};
  9825. var gf_global = {"gf_currency_config":{"name":"U.S. Dollar","symbol_left":"$","symbol_right":"","symbol_padding":"","thousand_separator":",","decimal_separator":".","decimals":2,"code":"USD"},"base_url":"https:\/\/linktek.com\/wp-content\/plugins\/gravityforms","number_formats":[],"spinnerUrl":"https:\/\/linktek.com\/wp-content\/plugins\/gravityforms\/images\/spinner.svg","version_hash":"f6f249d0416e881ab9bd12cca5f963e7","strings":{"newRowAdded":"New row added.","rowRemoved":"Row removed","formSaved":"The form has been saved.  The content contains the link to return and complete the form."}};
  9826. var gf_legacy = {"is_legacy":""};
  9827. var gf_global = {"gf_currency_config":{"name":"U.S. Dollar","symbol_left":"$","symbol_right":"","symbol_padding":"","thousand_separator":",","decimal_separator":".","decimals":2,"code":"USD"},"base_url":"https:\/\/linktek.com\/wp-content\/plugins\/gravityforms","number_formats":[],"spinnerUrl":"https:\/\/linktek.com\/wp-content\/plugins\/gravityforms\/images\/spinner.svg","version_hash":"f6f249d0416e881ab9bd12cca5f963e7","strings":{"newRowAdded":"New row added.","rowRemoved":"Row removed","formSaved":"The form has been saved.  The content contains the link to return and complete the form."}};
  9828. var gf_legacy = {"is_legacy":""};
  9829. var gf_global = {"gf_currency_config":{"name":"U.S. Dollar","symbol_left":"$","symbol_right":"","symbol_padding":"","thousand_separator":",","decimal_separator":".","decimals":2,"code":"USD"},"base_url":"https:\/\/linktek.com\/wp-content\/plugins\/gravityforms","number_formats":[],"spinnerUrl":"https:\/\/linktek.com\/wp-content\/plugins\/gravityforms\/images\/spinner.svg","version_hash":"f6f249d0416e881ab9bd12cca5f963e7","strings":{"newRowAdded":"New row added.","rowRemoved":"Row removed","formSaved":"The form has been saved.  The content contains the link to return and complete the form."}};
  9830. var gform_i18n = {"datepicker":{"days":{"monday":"Mo","tuesday":"Tu","wednesday":"We","thursday":"Th","friday":"Fr","saturday":"Sa","sunday":"Su"},"months":{"january":"January","february":"February","march":"March","april":"April","may":"May","june":"June","july":"July","august":"August","september":"September","october":"October","november":"November","december":"December"},"firstDay":1,"iconText":"Select date"}};
  9831. var gf_legacy_multi = {"36":"","4":"","53":""};
  9832. var gform_gravityforms = {"strings":{"invalid_file_extension":"This type of file is not allowed. Must be one of the following:","delete_file":"Delete this file","in_progress":"in progress","file_exceeds_limit":"File exceeds size limit","illegal_extension":"This type of file is not allowed.","max_reached":"Maximum number of files reached","unknown_error":"There was a problem while saving the file on the server","currently_uploading":"Please wait for the uploading to complete","cancel":"Cancel","cancel_upload":"Cancel this upload","cancelled":"Cancelled"},"vars":{"images_url":"https:\/\/linktek.com\/wp-content\/plugins\/gravityforms\/images"}};
  9833. </script>
  9834. <script defer='defer' src="https://linktek.com/wp-content/plugins/gravityforms/js/gravityforms.min.js" id="gform_gravityforms-js"></script>
  9835. <script id="gform_conditional_logic-js-extra">
  9836. var gf_legacy = {"is_legacy":""};
  9837. var gf_legacy = {"is_legacy":""};
  9838. var gf_legacy = {"is_legacy":""};
  9839. var gf_legacy = {"is_legacy":""};
  9840. </script>
  9841. <script defer='defer' src="https://linktek.com/wp-content/plugins/gravityforms/js/conditional_logic.min.js" id="gform_conditional_logic-js"></script>
  9842. <script defer='defer' src="https://linktek.com/wp-content/plugins/gravityforms/assets/js/dist/utils.min.js" id="gform_gravityforms_utils-js"></script>
  9843. <script id="__ytprefs__-js-extra" data-type="lazy" data-src="data:text/javascript;base64,CnZhciBfRVBZVF8gPSB7ImFqYXh1cmwiOiJodHRwczpcL1wvbGlua3Rlay5jb21cL3dwLWFkbWluXC9hZG1pbi1hamF4LnBocCIsInNlY3VyaXR5IjoiZTNkOGRlZjFmNiIsImdhbGxlcnlfc2Nyb2xsb2Zmc2V0IjoiMjAiLCJlcHBhdGh0b3NjcmlwdHMiOiJodHRwczpcL1wvbGlua3Rlay5jb21cL3dwLWNvbnRlbnRcL3BsdWdpbnNcL3lvdXR1YmUtZW1iZWQtcGx1c1wvc2NyaXB0c1wvIiwiZXBwYXRoIjoiaHR0cHM6XC9cL2xpbmt0ZWsuY29tXC93cC1jb250ZW50XC9wbHVnaW5zXC95b3V0dWJlLWVtYmVkLXBsdXNcLyIsImVwcmVzcG9uc2l2ZXNlbGVjdG9yIjoiW1wiaWZyYW1lLl9feW91dHViZV9wcmVmc19fXCIsXCJpZnJhbWVbc3JjKj0neW91dHViZS5jb20nXVwiLFwiaWZyYW1lW3NyYyo9J3lvdXR1YmUtbm9jb29raWUuY29tJ11cIixcImlmcmFtZVtkYXRhLWVwLXNyYyo9J3lvdXR1YmUuY29tJ11cIixcImlmcmFtZVtkYXRhLWVwLXNyYyo9J3lvdXR1YmUtbm9jb29raWUuY29tJ11cIixcImlmcmFtZVtkYXRhLWVwLWdhbGxlcnlzcmMqPSd5b3V0dWJlLmNvbSddXCJdIiwiZXBkb3ZvbCI6IjEiLCJ2ZXJzaW9uIjoiMTQuMi4xLjIiLCJldnNlbGVjdG9yIjoiaWZyYW1lLl9feW91dHViZV9wcmVmc19fW3NyY10sIGlmcmFtZVtzcmMqPVwieW91dHViZS5jb21cL2VtYmVkXC9cIl0sIGlmcmFtZVtzcmMqPVwieW91dHViZS1ub2Nvb2tpZS5jb21cL2VtYmVkXC9cIl0iLCJhamF4X2NvbXBhdCI6IiIsIm1heHJlc19mYWNhZGUiOiJlYWdlciIsInl0YXBpX2xvYWQiOiJsaWdodCIsInBhdXNlX290aGVycyI6IiIsInN0b3BNb2JpbGVCdWZmZXIiOiIxIiwiZmFjYWRlX21vZGUiOiIxIiwibm90X2xpdmVfb25fY2hhbm5lbCI6IiIsInZpX2FjdGl2ZSI6IiIsInZpX2pzX3Bvc3R0eXBlcyI6W119Owo="></script>
  9844. <script defer id="__ytprefs__-js" data-type="lazy" data-src="https://linktek.com/wp-content/plugins/youtube-embed-plus/scripts/ytprefs.min.js"></script>
  9845. <link rel="https://api.w.org/" href="https://linktek.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://linktek.com/wp-json/wp/v2/pages/39699" /><link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://linktek.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Flinktek.com%2F" />
  9846. <link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://linktek.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Flinktek.com%2F&#038;format=xml" />
  9847. <script>
  9848. var bb_powerpack = {
  9849. ajaxurl: 'https://linktek.com/wp-admin/admin-ajax.php',
  9850. search_term: ''
  9851. };
  9852. </script>
  9853. <style>[class^="fieldset-handl_"]{display: none}</style><!-- HFCM by 99 Robots - Snippet # 5: Google Analytics Tag -->
  9854. <!-- Google tag (gtag.js) --> <script async data-type="lazy" data-src="https://www.googletagmanager.com/gtag/js?id=G-MGDRP4K0YD"></script>
  9855. <script data-type="lazy" data-src="data:text/javascript;base64,ICAgd2luZG93LmRhdGFMYXllciA9IHdpbmRvdy5kYXRhTGF5ZXIgfHwgW107ICAgZnVuY3Rpb24gZ3RhZygpe2RhdGFMYXllci5wdXNoKGFyZ3VtZW50cyk7fSAgIGd0YWcoJ2pzJywgbmV3IERhdGUoKSk7ICAgZ3RhZygnY29uZmlnJywgJ0ctTUdEUlA0SzBZRCcpOyA="></script>
  9856. <!-- /end HFCM by 99 Robots -->
  9857. <!-- HFCM by 99 Robots - Snippet # 6: Google Tag Manager -->
  9858. <!-- Google Tag Manager -->
  9859. <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
  9860. new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  9861. j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  9862. '
  9863. https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
  9864. })(window,document,'script','dataLayer','GTM-M2JG2VC');</script>
  9865. <!-- End Google Tag Manager -->
  9866.  
  9867. <!-- Google Tag Manager (noscript) -->
  9868. <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-M2JG2VC"
  9869. height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
  9870. <!-- End Google Tag Manager (noscript) -->
  9871. <!-- /end HFCM by 99 Robots -->
  9872. <!-- HFCM by 99 Robots - Snippet # 7: Zoho PageSense -->
  9873. <script src="https://cdn.pagesense.io/js/axiomint/1c903632d9cb4625820d512d9040bee1.js"></script>
  9874. <!-- /end HFCM by 99 Robots -->
  9875. <!-- HFCM by 99 Robots - Snippet # 8: Bing Ads -->
  9876. <script>(function(w,d,t,r,u){var f,n,i;w[u]=w[u]||[],f=function(){var o={ti:"343147554", enableAutoSpaTracking: true};o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")},n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function(){var s=this.readyState;s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)},i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)})(window,document,"script","//bat.bing.com/bat.js","uetq");</script>
  9877. <!-- /end HFCM by 99 Robots -->
  9878. <!-- HFCM by 99 Robots - Snippet # 9: Reddit Pixel -->
  9879. <!-- Reddit Pixel -->
  9880. <script>
  9881. !function(w,d){if(!w.rdt){var p=w.rdt=function(){p.sendEvent?p.sendEvent.apply(p,arguments):p.callQueue.push(arguments)};p.callQueue=[];var t=d.createElement("script");t.src="https://www.redditstatic.com/ads/pixel.js",t.async=!0;var s=d.getElementsByTagName("script")[0];s.parentNode.insertBefore(t,s)}}(window,document);rdt('init','a2_f84fuguax2bv');rdt('track', 'PageVisit');
  9882. </script>
  9883. <!-- DO NOT MODIFY UNLESS TO REPLACE A USER IDENTIFIER -->
  9884. <!-- End Reddit Pixel -->
  9885. <!-- /end HFCM by 99 Robots -->
  9886. <!-- Meta Pixel Code -->
  9887.  
  9888. <script>
  9889.  
  9890. !function(f,b,e,v,n,t,s)
  9891.  
  9892. {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
  9893.  
  9894. n.callMethod.apply(n,arguments):n.queue.push(arguments)};
  9895.  
  9896. if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
  9897.  
  9898. n.queue=[];t=b.createElement(e);t.async=!0;
  9899.  
  9900. t.src=v;s=b.getElementsByTagName(e)[0];
  9901.  
  9902. s.parentNode.insertBefore(t,s)}(window,document,'script',
  9903.  
  9904. 'https://connect.facebook.net/en_US/fbevents.js');
  9905.  
  9906. fbq('init', '527160242419316');
  9907.  
  9908. fbq('track', 'PageView');
  9909.  
  9910. </script>
  9911.  
  9912. <noscript>
  9913.  
  9914. <img height="1" width="1"
  9915.  
  9916. src="https://www.facebook.com/tr?id=527160242419316&ev=PageView&noscript=1"/>
  9917.  
  9918. </noscript>
  9919.  
  9920. <!-- End Meta Pixel Code -->
  9921. <script>
  9922. $(document).ready(function() {
  9923.    var productNames = [
  9924.        "Microsoft Office Importer",
  9925.        "RefManager",
  9926.        "Duplicate Element Remover",
  9927.        "MicroStation Productivity Toolkit",
  9928.        "RasterDgn",
  9929.        "SpecChecker",
  9930.        "MicroStation Acceleration Garage",
  9931.        "Global File Changer",
  9932.        "CellManager",
  9933.        "FileFixer",
  9934.        "SpellCheckerPlus",
  9935.        "Title Block Manager",
  9936.        "DgnCompare",
  9937.        "SpecManager",
  9938.        "Translation Manager",
  9939.        "RefMerge",
  9940.        "Family and View Studio",
  9941.        "Family Studio",
  9942.        "Productivity Toolkit",
  9943.        "MicroStation Productivity Toolkit",
  9944.        "Toolkit",
  9945.        "Garage",
  9946.        "LinkFixer Advanced",
  9947.        "LinkFixer Plus",
  9948.        "LinkFixer"
  9949.    ];
  9950.    // Sort product names by length to match longer names first
  9951.    productNames.sort((a, b) => b.length - a.length);
  9952.    // Step 1: Wrap product names in <em>
  9953.    $("body *:not(script, style, img, em)").filter(function() {
  9954.        // Skip elements with background images
  9955.        return $(this).css('background-image') === 'none';
  9956.    }).contents().filter(function() {
  9957.        return this.nodeType === 3; // Text nodes only
  9958.    }).each(function() {
  9959.        let text = this.nodeValue;
  9960.        const regexPattern = `\\b(${productNames.join('|')})\\b`;
  9961.        const regex = new RegExp(regexPattern, 'gi');
  9962.        let replacedText = text.replace(regex, "<em>$1</em>");
  9963.        $(this).replaceWith(replacedText);
  9964.    });
  9965.    // Step 2: Include any "â„¢" that are outside <em> right after into the <em>
  9966.    $("em").each(function() {
  9967.        const nextNode = this.nextSibling;
  9968.        if (nextNode && nextNode.nodeType === 3 && $(nextNode.parentNode).css('background-image') === 'none') {
  9969.            const match = nextNode.nodeValue.match(/^(\s*â„¢)/);
  9970.            if (match) {
  9971.                $(this).append(match[1]);
  9972.                nextNode.nodeValue = nextNode.nodeValue.replace(match[1], '');
  9973.            }
  9974.        }
  9975.    });
  9976. });
  9977. </script>
  9978.  
  9979. <script>
  9980. //document.addEventListener("DOMContentLoaded", function() {
  9981.    //let someGfJs = $(".gravity-theme, .gf_browser_chrome, .gf_browser_unknown");
  9982.    //someGfJs.attr("style", "");
  9983. //});
  9984.  
  9985. </script>
  9986.  
  9987. <meta name="google-site-verification" content="4uGEyfCrGxiQ17mxWUCT47LiYf1i9g8Dw5173mFiB-8" /><script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  9988. (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  9989. m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  9990. })(window,document,'script','https://linktek.com/wp-content/plugins/perfmatters/js/analytics.js','ga');ga('create', 'G-MGDRP4K0YD', 'auto');ga('send', 'pageview');</script><meta name="framework" content="Qedux 4.0.0.1" />
  9991.        <style>
  9992.            .passster-form {
  9993.                max-width: 700px !important;
  9994.             margin: 0 auto !important;
  9995.                        }
  9996.  
  9997.            .passster-form > form {
  9998.                background: #FAFAFA;
  9999.                padding: 20px 20px 20px 20px;
  10000.                margin: 200px 0px 0px 0px;
  10001.                border-radius: 0px;
  10002.            }
  10003.  
  10004.            .passster-form h4 {
  10005.                font-size: 24px;
  10006.                font-weight: 500;
  10007.                color: #6804cc;
  10008.            }
  10009.  
  10010.            .passster-form p {
  10011.                font-size: 16px;
  10012.                font-weight: 300;
  10013.                color: #000;
  10014.            }
  10015.  
  10016.            .passster-submit, .passster-submit-recaptcha {
  10017.                background: #6804cc;
  10018.                padding: 10px 10px 10px 10px;
  10019.                margin: 0px 0px 0px 0px;
  10020.                border-radius: 0px;
  10021.                font-size: 12px;
  10022.                font-weight: 400;
  10023.                color: #fff;
  10024.            }
  10025.  
  10026.            .passster-submit:hover, .passster-submit-recaptcha:hover {
  10027.                background: #000;
  10028.                color: #fff;
  10029.            }
  10030.        </style>
  10031. <link rel="icon" href="https://linktek.com/wp-content/uploads/2023/06/dark-mode-favicon.svg" type="image/svg+xml" ><link rel="apple-touch-icon" sizes="180x180" href="https://linktek.com/wp-content/uploads/2023/06/apple-touch-icon.png" ><link rel="manifest" href="/site.webmanifest"><link rel="icon" type="image/png" sizes="32x32" href="https://linktek.com/wp-content/uploads/2023/06/favicon-32x32-1.png" ><link rel="icon" type="image/png" sizes="16x16" href="https://linktek.com/wp-content/uploads/2023/06/favicon-16x16-1.png" ><meta name="msapplication-TileColor" content="#da532c" ><meta name="theme-color" content="#ffffff" > <noscript><style>.woocommerce-product-gallery{ opacity: 1 !important; }</style></noscript>
  10032. <script id="vtag-ai-js" async src="https://r2.leadsy.ai/tag.js" data-pid="1llPz2j3tDFnsWAuQ" data-version="062024"></script><style id='wp-fonts-local'>
  10033. @font-face{font-family:Inter;font-style:normal;font-weight:300 900;font-display:fallback;src:url('https://linktek.com/wp-content/plugins/woocommerce/assets/fonts/Inter-VariableFont_slnt,wght.woff2') format('woff2');font-stretch:normal;}
  10034. @font-face{font-family:Cardo;font-style:normal;font-weight:400;font-display:fallback;src:url('https://linktek.com/wp-content/plugins/woocommerce/assets/fonts/cardo_normal_400.woff2') format('woff2');}
  10035. </style>
  10036. <link rel="icon" href="https://linktek.com/wp-content/uploads/2023/06/dark-mode-favicon.svg" sizes="32x32" />
  10037. <link rel="icon" href="https://linktek.com/wp-content/uploads/2023/06/dark-mode-favicon.svg" sizes="192x192" />
  10038. <link rel="apple-touch-icon" href="https://linktek.com/wp-content/uploads/2023/06/dark-mode-favicon.svg" />
  10039. <meta name="msapplication-TileImage" content="https://linktek.com/wp-content/uploads/2023/06/dark-mode-favicon.svg" />
  10040. <style id="wp-custom-css">
  10041. /*Single job posts */
  10042.  
  10043. .fl-post-date {
  10044. display: none !important;
  10045. }
  10046.  
  10047. .job-banner {
  10048.  width:100vw;
  10049.  height:300px;
  10050.  display:flex;
  10051.  color:white;
  10052.  justify-content:center;
  10053.  align-items: center;
  10054.  background:url("https://linktek.com/wp-content/uploads/2024/09/Job-Banner.jpg");
  10055.  background-size:100%;
  10056.  position:relative;
  10057.  max-width: 100%;
  10058.  background-repeat:no-repeat;
  10059.  background-size: cover;
  10060. }
  10061.  
  10062. .banner-overlay {
  10063.  position:absolute;
  10064.  width:100%;
  10065.  height:100%;
  10066.  top:0;
  10067.  left:0;
  10068.  background: #29a6dd;
  10069.  opacity:0.6;
  10070. }
  10071.  
  10072. .banner-content {
  10073.  z-index:10
  10074. }
  10075.  
  10076. .banner-content i {
  10077.  margin-right:5px;
  10078. }
  10079.  
  10080. .single-job .fl-post-title {
  10081.  display: none
  10082. }
  10083.  
  10084. .entry-title {
  10085.  color:white !important;
  10086.  font-size:46px !important;
  10087.  text-align:center;
  10088.  font-weight:600;
  10089. }
  10090.  
  10091. .job_application.application {
  10092. display: none !important;
  10093. }
  10094.  
  10095. .job_application.application a {
  10096.  color:white;
  10097. }
  10098.  
  10099. .apply-btn {
  10100. display: none !important;
  10101. }
  10102.  
  10103. .single_job_listing .job-type.full-time {
  10104.  background-color: #ffffff !important;
  10105. }
  10106.  
  10107. .single-job {
  10108.  width:100% !important;
  10109.  border-right:none !important;
  10110.  margin-top:20px !important;
  10111. }
  10112.  
  10113. .entry-detail {
  10114.  font-size: 16px;
  10115. }
  10116.  
  10117. .entry-detail a
  10118. {
  10119.  color: white !important;
  10120.  pointer-events: none !important;
  10121. }
  10122.  
  10123. .details-row {
  10124.  display: flex;
  10125.  justify-content: center;
  10126.  gap: 20px;
  10127.  align-items: center;
  10128. }
  10129.  
  10130. .job-listing-meta {
  10131.  display:none !important
  10132. }
  10133.  
  10134. .single-job {
  10135.    width: 100% !important;
  10136.    border-right: none !important;
  10137.    margin-top: 20px !important;
  10138.    background: #ffffff !important;
  10139. }
  10140.  
  10141. #popmake-78881 {
  10142. width: 65% !important;
  10143. max-width: 65% !important;
  10144. }
  10145.  
  10146. @media only screen and (max-width: 600px) {
  10147.  #popmake-78881 {
  10148. width: 100% !important;
  10149. max-width: 100% !important;
  10150. }
  10151. }
  10152.  
  10153. #popmake-64086 {
  10154. width: 65% !important;
  10155. max-width: 65% !important;
  10156. }
  10157.  
  10158. .required-field-custom {
  10159.    z-index: 1 !important;
  10160. }
  10161. .validation_error:before {
  10162.    content: "Oops. It looks like we're missing something. Please check the highlighted form.";
  10163.    visibility: visible;
  10164.    position: relative;
  10165.    width: 380px;
  10166. }
  10167. .gfield_error {
  10168.    background: transparent !important;
  10169.    border: none !important;
  10170. }
  10171. .validation_message {
  10172.    /*color: #ffff02 !important;*/
  10173. }
  10174. #popmake-30728 {
  10175.    padding: 10px;
  10176. }
  10177. .link-reporter-zoho-form-title {
  10178. margin-top: 10px !important;
  10179. }
  10180. .zoho-form-partner-logo-form-new.aligncenter {
  10181.    margin: 20px auto;
  10182. }
  10183. .zoho-form-note-foot {
  10184.    margin-top: -40px;
  10185. }
  10186. .fl-row.fl-row-full-width.fl-row-bg-color.fl-node-5e1ddc9e4d6eb.new-footer a {
  10187.    color: #fff !important;
  10188. }
  10189. .product-menu {
  10190.    font-style: italic;
  10191. }
  10192. .product-menu sup {
  10193.    top: -3px !important;
  10194.    position: relative !important;
  10195.    font-size: 10px !important;
  10196.    margin-left: 1px;
  10197. }
  10198. .pull-quote-link {
  10199. color: #014eff !important;
  10200. }
  10201. #comments {
  10202.    margin: -40px auto 40px;
  10203.    color: #333;
  10204.    font-style: normal;
  10205.    background: #fff;
  10206.    padding: 40px 0 !important;
  10207. }
  10208. .fl-content.col-md-12 {
  10209.    background: #f3f3f3;
  10210. }
  10211. .download-link-ebook a {
  10212.    color: yellow !important;
  10213. }
  10214. /*Ebook PopUp*/
  10215. .pop-book {
  10216.    margin-top: -150px;
  10217. }
  10218. .pop-heading-col .fl-module-content.fl-node-content {
  10219.    margin-right: 0;
  10220. }
  10221. /*Ebook PopUp End*/
  10222. .validation_error {
  10223.    visibility: hidden !important;
  10224. }
  10225. .form-note-foot {
  10226.    margin: -10px 0 20px !important;
  10227. }
  10228. .revamp-bul-list {
  10229. margin-top: -10px;
  10230. }
  10231. .revamp-bul-list li {
  10232. margin-bottom: 10px;
  10233. }
  10234. #validation_message_20_2 {
  10235.    margin-top: 2px !important;
  10236. }
  10237. #input_20_6 {
  10238.    margin-top: 12px !important;
  10239. }
  10240. #input_20_2 {
  10241. margin-bottom: 0 !important;
  10242. }
  10243. .fl-node-606d816aa497a .gform_wrapper .validation_error, #popmake-34788 .gform_wrapper .validation_error{
  10244.    color: #ffca67!important;
  10245.    letter-spacing: 1.1px;
  10246.    font-weight: 400;
  10247.    line-height: 1.4em;
  10248. margin-bottom: 10px;
  10249. }
  10250. #popmake-34788 .gform_wrapper .validation_message {
  10251. /*color: #ffca67!important;*/
  10252.    letter-spacing: 1.1px;
  10253.    font-weight: 400;
  10254.    line-height: 1.4em;
  10255. margin: 5px 0 15px !important;
  10256. }
  10257. .fl-node-606d816aa497a .gform_wrapper .gfield_error .validation_message {
  10258.    /*color: #ffca67!important;*/
  10259.    letter-spacing: 1.1px;
  10260.    font-weight: 400;
  10261.    line-height: 1.4em;
  10262. margin: 0 0 15px !important;
  10263. }
  10264. #popmake-34788 .gform_wrapper .validation_error {
  10265.    border: none;
  10266.    padding: 0 !important;
  10267. }
  10268. #popmake-34788 .gform_wrapper .field_description_below .gfield_description {
  10269.    padding-top: 0 !important;
  10270. }
  10271. #popmake-34788 .gform_wrapper li.gfield.gfield_error {
  10272.    margin: 0 !important;
  10273.    border: none !important;
  10274.    background: transparent;
  10275.    padding: 0 !important;
  10276. }
  10277. .white-partner-logo {
  10278.    filter: brightness(0) invert(1);
  10279. }
  10280. .form-notice {
  10281.    color: #fff;
  10282.    font-size: 9px;
  10283. }
  10284. #popmake-34788 #gform_submit_button_20 {
  10285.    margin: auto;
  10286.    display: block;
  10287.    background: red;
  10288.    padding: 15px 20px !important;
  10289.    font-size: 15px;
  10290. font-family: "Helvetica" !important;
  10291. }
  10292. #popmake-34788 .gform_wrapper ul.gform_fields li.gfield {
  10293.    padding-right: 0 !important;
  10294. }
  10295. #popmake-34788 .gform_wrapper li.hidden_label input {
  10296.    height: 40px;
  10297.    padding: 20px 20px !important;
  10298. }
  10299. .pum-close.popmake-close {
  10300.    background: #074c92 !important;
  10301.    border-radius: 50% !important;
  10302.    font-size: 16px !important;
  10303.    padding: 15px !important;
  10304.    border: 1px solid #fff !important;
  10305.    margin: 35px -20px 0 0 !important;
  10306. }
  10307. #popmake-34788 #input_20_1_3 {
  10308.    margin-bottom: 0 !important;
  10309. }
  10310. @media only screen and (min-width: 641px)
  10311. #popmake-34788.gform_wrapper ul.gform_fields li.gfield {
  10312.    padding-right: unset !important;
  10313. }
  10314. #popmake-34788.gform_wrapper li.hidden_label input {
  10315.    margin-top: 0 !important;
  10316. }
  10317. #popmake-34788 .fl-node-606d816aa497a .gform_wrapper .ginput_complex span {
  10318.    margin-bottom: 0 !important;
  10319. }
  10320. #popmake-34788 .gform_wrapper li.hidden_label input {
  10321.    margin-top: 0 !important;
  10322.    border-radius: 5px !important;
  10323. }
  10324. #popmake-34788 {
  10325.    border-radius: 10px;
  10326.    background: #064C92;
  10327. padding: 30px !important;
  10328. }
  10329. .pop-up-sub-head {
  10330.    font-family: "Poppins" !important;
  10331.    color: #fff !important;
  10332.    font-size: 15px;
  10333.    letter-spacing: 1.1px !important;
  10334.    line-height: 1.4em !important;
  10335.    font-weight: 600 !important;
  10336. margin-top: 0 !important;
  10337. }
  10338. .pop-up-head {
  10339.    font-family: "Poppins" !important;
  10340.    color: #fff !important;
  10341.    font-size: 25px;
  10342.    letter-spacing: 1.1px !important;
  10343.    line-height: 1.4em !important;
  10344.    font-weight: 600 !important;
  10345. }
  10346. .fl-node-5d838f7565388 .uabb-tabs .uabb-tabs-nav5d838f7565388 li a {
  10347. padding: 10px 0px !important;
  10348. }
  10349. li[data-index="0"] {
  10350.    min-width: 220px !important;
  10351. }
  10352. li[data-index="1"] {
  10353.    min-width: 220px !important;
  10354. }
  10355. li[data-index="2"].uabb-tab-current:after {
  10356.    width: 99%;
  10357. }
  10358. li[data-index="2"] {
  10359.    min-width: 220px !important;
  10360. }
  10361. li[data-index="3"] {
  10362.    min-width: 220px !important;
  10363. }
  10364. li[data-index="4"] {
  10365.    min-width: 220px !important;
  10366. }
  10367. .uabb-tab-link:focus {
  10368. border: 1px solid #000 !important;
  10369.    border-radius: 12px 12px 0 0 !important;
  10370. }
  10371. .uabb-tab-current a {
  10372. font-weight: 600 !important;
  10373. }
  10374. .pp-share-button-title {
  10375.    color: #000;
  10376.    font-weight: 100;
  10377. }
  10378. #privacy-policy-page a { color: #428bca; }
  10379. #privacy-policy-page a:hover { text-decoration: underline; }
  10380. #thats-why {
  10381.    width: 102% !important;
  10382. }
  10383. #line-six {
  10384.    width: 104%;
  10385. }
  10386. .custom-bullet li {
  10387.    letter-spacing: 1.1px;
  10388.    line-height: 1.4em;
  10389.    margin-left: -1px;
  10390. margin-bottom: 10px;
  10391. }
  10392. .fl-post-column {
  10393.    margin-bottom: 10px;
  10394. }
  10395. .fl-page-footer {
  10396.    display: none;
  10397. }
  10398. .header-click-to-call {
  10399. margin-left: 20px;
  10400. }
  10401. .fl-page-header-container.container .fas.fa-bars {
  10402.    color: #29a6dd !important;
  10403.    margin-top: 20px;
  10404. }
  10405. img.fl-logo-img {
  10406.    max-width: 130px;
  10407. }
  10408. .fl-page-header-container.container i.fa.fa-phone-alt {
  10409.    font-size: 12px !important;
  10410.    margin-right: 10px;
  10411.    color: #000;
  10412. }
  10413. .fl-page-header-wrap a {
  10414.    color: #000 !important;
  10415. }
  10416. .fl-page-header-wrap .free-trial-button {
  10417.    color: #fff !important;
  10418. }
  10419. .sub-menu {
  10420.    padding: 5px !important;
  10421.    color: #000 !important;
  10422. }
  10423. .fl-page-nav ul.sub-menu li a {
  10424.    margin: 0px;
  10425. }
  10426. /*New*/
  10427. .sub-menu {
  10428.    border: 2px solid #fff;
  10429. }
  10430. .sub-menu a {
  10431.    background: #e9f7fd !important;
  10432. line-height: 1.4em !important;
  10433.    border: 1px solid #fff !important;
  10434. }
  10435. .sub-menu a:hover {
  10436.  background: #325DD3 !important;
  10437.    color: #fff !important;
  10438. }
  10439. .fa.fa-angle-right {
  10440.    position: absolute !important;
  10441.    right: 10px;
  10442. }
  10443. h2, h3, h4, h5, p {
  10444.    line-height: 1.2em !important ;
  10445.    letter-spacing: 1.1px !important;
  10446. }
  10447. .fl-rich-text p {
  10448.    margin-bottom: 20px;
  10449. }
  10450. li.uabb-tab-current:after {
  10451.    content: " ";
  10452.    background: #fdebd6;
  10453.    display: block;
  10454.    width: 99.2%;
  10455.    position: absolute;
  10456.    bottom: -10px;
  10457.    height: 20px;
  10458.    z-index: 9;
  10459.    left: 1px;
  10460.    min-width: 108px;
  10461. }
  10462. .call-to-action-column {
  10463.    position: relative;
  10464.    z-index: 3 !important;
  10465. }
  10466. .testimonial-section img.fl-slide-photo-img.wp-image-218 {
  10467.    border-radius: 50%;
  10468. }
  10469. .transparent-header {
  10470.    position: absolute !important;
  10471.    z-index: 3 !important;
  10472.    width: 100% !important;
  10473. }
  10474. .full-button {
  10475. display: block;
  10476. width: 100%;
  10477. }
  10478. .new-footer input#input_2_1 {
  10479.    border-radius: 0;
  10480. }
  10481. #gform_submit_button_2 {
  10482. background: #29a6dd;
  10483.    border: none;
  10484. border-radius: 10px !important;
  10485.    display: block;
  10486.    width: 100%;
  10487.    border-radius: 0;
  10488.    text-transform: capitalize;
  10489.    margin-top: -10px;
  10490.    font-size: 22px;
  10491.    padding: 12px;
  10492. }
  10493. #field_2_1 {
  10494.    padding-right: 0 !important;
  10495. }
  10496. .testimonial-slider-section h4 {
  10497.    font-size: 20px !important;
  10498. }
  10499. .testimonial-section {
  10500.    max-height: 340px;
  10501. }.call-to-action-column {
  10502.    min-height: 340px !important;
  10503.    background: #29a6dd;
  10504. }
  10505. .testimonial-section img {
  10506.    max-width: 210px !important;
  10507. }
  10508. .testimonial-section h4 {
  10509.    margin-top: 7% !important;
  10510. }
  10511. .call-to-action-column .fl-col-content.fl-node-content {
  10512.    padding-top: 6% !important;
  10513. }
  10514. .custom-ctc-section a.fl-button {
  10515.    width: 100%;
  10516. }
  10517. em.extra-space {
  10518.    margin-right: 5px;
  10519. }
  10520. .testimonial-section p {
  10521.    font-size: 16px;
  10522. }
  10523. p.testi-six {
  10524.    margin-top: -1em !important;
  10525. }
  10526. .free-trial-button {
  10527.    background: #29a6dd;
  10528. border-radius: 10px;
  10529.    color: #fff !important;
  10530.    font-size: 18px !important;
  10531.    margin-left: 5px !important;
  10532. }
  10533. .counter-section span.fl-number-int {
  10534.    font-weight: 600;
  10535.    letter-spacing: 1.5px;
  10536. }
  10537. .counter-section span.fl-number-after-text {
  10538.    font-size: 20px;
  10539.    letter-spacing: 1.1px;
  10540.    font-weight: 600;
  10541. }
  10542. .video-section img {
  10543.    max-width: 120px !important;
  10544.    transition: 1s;
  10545. }
  10546. .video-section-new img {
  10547.    max-width: 320px !important;
  10548.    transition: 1s;
  10549. }
  10550. a.watch {
  10551.    transition: 1s;
  10552. }
  10553. .video-pop iframe {
  10554.    width: 100% !important;
  10555. }
  10556. .pum-container .pum-content+.pum-close {
  10557.    top: -55px !important;
  10558. }
  10559. .free-trial-button a {
  10560.    color: #fff !important;
  10561. padding: 10px !important;
  10562. }
  10563. .blog-copy h2 {
  10564. font-size: 30px !important;
  10565. }
  10566. .blog-copy h2 em {
  10567.    font-size: 30px !important;
  10568. }
  10569. .blog-copy p {
  10570. font-size: 16px !important;
  10571. }
  10572. .free-trial-button.blog-button {
  10573.    padding: 10px 20px;
  10574.    margin-top: 30px !important;
  10575.    display: block;
  10576.    width: 180px;
  10577.    text-align: center;
  10578.    font-size: 22px !important;
  10579. }
  10580. .testimonial-names p {
  10581.    font-size: 19px;
  10582. }
  10583. header.fl-post-header {
  10584.    position: relative;
  10585.    top: 100px;
  10586. }
  10587. .category-blog header.fl-post-header {
  10588.    position: relative;
  10589.    top: 0;
  10590. }
  10591. .fl-full-width .container{
  10592. width:100%;
  10593. }
  10594. .testimonial-copy p {
  10595.    font-size: 17px !important;
  10596. }
  10597. .blog-row-light a {
  10598. color: #7ad6ff !important;
  10599. }
  10600. .blog-row a {
  10601. color: #29A6DD !important;
  10602. }
  10603. .blog-row a strong {
  10604. color: #29A6DD !important;
  10605. }
  10606. /*Newsletter G-Form CSS*/
  10607. #pum_popup_title_29018 {
  10608.    text-align: center;
  10609.    border-bottom: 1px solid #c2c2c2;
  10610.    padding-bottom: 10px;
  10611.    font-family: Poppins, sans-serif;
  10612.    line-height: 1.4em;
  10613.    letter-spacing: 1.1px;
  10614.    font-size: 28px;
  10615. }
  10616. .newsletter-pop-up-copy {
  10617.    text-align: center;
  10618.    margin-top: 10px;
  10619.    font-family: Poppins, sans-serif;
  10620.    line-height: 1.4em;
  10621.    letter-spacing: 1.1px;
  10622.    font-size: 14px;
  10623. padding-bottom: 10px !important;
  10624. color: #000;
  10625. }
  10626. #popmake-29018 .pum-close.popmake-close {
  10627.    top: -26px !important;
  10628. background: #f75151 !important;
  10629. }
  10630. #popmake-29018 .pum-theme-485, .pum-theme-default-theme {
  10631.    background-color: rgba( 0, 0, 0, 0.9 );
  10632. }
  10633. #popmake-29018 .validation_error {
  10634.    display: none;
  10635. }
  10636. #validation_message_6_1 {
  10637.    position: absolute;
  10638.    background: transparent !important;
  10639. }
  10640. #popmake-29018 .pum-theme-485 .pum-content + .pum-close, .pum-theme-default-theme .pum-content + .pum-close {
  10641. line-height: 10px !important;
  10642. }
  10643. #input_6_1 {
  10644.    width: 280px;
  10645.    padding: 10px;
  10646.    margin-top: -10px;
  10647.    height: 50px;
  10648. border: #dadada solid 1px !important;
  10649. }
  10650. #gform_submit_button_6 {
  10651.    width: 100px;
  10652.    padding: 16px 10px;
  10653.    margin-top: -10px;
  10654.    border-radius: 0 50px 50px 0;
  10655.    background: #29A6DD;
  10656.    border: #29A6DD;
  10657.    margin-left: -20px;
  10658. }
  10659. /*End*/
  10660. .siq_bR {
  10661.    bottom: 95px !important;
  10662. }
  10663. #gform_submit_button_7 {
  10664. background: #29a6dd;
  10665.    border: none;
  10666. border-radius: 10px !important;
  10667.    display: block;
  10668.    width: 50%;
  10669.    border-radius: 0;
  10670.    text-transform: capitalize;
  10671.    margin: -10px auto;
  10672.    font-size: 22px;
  10673.    padding: 15px;
  10674. }
  10675. .fl-post-grid-image img {
  10676.    height: 200px !important;
  10677. }
  10678.  
  10679. .page-id-31360 .fl-node-5f52151db9e45 > .fl-row-content-wrap {
  10680. margin-top: 0px !important;
  10681. }
  10682.  
  10683. @media only screen and (min-width: 1600px) and (min-width: 1700px) {
  10684.    .transparent-header {
  10685.        padding: 0 5vw;
  10686.    }
  10687. }
  10688. @media only screen and (min-width: 769px) and (max-width: 1200px) {
  10689. .header-click-to-call {
  10690. left: 200px !important;
  10691. }
  10692. }
  10693. @media only screen and (min-width: 1401px) {
  10694. .header-click-to-call {
  10695.        position: absolute !important;
  10696. left: 350px;
  10697.    }
  10698. }
  10699. @media only screen and (min-width: 992px) and (max-width: 1400px) {
  10700.    .fl-page-header-container.container {
  10701.        width: 100%;
  10702.    }
  10703. .header-click-to-call .fa.fa-phone-alt {
  10704.    margin-right: 10px;
  10705. }
  10706.    .header-click-to-call {
  10707.        position: absolute !important;
  10708. left: 200px;
  10709.    }
  10710. .fl-page-nav-right .fl-page-nav-wrap a * {
  10711. color: #000 !important;
  10712. }
  10713. .fl-page-nav-right .fl-page-nav-wrap a *:hover {
  10714. color: #000 !important;
  10715. }
  10716. .sub-menu a:hover {
  10717. color: #fff !important;
  10718. }
  10719. }
  10720. @media only screen and (max-width: 400px) {
  10721. .fl-module.fl-module-icon.fl-node-5f7237d6473f9 {
  10722. text-align: center;
  10723. }
  10724. .new-footer #gform_submit_button_2 {
  10725.    margin-top: 10px;
  10726. }
  10727. .new-footer-links a {
  10728. color: #fff !important;
  10729. }
  10730. .new-footer svg.hamburger-menu {
  10731. left: 30vw !important;
  10732. }
  10733. .home=page-template ul#menu-linktek {
  10734.    background: #000;
  10735.    padding: 20px 10px;
  10736.    text-align: ce;
  10737. }
  10738. #gform_submit_button_6 {
  10739. width: 100px;
  10740. position: absolute;
  10741. padding: 10px !important;
  10742. top: 40px;
  10743. right: 0 !important;
  10744. }
  10745. #input_6_1 {
  10746.    width: 223px;
  10747. }
  10748. .newsletter-pop-up-copy {
  10749.    font-size: 11px;
  10750. }
  10751. #pum_popup_title_29018 {
  10752.    font-size: 20px;
  10753. }
  10754. .gform_wrapper .gform_footer {
  10755. padding: 0;
  10756. margin: 0;
  10757. }
  10758. }
  10759. @media only screen and (min-width: 1900px) {
  10760.    .transparent-header {
  10761.        padding: 0 13.5% !important;
  10762.    }
  10763.    .fl-node-5d43040916358 > .fl-module-content {
  10764.        margin-right: -15px;
  10765.    }
  10766.    .call-to-action-column {
  10767.            margin-top: 0px !important;
  10768.    }
  10769. }
  10770.  
  10771. div#trp-floater-ls {
  10772.    display: none;
  10773. }
  10774.  
  10775. #products-page-title, #bg-design-element { position: relative; z-index: 9; }
  10776.  
  10777. ul.two-columns {
  10778. -webkit-column-count: 2;  /* Chrome/Opera, Safari */
  10779. -moz-column-count: 2; /* Mozilla Firefox */
  10780. column-count: 2;
  10781.  
  10782. /* Properties below are optional: */
  10783. -webkit-column-gap: 50px; /* Chrome/Opera, Safari */
  10784. -moz-column-gap: 50px; /* Mozilla Firefox */
  10785. column-gap: 50px;
  10786.  
  10787. -webkit-column-rule: 1px single grey; /* Chrome/Opera, Safari */
  10788. -moz-column-rule: 1px single grey; /* Mozilla Firefox */
  10789. column-rule: 1px single grey;
  10790. }
  10791.  
  10792. #image-container { display: flex; flex-wrap: wrap; }
  10793. #image-container img { width: 15%; height: auto; }
  10794.  
  10795. .fl-node-5f7237d6473f9.fl-module-icon { text-align: left; }
  10796. .fl-node-5f7237d6473f9>.fl-module-content { margin-top: 0; margin-bottom: 0; }
  10797. .fl-node-5f7237d6473f9 .fl-module-content .fl-icon i, .fl-node-5f7237d6473f9 .fl-module-content .fl-icon i:before { font-size: 20px; color: #ffffff; }
  10798. .fl-builder-content .fl-node-5f7237d6473f9 .fl-module-content .fl-icon-wrap .fl-icon-text, .fl-builder-content .fl-node-5f7237d6473f9 .fl-module-content .fl-icon-wrap .fl-icon-text-link * { color: #ffffff; }
  10799. .fl-node-5f7237d6473f9 .fl-module-content .fl-icon-text { height: 35px; }
  10800. .fl-node-5f7237d6473f9 .fl-icon-text, .fl-node-5f7237d6473f9 .fl-icon-text-link { font-family: Oswald,sans-serif; font-weight: 400; }
  10801. .fl-node-5f6b1db144027.fl-module-heading .fl-heading, .fl-node-5f6b1db144027.fl-module-heading .fl-heading .fl-heading-text { font-family: "Varela Round", sans-serif; font-weight: bold; }
  10802.  
  10803. #italic-raleway, #italic-raleway em {font-family: 'Raleway', sans-serif;font-weight: bold; font-size: 16px;}
  10804. .webinars-page .fl-post-text { padding: 20px; }
  10805. .webinars-page .fl-post-text .fl-post-title { line-height: 25.2px !important; }
  10806. .webinars-page .fl-post-text .fl-post-title a { font-size: 18px; font-family: Poppins, sans-serif; font-weight: 400; line-height: 25.2px; margin: 0; padding: 0 0 5px; }
  10807. footer .footer-links .fl-node-content .fl-menu nav .menu .highlight a { color: #29a6dd; }
  10808. footer .footer-links .fl-node-content .fl-menu nav .menu .highlight a:hover { text-decoration: underline; }
  10809. .footer-links-below-logo a:hover { color: #4cbaff !important; }
  10810.  
  10811. #footer-subscription-container { text-align: center; }
  10812. #footer-subscription-container form { display: inline; }
  10813. #footer-subscription-container form input { margin: 12px 0; font-family: Poppins,sans-serif; border: 0; padding: 15px 10px; }
  10814. #footer-subscription-container form input[type="submit"] { background-color: #ff0000; border: 1px #ff0000 solid; padding: 14px 25px; font-weight: bold; font-size: 18px; line-height: 20px; }
  10815. #footer-subscription-container form input[type="submit"]:hover { background-color: #4cbaff; border-color: #4cbaff; }
  10816. #footer-subscription-container form span { padding-top: 0px; }
  10817. #footer-subscription-container img.gform_ajax_spinner {  }
  10818. #footer-subscription-container .gform_wrapper li.gfield.gfield_error, #footer-subscription-container .gform_wrapper li.gfield.gfield_error.gfield_contains_required.gfield_creditcard_warning { background-color: transparent; border-top:0; border-bottom:0; position: relative; font-family: Poppins,sans-serif; }
  10819. #footer-subscription-container .gform_wrapper li.gfield.gfield_error.gfield_contains_required div.gfield_description { position: absolute; top: -20px; }
  10820. #footer-subscription-container .validation_error { font-family: Poppins,sans-serif; margin-bottom: 25px; }
  10821.  
  10822. #footer-subscription-container .gform_wrapper div.validation_error { border-color: #29a6dd; color: #fff; font-style: italic; }
  10823. #footer-subscription-container .gform_wrapper .validation_message { color: #29a6dd; }
  10824.  
  10825. @media only screen and (max-width: 640px) {
  10826.  #footer-subscription-container form .ginput_container_email input { width: 100%; }
  10827.  #footer-subscription-container .gform_wrapper .gform_footer { margin: 0; padding: 0; }
  10828.  #footer-subscription-container form input[type="submit"] { margin-top: 3px; }
  10829. }
  10830. @media only screen and (min-width: 640px) {
  10831.  #footer-subscription-container form .ginput_container_email input { width: 300px; }
  10832. }
  10833.  
  10834. #footer-v2 sup { font-size: 8px; }
  10835. #post-publish-date .fl-module-content .fl-heading:before { content: 'Published'; }
  10836.  
  10837. .text-editor-has-list ul {
  10838.    margin-bottom: 20px;
  10839. }
  10840. .text-editor-has-list li {
  10841.    margin-bottom: 10px;
  10842. }
  10843. h1.fl-heading {
  10844. color: #fff;
  10845. }
  10846.  
  10847. .switcher .selected { z-index: 1 !important; }
  10848.  
  10849. .fl-page header.fl-builder-content .fl-menu nav{
  10850. overflow: initial !important;
  10851. }
  10852. .force-link-color * {
  10853.    color: #29A6DD !important;
  10854. }
  10855.  
  10856. .dphonenumber {
  10857.    background: #fff url('/wp-content/uploads/2021/02/ic_phone_in_talk_-1.png') no-repeat 15px center;
  10858.    display: inline-block;
  10859.    text-align: left;
  10860.    font-family: Montserrat, sans-serif;
  10861.    padding: 5px 20px 5px 54px;
  10862.    border: 1px solid #707070;
  10863.    border-radius: 4px;
  10864.    margin-right: 20px;
  10865. }
  10866. .dphonenumber span.notehelp {
  10867.    font-size: 12px;
  10868.    color: #838485;
  10869.    font-weight: bold;
  10870. opacity: 0.7;
  10871. margin-bottom: 5px;
  10872. }
  10873. .dphonenumber span.pnumber {
  10874.    font-size: 21px;
  10875.    font-weight: bold;
  10876.    color: #838485;
  10877. }
  10878. .dmainhead {
  10879.    position: relative;
  10880. text-align: right;
  10881. }
  10882. .dphonenumber span {
  10883.    display: block;
  10884.    line-height: 1em;
  10885. }
  10886.  
  10887. .dhometabs .fl-tabs-labels {
  10888.    background: #F3F3F3;
  10889. }
  10890.  
  10891. .dhometabs .fl-tabs-panels {
  10892.    border: none;
  10893. }
  10894.  
  10895.  
  10896. .dhometabs .fl-tabs-labels .fl-tabs-label {
  10897.    padding: 16px 21px;
  10898.    min-height: 120px;
  10899.    display: block;
  10900. }
  10901.  
  10902. .dhometabs .fl-tabs-labels .fl-tabs-label img {
  10903.    vertical-align: middle;
  10904.    display: block;
  10905. }
  10906.  
  10907. .dhometabs .fl-tabs-labels .fl-tabs-label.fl-tab-active {
  10908.    border: 0 none;
  10909.    border-bottom: 5px solid #0660B9!important;
  10910. }
  10911.  
  10912. .dt-item h2 {
  10913.    font-family: "Helvetica",Verdana,Arial,sans-serif;
  10914.    font-size: 27px;
  10915.    text-align: center;
  10916.    color: #066BA0;
  10917.    font-weight: bold;
  10918.    margin-bottom: 25px;
  10919. }
  10920.  
  10921. .dt-item .dt-item-desc {
  10922.    color: #313131;
  10923.    font-size: 12px;
  10924.    line-height: 2em;
  10925.    font-family: Montserrat,sans-serif;
  10926. }
  10927.  
  10928. .dt-item .dt-item-desc span.dblueone {
  10929.    color: #066BA0;
  10930.    font-weight: bold;
  10931. }
  10932.  
  10933. .dt-item .start-free-trial {
  10934.    text-align: center;
  10935.    margin-top: 20px;
  10936. }
  10937.  
  10938. .start-free-trial a {
  10939.    display: inline-block;
  10940.    background: #FF2323;
  10941.    color: #fff;
  10942.    padding: 14px 20px;
  10943.    font-family: Montserrat,sans-serif;
  10944.    font-size: 15px;
  10945.    border-radius: 5px;
  10946. }
  10947.  
  10948. .dt-item .note {
  10949.    text-align: center;
  10950.    font-size: 12px;
  10951.    font-family: Montserrat,sans-serif;
  10952.    margin-top: 5px;
  10953. }
  10954.  
  10955. .dfeatcustomer .dfeatimage {
  10956.    display: inline-block;
  10957.    width: 52px;
  10958.    vertical-align: top;
  10959.    padding: 15px 0;
  10960.    border: 1px solid #333;
  10961.    border-radius: 47px;
  10962.    margin-right: 15px;
  10963. }
  10964.  
  10965. .dfeatcustomer .dfeatdesc {
  10966.    display: inline-block;
  10967.    width: 69%;
  10968.    vertical-align: top;
  10969. }
  10970.  
  10971. .dfeatcustomer .dfeatdesc strong {
  10972.    font-size: 14px;
  10973.    display: block;
  10974.    line-height: 1em;
  10975. }
  10976.  
  10977. .dfeatcustomer .dfeatdesc span {
  10978.    display: block;
  10979.    font-size: 14px;
  10980.    line-height: 1.1em;
  10981. }
  10982.  
  10983. .fl-node-601940892e508 > .fl-col > .fl-node-content {
  10984.    margin: 0 14px;
  10985.    box-shadow: 0px 0px 20px #098fd64a;
  10986.    border-radius: 9px;
  10987.    text-align: center;
  10988.    color: #000000;
  10989. }
  10990.  
  10991. .fl-node-601940892e508 > .fl-col > .fl-node-content p {
  10992.    line-height: 2em !important;
  10993.    margin: 0;
  10994. }
  10995.  
  10996. h2.dlinkekadvance {
  10997.    text-align: center;
  10998.    color: #098FD6;
  10999.    font-weight: bold;
  11000.    font-family: "Helvetica",Verdana,Arial,sans-serif;
  11001.    margin: 50px 0 0px;
  11002. }
  11003.  
  11004. h2.dlinkekadvance span.dred {
  11005.    color: #FF1616;
  11006. }
  11007.  
  11008. .dlinketadvance {
  11009.    text-align: center;
  11010. }
  11011.  
  11012. .deasierpost .dhead {
  11013.    font-size: 18px;
  11014.    color: #000;
  11015.    line-height: 1.2em;
  11016.    text-align: center;
  11017.    margin-bottom: 15px;
  11018.    min-height: 70px;
  11019. }
  11020.  
  11021. .deasierpost .ddesc {
  11022.    min-height: 140px;
  11023.    color: #000;
  11024.    text-align: center;
  11025.    font-size: 14px;
  11026. }
  11027.  
  11028. .dheaderslider .fl-slide .fl-slide-content-wrap {
  11029.    width: 100%;
  11030. }
  11031.  
  11032. .dheaderslider .fl-slide .fl-slide-content-wrap h3 {
  11033.    font-weight: bold;
  11034.    font-size: 26px;
  11035.    margin-bottom: 40px !important;
  11036. }
  11037.  
  11038. .dheaderslider .fl-slide .fl-slide-content-wrap p {
  11039.    font-size: 16px;
  11040.    line-height: 1.6em !important;
  11041. }
  11042.  
  11043. .freeform {
  11044.    background: #fff;
  11045.    padding: 33px 36px;
  11046.    border: 1px solid #333;
  11047.    border-radius: 12px;
  11048.    text-align: center;
  11049.    margin-bottom: -60px;
  11050. }
  11051.  
  11052. .freeform h3 {
  11053.    margin: 0;
  11054.    color: #0683C5;
  11055.    font-weight: bold;
  11056.    font-size: 25px;
  11057. }
  11058.  
  11059. .freeform .subheading {
  11060.    margin-bottom: 25px;
  11061.    color: #616161;
  11062.    font-weight: bold;
  11063.    font-size: 16px;
  11064. }
  11065.  
  11066. .freeform .formfield .formitem {
  11067.    margin-bottom: 15px;
  11068. }
  11069.  
  11070. .freeform .formfield .formitem input[type="text"] {
  11071.    padding: 10px 15px;
  11072.    color: #333;
  11073. }
  11074.  
  11075. .freeform .formfield .startfreetiral a {
  11076.    background: #FF2323;
  11077.    color: #fff;
  11078.    padding: 15px 25px;
  11079.    display: inline-block;
  11080.    border-radius: 4px;
  11081.    font-size: 13px;
  11082.    margin-top: 20px;
  11083. }
  11084.  
  11085. .freeform .formfield .startfreetiral .sfnote {
  11086.    font-size: 11px;
  11087.    margin-top: 10px;
  11088.    margin-bottom: 40px;
  11089. }
  11090.  
  11091. .freeform .terms {
  11092.    font-size: 11px;
  11093. }
  11094. .on-copy-link a, .italic-link-sup {
  11095.    color: #014eff !important;
  11096. }
  11097.  
  11098. body .gform_wrapper .top_label div.ginput_container {
  11099. margin-top:8px !important
  11100. }
  11101.  
  11102. .single-post h2,h3,h4,h5,h6 {
  11103. margin-top:20px !important;
  11104. margin-bottom:10px !important;
  11105. }
  11106.  
  11107. /*Webinar popups Julius */
  11108.  
  11109. .popup-wrapper-webinar {
  11110. padding 20px;
  11111. }
  11112.  
  11113. .popup-image-webinar {
  11114. width:100%
  11115. }
  11116.  
  11117. .popup-btn-webinar {
  11118. background: rgb(255,0,0);
  11119. padding:12px 20px 12px 20px;
  11120. color:white;
  11121. font-size:16px;
  11122. font-weight:600;
  11123. display:flex;
  11124. justify-content:center;
  11125. align-items:center
  11126. }
  11127.  
  11128. /*Hide button on hardware blog */
  11129. .fl-node-606b2faf994ea {
  11130. display:none !important
  11131. }
  11132.  
  11133. /*Ebook download popup  */
  11134. .d-flex {
  11135. display:flex
  11136. }
  11137.  
  11138. #popmake-42032 {
  11139. padding:0
  11140. }
  11141.  
  11142. #popmake-42032 .d-flex {
  11143. display:flex
  11144. }
  11145.  
  11146. #popmake-42032 .left {
  11147. padding:10px 15px 10px 15px;
  11148. background-color:#142445FF;
  11149. color:white !important
  11150. }
  11151.  
  11152. #popmake-42032 .gform_title {
  11153. display:none
  11154. }
  11155.  
  11156. #popmake-42032 .pop-text {
  11157. font-size:14px !important;
  11158. margin-bottom:15px !important
  11159. }
  11160.  
  11161. #popmake-42032 .pop-subheading {
  11162. font-size:16px !important;
  11163. margin-bottom:15px !important
  11164. }
  11165.  
  11166. #popmake-42032 .gform_footer.before {
  11167. padding-top:0 !important
  11168. }
  11169.  
  11170.  
  11171. #popmake-42032 #gform_submit_button_36 {
  11172.    
  11173.    box-sizing: border-box;
  11174.    overflow: visible;
  11175.    text-transform: none;
  11176.    -webkit-appearance: button;
  11177.    width: 100%;
  11178.    border: none;
  11179.    font-size: 1em;
  11180.    padding: 5px 10px;
  11181.    cursor: pointer;
  11182.    height: 40px;
  11183.    background: #FF0000FF;
  11184.    border-radius: 0px;
  11185.    margin: 10px 0px 0px 0px;
  11186.    display: inline-block;
  11187.    color: rgb(255, 255, 255);
  11188. }
  11189.  
  11190. #popmake-42032 h1 {
  11191. font-size:22px !important;
  11192. line-height:1 !important;
  11193. color:white !important;
  11194. margin-bottom:15px !important
  11195. }
  11196.  
  11197. #popmake-42032 .d-flex div {
  11198. flex:1;
  11199. }
  11200.  
  11201. #popmake-42032 img {
  11202. height:100%;
  11203. width:100%;
  11204. object-fit:cover
  11205. }
  11206.  
  11207. /*Ebook popup */
  11208. #pum-42032 {
  11209. background-color: rgba(0,0,0,0.6) !important
  11210. }
  11211.  
  11212. .hidden-download {
  11213. height:0;
  11214. opacity:0;
  11215. overflow:hidden;
  11216. display:none;
  11217. }
  11218.  
  11219. #popmake-42032 .gform_ajax_spinner {
  11220.    width:22px !important;
  11221.    height:22px !important;
  11222. }
  11223.  
  11224. #popmake-42032  {
  11225. color:white !important
  11226. }
  11227.  
  11228. #popmake-42032 .pop-subheading  {
  11229. color:white !important
  11230. }
  11231. #popmake-42032 .pop-text {
  11232. color:white !important
  11233. }
  11234.  
  11235. #popmake-42032 ::placeholder {
  11236. color:rgba(0,0,0,0.7) !important
  11237. }
  11238.  
  11239. .uabb-module-content.uabb-tabs.uabb-tabs-layout-horizontal li {
  11240. margin-left: 5px;
  11241. }
  11242.  
  11243. .siq_bR {
  11244.    width: 96px !important;
  11245. }
  11246.  
  11247. .siq_bR {
  11248.    bottom: 10px !important;
  11249.    right: 1px !important;
  11250. }
  11251.  
  11252. .zsiq_custommain, .zsiq_floatmain {
  11253.    animation: .3s zoomIn;
  11254.    -webkit-animation: .3s zoomIn;
  11255.    -moz-animation: .3s zoomIn;
  11256.    -o-animation: .3s zoomIn;
  11257.    -ms-animation: .3s zoomIn;
  11258.    z-index: 2247483646 !important;
  11259.    opacity: 1;
  11260.    visibility: visible !important;
  11261. }
  11262.  
  11263. #wonderplugintabs-container-1 a {
  11264.    display: none !important;
  11265.    opacity: 0 !important;
  11266. }
  11267.  
  11268.  
  11269. /**Styling for Jacolet's new popup**/
  11270.  
  11271. #popmake-64086 {
  11272. padding: 0px !important;
  11273. }
  11274.  
  11275. .popup-container {
  11276.    gap:0px;
  11277.    display:flex;
  11278.    width:100%;
  11279.    color:white !important;
  11280.    }
  11281.  
  11282. .popup-heading {
  11283.    font-weight:600 !important;
  11284.    font-size:38px !important;
  11285.    line-height:1.2;
  11286.    margin-bottom:20px;
  11287.    color:white !important;
  11288. font-family: "Poppins" !important;
  11289.    }
  11290.        
  11291. .popup-subheading {
  11292.    font-weight:600;
  11293.    font-size:22px;
  11294.    margin-bottom:20px;
  11295.    padding-bottom:0 !important;
  11296.    }
  11297.    
  11298. .popup-left {
  11299.    flex:1.5;
  11300.    padding:30px;
  11301.    padding-right:30;
  11302.    background: linear-gradient(360deg, rgb(2, 69, 143) 0%, rgb(2, 113, 237) 100%) !important;
  11303. font-size: 16px !important;
  11304. font-weight: 400 !important;
  11305. font-family: "Poppins" !important;
  11306.    }
  11307.        
  11308. .popup-right {
  11309.    flex:1.6;
  11310.    text-align:center;
  11311.    padding:25px;
  11312.    background:white;
  11313. font-family: "Poppins" !important;
  11314.    }
  11315.  
  11316. #gform_wrapper_4 .gform_required_legend {
  11317. color: #333 !important;
  11318. }
  11319.  
  11320.  
  11321. #gform_wrapper_4 .gform-body input {
  11322.    height:55px !important;
  11323.    border-radius:5px !important;
  11324.    margin-top:0 !important;
  11325.    margin-bottom:0 !important;
  11326.    }
  11327.    
  11328. #gform_wrapper_4 .gform_button {
  11329.    font: inherit;
  11330.    box-sizing: border-box!important;
  11331.    background: red !important;
  11332.    color: #fff !important;
  11333.    display: block !important;
  11334.    font-size: 22px !important;
  11335.    margin: 0 !important;
  11336.    -webkit-appearance: button;
  11337.     cursor: pointer;
  11338.     text-shadow: none;
  11339.    border: none !important;
  11340.    box-shadow: none;
  11341.    width: 100% !important;
  11342.    padding: 20px !important;
  11343.    margin-top: 20px !important;
  11344.    font-weight: 600;
  11345.    line-height: 1.2;
  11346.    border-style: none;
  11347.    border-width: none;
  11348.    border-color: initial;
  11349.    }
  11350.    
  11351. #gform_wrapper_4 .gform_footer {
  11352.    padding-top:0 !important;
  11353.    }
  11354.    
  11355. #gform_wrapper_4 .gfield {
  11356.    padding-right:0 !important;
  11357.        }
  11358.        
  11359.        
  11360. .gfield_select {
  11361. border: 1px solid #e6e6e6 !important;
  11362. border-radius: 5px !important;
  11363. }
  11364.  
  11365.  
  11366. #gform_wrapper_4 .gform_wrapper {
  11367.    margin-bottom:0 !important; }
  11368.  
  11369. #gform_wrapper_4.gfield_select::-webkit-input-placeholder {
  11370. /* Chrome/Opera/Safari */
  11371.  color: #6D6D6D;
  11372. opacity: 1;
  11373. }
  11374.  
  11375. #gform_wrapper_4 .gform_fields .gfield select::-webkit-input-placeholder {
  11376. /* Chrome/Opera/Safari */
  11377.  color: #6D6D6D;
  11378. opacity: 1;
  11379. }
  11380. #gform_wrapper_4 .gform_fields .gfield select::-moz-placeholder {
  11381. /* Firefox 19+ */
  11382.  color: #6D6D6D;
  11383. opacity: 1;
  11384. }
  11385. #gform_wrapper_4 .gform_fields .gfield select:-ms-input-placeholder {
  11386. /* IE 10+ */
  11387.  color: #6D6D6D;
  11388. opacity: 1;
  11389. }
  11390. #gform_wrapper_4 .gform_fields .gfield select::-moz-placeholder {
  11391. /* Firefox 18- */
  11392.  color: #6D6D6D;
  11393. opacity: 1;
  11394. }
  11395.  
  11396. ::-webkit-input-placeholder {
  11397. color: #6D6D6D !important;
  11398. opacity: 1;
  11399. }
  11400. :-moz-placeholder {
  11401. color: #6D6D6D !important;
  11402. opacity: 1;
  11403. }
  11404. ::-moz-placeholder {
  11405. color: #6D6D6D !important;
  11406. opacity: 1;
  11407. }
  11408. :-ms-input-placeholder {
  11409. color: #6D6D6D !important;
  11410. opacity: 1;
  11411. }
  11412.  
  11413. #gform_wrapper_4 .gform_fields .gfield select::-ms-input-placeholder {
  11414.  color: #6D6D6D;
  11415. opacity: 1;
  11416. }
  11417.  
  11418. .gform_wrapper.gravity-theme .gfield select.large {
  11419.    width: 100%;
  11420.    color: #6D6D6D !important;
  11421. height: 55px !important;
  11422. border-radius: 5px !important;
  11423. }
  11424.  
  11425.  
  11426. @media screen and (max-width:740px) {
  11427.    .popup-container {
  11428.        display:block;
  11429. }
  11430.                
  11431.    .hidden-mobile {
  11432.        display:none;}
  11433.                    
  11434.    .hidden-desktop {
  11435.        display:block;}
  11436.                        
  11437.    .popup-heading {
  11438.        font-size:30px !important; }
  11439.                            
  11440.    .popup-subheading {
  11441.        font-size:18px !important;}        
  11442. }
  11443.  
  11444. @media screen and (max-width:600px) {
  11445. .popup-left {
  11446. padding:15px !important;}
  11447. }
  11448.  
  11449. ul.popup-list  {
  11450. line-height: 1.3;
  11451. padding-inline-start: 20px;
  11452. }
  11453.  
  11454. ul.popup-list li  {
  11455. margin-bottom: 10px !important;
  11456. }
  11457. }
  11458.  
  11459.  
  11460. .advq_start_quiz_button{
  11461. font-family: Poppins, sans-serif;
  11462.    font-weight: 500;
  11463.    font-size: 18px;
  11464.    letter-spacing: 1.1px;
  11465.    border: 1px solid #f31f1f;
  11466.    border-top-left-radius: 10px;
  11467.    border-top-right-radius: 10px;
  11468.    border-bottom-left-radius: 10px;
  11469. }
  11470.  
  11471.    @media (max-width: 980px){
  11472.    .hide-mobile{
  11473.    display: none !important;
  11474.    }
  11475. }
  11476.  
  11477. @media (min-width: 980px){
  11478.    .hide-desktop{
  11479.    display: none !important;
  11480.    }
  11481. }
  11482.  
  11483. .pum-theme-486 .pum-container, .pum-theme-lightbox .pum-container {
  11484.    padding: 10px !important;
  11485.    border-radius: 3px;
  11486.    border: 8px solid #000000;
  11487.    box-shadow: 0px 0px 30px 0px rgba(2, 2, 2, 1.00);
  11488.    background-color: rgba(255, 255, 255, 1.00);
  11489. }
  11490.  
  11491. .pum-theme-486 .pum-content + .pum-close, .pum-theme-lightbox .pum-content + .pum-close {
  11492.    position: absolute;
  11493.    height: auto;
  11494.    width: auto;
  11495.    left: auto;
  11496.    right: 0px;
  11497.    bottom: auto;
  11498.    top: 0px;
  11499.    padding: 6px;
  11500.    color: #ffffff;
  11501.    font-family: inherit;
  11502.    font-weight: 400;
  11503.    font-size: 12px;
  11504.    line-height: 15px;
  11505.    border: 1px none #ffffff;
  11506.    border-radius: 0px;
  11507.    box-shadow: 1px 1px 3px 0px rgba( 2, 2, 2, 0.23 );
  11508.    text-shadow: 0px 0px 0px rgba( 0, 0, 0, 0.23 );
  11509.    background-color: rgba( 0, 183, 205, 1.00 );
  11510. }
  11511.  
  11512. #popmake-80480 {
  11513.    padding: 50px !important;
  11514.    border-radius: 3px;
  11515.    border: 8px solid #000000;
  11516.    box-shadow: 0px 0px 30px 0px rgba(2, 2, 2, 1.00);
  11517.    background-color: #1c70eb !important;
  11518. }
  11519.  
  11520. .consultation-title {
  11521. font-weight: bold !important;
  11522. color: #ffffff !important;
  11523. }
  11524.  
  11525. input#gform_submit_button_64{
  11526. background-color: #FE1700 !important;
  11527. width: 100% !important;
  11528. max-width: 100% !important;
  11529. padding: 15px !important;
  11530. font-size: 16px !important;
  11531. } </style>
  11532. <noscript><style>.perfmatters-lazy[data-src]{display:none !important;}</style></noscript><style>.perfmatters-lazy-youtube{position:relative;width:100%;max-width:100%;height:0;padding-bottom:56.23%;overflow:hidden}.perfmatters-lazy-youtube img{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;max-width:100%;height:auto;margin:auto;border:none;cursor:pointer;transition:.5s all;-webkit-transition:.5s all;-moz-transition:.5s all}.perfmatters-lazy-youtube img:hover{-webkit-filter:brightness(75%)}.perfmatters-lazy-youtube .play{position:absolute;top:50%;left:50%;right:auto;width:68px;height:48px;margin-left:-34px;margin-top:-24px;background:url(https://linktek.com/wp-content/plugins/perfmatters/img/youtube.svg) no-repeat;background-position:center;background-size:cover;pointer-events:none}.perfmatters-lazy-youtube iframe{position:absolute;top:0;left:0;width:100%;height:100%;z-index:99}.perfmatters-lazy.pmloaded,.perfmatters-lazy.pmloaded>img,.perfmatters-lazy>img.pmloaded,.perfmatters-lazy[data-ll-status=entered]{animation:500ms pmFadeIn}@keyframes pmFadeIn{0%{opacity:0}100%{opacity:1}}body .perfmatters-lazy-css-bg:not([data-ll-status=entered]),body .perfmatters-lazy-css-bg:not([data-ll-status=entered]) *,body .perfmatters-lazy-css-bg:not([data-ll-status=entered])::before,body .perfmatters-lazy-css-bg:not([data-ll-status=entered])::after{background-image:none!important;will-change:transform;transition:opacity 0.025s ease-in,transform 0.025s ease-in!important;}</style><meta name="p:domain_verify" content="4bb0c57ca48e3b4fb9f3338a5d1389c5"/>
  11533. </head>
  11534. <body class="home page-template page-template-tpl-no-header-footer page-template-tpl-no-header-footer-php page page-id-39699 theme-bb-theme fl-builder woocommerce-no-js fl-theme-builder-header fl-theme-builder-header-search-icon-header-main-pages-test fl-framework-base fl-preset-default fl-full-width fl-search-active beaver-builder-child-theme" itemscope="itemscope" itemtype="https://schema.org/WebPage">
  11535.  
  11536. <a aria-label="Skip to content" class="fl-screen-reader-text" href="#fl-main-content">Skip to content</a><div class="fl-page">
  11537. <div id="fl-main-content" class="fl-page-content" itemprop="mainContentOfPage" role="main">
  11538.  
  11539. <div class="fl-content-full container">
  11540. <div class="row">
  11541. <div class="fl-content col-md-12">
  11542. <article class="fl-post post-39699 page type-page status-publish hentry" id="fl-post-39699" itemscope="itemscope" itemtype="https://schema.org/CreativeWork">
  11543.  
  11544. <div class="fl-post-content clearfix" itemprop="text">
  11545. <div class="bialty-container"><div class="fl-builder-content fl-builder-content-39699 fl-builder-content-primary fl-builder-global-templates-locked" data-post-id="39699"><div id="transparentheader" class="fl-row fl-row-full-width fl-row-bg-color fl-node-pfi6mguw5yvd transparent-header" data-node="pfi6mguw5yvd">
  11546. <div class="fl-row-content-wrap">
  11547. <div class="uabb-row-separator uabb-top-row-separator">
  11548. </div>
  11549. <div class="fl-row-content fl-row-full-width fl-node-content">
  11550. <div class="fl-col-group fl-node-5e1dded4777b2" data-node="5e1dded4777b2">
  11551. <div class="fl-col fl-node-5e1dded4777b8 fl-col-small" data-node="5e1dded4777b8">
  11552. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-5e1dded4777c0 new-logo" data-node="5e1dded4777c0">
  11553. <div class="fl-module-content fl-node-content">
  11554. <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject">
  11555. <div class="fl-photo-content fl-photo-img-png">
  11556. <a href="/" target="_self" itemprop="url">
  11557. <img fetchpriority="high" decoding="async" class="fl-photo-img wp-image-42821 size-full" src="https://linktek.com/wp-content/uploads/2020/01/latest-logo.png" alt="latest-logo" itemprop="image" height="851" width="1808" title="latest-logo" srcset="https://linktek.com/wp-content/uploads/2020/01/latest-logo.png 1808w, https://linktek.com/wp-content/uploads/2020/01/latest-logo-300x141.png 300w, https://linktek.com/wp-content/uploads/2020/01/latest-logo-1024x482.png 1024w, https://linktek.com/wp-content/uploads/2020/01/latest-logo-768x361.png 768w, https://linktek.com/wp-content/uploads/2020/01/latest-logo-1536x723.png 1536w, https://linktek.com/wp-content/uploads/2020/01/latest-logo-600x282.png 600w" sizes="(max-width: 1808px) 100vw, 1808px">
  11558. </a>
  11559. </div>
  11560. </div>
  11561. </div>
  11562. </div>
  11563. </div>
  11564. </div>
  11565. <div class="fl-col fl-node-5e1dded4777be fl-col-small fl-visible-desktop" data-node="5e1dded4777be">
  11566. <div class="fl-col-content fl-node-content"></div>
  11567. </div>
  11568. <div class="fl-col fl-node-5e1dded4777bb" data-node="5e1dded4777bb">
  11569. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-menu fl-node-5e1dded4777c3" data-node="5e1dded4777c3">
  11570. <div class="fl-module-content fl-node-content">
  11571. <div class="fl-menu fl-menu-responsive-toggle-mobile">
  11572. <button class="fl-menu-mobile-toggle hamburger" aria-label="Menu"><span class="fl-menu-icon svg-container"><svg version="1.1" class="hamburger-menu" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewbox="0 0 512 512">
  11573. <rect class="fl-hamburger-menu-top" width="512" height="102"></rect>
  11574. <rect class="fl-hamburger-menu-middle" y="205" width="512" height="102"></rect>
  11575. <rect class="fl-hamburger-menu-bottom" y="410" width="512" height="102"></rect>
  11576. </svg>
  11577. </span></button> <div class="fl-clear"></div>
  11578. <nav aria-label="Menu" itemscope="itemscope" itemtype="https://schema.org/SiteNavigationElement"><ul id="menu-linktek" class="menu fl-menu-horizontal fl-toggle-none"><li id="menu-item-29441" class="header-click-to-call global-ctc menu-item menu-item-type-custom menu-item-object-custom"><a target="_blank" href="tel:7274421822"><i class="fa fa-phone"></i> 727-442-1822</a></li><li id="menu-item-27731" class="products-nav menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children fl-has-submenu"><div class="fl-has-submenu-container"><a>Products &amp; Services <i class="fa fa-angle-down"></i></a><span class="fl-menu-toggle"></span></div><ul class="sub-menu"> <li id="menu-item-71828" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://linktek.com/linkfixer-advanced/"><em>LinkFixer Advanced<sup>&trade;<sup></sup></sup></em></a></li> <li id="menu-item-44789" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://linktek.com/link-reporter/link-reporter-download/">Free <em>Link Reporter<sup>&trade;<sup></sup></sup></em></a></li> <li id="menu-item-82333" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://linktek.com/migration-consultancy-service/">SharePoint Migration Consultancy</a></li> <li id="menu-item-76971" class="file-types-nav menu-item menu-item-type-post_type menu-item-object-page"><a href="https://linktek.com/supported-file-types/">Supported File Types</a></li></ul></li><li id="menu-item-28040" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children fl-has-submenu"><div class="fl-has-submenu-container"><a target="_blank">Support <i class="fa fa-angle-down"></i></a><span class="fl-menu-toggle"></span></div><ul class="sub-menu"> <li id="menu-item-29196" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://linktek.com/technical-support/">LinkFixer Advanced Technical Support</a></li> <li id="menu-item-28107" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://linktek.com/faq/">FAQ</a></li> <li id="menu-item-28301" class="menu-item menu-item-type-custom menu-item-object-custom"><a href="https://linktek.freshdesk.com/support/home" target="_blank" rel="noopener">Knowledge Base</a></li></ul></li><li id="menu-item-28222" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children fl-has-submenu"><div class="fl-has-submenu-container"><a>IT Tips &amp; Tricks <i class="fa fa-angle-down"></i></a><span class="fl-menu-toggle"></span></div><ul class="sub-menu"> <li id="menu-item-68" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://linktek.com/it-tips-tricks/">Articles</a></li> <li id="menu-item-28220" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://linktek.com/linkfixer-advanced-for-sharepoint-migrations/">SharePoint Migrations</a></li> <li id="menu-item-42096" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://linktek.com/videos/">Videos</a></li> <li id="menu-item-28972" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://linktek.com/webinars/">Webinars</a></li> <li id="menu-item-82567" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://linktek.com/ebook-download/">ebook Download</a></li></ul></li><li id="menu-item-28084" class="our-story-nav menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children fl-has-submenu"><div class="fl-has-submenu-container"><a>About Us <i class="fa fa-angle-down"></i></a><span class="fl-menu-toggle"></span></div><ul class="sub-menu"> <li id="menu-item-70" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://linktek.com/contact-us/">Contact Us</a></li> <li id="menu-item-69" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://linktek.com/our-story/">Our Story</a></li> <li id="menu-item-53818" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://linktek.com/testimonials/">Testimonials</a></li> <li id="menu-item-28124" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://linktek.com/press/">Press Room</a></li></ul></li><li id="menu-item-450" class="hide-mobile pum-trigger menutrial popmake-64086 free-trial-button menu-item menu-item-type-custom menu-item-object-custom"><a href="#popmake-64086">Free Trial</a></li><li id="menu-item-78864" class="free-trial-button hide-desktop menu-item menu-item-type-custom menu-item-object-custom"><a href="https://linktek.com/linkfixer-advanced-free-trial-2/">Free Trial</a></li></ul></nav></div>
  11579. </div>
  11580. </div>
  11581. </div>
  11582. </div>
  11583. <div class="fl-col fl-node-kelotias2jh0 fl-col-small fl-visible-desktop-medium" data-node="kelotias2jh0">
  11584. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-search fl-node-fztodbh1yg30" data-node="fztodbh1yg30">
  11585. <div class="fl-module-content fl-node-content">
  11586. <div class="fl-search-form fl-search-form-button fl-search-button-fullscreen fl-search-button-center fl-search-form-width-custom fl-search-form-center" data-template-id="5e1dded44ef28" data-template-node-id="fztodbh1yg30">
  11587. <div class="fl-search-form-wrap">
  11588. <div class="fl-search-form-fields">
  11589. <div class="fl-search-form-input-wrap">
  11590. <form role="search" aria-label="Search form" method="get" action="https://linktek.com/">
  11591. <div class="fl-form-field">
  11592. <input type="search" aria-label="Search input" class="fl-search-text" placeholder="Search..." value="" name="s">
  11593.  
  11594. <div class="fl-search-loader-wrap">
  11595. <div class="fl-search-loader">
  11596. <svg class="spinner" viewbox="0 0 50 50">
  11597. <circle class="path" cx="25" cy="25" r="20" fill="none" stroke-width="5"></circle>
  11598. </svg>
  11599. </div>
  11600. </div>
  11601. </div>
  11602. <div class="fl-search-results-content"></div>
  11603. </form>
  11604. </div>
  11605. <div class="fl-button-wrap fl-button-width-auto fl-button-center fl-button-has-icon">
  11606. <a href="#" target="_self" class="fl-button" role="button">
  11607. <i class="fl-button-icon fl-button-icon-before fas fa-search" aria-hidden="true"></i>
  11608. </a>
  11609. </div>
  11610. </div>
  11611. </div>
  11612. </div>
  11613. </div>
  11614. </div>
  11615. </div>
  11616. </div>
  11617. </div>
  11618. </div>
  11619. </div>
  11620. </div>
  11621. <div class="fl-row fl-row-full-width fl-row-bg-photo fl-node-97dkmqwelhfr fl-row-custom-height fl-row-align-center fl-row-bg-overlay fl-visible-desktop,large,medium,mobile fl-row-bg-fixed" data-node="97dkmqwelhfr">
  11622. <div class="fl-row-content-wrap">
  11623. <div class="uabb-row-separator uabb-top-row-separator">
  11624. </div>
  11625. <div class="fl-row-content fl-row-fixed-width fl-node-content">
  11626. <div class="fl-col-group fl-node-2xh4jlpdznsf fl-col-group-custom-width" data-node="2xh4jlpdznsf">
  11627. <div class="fl-col fl-node-qi67w2fa9eoc fl-col-has-cols fl-visible-desktop,large,medium,mobile" data-node="qi67w2fa9eoc">
  11628. <div class="fl-col-content fl-node-content">
  11629. <div class="fl-col-group fl-node-xpew4cv5bnmq fl-col-group-nested" data-node="xpew4cv5bnmq">
  11630. <div class="fl-col fl-node-4fmuon31zv6i fl-visible-desktop,large,medium,mobile" data-node="4fmuon31zv6i">
  11631. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-80j4d7fwpauz fl-visible-desktop,large,medium,mobile hero-headings" data-node="80j4d7fwpauz">
  11632. <div class="fl-module-content fl-node-content">
  11633. <h1 class="fl-heading">
  11634. <span class="fl-heading-text">We handle a hidden cause of lost data and downtime.</span>
  11635. </h1>
  11636. </div>
  11637. </div>
  11638. <div class="fl-module fl-module-separator fl-node-bklhvfwum1it fl-visible-desktop,large,medium" data-node="bklhvfwum1it">
  11639. <div class="fl-module-content fl-node-content">
  11640. <div class="fl-separator"></div>
  11641. </div>
  11642. </div>
  11643. <div class="fl-module fl-module-separator fl-node-1gteqw09b6kp fl-visible-mobile" data-node="1gteqw09b6kp">
  11644. <div class="fl-module-content fl-node-content">
  11645. <div class="fl-separator"></div>
  11646. </div>
  11647. </div>
  11648. <div class="fl-module fl-module-heading fl-node-rtmkub3cgd8z fl-visible-desktop,large,medium,mobile" data-node="rtmkub3cgd8z">
  11649. <div class="fl-module-content fl-node-content">
  11650. <h3 class="fl-heading">
  11651. <span class="fl-heading-text">How to have all your links automatically fixed whenever files are moved or renamed</span>
  11652. </h3>
  11653. </div>
  11654. </div>
  11655. <div class="fl-module fl-module-button fl-node-54ano3ic97l1 fl-visible-desktop,large,medium,mobile" data-node="54ano3ic97l1">
  11656. <div class="fl-module-content fl-node-content">
  11657. <div class="fl-button-wrap fl-button-width-auto fl-button-left">
  11658. <a href="#learn-more" target="_self" class="fl-button" role="button">
  11659. <span class="fl-button-text">Scroll Down</span>
  11660. </a>
  11661. </div>
  11662. </div>
  11663. </div>
  11664. </div>
  11665. </div>
  11666. <div class="fl-col fl-node-sw43958qk21c fl-col-small fl-visible-desktop,large" data-node="sw43958qk21c">
  11667. <div class="fl-col-content fl-node-content"></div>
  11668. </div>
  11669. </div>
  11670. </div>
  11671. </div>
  11672. </div>
  11673. </div>
  11674. </div>
  11675. </div>
  11676. <div id="learn-more" class="fl-row fl-row-full-width fl-row-bg-photo fl-node-uabt3lg89oyq fl-row-custom-height fl-row-align-center fl-visible-desktop,large,medium,mobile white-sections-res fl-row-bg-fixed" data-node="uabt3lg89oyq">
  11677. <div class="fl-row-content-wrap">
  11678. <div class="uabb-row-separator uabb-top-row-separator">
  11679. </div>
  11680. <div class="pp-down-arrow-container">
  11681. <div class="pp-down-arrow-wrap">
  11682. <div class="pp-down-arrow" data-row-id="uabt3lg89oyq" data-top-offset="0" data-transition-speed="500">
  11683. <svg xmlns="http://www.w3.org/2000/svg" role="presentation"><path stroke="null" d="m1.00122,14.45485c0,-0.24438 0.10878,-0.48877 0.32411,-0.67587c0.4329,-0.37231 1.13663,-0.37231 1.56952,0l19.19382,16.50735l19.19381,-16.50735c0.4329,-0.37231 1.13663,-0.37231 1.56952,0s0.43289,0.97753 0,1.34983l-19.97969,17.18324c-0.43289,0.3723 -1.13662,0.3723 -1.56951,0l-19.97969,-17.18324c-0.21755,-0.1871 -0.32411,-0.43149 -0.32411,-0.67587l0.00222,0.00191z" fill="#000000" id="svg_1"></path></svg> </div>
  11684. </div>
  11685. </div>
  11686. <div class="fl-row-content fl-row-fixed-width fl-node-content">
  11687. <div class="fl-col-group fl-node-okr35bfcd1s2" data-node="okr35bfcd1s2">
  11688. <div class="fl-col fl-node-d01xrhza3fjt fl-visible-desktop,large,medium,mobile" data-node="d01xrhza3fjt">
  11689. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-uqjk9slr5xgy fl-visible-desktop,large,medium,mobile" data-node="uqjk9slr5xgy">
  11690. <div class="fl-module-content fl-node-content">
  11691. <h4 class="fl-heading">
  11692. <span class="fl-heading-text">Migrations to SharePoint, the Cloud, OpenText, servers or new file structures frequently incur a hidden &ldquo;surcharge&rdquo;.</span>
  11693. </h4>
  11694. </div>
  11695. </div>
  11696. <div id="learn-more" class="fl-module fl-module-heading fl-node-4p3yimqwfk6o fl-visible-desktop,large,medium,mobile" data-node="4p3yimqwfk6o">
  11697. <div class="fl-module-content fl-node-content">
  11698. <h3 class="fl-heading">
  11699. <span class="fl-heading-text">Don&rsquo;t pay that price.</span>
  11700. </h3>
  11701. </div>
  11702. </div>
  11703. </div>
  11704. </div>
  11705. </div>
  11706.  
  11707. <div class="fl-col-group fl-node-plm9khea46jx" data-node="plm9khea46jx">
  11708. <div class="fl-col fl-node-0vim1jauqsf6 fl-visible-desktop,large,medium,mobile" data-node="0vim1jauqsf6">
  11709. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-6xr4g25e3dfn fl-visible-desktop,large,medium,mobile" data-node="6xr4g25e3dfn">
  11710. <div class="fl-module-content fl-node-content">
  11711. <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject">
  11712. <div class="fl-photo-content fl-photo-img-png">
  11713. <img decoding="async" class="fl-photo-img wp-image-38743 size-full" src="https://linktek.com/wp-content/uploads/2022/07/MicrosoftTeams-image-1.png" alt="MicrosoftTeams-image (1)" itemprop="image" height="92" width="784" title="MicrosoftTeams-image (1)" srcset="https://linktek.com/wp-content/uploads/2022/07/MicrosoftTeams-image-1.png 784w, https://linktek.com/wp-content/uploads/2022/07/MicrosoftTeams-image-1-600x70.png 600w, https://linktek.com/wp-content/uploads/2022/07/MicrosoftTeams-image-1-300x35.png 300w, https://linktek.com/wp-content/uploads/2022/07/MicrosoftTeams-image-1-768x90.png 768w" sizes="(max-width: 784px) 100vw, 784px">
  11714. </div>
  11715. </div>
  11716. </div>
  11717. </div>
  11718. </div>
  11719. </div>
  11720. </div>
  11721.  
  11722. <div class="fl-col-group fl-node-469xyv7wrogf" data-node="469xyv7wrogf">
  11723. <div class="fl-col fl-node-16rj7hpzwnyf fl-visible-desktop,large,medium,mobile" data-node="16rj7hpzwnyf">
  11724. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-lr8s9031coz2 fl-visible-desktop,large,medium,mobile" data-node="lr8s9031coz2">
  11725. <div class="fl-module-content fl-node-content">
  11726. <h4 class="fl-heading">
  11727. <span class="fl-heading-text">Scroll down to find out how.</span>
  11728. </h4>
  11729. </div>
  11730. </div>
  11731. </div>
  11732. </div>
  11733. </div>
  11734. </div>
  11735. </div>
  11736. </div>
  11737. <div class="fl-row fl-row-full-width fl-row-bg-photo fl-node-8anhq1ezd3tp fl-row-custom-height fl-row-align-center fl-row-bg-overlay fl-visible-desktop,large,medium,mobile lost-data-section fl-row-bg-fixed" data-node="8anhq1ezd3tp">
  11738. <div class="fl-row-content-wrap">
  11739. <div class="uabb-row-separator uabb-top-row-separator">
  11740. </div>
  11741. <div class="fl-row-content fl-row-fixed-width fl-node-content">
  11742. <div class="fl-col-group fl-node-dbc54a1xiykf" data-node="dbc54a1xiykf">
  11743. <div class="fl-col fl-node-mjzg97sc0uti fl-col-has-cols fl-visible-desktop,large,medium,mobile" data-node="mjzg97sc0uti">
  11744. <div class="fl-col-content fl-node-content">
  11745. <div class="fl-col-group fl-node-7j0aku4qyesi fl-col-group-nested" data-node="7j0aku4qyesi">
  11746. <div class="fl-col fl-node-82ka69bc4xiw fl-visible-desktop,large,medium,mobile" data-node="82ka69bc4xiw">
  11747. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-syzion47k9l6 fl-visible-desktop,large,medium,mobile" data-node="syzion47k9l6">
  11748. <div class="fl-module-content fl-node-content">
  11749. <h2 class="fl-heading">
  11750. <span class="fl-heading-text">Weapon for the No-Downtime IT Jedi</span>
  11751. </h2>
  11752. </div>
  11753. </div>
  11754. </div>
  11755. </div>
  11756. <div class="fl-col fl-node-mlig092vc1rp fl-col-small fl-visible-desktop,large" data-node="mlig092vc1rp">
  11757. <div class="fl-col-content fl-node-content"></div>
  11758. </div>
  11759. </div>
  11760.  
  11761. <div class="fl-col-group fl-node-q0vgjoaw3zpk fl-col-group-nested" data-node="q0vgjoaw3zpk">
  11762. <div class="fl-col fl-node-o4s2zay5cxdm fl-visible-desktop,large,medium,mobile" data-node="o4s2zay5cxdm">
  11763. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-gymbq9ljdhs8" data-node="gymbq9ljdhs8">
  11764. <div class="fl-module-content fl-node-content">
  11765. <h3 class="fl-heading">
  11766. <span class="fl-heading-text">Auto-Preservation of Your <em>Good</em> Links</span>
  11767. </h3>
  11768. </div>
  11769. </div>
  11770. <div class="fl-module fl-module-heading fl-node-pqz63be1gw7l" data-node="pqz63be1gw7l">
  11771. <div class="fl-module-content fl-node-content">
  11772. <h5 class="fl-heading">
  11773. <span class="fl-heading-text"><em class="extra-space">The LinkFixer Advanced</em><sup class="body-sup-tm">&trade;</sup> software protects your file links. Use it before a data migration or any type of file system restructuring to avoid the gut-wrenching (sometimes job-threatening) consequences of broken links.</span>
  11774. </h5>
  11775. </div>
  11776. </div>
  11777. <div class="fl-module fl-module-heading fl-node-8mwc64bk01np fl-visible-desktop,large,medium,mobile" data-node="8mwc64bk01np">
  11778. <div class="fl-module-content fl-node-content">
  11779. <h3 class="fl-heading">
  11780. <span class="fl-heading-text">Auto-repair of Your <em>Broken</em> Links</span>
  11781. </h3>
  11782. </div>
  11783. </div>
  11784. <div class="fl-module fl-module-heading fl-node-tab68p7ef2mj fl-visible-desktop,large,medium,mobile" data-node="tab68p7ef2mj">
  11785. <div class="fl-module-content fl-node-content">
  11786. <h5 class="fl-heading">
  11787. <span class="fl-heading-text">Alternatively, if you have already completed such a project and have missing data, <em>LinkFixer Advanced</em> can fix your broken links about a bazillion times faster than trying to fix them manually or by using some replace tool.</span>
  11788. </h5>
  11789. </div>
  11790. </div>
  11791. <div class="fl-module fl-module-button fl-node-if3np64lhas1 lfatrial" data-node="if3np64lhas1">
  11792. <div class="fl-module-content fl-node-content">
  11793. <div class="fl-button-wrap fl-button-width-auto fl-button-left">
  11794. <a href="" target="_self" class="fl-button" role="button">
  11795. <span class="fl-button-text">Get Your Free Trial</span>
  11796. </a>
  11797. </div>
  11798. </div>
  11799. </div>
  11800. <div class="fl-module fl-module-heading fl-node-d1p0gxvfazi7 fl-visible-desktop,large,medium,mobile" data-node="d1p0gxvfazi7">
  11801. <div class="fl-module-content fl-node-content">
  11802. <h6 class="fl-heading">
  11803. <span class="fl-heading-text">No credit card required</span>
  11804. </h6>
  11805. </div>
  11806. </div>
  11807. </div>
  11808. </div>
  11809. <div class="fl-col fl-node-q0dnieu3lkyf fl-col-small fl-visible-desktop,large" data-node="q0dnieu3lkyf">
  11810. <div class="fl-col-content fl-node-content"></div>
  11811. </div>
  11812. </div>
  11813. </div>
  11814. </div>
  11815. </div>
  11816. </div>
  11817. </div>
  11818. </div>
  11819. <div class="fl-row fl-row-full-width fl-row-bg-color fl-node-4zukfjielvs1" data-node="4zukfjielvs1">
  11820. <div class="fl-row-content-wrap">
  11821. <div class="uabb-row-separator uabb-top-row-separator">
  11822. </div>
  11823. <div class="fl-row-content fl-row-fixed-width fl-node-content">
  11824. <div class="fl-col-group fl-node-umlkqoxrn7cd" data-node="umlkqoxrn7cd">
  11825. <div class="fl-col fl-node-cdvxwyus2837" data-node="cdvxwyus2837">
  11826. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-rich-text fl-node-dwena2uh7iz5" data-node="dwena2uh7iz5">
  11827. <div class="fl-module-content fl-node-content">
  11828. <div class="fl-rich-text">
  11829. <div style="text-align: center;">
  11830. <p class="aiicons" style="display: inline-block; text-align: center;"><span style="color: #ffffff;">Recommended by</span></p>
  11831. <p class="aiicons" style="display: inline-block; text-align: center;"><span style="color: #ffffff;"><img decoding="async" src="https://linktek.com/wp-content/uploads/2024/05/chatgpt-logo-chat-gpt-icon-on-white-background-free-vector.jpg" alt="chatgpt logo chat gpt icon on white background free vector" width="30" height="30"> ChatGPT,</span></p>
  11832. <p class="aiicons" style="display: inline-block; text-align: center;"><span style="color: #ffffff;"><img decoding="async" src="https://linktek.com/wp-content/uploads/2024/05/Gemini.png" alt="Gemini" width="30" height="30"> Gemini,</span></p>
  11833. <p class="aiicons" style="display: inline-block; text-align: center;"><span style="color: #ffffff;"><img decoding="async" src="https://linktek.com/wp-content/uploads/2024/05/claude_app_icon.png" alt="claude app icon" width="30" height="30"> Claude and</span></p>
  11834. <p class="aiicons" style="display: inline-block; text-align: center;"><span style="color: #ffffff;"><img decoding="async" src="https://linktek.com/wp-content/uploads/2024/05/CoPilot.png" alt="CoPilot" width="30" height="30"> Copilot</span></p>
  11835. </div>
  11836. </div>
  11837. </div>
  11838. </div>
  11839. </div>
  11840. </div>
  11841. </div>
  11842. </div>
  11843. </div>
  11844. </div>
  11845. <div class="fl-row fl-row-full-width fl-row-bg-none fl-node-6jhens7mwyda fl-visible-desktop,large,medium,mobile white-sections-res counter-section" data-node="6jhens7mwyda">
  11846. <div class="fl-row-content-wrap">
  11847. <div class="uabb-row-separator uabb-top-row-separator">
  11848. </div>
  11849. <div class="fl-row-content fl-row-fixed-width fl-node-content">
  11850. <div class="fl-col-group fl-node-xf72j9vech0k" data-node="xf72j9vech0k">
  11851. <div class="fl-col fl-node-wuknq64avi7f fl-col-has-cols fl-visible-desktop,large,medium,mobile" data-node="wuknq64avi7f">
  11852. <div class="fl-col-content fl-node-content">
  11853. <div class="fl-col-group fl-node-21tlc7ig3xfr fl-col-group-nested" data-node="21tlc7ig3xfr">
  11854. <div class="fl-col fl-node-h0ut1rm8d62z fl-col-small fl-visible-desktop,large,medium,mobile" data-node="h0ut1rm8d62z">
  11855. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-numbers fl-node-1amto42zdexg fl-visible-desktop,large,medium,mobile" data-node="1amto42zdexg">
  11856. <div class="fl-module-content fl-node-content">
  11857. <div class="fl-number fl-number-default">
  11858. <div class="fl-number-text">
  11859. <div class="fl-number-string"><span class="fl-number-int" data-start-number="0" data-number="13967" data-total="13967"><noscript>13,967</noscript></span></div>
  11860. <span class="fl-number-after-text">Hours</span>
  11861. </div>
  11862. </div>
  11863. </div>
  11864. </div>
  11865. </div>
  11866. </div>
  11867. <div class="fl-col fl-node-zg0l16985dth fl-visible-desktop,large,medium,mobile" data-node="zg0l16985dth">
  11868. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-om2xd9wn8kj5" data-node="om2xd9wn8kj5">
  11869. <div class="fl-module-content fl-node-content">
  11870. <h4 class="fl-heading">
  11871. <span class="fl-heading-text">Estimated average number of IT man-hours saved by an average-size customer using the <em>LinkFixer Advanced</em> program during a  data migration project.</span>
  11872. </h4>
  11873. </div>
  11874. </div>
  11875. </div>
  11876. </div>
  11877. </div>
  11878. </div>
  11879. </div>
  11880. </div>
  11881. </div>
  11882. </div>
  11883. </div>
  11884. <div class="fl-row fl-row-full-width fl-row-bg-photo fl-node-v06dcmb5l3we fl-row-custom-height fl-row-align-center fl-row-bg-overlay lost-data-section fl-row-bg-fixed" data-node="v06dcmb5l3we">
  11885. <div class="fl-row-content-wrap">
  11886. <div class="uabb-row-separator uabb-top-row-separator">
  11887. </div>
  11888. <div class="fl-row-content fl-row-fixed-width fl-node-content">
  11889. <div class="fl-col-group fl-node-es5zwqf43ain" data-node="es5zwqf43ain">
  11890. <div class="fl-col fl-node-srxhd1z4jl89 fl-col-has-cols fl-visible-desktop,large,medium,mobile hero-center-text" data-node="srxhd1z4jl89">
  11891. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-gto5xqebu214 fl-visible-desktop,large,medium,mobile" data-node="gto5xqebu214">
  11892. <div class="fl-module-content fl-node-content">
  11893. <h2 class="fl-heading">
  11894. <span class="fl-heading-text">No Matter Where You Migrate, We Protect Your File Links</span>
  11895. </h2>
  11896. </div>
  11897. </div>
  11898.  
  11899. <div class="fl-col-group fl-node-7lynfw9140vx fl-col-group-nested" data-node="7lynfw9140vx">
  11900. <div class="fl-col fl-node-1d8om3w7aylv fl-visible-desktop,large,medium,mobile" data-node="1d8om3w7aylv">
  11901. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-fzqpu4357hdm fl-visible-desktop,large,medium,mobile" data-node="fzqpu4357hdm">
  11902. <div class="fl-module-content fl-node-content">
  11903. <h5 class="fl-heading">
  11904. <span class="fl-heading-text">Whether you&rsquo;re moving to SharePoint, OpenText, Office 365, OneDrive or Dropbox, we make sure your links are protected.</span>
  11905. </h5>
  11906. </div>
  11907. </div>
  11908. <div class="fl-module fl-module-button fl-node-j3pgba1vdk6t" data-node="j3pgba1vdk6t">
  11909. <div class="fl-module-content fl-node-content">
  11910. <div class="fl-button-wrap fl-button-width-auto fl-button-center">
  11911. <a href="/linkfixer-advanced/" target="_self" class="fl-button" role="button">
  11912. <span class="fl-button-text">Learn More</span>
  11913. </a>
  11914. </div>
  11915. </div>
  11916. </div>
  11917. <div class="fl-module fl-module-heading fl-node-myr85paeun3c fl-visible-desktop,large,medium,mobile" data-node="myr85paeun3c">
  11918. <div class="fl-module-content fl-node-content">
  11919. <h5 class="fl-heading">
  11920. <span class="fl-heading-text">Or maybe you&rsquo;re implementing a distributed file system (DFS), network attached storage (NAS) or a storage area network (SAN). Or perhaps you need to re-map some paths or archive a set of files. <em>LinkFixer Advanced</em> can prevent downtime due to broken links.</span>
  11921. </h5>
  11922. </div>
  11923. </div>
  11924. <div class="fl-module fl-module-button fl-node-idakwyv9ntso lfatrial" data-node="idakwyv9ntso">
  11925. <div class="fl-module-content fl-node-content">
  11926. <div class="fl-button-wrap fl-button-width-auto fl-button-center">
  11927. <a href="" target="_self" class="fl-button" role="button">
  11928. <span class="fl-button-text">Get Your Free Trial</span>
  11929. </a>
  11930. </div>
  11931. </div>
  11932. </div>
  11933. </div>
  11934. </div>
  11935. </div>
  11936. </div>
  11937. </div>
  11938. </div>
  11939. </div>
  11940. </div>
  11941. </div>
  11942. <div class="fl-row fl-row-fixed-width fl-row-bg-color fl-node-au713nzpbof4 fl-visible-desktop,large,medium,mobile" data-node="au713nzpbof4">
  11943. <div class="fl-row-content-wrap">
  11944. <div class="uabb-row-separator uabb-top-row-separator">
  11945. </div>
  11946. <div class="fl-row-content fl-row-fixed-width fl-node-content">
  11947. <div class="fl-col-group fl-node-ydkuo8rcti5n" data-node="ydkuo8rcti5n">
  11948. <div class="fl-col fl-node-hcyntpil8q7a fl-visible-desktop,large,medium,mobile" data-node="hcyntpil8q7a">
  11949. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-v2tnlipu7sd9 fl-visible-desktop,large,medium,mobile" data-node="v2tnlipu7sd9">
  11950. <div class="fl-module-content fl-node-content">
  11951. <h2 class="fl-heading">
  11952. <span class="fl-heading-text"><em class="extra-space">LinkFixer Advanced</em> supports most of the world&rsquo;s major file types.</span>
  11953. </h2>
  11954. </div>
  11955. </div>
  11956. </div>
  11957. </div>
  11958. </div>
  11959. </div>
  11960. </div>
  11961. </div>
  11962. <div class="fl-row fl-row-full-width fl-row-bg-color fl-node-g2cn8p9h14xd logos-section blog-row supported-files-sec" data-node="g2cn8p9h14xd">
  11963. <div class="fl-row-content-wrap">
  11964. <div class="uabb-row-separator uabb-top-row-separator">
  11965. </div>
  11966. <div class="fl-row-content fl-row-fixed-width fl-node-content">
  11967. <div class="fl-col-group fl-node-5da1c223c46eb fl-col-group-custom-width" data-node="5da1c223c46eb">
  11968. <div class="fl-col fl-node-5da1c223c46f0 fl-col-small" data-node="5da1c223c46f0">
  11969. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-5da1c223c46fc" data-node="5da1c223c46fc">
  11970. <div class="fl-module-content fl-node-content">
  11971. <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject">
  11972. <div class="fl-photo-content fl-photo-img-png">
  11973. <a href="/linkfixer-advanced-excel/" target="_self" itemprop="url">
  11974. <img decoding="async" class="fl-photo-img wp-image-41275 size-medium" src="https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Excel_2019%E2%80%93present.svg-300x279.png" alt="Microsoft Excel File Type" itemprop="image" height="279" width="300" title="Microsoft Excel File Type" srcset="https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Excel_2019&ndash;present.svg-300x279.png 300w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Excel_2019&ndash;present.svg-600x558.png 600w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Excel_2019&ndash;present.svg-1024x952.png 1024w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Excel_2019&ndash;present.svg-768x714.png 768w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Excel_2019&ndash;present.svg-1536x1429.png 1536w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Excel_2019&ndash;present.svg-2048x1905.png 2048w" sizes="(max-width: 300px) 100vw, 300px">
  11975. </a>
  11976. </div>
  11977. </div>
  11978. </div>
  11979. </div>
  11980. <div class="fl-module fl-module-rich-text fl-node-5e5f9bc9a29f6" data-node="5e5f9bc9a29f6">
  11981. <div class="fl-module-content fl-node-content">
  11982. <div class="fl-rich-text">
  11983. <p style="text-align: center;">Excel</p>
  11984. </div>
  11985. </div>
  11986. </div>
  11987. </div>
  11988. </div>
  11989. <div class="fl-col fl-node-5da1c223c46f6 fl-col-small" data-node="5da1c223c46f6">
  11990. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-5da1c223c4702" data-node="5da1c223c4702">
  11991. <div class="fl-module-content fl-node-content">
  11992. <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject">
  11993. <div class="fl-photo-content fl-photo-img-png">
  11994. <a href="/linkfixer-advanced-word/" target="_self" itemprop="url">
  11995. <img decoding="async" class="fl-photo-img wp-image-41276 size-medium" src="https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Word_2019%E2%80%93present.svg-300x279.png" alt="Microsoft Word File Type" itemprop="image" height="279" width="300" title="Microsoft Word File Type" srcset="https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Word_2019&ndash;present.svg-300x279.png 300w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Word_2019&ndash;present.svg-600x558.png 600w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Word_2019&ndash;present.svg-1024x953.png 1024w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Word_2019&ndash;present.svg-768x715.png 768w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Word_2019&ndash;present.svg-1536x1429.png 1536w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Word_2019&ndash;present.svg-2048x1906.png 2048w" sizes="(max-width: 300px) 100vw, 300px">
  11996. </a>
  11997. </div>
  11998. </div>
  11999. </div>
  12000. </div>
  12001. <div class="fl-module fl-module-rich-text fl-node-5e5f9bed16c1f" data-node="5e5f9bed16c1f">
  12002. <div class="fl-module-content fl-node-content">
  12003. <div class="fl-rich-text">
  12004. <p style="text-align: center;">Word</p>
  12005. </div>
  12006. </div>
  12007. </div>
  12008. </div>
  12009. </div>
  12010. <div class="fl-col fl-node-5da1c223c46f2 fl-col-small" data-node="5da1c223c46f2">
  12011. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-5da1c223c46fd" data-node="5da1c223c46fd">
  12012. <div class="fl-module-content fl-node-content">
  12013. <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject">
  12014. <div class="fl-photo-content fl-photo-img-png">
  12015. <a href="/fix-broken-link-in-adobe-acrobat/" target="_self" itemprop="url">
  12016. <img decoding="async" class="fl-photo-img wp-image-41277 size-full" src="https://linktek.com/wp-content/uploads/2021/04/Adobe_Acrobat_DC_icon.png" alt="Acrobat File Type" itemprop="image" height="256" width="256" title="Acrobat File Type" srcset="https://linktek.com/wp-content/uploads/2021/04/Adobe_Acrobat_DC_icon.png 256w, https://linktek.com/wp-content/uploads/2021/04/Adobe_Acrobat_DC_icon-100x100.png 100w, https://linktek.com/wp-content/uploads/2021/04/Adobe_Acrobat_DC_icon-150x150.png 150w" sizes="(max-width: 256px) 100vw, 256px">
  12017. </a>
  12018. </div>
  12019. </div>
  12020. </div>
  12021. </div>
  12022. <div class="fl-module fl-module-rich-text fl-node-5e5f9bf2da1e9" data-node="5e5f9bf2da1e9">
  12023. <div class="fl-module-content fl-node-content">
  12024. <div class="fl-rich-text">
  12025. <p style="text-align: center;">Acrobat</p>
  12026. </div>
  12027. </div>
  12028. </div>
  12029. </div>
  12030. </div>
  12031. <div class="fl-col fl-node-5da1c223c46f4 fl-col-small" data-node="5da1c223c46f4">
  12032. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-5da1c223c4700" data-node="5da1c223c4700">
  12033. <div class="fl-module-content fl-node-content">
  12034. <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject">
  12035. <div class="fl-photo-content fl-photo-img-png">
  12036. <a href="/linkfixer-advanced-for-access/" target="_self" itemprop="url">
  12037. <img decoding="async" class="fl-photo-img wp-image-41278 size-medium" src="https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Access_2019-present.svg-300x293.png" alt="Microsoft Access File Type" itemprop="image" height="293" width="300" title="Microsoft Access File Type" srcset="https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Access_2019-present.svg-300x293.png 300w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Access_2019-present.svg-600x586.png 600w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Access_2019-present.svg-1024x1001.png 1024w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Access_2019-present.svg-768x750.png 768w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Access_2019-present.svg-1536x1501.png 1536w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Access_2019-present.svg-2048x2001.png 2048w" sizes="(max-width: 300px) 100vw, 300px">
  12038. </a>
  12039. </div>
  12040. </div>
  12041. </div>
  12042. </div>
  12043. <div class="fl-module fl-module-rich-text fl-node-5e5f9bf8e53b1" data-node="5e5f9bf8e53b1">
  12044. <div class="fl-module-content fl-node-content">
  12045. <div class="fl-rich-text">
  12046. <p style="text-align: center;">Access</p>
  12047. </div>
  12048. </div>
  12049. </div>
  12050. </div>
  12051. </div>
  12052. <div class="fl-col fl-node-5da1c223c46f8 fl-col-small" data-node="5da1c223c46f8">
  12053. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-5e5fa228bdcf9" data-node="5e5fa228bdcf9">
  12054. <div class="fl-module-content fl-node-content">
  12055. <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject">
  12056. <div class="fl-photo-content fl-photo-img-png">
  12057. <a href="/linkfixer-advanced-for-powerpoint/" target="_self" itemprop="url">
  12058. <img decoding="async" class="fl-photo-img wp-image-41279 size-medium" src="https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_PowerPoint_2019%E2%80%93present.svg-300x279.png" alt="Microsoft PowerPoint File Type" itemprop="image" height="279" width="300" title="Microsoft PowerPoint File Type" srcset="https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_PowerPoint_2019&ndash;present.svg-300x279.png 300w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_PowerPoint_2019&ndash;present.svg-600x558.png 600w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_PowerPoint_2019&ndash;present.svg-768x714.png 768w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_PowerPoint_2019&ndash;present.svg.png 800w" sizes="(max-width: 300px) 100vw, 300px">
  12059. </a>
  12060. </div>
  12061. </div>
  12062. </div>
  12063. </div>
  12064. <div class="fl-module fl-module-rich-text fl-node-5e5f9bfdac8f3" data-node="5e5f9bfdac8f3">
  12065. <div class="fl-module-content fl-node-content">
  12066. <div class="fl-rich-text">
  12067. <p style="text-align: center;">PowerPoint</p>
  12068. </div>
  12069. </div>
  12070. </div>
  12071. </div>
  12072. </div>
  12073. <div class="fl-col fl-node-5da1c223c46fa fl-col-small" data-node="5da1c223c46fa">
  12074. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-5da1c223c4704" data-node="5da1c223c4704">
  12075. <div class="fl-module-content fl-node-content">
  12076. <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject">
  12077. <div class="fl-photo-content fl-photo-img-png">
  12078. <img decoding="async" class="fl-photo-img wp-image-41280 size-full" src="https://linktek.com/wp-content/uploads/2021/04/react-logo-javascript-redux-vuejs-angular-angularjs-expressjs-front-and-back-ends-png-clipart-thumbnail_updated_updated.png" alt="JavaScript File Type" itemprop="image" height="338" width="300" title="JavaScript File Type" srcset="https://linktek.com/wp-content/uploads/2021/04/react-logo-javascript-redux-vuejs-angular-angularjs-expressjs-front-and-back-ends-png-clipart-thumbnail_updated_updated.png 300w, https://linktek.com/wp-content/uploads/2021/04/react-logo-javascript-redux-vuejs-angular-angularjs-expressjs-front-and-back-ends-png-clipart-thumbnail_updated_updated-266x300.png 266w" sizes="(max-width: 300px) 100vw, 300px">
  12079. </div>
  12080. </div>
  12081. </div>
  12082. </div>
  12083. <div class="fl-module fl-module-rich-text fl-node-5e5f9a79921e8" data-node="5e5f9a79921e8">
  12084. <div class="fl-module-content fl-node-content">
  12085. <div class="fl-rich-text">
  12086. <p style="text-align: center;">Javascript</p>
  12087. </div>
  12088. </div>
  12089. </div>
  12090. </div>
  12091. </div>
  12092. </div>
  12093. </div>
  12094. </div>
  12095. </div>
  12096. <div class="fl-row fl-row-full-width fl-row-bg-color fl-node-w85gi6hcvjor logos-section blog-row supported-files-sec" data-node="w85gi6hcvjor">
  12097. <div class="fl-row-content-wrap">
  12098. <div class="uabb-row-separator uabb-top-row-separator">
  12099. </div>
  12100. <div class="fl-row-content fl-row-fixed-width fl-node-content">
  12101. <div class="fl-col-group fl-node-5da1c23148602 fl-col-group-custom-width" data-node="5da1c23148602">
  12102. <div class="fl-col fl-node-5da1c23148607 fl-col-small" data-node="5da1c23148607">
  12103. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-5da1c23148615" data-node="5da1c23148615">
  12104. <div class="fl-module-content fl-node-content">
  12105. <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject">
  12106. <div class="fl-photo-content fl-photo-img-png">
  12107. <a href="/fix-broken-link-in-microstation/" target="_self" itemprop="url">
  12108. <img decoding="async" class="fl-photo-img wp-image-41282 size-full" src="https://linktek.com/wp-content/uploads/2021/04/png-transparent-bentley-systems-microstation-staad-blueridge-analytics-inc-bentley-text-trademark-logo_updated.png" alt="Bentley Microstation Logo" itemprop="image" height="155" width="161" title="Bentley Microstation Logo">
  12109. </a>
  12110. </div>
  12111. </div>
  12112. </div>
  12113. </div>
  12114. <div class="fl-module fl-module-rich-text fl-node-5e5f9f322d198" data-node="5e5f9f322d198">
  12115. <div class="fl-module-content fl-node-content">
  12116. <div class="fl-rich-text">
  12117. <p style="text-align: center;">MicroStation</p>
  12118. </div>
  12119. </div>
  12120. </div>
  12121. </div>
  12122. </div>
  12123. <div class="fl-col fl-node-5da1c2314860a fl-col-small" data-node="5da1c2314860a">
  12124. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-5e5f9fc306e58" data-node="5e5f9fc306e58">
  12125. <div class="fl-module-content fl-node-content">
  12126. <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject">
  12127. <div class="fl-photo-content fl-photo-img-png">
  12128. <a href="/linkfixer-advanced-onenote/" target="_self" itemprop="url">
  12129. <img decoding="async" class="fl-photo-img wp-image-41283 size-medium" src="https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_OneNote_2019%E2%80%93present.svg-300x279.png" alt="Microsoft OneNote File Type" itemprop="image" height="279" width="300" title="Microsoft OneNote File Type" srcset="https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_OneNote_2019&ndash;present.svg-300x279.png 300w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_OneNote_2019&ndash;present.svg-600x558.png 600w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_OneNote_2019&ndash;present.svg-1024x952.png 1024w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_OneNote_2019&ndash;present.svg-768x714.png 768w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_OneNote_2019&ndash;present.svg-1536x1429.png 1536w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_OneNote_2019&ndash;present.svg-2048x1905.png 2048w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_OneNote_2019&ndash;present.svg.png 2000w" sizes="(max-width: 300px) 100vw, 300px">
  12130. </a>
  12131. </div>
  12132. </div>
  12133. </div>
  12134. </div>
  12135. <div class="fl-module fl-module-rich-text fl-node-5e5f9fe0de3c9" data-node="5e5f9fe0de3c9">
  12136. <div class="fl-module-content fl-node-content">
  12137. <div class="fl-rich-text">
  12138. <p style="text-align: center;">OneNote</p>
  12139. </div>
  12140. </div>
  12141. </div>
  12142. </div>
  12143. </div>
  12144. <div class="fl-col fl-node-5da1c2314860d fl-col-small" data-node="5da1c2314860d">
  12145. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-5da1c23148618" data-node="5da1c23148618">
  12146. <div class="fl-module-content fl-node-content">
  12147. <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject">
  12148. <div class="fl-photo-content fl-photo-img-png">
  12149. <a href="/fix-broken-link-in-adobe-indesign/" target="_self" itemprop="url">
  12150. <img decoding="async" class="fl-photo-img wp-image-41284 size-medium" src="https://linktek.com/wp-content/uploads/2021/04/Adobe_InDesign_CC_icon.svg-300x292.png" alt="InDesign File Type" itemprop="image" height="292" width="300" title="InDesign File Type" srcset="https://linktek.com/wp-content/uploads/2021/04/Adobe_InDesign_CC_icon.svg-300x292.png 300w, https://linktek.com/wp-content/uploads/2021/04/Adobe_InDesign_CC_icon.svg.png 512w" sizes="(max-width: 300px) 100vw, 300px">
  12151. </a>
  12152. </div>
  12153. </div>
  12154. </div>
  12155. </div>
  12156. <div class="fl-module fl-module-rich-text fl-node-5e5f9fe464e4c" data-node="5e5f9fe464e4c">
  12157. <div class="fl-module-content fl-node-content">
  12158. <div class="fl-rich-text">
  12159. <p style="text-align: center;">InDesign</p>
  12160. </div>
  12161. </div>
  12162. </div>
  12163. </div>
  12164. </div>
  12165. <div class="fl-col fl-node-5da1c2314860f fl-col-small" data-node="5da1c2314860f">
  12166. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-5da1c2314861d" data-node="5da1c2314861d">
  12167. <div class="fl-module-content fl-node-content">
  12168. <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject">
  12169. <div class="fl-photo-content fl-photo-img-png">
  12170. <a href="/fix-broken-link-in-autocad/" target="_self" itemprop="url">
  12171. <img decoding="async" class="fl-photo-img wp-image-41285 size-full" src="https://linktek.com/wp-content/uploads/2021/04/AutoCAD_logo.png" alt="AutoCAD File Type" itemprop="image" height="200" width="200" title="AutoCAD File Type" srcset="https://linktek.com/wp-content/uploads/2021/04/AutoCAD_logo.png 200w, https://linktek.com/wp-content/uploads/2021/04/AutoCAD_logo-100x100.png 100w, https://linktek.com/wp-content/uploads/2021/04/AutoCAD_logo-150x150.png 150w" sizes="(max-width: 200px) 100vw, 200px">
  12172. </a>
  12173. </div>
  12174. </div>
  12175. </div>
  12176. </div>
  12177. <div class="fl-module fl-module-rich-text fl-node-5e5f9fe97a9fb" data-node="5e5f9fe97a9fb">
  12178. <div class="fl-module-content fl-node-content">
  12179. <div class="fl-rich-text">
  12180. <p style="text-align: center;">AutoCAD</p>
  12181. </div>
  12182. </div>
  12183. </div>
  12184. </div>
  12185. </div>
  12186. <div class="fl-col fl-node-5da1c23148611 fl-col-small" data-node="5da1c23148611">
  12187. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-5da1c2314861f" data-node="5da1c2314861f">
  12188. <div class="fl-module-content fl-node-content">
  12189. <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject">
  12190. <div class="fl-photo-content fl-photo-img-png">
  12191. <a href="/how-to-safely-move-revit-files-and-avoid-missing-data/" target="_self" itemprop="url">
  12192. <img decoding="async" class="fl-photo-img wp-image-41286 size-medium" src="https://linktek.com/wp-content/uploads/2021/04/5dfaf985d19f96ad99552429_89-892190_revit-3d-blog-revit-2018-logo-png-245x300.png" alt="Revit File Type" itemprop="image" height="300" width="245" title="Revit File Type" srcset="https://linktek.com/wp-content/uploads/2021/04/5dfaf985d19f96ad99552429_89-892190_revit-3d-blog-revit-2018-logo-png-245x300.png 245w, https://linktek.com/wp-content/uploads/2021/04/5dfaf985d19f96ad99552429_89-892190_revit-3d-blog-revit-2018-logo-png-600x733.png 600w, https://linktek.com/wp-content/uploads/2021/04/5dfaf985d19f96ad99552429_89-892190_revit-3d-blog-revit-2018-logo-png-838x1024.png 838w, https://linktek.com/wp-content/uploads/2021/04/5dfaf985d19f96ad99552429_89-892190_revit-3d-blog-revit-2018-logo-png-768x939.png 768w, https://linktek.com/wp-content/uploads/2021/04/5dfaf985d19f96ad99552429_89-892190_revit-3d-blog-revit-2018-logo-png-1256x1536.png 1256w, https://linktek.com/wp-content/uploads/2021/04/5dfaf985d19f96ad99552429_89-892190_revit-3d-blog-revit-2018-logo-png-1675x2048.png 1675w, https://linktek.com/wp-content/uploads/2021/04/5dfaf985d19f96ad99552429_89-892190_revit-3d-blog-revit-2018-logo-png.png 1632w" sizes="(max-width: 245px) 100vw, 245px">
  12193. </a>
  12194. </div>
  12195. </div>
  12196. </div>
  12197. </div>
  12198. <div class="fl-module fl-module-rich-text fl-node-5e5f9fefbac68" data-node="5e5f9fefbac68">
  12199. <div class="fl-module-content fl-node-content">
  12200. <div class="fl-rich-text">
  12201. <p style="text-align: center;">Revit</p>
  12202. </div>
  12203. </div>
  12204. </div>
  12205. </div>
  12206. </div>
  12207. <div class="fl-col fl-node-5da1c23148613 fl-col-small" data-node="5da1c23148613">
  12208. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-5da1c23148622" data-node="5da1c23148622">
  12209. <div class="fl-module-content fl-node-content">
  12210. <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject">
  12211. <div class="fl-photo-content fl-photo-img-png">
  12212. <a href="/linkfixer-advanced-shortcuts/" target="_self" itemprop="url">
  12213. <img decoding="async" class="fl-photo-img wp-image-41287 size-medium" src="https://linktek.com/wp-content/uploads/2021/04/OneDrive_Folder_Icon.svg_updated-300x215.png" alt="Shortcut File Types" itemprop="image" height="215" width="300" title="Shortcut File Types" srcset="https://linktek.com/wp-content/uploads/2021/04/OneDrive_Folder_Icon.svg_updated-300x215.png 300w, https://linktek.com/wp-content/uploads/2021/04/OneDrive_Folder_Icon.svg_updated-600x430.png 600w, https://linktek.com/wp-content/uploads/2021/04/OneDrive_Folder_Icon.svg_updated-1024x733.png 1024w, https://linktek.com/wp-content/uploads/2021/04/OneDrive_Folder_Icon.svg_updated-768x550.png 768w, https://linktek.com/wp-content/uploads/2021/04/OneDrive_Folder_Icon.svg_updated-1536x1100.png 1536w, https://linktek.com/wp-content/uploads/2021/04/OneDrive_Folder_Icon.svg_updated.png 1915w" sizes="(max-width: 300px) 100vw, 300px">
  12214. </a>
  12215. </div>
  12216. </div>
  12217. </div>
  12218. </div>
  12219. <div class="fl-module fl-module-rich-text fl-node-5e5f9e730f4ae" data-node="5e5f9e730f4ae">
  12220. <div class="fl-module-content fl-node-content">
  12221. <div class="fl-rich-text">
  12222. <p style="text-align: center;">Shortcuts</p>
  12223. </div>
  12224. </div>
  12225. </div>
  12226. </div>
  12227. </div>
  12228. </div>
  12229. </div>
  12230. </div>
  12231. </div>
  12232. <div class="fl-row fl-row-full-width fl-row-bg-color fl-node-qplduwj8gxaz logos-section blog-row supported-files-sec" data-node="qplduwj8gxaz">
  12233. <div class="fl-row-content-wrap">
  12234. <div class="uabb-row-separator uabb-top-row-separator">
  12235. </div>
  12236. <div class="fl-row-content fl-row-fixed-width fl-node-content">
  12237. <div class="fl-col-group fl-node-5da1c242ef90b fl-col-group-custom-width" data-node="5da1c242ef90b">
  12238. <div class="fl-col fl-node-5da1c242ef910 fl-col-small" data-node="5da1c242ef910">
  12239. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-5e5fa315da1d1" data-node="5e5fa315da1d1">
  12240. <div class="fl-module-content fl-node-content">
  12241. <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject">
  12242. <div class="fl-photo-content fl-photo-img-png">
  12243. <a href="/fix-broken-link-in-microsoft-visio/" target="_self" itemprop="url">
  12244. <img decoding="async" class="fl-photo-img wp-image-41290 size-medium" src="https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Visio_2019.svg-300x286.png" alt="Microsoft Visio File Type" itemprop="image" height="286" width="300" title="Microsoft Visio File Type" srcset="https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Visio_2019.svg-300x286.png 300w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Visio_2019.svg-600x572.png 600w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Visio_2019.svg-1024x975.png 1024w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Visio_2019.svg-768x732.png 768w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Visio_2019.svg-1536x1463.png 1536w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Office_Visio_2019.svg-2048x1951.png 2048w" sizes="(max-width: 300px) 100vw, 300px">
  12245. </a>
  12246. </div>
  12247. </div>
  12248. </div>
  12249. </div>
  12250. <div class="fl-module fl-module-rich-text fl-node-5e5fa2f741627" data-node="5e5fa2f741627">
  12251. <div class="fl-module-content fl-node-content">
  12252. <div class="fl-rich-text">
  12253. <p style="text-align: center;">Visio</p>
  12254. </div>
  12255. </div>
  12256. </div>
  12257. </div>
  12258. </div>
  12259. <div class="fl-col fl-node-5da1c242ef912 fl-col-small" data-node="5da1c242ef912">
  12260. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-5e5fa36ac1857" data-node="5e5fa36ac1857">
  12261. <div class="fl-module-content fl-node-content">
  12262. <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject">
  12263. <div class="fl-photo-content fl-photo-img-png">
  12264. <a href="/linkfixer-advanced-microsoft-project/" target="_self" itemprop="url">
  12265. <img decoding="async" class="fl-photo-img wp-image-41291 size-medium" src="https://linktek.com/wp-content/uploads/2021/04/Microsoft_Project_2019%E2%80%93present.svg-300x262.png" alt="Microsoft Project File Type" itemprop="image" height="262" width="300" title="Microsoft Project File Type" srcset="https://linktek.com/wp-content/uploads/2021/04/Microsoft_Project_2019&ndash;present.svg-300x262.png 300w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Project_2019&ndash;present.svg-600x524.png 600w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Project_2019&ndash;present.svg-1024x894.png 1024w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Project_2019&ndash;present.svg-768x670.png 768w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Project_2019&ndash;present.svg-1536x1341.png 1536w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Project_2019&ndash;present.svg-2048x1788.png 2048w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_Project_2019&ndash;present.svg.png 2000w" sizes="(max-width: 300px) 100vw, 300px">
  12266. </a>
  12267. </div>
  12268. </div>
  12269. </div>
  12270. </div>
  12271. <div class="fl-module fl-module-rich-text fl-node-5e5fa2fc4be24" data-node="5e5fa2fc4be24">
  12272. <div class="fl-module-content fl-node-content">
  12273. <div class="fl-rich-text">
  12274. <p style="text-align: center;">Project</p>
  12275. </div>
  12276. </div>
  12277. </div>
  12278. </div>
  12279. </div>
  12280. <div class="fl-col fl-node-5da1c242ef916 fl-col-small" data-node="5da1c242ef916">
  12281. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-5da1c242ef91c" data-node="5da1c242ef91c">
  12282. <div class="fl-module-content fl-node-content">
  12283. <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject">
  12284. <div class="fl-photo-content fl-photo-img-png">
  12285. <a href="/fix-broken-link-in-adobe-pagemaker/" target="_self" itemprop="url">
  12286. <img decoding="async" class="fl-photo-img wp-image-41292 size-full" src="https://linktek.com/wp-content/uploads/2021/04/Adobe_PageMaker_v9.0_icon.png" alt="PageMaker File Types" itemprop="image" height="225" width="225" title="PageMaker File Types" srcset="https://linktek.com/wp-content/uploads/2021/04/Adobe_PageMaker_v9.0_icon.png 225w, https://linktek.com/wp-content/uploads/2021/04/Adobe_PageMaker_v9.0_icon-100x100.png 100w, https://linktek.com/wp-content/uploads/2021/04/Adobe_PageMaker_v9.0_icon-150x150.png 150w" sizes="(max-width: 225px) 100vw, 225px">
  12287. </a>
  12288. </div>
  12289. </div>
  12290. </div>
  12291. </div>
  12292. <div class="fl-module fl-module-rich-text fl-node-5e5fa3023744d" data-node="5e5fa3023744d">
  12293. <div class="fl-module-content fl-node-content">
  12294. <div class="fl-rich-text">
  12295. <p style="text-align: center;">PageMaker</p>
  12296. </div>
  12297. </div>
  12298. </div>
  12299. </div>
  12300. </div>
  12301. <div class="fl-col fl-node-5da1c242ef914 fl-col-small" data-node="5da1c242ef914">
  12302. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-5e5fa5c35db26" data-node="5e5fa5c35db26">
  12303. <div class="fl-module-content fl-node-content">
  12304. <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject">
  12305. <div class="fl-photo-content fl-photo-img-png">
  12306. <img decoding="async" class="fl-photo-img wp-image-41293 size-medium" src="https://linktek.com/wp-content/uploads/2021/04/HTML5_logo_and_wordmark.svg_updated-271x300.png" alt="HTML file types" itemprop="image" height="300" width="271" title="HTML file types" srcset="https://linktek.com/wp-content/uploads/2021/04/HTML5_logo_and_wordmark.svg_updated-271x300.png 271w, https://linktek.com/wp-content/uploads/2021/04/HTML5_logo_and_wordmark.svg_updated-600x665.png 600w, https://linktek.com/wp-content/uploads/2021/04/HTML5_logo_and_wordmark.svg_updated-768x851.png 768w, https://linktek.com/wp-content/uploads/2021/04/HTML5_logo_and_wordmark.svg_updated.png 879w" sizes="(max-width: 271px) 100vw, 271px">
  12307. </div>
  12308. </div>
  12309. </div>
  12310. </div>
  12311. <div class="fl-module fl-module-rich-text fl-node-5e5fa30669be2" data-node="5e5fa30669be2">
  12312. <div class="fl-module-content fl-node-content">
  12313. <div class="fl-rich-text">
  12314. <p style="text-align: center;">HTML</p>
  12315. </div>
  12316. </div>
  12317. </div>
  12318. </div>
  12319. </div>
  12320. <div class="fl-col fl-node-5da1c242ef918 fl-col-small" data-node="5da1c242ef918">
  12321. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-5e5fa62cd97c9" data-node="5e5fa62cd97c9">
  12322. <div class="fl-module-content fl-node-content">
  12323. <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject">
  12324. <div class="fl-photo-content fl-photo-img-png">
  12325. <img decoding="async" class="fl-photo-img wp-image-41294 size-full" src="https://linktek.com/wp-content/uploads/2021/04/CSS3_logo_and_wordmark.svg_updated.png" alt="CSS file type logo" itemprop="image" height="415" width="360" title="CSS file type logo" srcset="https://linktek.com/wp-content/uploads/2021/04/CSS3_logo_and_wordmark.svg_updated.png 360w, https://linktek.com/wp-content/uploads/2021/04/CSS3_logo_and_wordmark.svg_updated-260x300.png 260w" sizes="(max-width: 360px) 100vw, 360px">
  12326. </div>
  12327. </div>
  12328. </div>
  12329. </div>
  12330. <div class="fl-module fl-module-rich-text fl-node-5e5fa30b6f8fb" data-node="5e5fa30b6f8fb">
  12331. <div class="fl-module-content fl-node-content">
  12332. <div class="fl-rich-text">
  12333. <p style="text-align: center;">CSS</p>
  12334. </div>
  12335. </div>
  12336. </div>
  12337. </div>
  12338. </div>
  12339. <div class="fl-col fl-node-5da1c242ef91a fl-col-small" data-node="5da1c242ef91a">
  12340. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-5da1c242ef920" data-node="5da1c242ef920">
  12341. <div class="fl-module-content fl-node-content">
  12342. <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject">
  12343. <div class="fl-photo-content fl-photo-img-png">
  12344. <img decoding="async" class="fl-photo-img wp-image-41295 size-medium" src="https://linktek.com/wp-content/uploads/2021/04/Microsoft_logo.svg-300x300.png" alt="Check Broken Links in ASP.Net File Type" itemprop="image" height="300" width="300" title="Check Broken Links in ASP.Net File Type" srcset="https://linktek.com/wp-content/uploads/2021/04/Microsoft_logo.svg-300x300.png 300w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_logo.svg-100x100.png 100w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_logo.svg-600x600.png 600w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_logo.svg-1024x1024.png 1024w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_logo.svg-150x150.png 150w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_logo.svg-768x768.png 768w, https://linktek.com/wp-content/uploads/2021/04/Microsoft_logo.svg.png 1200w" sizes="(max-width: 300px) 100vw, 300px">
  12345. </div>
  12346. </div>
  12347. </div>
  12348. </div>
  12349. <div class="fl-module fl-module-rich-text fl-node-5e5fa2c8d539d" data-node="5e5fa2c8d539d">
  12350. <div class="fl-module-content fl-node-content">
  12351. <div class="fl-rich-text">
  12352. <p style="text-align: center;">ASP.NET</p>
  12353. </div>
  12354. </div>
  12355. </div>
  12356. </div>
  12357. </div>
  12358. </div>
  12359. </div>
  12360. </div>
  12361. </div>
  12362. <div class="fl-row fl-row-full-width fl-row-bg-photo fl-node-7fwcvznr3mh1 fl-row-custom-height fl-row-align-center fl-row-bg-overlay fl-visible-desktop,large,medium,mobile lost-data-section fl-row-bg-fixed" data-node="7fwcvznr3mh1">
  12363. <div class="fl-row-content-wrap">
  12364. <div class="uabb-row-separator uabb-top-row-separator">
  12365. </div>
  12366. <div class="fl-row-content fl-row-fixed-width fl-node-content">
  12367. <div class="fl-col-group fl-node-b51fl0e84u3s" data-node="b51fl0e84u3s">
  12368. <div class="fl-col fl-node-b05la3jdgue6 fl-col-has-cols fl-visible-desktop,large,medium,mobile" data-node="b05la3jdgue6">
  12369. <div class="fl-col-content fl-node-content">
  12370. <div class="fl-col-group fl-node-jrvpzsulncmf fl-col-group-nested" data-node="jrvpzsulncmf">
  12371. <div class="fl-col fl-node-vmtgkzi7qsw0 fl-col-small fl-visible-desktop,large" data-node="vmtgkzi7qsw0">
  12372. <div class="fl-col-content fl-node-content"></div>
  12373. </div>
  12374. <div class="fl-col fl-node-mypb7g48tvnh fl-visible-desktop,large,medium,mobile" data-node="mypb7g48tvnh">
  12375. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-yeir3qd4jnb8 fl-visible-desktop,large,medium,mobile" data-node="yeir3qd4jnb8">
  12376. <div class="fl-module-content fl-node-content">
  12377. <h2 class="fl-heading">
  12378. <span class="fl-heading-text">Already Have Broken Links?</span>
  12379. </h2>
  12380. </div>
  12381. </div>
  12382. <div class="fl-module fl-module-heading fl-node-r3f891kgyzq4" data-node="r3f891kgyzq4">
  12383. <div class="fl-module-content fl-node-content">
  12384. <h5 class="fl-heading">
  12385. <span class="fl-heading-text">Already migrated to the Cloud, SharePoint, OpenText or new servers and now you have a hot mess of broken links, upset users or downtime? The <em>LinkFixer Advanced</em> application can fix your links and have you back in shape faster than anything else ever dreamed up.</span>
  12386. </h5>
  12387. </div>
  12388. </div>
  12389. <div class="fl-module fl-module-button fl-node-seiv0muh2oky lfatrial" data-node="seiv0muh2oky">
  12390. <div class="fl-module-content fl-node-content">
  12391. <div class="fl-button-wrap fl-button-width-auto fl-button-left">
  12392. <a href="" target="_self" class="fl-button" role="button">
  12393. <span class="fl-button-text">Get Your Free Trial</span>
  12394. </a>
  12395. </div>
  12396. </div>
  12397. </div>
  12398. </div>
  12399. </div>
  12400. </div>
  12401. </div>
  12402. </div>
  12403. </div>
  12404. </div>
  12405. </div>
  12406. </div>
  12407. <div class="fl-row fl-row-full-width fl-row-bg-photo fl-node-v5tgxpyfalqn fl-row-bg-overlay fl-row-bg-fixed" data-node="v5tgxpyfalqn">
  12408. <div class="fl-row-content-wrap">
  12409. <div class="uabb-row-separator uabb-top-row-separator">
  12410. </div>
  12411. <div class="fl-row-content fl-row-fixed-width fl-node-content">
  12412. <div class="fl-col-group fl-node-40pazi6ytefs" data-node="40pazi6ytefs">
  12413. <div class="fl-col fl-node-rxizfm0nu3k6 fl-col-has-cols fl-visible-desktop,large,medium,mobile" data-node="rxizfm0nu3k6">
  12414. <div class="fl-col-content fl-node-content">
  12415. <div class="fl-col-group fl-node-ztwn6hyx7kf1 fl-col-group-nested" data-node="ztwn6hyx7kf1">
  12416. <div class="fl-col fl-node-egvl417jwqzo fl-col-small fl-visible-desktop,large,medium,mobile" data-node="egvl417jwqzo">
  12417. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-html fl-node-sg93ehcrzxk1 fl-visible-desktop,large,medium,mobile" data-node="sg93ehcrzxk1">
  12418. <div class="fl-module-content fl-node-content">
  12419. <div class="fl-html">
  12420.    <div id="main-wrapper">
  12421.        <div class="container">
  12422.            <div id="counter_wrapper">
  12423.                <div id="counter" class="numbers__window__digit numbers__window__digit--1"></div>
  12424.            </div>
  12425.        </div>
  12426.    </div>
  12427.    
  12428.   <script>
  12429.        console.log('testing')
  12430.        var time_initial = 23740761; //Startingtime
  12431.       // var time_initial = 23740761; //Startingtime
  12432.        var fixPoint = 4624988778; // Global variable to store the current amount
  12433.        var addPerSecond = 1.95; // How much increasement will be added for each second (in this example: 36.6 MWh)
  12434.        var splitDigits = 1; // How much numbers are split inside single elements in DOM (from right to left)
  12435.  
  12436.        var curTime = Math.floor(Date.now() / 1000);  //Current unix timestamp
  12437.  
  12438.        var diffTime = curTime - time_initial;
  12439.        fixPoint = (diffTime * addPerSecond) + fixPoint;
  12440.        // Set the reference-date
  12441.        var year = 2529;
  12442.        var month = 4;
  12443.        var day = 27;
  12444.  
  12445.        // Calculate Reference date and amount
  12446.        var referenceDate = new Date(year, month - 1, day).getTime();
  12447.        var secondsSince = (Date.now() - referenceDate) / 10000 * addPerSecond;
  12448.  
  12449.        // Window ready-function
  12450.       /* document.ready = function (callback) {
  12451.            if (document.readyState != 'loading') {
  12452.                callback();
  12453.            }
  12454.            else {
  12455.                document.addEventListener('DOMContentLoaded', callback);
  12456.            }
  12457.        }; */
  12458.  
  12459.      
  12460.  
  12461.        // Split number in given brackets inside span-elements
  12462.        let previosNumbers = [];
  12463.        function splitNumber(number) {
  12464.            number = reverseNumbers(number);
  12465.            var pattern = ".{1," + splitDigits + "}";
  12466.            var numbers = number.match(RegExp(pattern, "g"));
  12467.            var output = "";
  12468.            for (var i = numbers.length - 1; i >= 0; i--) {
  12469.                output += "<span class=" + (previosNumbers[i] !== numbers[i] ? "shifting-number" : "") + ">" + reverseNumbers(numbers[i]) + "<b>,";
  12470.            }
  12471.            previosNumbers = numbers;
  12472.            return output;
  12473.        }
  12474.  
  12475.        // Reverse each number and return as string (Need for splitNumber-function)
  12476.        function reverseNumbers(number) {
  12477.            return number.toString().split('').reverse().join('');
  12478.        }
  12479.        
  12480.         // Start timer, as soon as window is ready
  12481.       /* document.ready(function () { */
  12482.            addSecond();
  12483.            setInterval(function () {
  12484.                addSecond();
  12485.            }, 500);
  12486.       /* });*/
  12487.  
  12488.        // Add amount per second and display inside "#counter"-element
  12489.        function addSecond() {
  12490.            let outputNumber = (fixPoint + secondsSince).toFixed(0)
  12491.            document.getElementById("counter").innerText = Number(outputNumber).toLocaleString("en-US");
  12492.            
  12493.            fixPoint += addPerSecond/2;
  12494.          
  12495.        }
  12496.   </script>
  12497.  
  12498. <style>
  12499.  
  12500. #counter {
  12501.    color:white !important;
  12502.    font-size:46px;
  12503. }
  12504.    #counter_wrapper {
  12505.        display: flex;
  12506.        flex-wrap: nowrap;
  12507.        text-align: center;
  12508.        margin: 0px auto;
  12509.        vertical-align: middle;
  12510.        align-items: end;
  12511.        justify-content: center;
  12512.    }
  12513.  
  12514.    #counter_wrapper #counter {
  12515.        font-weight: normal;
  12516.        height: auto;
  12517.        color: #333;
  12518.        display: block;
  12519.    }
  12520.  
  12521.    #counter_wrapper #counter span {
  12522.        font-family: 'Poppins', Tahoma, Geneva, Verdana, sans-serif;
  12523.        font-weight: 600;
  12524.        font-size: 40px;
  12525.        color: #fff;
  12526.        margin: 0 1px;
  12527.        text-align: center;
  12528.        display: inline-block;
  12529.        min-width: 20px;
  12530.    }
  12531.  
  12532.    #counter_wrapper #suffix {
  12533.        font-size: 40px;
  12534.        line-height: 1em;
  12535.        color: #a94aff;
  12536.    }
  12537.  
  12538.    #counter span:last-child {
  12539.        /* color: red; */
  12540.    }
  12541.  
  12542.    #counter span:last-of-type b:last-of-type {
  12543.        display: none;
  12544.    }
  12545.    #counter_wrapper{
  12546.        display: flex;
  12547.        justify-content: center;
  12548.        align-items: center;
  12549.    }
  12550.    #counter_wrapper #counter{
  12551.        height: 68px;
  12552.        overflow: hidden;
  12553.       /* background-color: #74AFAD; */
  12554.    }
  12555.    #counter_wrapper #counter span{
  12556.        padding: 8px 1px 8px 0px;
  12557.        position: relative;
  12558.    }
  12559.    
  12560.    #counter_wrapper #counter span.shifting-number{
  12561.        animation: pulse 500ms infinite;
  12562.    }
  12563.    @keyframes pulse {
  12564.      0% {
  12565.        opacity: 0
  12566.      }
  12567.      100% {
  12568.        opacity: 1;
  12569.      }
  12570.    }
  12571.     #counter_wrapper #counter span b{
  12572.        display: none;
  12573.    }
  12574.    #counter_wrapper #counter span:nth-last-of-type(3n+4) b{
  12575.        display: inline-block;
  12576.    }
  12577.  
  12578.    #date-ctn {
  12579.        width: 100%;
  12580.        text-align: left;
  12581.        font-size: 0.75em;
  12582.    }
  12583.  
  12584.    #ts,
  12585.    #currts,
  12586.    #basets {
  12587.        font-size: 0.75em;
  12588.    }
  12589.    
  12590.    
  12591. </style>
  12592.  
  12593. </div>
  12594. </div>
  12595. </div>
  12596. <div class="fl-module fl-module-heading fl-node-u3b60v8ok1yp fl-visible-desktop,large,medium,mobile" data-node="u3b60v8ok1yp">
  12597. <div class="fl-module-content fl-node-content">
  12598. <h2 class="fl-heading">
  12599. <span class="fl-heading-text">Links Fixed</span>
  12600. </h2>
  12601. </div>
  12602. </div>
  12603. </div>
  12604. </div>
  12605. <div class="fl-col fl-node-ymp0n2tgdsu5 fl-visible-desktop,large,medium,mobile" data-node="ymp0n2tgdsu5">
  12606. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-86mwk4vizudb fl-visible-desktop,large,medium,mobile" data-node="86mwk4vizudb">
  12607. <div class="fl-module-content fl-node-content">
  12608. <h4 class="fl-heading">
  12609. <span class="fl-heading-text">Estimated number of links fixed by <em>LinkFixer Advanced</em> across all data migration projects worldwide.</span>
  12610. </h4>
  12611. </div>
  12612. </div>
  12613. </div>
  12614. </div>
  12615. </div>
  12616. </div>
  12617. </div>
  12618. </div>
  12619. </div>
  12620. </div>
  12621. </div>
  12622. <div class="fl-row fl-row-fixed-width fl-row-bg-none fl-node-okz7yf5icr9l fl-visible-desktop,large,medium,mobile white-sections-res" data-node="okz7yf5icr9l">
  12623. <div class="fl-row-content-wrap">
  12624. <div class="uabb-row-separator uabb-top-row-separator">
  12625. </div>
  12626. <div class="fl-row-content fl-row-fixed-width fl-node-content">
  12627. <div class="fl-col-group fl-node-x7oyc624evlb" data-node="x7oyc624evlb">
  12628. <div class="fl-col fl-node-qd915hvju7ys fl-visible-desktop,large,medium,mobile" data-node="qd915hvju7ys">
  12629. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-uhmwnyiopct4 fl-visible-desktop,large,medium,mobile" data-node="uhmwnyiopct4">
  12630. <div class="fl-module-content fl-node-content">
  12631. <h2 class="fl-heading">
  12632. <span class="fl-heading-text">You have enough on your plate already.</span>
  12633. </h2>
  12634. </div>
  12635. </div>
  12636. <div class="fl-module fl-module-heading fl-node-si78mycv3qg4 fl-visible-desktop,large,medium,mobile" data-node="si78mycv3qg4">
  12637. <div class="fl-module-content fl-node-content">
  12638. <h4 class="fl-heading">
  12639. <span class="fl-heading-text">At least you can have your links handled for you.</span>
  12640. </h4>
  12641. </div>
  12642. </div>
  12643. <div class="fl-module fl-module-heading fl-node-ibmftok3647s fl-visible-desktop,large,medium,mobile" data-node="ibmftok3647s">
  12644. <div class="fl-module-content fl-node-content">
  12645. <h5 class="fl-heading">
  12646. <span class="fl-heading-text">Broken links happen, especially when migrating or restructuring a file system. This costs a <em>lot</em> to fix and even more in lost man-hours. Then there&rsquo;s the phone calls from upset users and angry bosses. <em>LinkFixer Advanced</em> can prevent all this grief.</span>
  12647. </h5>
  12648. </div>
  12649. </div>
  12650. <div class="fl-module fl-module-button fl-node-0atn3m4vgq7f" data-node="0atn3m4vgq7f">
  12651. <div class="fl-module-content fl-node-content">
  12652. <div class="fl-button-wrap fl-button-width-auto fl-button-center">
  12653. <a href="/linkfixer-advanced/" target="_self" class="fl-button" role="button">
  12654. <span class="fl-button-text">Learn More</span>
  12655. </a>
  12656. </div>
  12657. </div>
  12658. </div>
  12659. </div>
  12660. </div>
  12661. </div>
  12662. </div>
  12663. </div>
  12664. </div>
  12665. <div class="fl-row fl-row-full-width fl-row-bg-photo fl-node-dhl195zr0cjm fl-row-custom-height fl-row-align-center fl-row-bg-overlay fl-visible-desktop,large,medium,mobile lost-data-section fl-row-bg-fixed" data-node="dhl195zr0cjm">
  12666. <div class="fl-row-content-wrap">
  12667. <div class="uabb-row-separator uabb-top-row-separator">
  12668. </div>
  12669. <div class="fl-row-content fl-row-fixed-width fl-node-content">
  12670. <div class="fl-col-group fl-node-36iwaz2gxeo9" data-node="36iwaz2gxeo9">
  12671. <div class="fl-col fl-node-8hm7giq06d91 fl-col-has-cols fl-visible-desktop,large,medium,mobile" data-node="8hm7giq06d91">
  12672. <div class="fl-col-content fl-node-content">
  12673. <div class="fl-col-group fl-node-jzuk5123d47x fl-col-group-nested fl-col-group-custom-width" data-node="jzuk5123d47x">
  12674. <div class="fl-col fl-node-nfx714kcvzim fl-visible-desktop,large,medium,mobile" data-node="nfx714kcvzim">
  12675. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-rich-text fl-node-gwe0jk3alh9o fl-visible-desktop,large,medium,mobile" data-node="gwe0jk3alh9o">
  12676. <div class="fl-module-content fl-node-content">
  12677. <div class="fl-rich-text">
  12678. <p>You would never consider running without protecting your data from malware. And now you no longer have to go without protecting your data from broken file links.</p>
  12679. </div>
  12680. </div>
  12681. </div>
  12682. <div class="fl-module fl-module-button fl-node-oypn68w59kbu lfatrial" data-node="oypn68w59kbu">
  12683. <div class="fl-module-content fl-node-content">
  12684. <div class="fl-button-wrap fl-button-width-auto fl-button-left">
  12685. <a href="" target="_self" class="fl-button" role="button">
  12686. <span class="fl-button-text">Get Your Free Trial</span>
  12687. </a>
  12688. </div>
  12689. </div>
  12690. </div>
  12691. </div>
  12692. </div>
  12693. <div class="fl-col fl-node-ha2ymgwtldz8 fl-col-small fl-visible-desktop,large" data-node="ha2ymgwtldz8">
  12694. <div class="fl-col-content fl-node-content"></div>
  12695. </div>
  12696. </div>
  12697. </div>
  12698. </div>
  12699. </div>
  12700. </div>
  12701. </div>
  12702. </div>
  12703. <div class="fl-row fl-row-full-width fl-row-bg-color fl-node-nbcvy4fiht98 fl-visible-desktop,large,medium,mobile" data-node="nbcvy4fiht98">
  12704. <div class="fl-row-content-wrap">
  12705. <div class="uabb-row-separator uabb-top-row-separator">
  12706. </div>
  12707. <div class="fl-row-content fl-row-fixed-width fl-node-content">
  12708. <div class="fl-col-group fl-node-bfsi2ur6k7h5" data-node="bfsi2ur6k7h5">
  12709. <div class="fl-col fl-node-sgp4eoqf0lz2 fl-visible-desktop,large,medium,mobile" data-node="sgp4eoqf0lz2">
  12710. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-4giq8syl0e1c fl-visible-desktop,large,medium,mobile" data-node="4giq8syl0e1c">
  12711. <div class="fl-module-content fl-node-content">
  12712. <h2 class="fl-heading">
  12713. <span class="fl-heading-text">Success Story</span>
  12714. </h2>
  12715. </div>
  12716. </div>
  12717. </div>
  12718. </div>
  12719. </div>
  12720.  
  12721. <div class="fl-col-group fl-node-5t07jakzb8c9" data-node="5t07jakzb8c9">
  12722. <div class="fl-col fl-node-24q6dzfbsvh0 fl-col-small fl-visible-desktop,large,medium,mobile" data-node="24q6dzfbsvh0">
  12723. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-icon fl-node-enzg86lb97s5" data-node="enzg86lb97s5">
  12724. <div class="fl-module-content fl-node-content">
  12725. <div class="fl-icon-wrap">
  12726. <span class="fl-icon">
  12727. <i class="fas fa-quote-left" aria-hidden="true"></i>
  12728. </span>
  12729. </div>
  12730. </div>
  12731. </div>
  12732. </div>
  12733. </div>
  12734. <div class="fl-col fl-node-c60ei4sftux9 fl-visible-desktop,large,medium,mobile" data-node="c60ei4sftux9">
  12735. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-rich-text fl-node-j8ybztfr21vd" data-node="j8ybztfr21vd">
  12736. <div class="fl-module-content fl-node-content">
  12737. <div class="fl-rich-text">
  12738. <p style="text-align: center;">Thank you for helping me salvage several years worth of work! Without going into great detail, changes over time left me with files containing links that didn&rsquo;t exist anymore. In addition, I had files with broken links due to company name changes. All in all, this created many broken links and, what I thought was, an impossible job of fixing them all. This morning I purchased <em>LinkFixer</em>. By noon, the links were working! I now feel like broken links are a thing of the past. Thanks again for your great product and for the awesome support you provide.</p>
  12739. </div>
  12740. </div>
  12741. </div>
  12742. <div class="fl-module fl-module-photo fl-node-6dxayc9frv80 fl-visible-desktop,large,medium,mobile" data-node="6dxayc9frv80">
  12743. <div class="fl-module-content fl-node-content">
  12744. <div class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject">
  12745. <div class="fl-photo-content fl-photo-img-png">
  12746. <img decoding="async" class="fl-photo-img wp-image-30939 size-full" src="https://linktek.com/wp-content/uploads/2020/07/grant.png" alt="grant" itemprop="image" height="80" width="350" title="grant" srcset="https://linktek.com/wp-content/uploads/2020/07/grant.png 350w, https://linktek.com/wp-content/uploads/2020/07/grant-300x69.png 300w" sizes="(max-width: 350px) 100vw, 350px">
  12747. </div>
  12748. </div>
  12749. </div>
  12750. </div>
  12751. <div class="fl-module fl-module-rich-text fl-node-imgq56byfrkt fl-visible-desktop,large,medium,mobile" data-node="imgq56byfrkt">
  12752. <div class="fl-module-content fl-node-content">
  12753. <div class="fl-rich-text">
  12754. <p style="text-align: center;">Gail Johnson<br>
  12755. Programmer/Analyst<br>
  12756. <strong>Grant County Public Utility District</strong></p>
  12757. </div>
  12758. </div>
  12759. </div>
  12760. </div>
  12761. </div>
  12762. <div class="fl-col fl-node-o4aivbp3028x fl-col-small fl-visible-desktop,large" data-node="o4aivbp3028x">
  12763. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-icon fl-node-laj5uhzemcs9" data-node="laj5uhzemcs9">
  12764. <div class="fl-module-content fl-node-content">
  12765. <div class="fl-icon-wrap">
  12766. <span class="fl-icon">
  12767. <i class="fas fa-quote-right" aria-hidden="true"></i>
  12768. </span>
  12769. </div>
  12770. </div>
  12771. </div>
  12772. </div>
  12773. </div>
  12774. </div>
  12775. </div>
  12776. </div>
  12777. </div>
  12778. <div class="fl-row fl-row-full-width fl-row-bg-photo fl-node-3fm56gql2z41 fl-row-bg-overlay fl-row-bg-fixed" data-node="3fm56gql2z41">
  12779. <div class="fl-row-content-wrap">
  12780. <div class="uabb-row-separator uabb-top-row-separator">
  12781. </div>
  12782. <div class="fl-row-content fl-row-full-width fl-node-content">
  12783. <div class="fl-col-group fl-node-o4a0znyw6j2f" data-node="o4a0znyw6j2f">
  12784. <div id="howeasyvideo" class="fl-col fl-node-0sck8zax5ew3 fl-col-has-cols fl-visible-desktop,large,medium,mobile" data-node="0sck8zax5ew3">
  12785. <div class="fl-col-content fl-node-content"><div id="howeasyvideo" class="fl-module fl-module-heading fl-node-dhmwp5c43ovb" data-node="dhmwp5c43ovb">
  12786. <div class="fl-module-content fl-node-content">
  12787. <h2 class="fl-heading">
  12788. <span class="fl-heading-text">How <em>LinkFixer Advanced</em> Makes Your Life Easier:</span>
  12789. </h2>
  12790. </div>
  12791. </div>
  12792.  
  12793. <div class="fl-col-group fl-node-gvaxo179sic6 fl-col-group-nested" data-node="gvaxo179sic6">
  12794. <div class="fl-col fl-node-6v72j1pnlmag fl-col-small fl-visible-desktop,large" data-node="6v72j1pnlmag">
  12795. <div class="fl-col-content fl-node-content"></div>
  12796. </div>
  12797. <div class="fl-col fl-node-ei2mkfh97oja fl-visible-desktop,large,medium,mobile" data-node="ei2mkfh97oja">
  12798. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-un4wkv3bdz17" data-node="un4wkv3bdz17">
  12799. <div class="fl-module-content fl-node-content">
  12800. <h4 class="fl-heading">
  12801. <span class="fl-heading-text">1. Use whatever migration tools you like, and let <em>LinkFixer Advanced</em> handle your links for you.</span>
  12802. </h4>
  12803. </div>
  12804. </div>
  12805. <div class="fl-module fl-module-rich-text fl-node-nyjp8o6crmq1 fl-visible-desktop,large,medium,mobile" data-node="nyjp8o6crmq1">
  12806. <div class="fl-module-content fl-node-content">
  12807. <div class="fl-rich-text">
  12808. <p>Regardless of which applications you will be using for your data migration, <em>LinkFixer Advanced</em> can automatically preserve your links, thousands at a time and quite fast.<br>
  12809. Check out this video.</p>
  12810. </div>
  12811. </div>
  12812. </div>
  12813. <div class="fl-module fl-module-rich-text fl-node-qo8d2mwrbzpj" data-node="qo8d2mwrbzpj">
  12814. <div class="fl-module-content fl-node-content">
  12815. <div class="fl-rich-text">
  12816. <p style="text-align: center;"></p><div class="epyt-video-wrapper"><div id="_ytid_43927" width="800" height="450" data-origwidth="800" data-origheight="450" data-relstop="1" data-facadesrc="https://www.youtube.com/embed/aah7BgYEFaA?enablejsapi=1&amp;rel=0&amp;autoplay=0&amp;cc_load_policy=0&amp;cc_lang_pref=&amp;iv_load_policy=3&amp;loop=0&amp;modestbranding=1&amp;fs=1&amp;playsinline=0&amp;autohide=2&amp;theme=dark&amp;color=red&amp;controls=1&amp;" class="__youtube_prefs__ epyt-facade no-lazyload" data-epautoplay="1"><img decoding="async" data-spai-excluded="true" class="epyt-facade-poster skip-lazy" loading="lazy" alt="YouTube player" src="https://i.ytimg.com/vi/aah7BgYEFaA/maxresdefault.jpg"><button class="epyt-facade-play" aria-label="Play"><svg data-no-lazy="1" height="100%" version="1.1" viewbox="0 0 68 48" width="100%"><path class="ytp-large-play-button-bg" d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z" fill="#f00"></path><path d="M 45,24 27,14 27,34" fill="#fff"></path></svg></button></div></div>
  12817. </div>
  12818. </div>
  12819. </div>
  12820. <div class="fl-module fl-module-heading fl-node-8b6z7fc2y1i0 fl-visible-desktop,large,medium,mobile" data-node="8b6z7fc2y1i0">
  12821. <div class="fl-module-content fl-node-content">
  12822. <h4 class="fl-heading">
  12823. <span class="fl-heading-text">2.  You can use <em>LinkFixer Advanced</em> to migrate your data.</span>
  12824. </h4>
  12825. </div>
  12826. </div>
  12827. <div class="fl-module fl-module-rich-text fl-node-nxfhz02w8qkv fl-visible-desktop,large,medium,mobile" data-node="nxfhz02w8qkv">
  12828. <div class="fl-module-content fl-node-content">
  12829. <div class="fl-rich-text">
  12830. <p>The <em>LinkFixer Advanced</em> Move/Rename feature does just that &mdash; moves and renames thousands of files and folders at a time, without breaking a single file link while doing so.</p>
  12831. </div>
  12832. </div>
  12833. </div>
  12834. <div class="fl-module fl-module-rich-text fl-node-4t5xdhcvrqm2" data-node="4t5xdhcvrqm2">
  12835. <div class="fl-module-content fl-node-content">
  12836. <div class="fl-rich-text">
  12837. <p style="text-align: center;"></p><div class="epyt-video-wrapper"><div id="_ytid_71359" width="800" height="450" data-origwidth="800" data-origheight="450" data-relstop="1" data-facadesrc="https://www.youtube.com/embed/bOY2fSLw6Hk?enablejsapi=1&amp;rel=0&amp;autoplay=0&amp;cc_load_policy=0&amp;cc_lang_pref=&amp;iv_load_policy=3&amp;loop=0&amp;modestbranding=1&amp;fs=1&amp;playsinline=0&amp;autohide=2&amp;theme=dark&amp;color=red&amp;controls=1&amp;" class="__youtube_prefs__ epyt-facade no-lazyload" data-epautoplay="1"><img decoding="async" data-spai-excluded="true" class="epyt-facade-poster skip-lazy" loading="lazy" alt="YouTube player" src="https://i.ytimg.com/vi/bOY2fSLw6Hk/maxresdefault.jpg"><button class="epyt-facade-play" aria-label="Play"><svg data-no-lazy="1" height="100%" version="1.1" viewbox="0 0 68 48" width="100%"><path class="ytp-large-play-button-bg" d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z" fill="#f00"></path><path d="M 45,24 27,14 27,34" fill="#fff"></path></svg></button></div></div>
  12838. </div>
  12839. </div>
  12840. </div>
  12841. <div class="fl-module fl-module-heading fl-node-tud73nb4y5zx fl-visible-desktop,large,medium,mobile" data-node="tud73nb4y5zx">
  12842. <div class="fl-module-content fl-node-content">
  12843. <h4 class="fl-heading">
  12844. <span class="fl-heading-text">3.  Already completed a migration or file system restructuring and have lots of broken links to contend with?</span>
  12845. </h4>
  12846. </div>
  12847. </div>
  12848. <div class="fl-module fl-module-rich-text fl-node-frwinz3amk7b fl-visible-desktop,large,medium,mobile" data-node="frwinz3amk7b">
  12849. <div class="fl-module-content fl-node-content">
  12850. <div class="fl-rich-text">
  12851. <p>Fortunately, <em>LinkFixer Advanced</em> has a feature called &ldquo;Modify Links&rdquo; (also known as &ldquo;Disaster Recovery&rdquo;). Use it to create a series of custom rules (easy) and then let <em>LinkFixer Advanced</em> work its magic, fixing all your links in batch and faster than any other method ever devised.</p>
  12852. </div>
  12853. </div>
  12854. </div>
  12855. <div class="fl-module fl-module-rich-text fl-node-l8er0xo9bip2" data-node="l8er0xo9bip2">
  12856. <div class="fl-module-content fl-node-content">
  12857. <div class="fl-rich-text">
  12858. <p style="text-align: center;"></p><div class="epyt-video-wrapper"><div id="_ytid_53466" width="800" height="450" data-origwidth="800" data-origheight="450" data-relstop="1" data-facadesrc="https://www.youtube.com/embed/jaqXgjWzNqA?enablejsapi=1&amp;autoplay=0&amp;cc_load_policy=0&amp;cc_lang_pref=&amp;iv_load_policy=3&amp;loop=0&amp;modestbranding=1&amp;rel=0&amp;fs=1&amp;playsinline=0&amp;autohide=2&amp;theme=dark&amp;color=red&amp;controls=1&amp;" class="__youtube_prefs__ epyt-facade no-lazyload" data-epautoplay="1"><img decoding="async" data-spai-excluded="true" class="epyt-facade-poster skip-lazy" loading="lazy" alt="YouTube player" src="https://i.ytimg.com/vi/jaqXgjWzNqA/maxresdefault.jpg"><button class="epyt-facade-play" aria-label="Play"><svg data-no-lazy="1" height="100%" version="1.1" viewbox="0 0 68 48" width="100%"><path class="ytp-large-play-button-bg" d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z" fill="#f00"></path><path d="M 45,24 27,14 27,34" fill="#fff"></path></svg></button></div></div>
  12859. </div>
  12860. </div>
  12861. </div>
  12862. </div>
  12863. </div>
  12864. <div class="fl-col fl-node-gubp518nvezm fl-col-small fl-visible-desktop,large" data-node="gubp518nvezm">
  12865. <div class="fl-col-content fl-node-content"></div>
  12866. </div>
  12867. </div>
  12868. </div>
  12869. </div>
  12870. </div>
  12871. </div>
  12872. </div>
  12873. </div>
  12874. <div class="fl-row fl-row-full-width fl-row-bg-color fl-node-va9fs2y1tpzq white-sections-res" data-node="va9fs2y1tpzq">
  12875. <div class="fl-row-content-wrap">
  12876. <div class="uabb-row-separator uabb-top-row-separator">
  12877. </div>
  12878. <div class="fl-row-content fl-row-fixed-width fl-node-content">
  12879. <div class="fl-col-group fl-node-ls3gxadi9zcj" data-node="ls3gxadi9zcj">
  12880. <div class="fl-col fl-node-x6febtjmocz0 fl-visible-desktop,large,medium,mobile" data-node="x6febtjmocz0">
  12881. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-uv2a1mqlwe7n fl-visible-desktop,large,medium,mobile" data-node="uv2a1mqlwe7n">
  12882. <div class="fl-module-content fl-node-content">
  12883. <h2 class="fl-heading">
  12884. <span class="fl-heading-text">Find and fix broken links in millions of files quickly, easily and automatically!</span>
  12885. </h2>
  12886. </div>
  12887. </div>
  12888. <div class="fl-module fl-module-button fl-node-cjydzigf3lna lfatrial" data-node="cjydzigf3lna">
  12889. <div class="fl-module-content fl-node-content">
  12890. <div class="fl-button-wrap fl-button-width-auto fl-button-center">
  12891. <a href="" target="_self" class="fl-button" role="button">
  12892. <span class="fl-button-text">Get Your Free Trial</span>
  12893. </a>
  12894. </div>
  12895. </div>
  12896. </div>
  12897. <div class="fl-module fl-module-heading fl-node-k63ltzcbxvm4 fl-visible-desktop,large,medium,mobile" data-node="k63ltzcbxvm4">
  12898. <div class="fl-module-content fl-node-content">
  12899. <h6 class="fl-heading">
  12900. <span class="fl-heading-text">No credit card required</span>
  12901. </h6>
  12902. </div>
  12903. </div>
  12904. </div>
  12905. </div>
  12906. </div>
  12907. </div>
  12908. </div>
  12909. </div>
  12910. <div class="fl-row fl-row-full-width fl-row-bg-color fl-node-6ysg8vzt3nhb fl-visible-desktop,large,medium,mobile" data-node="6ysg8vzt3nhb">
  12911. <div class="fl-row-content-wrap">
  12912. <div class="uabb-row-separator uabb-top-row-separator">
  12913. </div>
  12914. <div class="fl-row-content fl-row-fixed-width fl-node-content">
  12915. <div class="fl-col-group fl-node-8k0qgcz9phnw" data-node="8k0qgcz9phnw">
  12916. <div class="fl-col fl-node-jm5vaeodtf79 fl-visible-desktop,large,medium,mobile" data-node="jm5vaeodtf79">
  12917. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-post-grid fl-node-s0mh1z5teapq fl-visible-desktop,large,medium,mobile blog-feed" data-node="s0mh1z5teapq">
  12918. <div class="fl-module-content fl-node-content">
  12919. <div class="fl-post-grid" itemscope="itemscope" itemtype="https://schema.org/Blog">
  12920. <div class="fl-post-grid-post fl-post-grid-image-above-title fl-post-align-default post-79679 post type-post status-publish format-standard has-post-thumbnail hentry category-blog" itemscope itemtype="https://schema.org/BlogPosting">
  12921.  
  12922. <meta itemscope itemprop="mainEntityOfPage" itemtype="https://schema.org/WebPage" itemid="https://linktek.com/the-falcon-fiasco-crowdstrike-outage-brings-millions-to-their-knees/" content="The Falcon Fiasco: CrowdStrike Outage Brings Millions to Their Knees"><meta itemprop="datePublished" content="2024-07-29"><meta itemprop="dateModified" content="2024-10-01"><div itemprop="publisher" itemscope itemtype="https://schema.org/Organization"><meta itemprop="name" content="LinkTek.com"><div itemprop="logo" itemscope itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="https://linktek.com/wp-content/uploads/2019/10/logo-dark-new.png"></div></div><div itemscope itemprop="author" itemtype="https://schema.org/Person"><meta itemprop="url" content="https://linktek.com/author/ed-clark/"><meta itemprop="name" content="Ed Clark"></div><div itemscope itemprop="image" itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="https://linktek.com/wp-content/uploads/2024/07/AdobeStock_890754272-scaled.jpg"><meta itemprop="width" content="2000"><meta itemprop="height" content="1167"></div><div itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter"><meta itemprop="interactionType" content="https://schema.org/CommentAction"><meta itemprop="userInteractionCount" content="0"></div> <div class="fl-post-grid-image">
  12923.  
  12924. <a href="https://linktek.com/the-falcon-fiasco-crowdstrike-outage-brings-millions-to-their-knees/" rel="bookmark" title="The Falcon Fiasco: CrowdStrike Outage Brings Millions to Their Knees">
  12925. <div class="bialty-container"><img decoding="async" width="2000" height="1167" src="https://linktek.com/wp-content/uploads/2024/07/AdobeStock_890754272-scaled.jpg" class="attachment-full size-full wp-post-image" alt="AdobeStock 890754272 scaled" srcset="https://linktek.com/wp-content/uploads/2024/07/AdobeStock_890754272-scaled.jpg 2000w, https://linktek.com/wp-content/uploads/2024/07/AdobeStock_890754272-300x175.jpg 300w, https://linktek.com/wp-content/uploads/2024/07/AdobeStock_890754272-1024x598.jpg 1024w, https://linktek.com/wp-content/uploads/2024/07/AdobeStock_890754272-768x448.jpg 768w, https://linktek.com/wp-content/uploads/2024/07/AdobeStock_890754272-1536x896.jpg 1536w, https://linktek.com/wp-content/uploads/2024/07/AdobeStock_890754272-2048x1195.jpg 2048w, https://linktek.com/wp-content/uploads/2024/07/AdobeStock_890754272-1080x630.jpg 1080w, https://linktek.com/wp-content/uploads/2024/07/AdobeStock_890754272-600x350.jpg 600w" sizes="(max-width: 2000px) 100vw, 2000px"></div>
  12926. </a>
  12927.  
  12928. </div>
  12929.  
  12930. <div class="fl-post-grid-text">
  12931.  
  12932. <h2 class="fl-post-grid-title" itemprop="headline">
  12933. <a href="https://linktek.com/the-falcon-fiasco-crowdstrike-outage-brings-millions-to-their-knees/" title="The Falcon Fiasco: CrowdStrike Outage Brings Millions to Their Knees">The Falcon Fiasco: CrowdStrike Outage Brings Millions to Their Knees</a>
  12934. </h2>
  12935.  
  12936. </div>
  12937. </div>
  12938.  
  12939. <div class="fl-post-grid-post fl-post-grid-image-above-title fl-post-align-default post-79036 post type-post status-publish format-standard has-post-thumbnail hentry category-blog" itemscope itemtype="https://schema.org/BlogPosting">
  12940.  
  12941. <meta itemscope itemprop="mainEntityOfPage" itemtype="https://schema.org/WebPage" itemid="https://linktek.com/why-sharepoint-online-migration-is-so-widespread/" content="Why SharePoint Online Migration Is So Widespread"><meta itemprop="datePublished" content="2024-06-27"><meta itemprop="dateModified" content="2024-08-13"><div itemprop="publisher" itemscope itemtype="https://schema.org/Organization"><meta itemprop="name" content="LinkTek.com"><div itemprop="logo" itemscope itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="https://linktek.com/wp-content/uploads/2019/10/logo-dark-new.png"></div></div><div itemscope itemprop="author" itemtype="https://schema.org/Person"><meta itemprop="url" content="https://linktek.com/author/ed-clark/"><meta itemprop="name" content="Ed Clark"></div><div itemscope itemprop="image" itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="https://linktek.com/wp-content/uploads/2024/06/Why-SharePoint-Online-Migration-Is-So-Widespread-Header-scaled.jpg"><meta itemprop="width" content="2000"><meta itemprop="height" content="1143"></div><div itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter"><meta itemprop="interactionType" content="https://schema.org/CommentAction"><meta itemprop="userInteractionCount" content="0"></div> <div class="fl-post-grid-image">
  12942.  
  12943. <a href="https://linktek.com/why-sharepoint-online-migration-is-so-widespread/" rel="bookmark" title="Why SharePoint Online Migration Is So Widespread">
  12944. <div class="bialty-container"><img decoding="async" width="2000" height="1143" src="https://linktek.com/wp-content/uploads/2024/06/Why-SharePoint-Online-Migration-Is-So-Widespread-Header-scaled.jpg" class="attachment-full size-full wp-post-image" alt="Why SharePoint Online Migration Is So Widespread Header scaled" srcset="https://linktek.com/wp-content/uploads/2024/06/Why-SharePoint-Online-Migration-Is-So-Widespread-Header-scaled.jpg 2000w, https://linktek.com/wp-content/uploads/2024/06/Why-SharePoint-Online-Migration-Is-So-Widespread-Header-300x171.jpg 300w, https://linktek.com/wp-content/uploads/2024/06/Why-SharePoint-Online-Migration-Is-So-Widespread-Header-1024x585.jpg 1024w, https://linktek.com/wp-content/uploads/2024/06/Why-SharePoint-Online-Migration-Is-So-Widespread-Header-768x439.jpg 768w, https://linktek.com/wp-content/uploads/2024/06/Why-SharePoint-Online-Migration-Is-So-Widespread-Header-1536x878.jpg 1536w, https://linktek.com/wp-content/uploads/2024/06/Why-SharePoint-Online-Migration-Is-So-Widespread-Header-2048x1170.jpg 2048w, https://linktek.com/wp-content/uploads/2024/06/Why-SharePoint-Online-Migration-Is-So-Widespread-Header-1080x617.jpg 1080w, https://linktek.com/wp-content/uploads/2024/06/Why-SharePoint-Online-Migration-Is-So-Widespread-Header-600x343.jpg 600w" sizes="(max-width: 2000px) 100vw, 2000px"></div>
  12945. </a>
  12946.  
  12947. </div>
  12948.  
  12949. <div class="fl-post-grid-text">
  12950.  
  12951. <h2 class="fl-post-grid-title" itemprop="headline">
  12952. <a href="https://linktek.com/why-sharepoint-online-migration-is-so-widespread/" title="Why SharePoint Online Migration Is So Widespread">Why SharePoint Online Migration Is So Widespread</a>
  12953. </h2>
  12954.  
  12955. </div>
  12956. </div>
  12957.  
  12958. <div class="fl-post-grid-post fl-post-grid-image-above-title fl-post-align-default post-78942 post type-post status-publish format-standard has-post-thumbnail hentry category-blog" itemscope itemtype="https://schema.org/BlogPosting">
  12959.  
  12960. <meta itemscope itemprop="mainEntityOfPage" itemtype="https://schema.org/WebPage" itemid="https://linktek.com/sharepoint-online-migration-checklist-practical-pointers/" content="SharePoint Online Migration Checklist: Practical Pointers"><meta itemprop="datePublished" content="2024-06-17"><meta itemprop="dateModified" content="2024-09-26"><div itemprop="publisher" itemscope itemtype="https://schema.org/Organization"><meta itemprop="name" content="LinkTek.com"><div itemprop="logo" itemscope itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="https://linktek.com/wp-content/uploads/2019/10/logo-dark-new.png"></div></div><div itemscope itemprop="author" itemtype="https://schema.org/Person"><meta itemprop="url" content="https://linktek.com/author/ed-clark/"><meta itemprop="name" content="Ed Clark"></div><div itemscope itemprop="image" itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="https://linktek.com/wp-content/uploads/2024/06/Migration-Pointers.jpg"><meta itemprop="width" content="1163"><meta itemprop="height" content="582"></div><div itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter"><meta itemprop="interactionType" content="https://schema.org/CommentAction"><meta itemprop="userInteractionCount" content="0"></div> <div class="fl-post-grid-image">
  12961.  
  12962. <a href="https://linktek.com/sharepoint-online-migration-checklist-practical-pointers/" rel="bookmark" title="SharePoint Online Migration Checklist: Practical Pointers">
  12963. <div class="bialty-container"><img decoding="async" width="1163" height="582" src="https://linktek.com/wp-content/uploads/2024/06/Migration-Pointers.jpg" class="attachment-full size-full wp-post-image" alt="Migration Pointers" srcset="https://linktek.com/wp-content/uploads/2024/06/Migration-Pointers.jpg 1163w, https://linktek.com/wp-content/uploads/2024/06/Migration-Pointers-300x150.jpg 300w, https://linktek.com/wp-content/uploads/2024/06/Migration-Pointers-1024x512.jpg 1024w, https://linktek.com/wp-content/uploads/2024/06/Migration-Pointers-768x384.jpg 768w, https://linktek.com/wp-content/uploads/2024/06/Migration-Pointers-1080x540.jpg 1080w, https://linktek.com/wp-content/uploads/2024/06/Migration-Pointers-600x300.jpg 600w" sizes="(max-width: 1163px) 100vw, 1163px"></div>
  12964. </a>
  12965.  
  12966. </div>
  12967.  
  12968. <div class="fl-post-grid-text">
  12969.  
  12970. <h2 class="fl-post-grid-title" itemprop="headline">
  12971. <a href="https://linktek.com/sharepoint-online-migration-checklist-practical-pointers/" title="SharePoint Online Migration Checklist: Practical Pointers">SharePoint Online Migration Checklist: Practical Pointers</a>
  12972. </h2>
  12973.  
  12974. </div>
  12975. </div>
  12976.  
  12977. <div class="fl-post-grid-sizer"></div>
  12978. </div>
  12979. <div class="fl-clear"></div>
  12980. </div>
  12981. </div>
  12982. </div>
  12983. </div>
  12984. </div>
  12985.  
  12986. <div class="fl-col-group fl-node-vocsm8efrbu4" data-node="vocsm8efrbu4">
  12987. <div class="fl-col fl-node-rpdtinhwf065 fl-visible-desktop,large,medium,mobile" data-node="rpdtinhwf065">
  12988. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-button fl-node-kd9msnt7qajo fl-visible-desktop,large,medium,mobile" data-node="kd9msnt7qajo">
  12989. <div class="fl-module-content fl-node-content">
  12990. <div class="fl-button-wrap fl-button-width-auto fl-button-center">
  12991. <a href="/it-tips-tricks/" target="_self" class="fl-button" role="button">
  12992. <span class="fl-button-text">Discover More IT Tips</span>
  12993. </a>
  12994. </div>
  12995. </div>
  12996. </div>
  12997. <div class="fl-module fl-module-html fl-node-apy2qifcxmk8 fl-visible-desktop,large,medium,mobile" data-node="apy2qifcxmk8">
  12998. <div class="fl-module-content fl-node-content">
  12999. <div class="fl-html">
  13000. <span class="floating-soc">
  13001. <a class="footer-social" href="https://www.facebook.com/fixyourlinks" target="_blank" rel="noopener"><img decoding="async" src="/wp-content/uploads/2022/02/fb.png" style="width:36px;height:36px;border:0;" alt="fb">
  13002. </a><a class="footer-social" href="https://twitter.com/FixYourLinks" target="_blank" rel="noopener"><img decoding="async" src="/wp-content/uploads/2022/02/twitter.png" style="width:36px;height:36px;border:0;" alt="twitter">
  13003. </a><a class="footer-social" href="https://www.linkedin.com/company/linktek" target="_blank" rel="noopener"><img decoding="async" src="/wp-content/uploads/2022/02/li.png" style="width:36px;height:36px;border:0;" alt="li">
  13004. </a> <a class="footer-social" href="https://www.youtube.com/c/LinkTek" target="_blank" rel="noopener"><img decoding="async" src="/wp-content/uploads/2022/02/yt.png" style="width:36px;height:36px;border:0;" alt="yt">
  13005. </a>
  13006. </span>
  13007. </div>
  13008. </div>
  13009. </div>
  13010. </div>
  13011. </div>
  13012. </div>
  13013. </div>
  13014. </div>
  13015. </div>
  13016. <div class="fl-row fl-row-full-width fl-row-bg-color fl-node-82d9njpo06s1" data-node="82d9njpo06s1">
  13017. <div class="fl-row-content-wrap">
  13018. <div class="uabb-row-separator uabb-top-row-separator">
  13019. </div>
  13020. <div class="fl-row-content fl-row-fixed-width fl-node-content">
  13021. <div class="fl-col-group fl-node-dpi1xl52twac" data-node="dpi1xl52twac">
  13022. <div class="fl-col fl-node-gh8ubal7oje3 fl-col-has-cols" data-node="gh8ubal7oje3">
  13023. <div class="fl-col-content fl-node-content">
  13024. <div class="fl-col-group fl-node-381h0z4atqci fl-col-group-nested" data-node="381h0z4atqci">
  13025. <div class="fl-col fl-node-lq57ir9gvnkd fl-col-small" data-node="lq57ir9gvnkd">
  13026. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-agky1pq8zxfi" data-node="agky1pq8zxfi">
  13027. <div class="fl-module-content fl-node-content">
  13028. <div class="fl-photo fl-photo-align-left" itemscope itemtype="https://schema.org/ImageObject">
  13029. <div class="fl-photo-content fl-photo-img-svg">
  13030. <img decoding="async" class="fl-photo-img wp-image-30933 size-full" src="https://linktek.com/wp-content/uploads/2020/07/white-logo.svg" alt="white-logo" itemprop="image" height="51" width="120" title="white-logo">
  13031. </div>
  13032. </div>
  13033. </div>
  13034. </div>
  13035. <div class="fl-module fl-module-rich-text fl-node-v0y8bul1nwf5" data-node="v0y8bul1nwf5">
  13036. <div class="fl-module-content fl-node-content">
  13037. <div class="fl-rich-text">
  13038. <p>1805 Drew Street<br>
  13039. Clearwater, Florida 33765<br>
  13040. Phone: 727-442-1822<br>
  13041. E-mail: LinkMail@LinkTek.com</p>
  13042. </div>
  13043. </div>
  13044. </div>
  13045. </div>
  13046. </div>
  13047. <div class="fl-col fl-node-wa1p9m63i40b fl-col-small" data-node="wa1p9m63i40b">
  13048. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-rich-text fl-node-7692tdu1ro03" data-node="7692tdu1ro03">
  13049. <div class="fl-module-content fl-node-content">
  13050. <div class="fl-rich-text">
  13051. <p><a href="/">Home</a></p>
  13052. <p><a href="https://linktek.com/linkfixer-advanced/">Product Info</a></p>
  13053. <p><a href="/technical-support">Support</a></p>
  13054. <p><a href="/contact-us/">Contact Us</a></p>
  13055. </div>
  13056. </div>
  13057. </div>
  13058. </div>
  13059. </div>
  13060. <div class="fl-col fl-node-7x8rj65tc9lp fl-col-small" data-node="7x8rj65tc9lp">
  13061. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-rich-text fl-node-1qodn7jf6bpa" data-node="1qodn7jf6bpa">
  13062. <div class="fl-module-content fl-node-content">
  13063. <div class="fl-rich-text">
  13064. <p><a href="/our-story/">Our Story</a></p>
  13065. <p><a href="/it-tips-tricks/">IT Tips &amp; Tricks</a></p>
  13066. <p><a href="/privacy-policy/" target="_blank" rel="noopener">Privacy Policy</a></p>
  13067. <p><a href="/sitemap/" target="_blank" rel="noopener">Sitemap</a></p>
  13068. </div>
  13069. </div>
  13070. </div>
  13071. </div>
  13072. </div>
  13073. <div class="fl-col fl-node-w4pdeaxgq7j9 fl-col-small" data-node="w4pdeaxgq7j9">
  13074. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-rich-text fl-node-rc75bvu9jd10" data-node="rc75bvu9jd10">
  13075. <div class="fl-module-content fl-node-content">
  13076. <div class="fl-rich-text">
  13077. <p>Connect With Us</p>
  13078. </div>
  13079. </div>
  13080. </div>
  13081. <div class="fl-module fl-module-icon fl-node-uosp64zqrnwt" data-node="uosp64zqrnwt">
  13082. <div class="fl-module-content fl-node-content">
  13083. <div class="fl-icon-wrap">
  13084. <span class="fl-icon">
  13085. <a href="https://www.facebook.com/LinkTek-654164298000351" target="_blank" tabindex="-1" aria-hidden="true" aria-labelledby="fl-icon-text-uosp64zqrnwt" rel="noopener">
  13086. <i class="fab fa-facebook-f" aria-hidden="true"></i>
  13087. </a>
  13088. </span>
  13089. <div id="fl-icon-text-uosp64zqrnwt" class="fl-icon-text">
  13090. <a href="https://www.facebook.com/LinkTek-654164298000351" target="_blank" class="fl-icon-text-link fl-icon-text-wrap" rel="noopener">
  13091. <p>Facebook</p> </a>
  13092. </div>
  13093. </div>
  13094. </div>
  13095. </div>
  13096. <div class="fl-module fl-module-icon fl-node-0j2b863nwzpa" data-node="0j2b863nwzpa">
  13097. <div class="fl-module-content fl-node-content">
  13098. <div class="fl-icon-wrap">
  13099. <span class="fl-icon">
  13100. <a href="https://twitter.com/FixYourLinks" target="_blank" tabindex="-1" aria-hidden="true" aria-labelledby="fl-icon-text-0j2b863nwzpa" rel="noopener">
  13101. <i class="fab fa-twitter" aria-hidden="true"></i>
  13102. </a>
  13103. </span>
  13104. <div id="fl-icon-text-0j2b863nwzpa" class="fl-icon-text">
  13105. <a href="https://twitter.com/FixYourLinks" target="_blank" class="fl-icon-text-link fl-icon-text-wrap" rel="noopener">
  13106. <p>Twitter</p> </a>
  13107. </div>
  13108. </div>
  13109. </div>
  13110. </div>
  13111. <div class="fl-module fl-module-icon fl-node-m3orpzjw7qcy" data-node="m3orpzjw7qcy">
  13112. <div class="fl-module-content fl-node-content">
  13113. <div class="fl-icon-wrap">
  13114. <span class="fl-icon">
  13115. <a href="https://www.linkedin.com/company/linktek" target="_blank" tabindex="-1" aria-hidden="true" aria-labelledby="fl-icon-text-m3orpzjw7qcy" rel="noopener">
  13116. <i class="fab fa-linkedin-in" aria-hidden="true"></i>
  13117. </a>
  13118. </span>
  13119. <div id="fl-icon-text-m3orpzjw7qcy" class="fl-icon-text">
  13120. <a href="https://www.linkedin.com/company/linktek" target="_blank" class="fl-icon-text-link fl-icon-text-wrap" rel="noopener">
  13121. <p>LinkedIn</p> </a>
  13122. </div>
  13123. </div>
  13124. </div>
  13125. </div>
  13126. <div class="fl-module fl-module-icon fl-node-ga3fq79eb8tj" data-node="ga3fq79eb8tj">
  13127. <div class="fl-module-content fl-node-content">
  13128. <div class="fl-icon-wrap">
  13129. <span class="fl-icon">
  13130. <a href="https://www.youtube.com/channel/UCZmx3A8OHxQve7gUoGiGj7Q" target="_blank" tabindex="-1" aria-hidden="true" aria-labelledby="fl-icon-text-ga3fq79eb8tj" rel="noopener">
  13131. <i class="fab fa-youtube" aria-hidden="true"></i>
  13132. </a>
  13133. </span>
  13134. <div id="fl-icon-text-ga3fq79eb8tj" class="fl-icon-text">
  13135. <a href="https://www.youtube.com/channel/UCZmx3A8OHxQve7gUoGiGj7Q" target="_blank" class="fl-icon-text-link fl-icon-text-wrap" rel="noopener">
  13136. <p>YouTube</p> </a>
  13137. </div>
  13138. </div>
  13139. </div>
  13140. </div>
  13141. </div>
  13142. </div>
  13143. </div>
  13144. </div>
  13145. </div>
  13146. </div>
  13147. </div>
  13148. </div>
  13149. </div>
  13150. <div class="fl-row fl-row-full-width fl-row-bg-color fl-node-5u8fedmj02rz" data-node="5u8fedmj02rz">
  13151. <div class="fl-row-content-wrap">
  13152. <div class="uabb-row-separator uabb-top-row-separator">
  13153. </div>
  13154. <div class="fl-row-content fl-row-fixed-width fl-node-content">
  13155. <div class="fl-col-group fl-node-5d9b23ebee654" data-node="5d9b23ebee654">
  13156. <div class="fl-col fl-node-5d9b23ebee658" data-node="5d9b23ebee658">
  13157. <div class="fl-col-content fl-node-content"><div class="fl-module fl-module-rich-text fl-node-5d9b23ebee65a" data-node="5d9b23ebee65a">
  13158. <div class="fl-module-content fl-node-content">
  13159. <div class="fl-rich-text">
  13160. <p>Copyright &copy; 2014&ndash;2024 LinkTek and IntelliProp. &nbsp;All Rights Reserved. &nbsp;LinkTek and <em>LinkFixer Advanced</em> are trademarks of IntelliProp. Microsoft is a registered trademark of Microsoft Corporation. Other trademarks are held by their respective owners. Not responsible for inadvertent errors. <a href="https://linktek.com/privacy-policy" target="_blank" rel="noopener">Privacy Policy</a>.</p>
  13161. </div>
  13162. </div>
  13163. </div>
  13164. </div>
  13165. </div>
  13166. </div>
  13167. </div>
  13168. </div>
  13169. </div>
  13170. </div><div class="uabb-js-breakpoint" style="display: none;"></div></div>
  13171. </div><!-- .fl-post-content -->
  13172. </article>
  13173.  
  13174. <!-- .fl-post -->
  13175. </div>
  13176. </div>
  13177. </div>
  13178.  
  13179.  
  13180. </div><!-- .fl-page-content -->
  13181. </div><!-- .fl-page -->
  13182.  
  13183. <script type="text/javascript" id="zsiqchat" data-type="lazy" data-src="data:text/javascript;base64,dmFyICR6b2hvPSR6b2hvIHx8IHt9OyR6b2hvLnNhbGVzaXEgPSAkem9oby5zYWxlc2lxIHx8IHt3aWRnZXRjb2RlOiJzaXE0NzYwZTgyNmFlM2Q3YTM3ZmZkYmU0NDkzYzUyNTU3MWFiNjc0YWQzODIwYWE1MjE3NWRjYmQwZjUxZThiMTI5IiwgdmFsdWVzOnt9LHJlYWR5OmZ1bmN0aW9uKCl7fX07dmFyIGQ9ZG9jdW1lbnQ7cz1kLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3MudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtzLmlkPSJ6c2lxc2NyaXB0IjtzLmRlZmVyPXRydWU7cy5zcmM9Imh0dHBzOi8vc2FsZXNpcS56b2hvcHVibGljLmNvbS93aWRnZXQ/cGx1Z2luX3NvdXJjZT13b3JkcHJlc3MiO3Q9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07dC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShzLHQpOw=="></script>
  13184. <script>
  13185. if (typeof MsCrmMkt !== 'undefined'){
  13186.    MsCrmMkt.MsCrmFormLoader.on("afterFormLoad", function(event) {
  13187. jQuery(event.formPlaceholder).find('input').each(function(id, field){
  13188.    var thiss = jQuery(field)
  13189.    
  13190.    
  13191.    if ( typeof(thiss.attr('title')) != 'undefined' ){
  13192.        if (thiss.attr('title') != ''){
  13193.            //console.log('1',field,thiss.attr('title'))
  13194.            var param = thiss.attr('title').toLowerCase().replace(/\s+/g,'_')
  13195.            var cookie_value = ''
  13196.    if (param != '' && Cookies.get(param) && Cookies.get(param) != ''){
  13197.        cookie_value = Cookies.get(param)
  13198.    }
  13199.                        
  13200.                        if (cookie_value == ''){
  13201.                        var param = thiss.attr('placeholder').toLowerCase().replace(/\s+/g,'_')
  13202.    if (param != '' && Cookies.get(param) && Cookies.get(param) != ''){
  13203.        cookie_value = Cookies.get(param)
  13204.    }
  13205.                        }
  13206.                        
  13207.                     thiss.val(cookie_value)
  13208.        }else{
  13209.            //console.log('2',field,thiss.attr('title'))
  13210.        }
  13211. }else{
  13212.        //console.log('3',field,thiss.attr('title'))
  13213. }
  13214. })
  13215. // handl_utm_all_params.forEach(function(param) {
  13216. //    jQuery('input[title='+param+']').val(Cookies.get(param));
  13217. // })
  13218. })
  13219. }
  13220. </script><div id="pum-42032" role="dialog" aria-modal="false"  class="pum pum-overlay pum-theme-485 pum-theme-default-theme popmake-overlay pum-click-to-close auto_open click_open" data-popmake="{&quot;id&quot;:42032,&quot;slug&quot;:&quot;ebook-download&quot;,&quot;theme_id&quot;:485,&quot;cookies&quot;:[{&quot;event&quot;:&quot;on_popup_close&quot;,&quot;settings&quot;:{&quot;name&quot;:&quot;pum-42032&quot;,&quot;key&quot;:&quot;&quot;,&quot;session&quot;:null,&quot;path&quot;:true,&quot;time&quot;:&quot;2 days&quot;}}],&quot;triggers&quot;:[{&quot;type&quot;:&quot;auto_open&quot;,&quot;settings&quot;:{&quot;cookie_name&quot;:[&quot;pum-42032&quot;],&quot;delay&quot;:&quot;3000&quot;}},{&quot;type&quot;:&quot;click_open&quot;,&quot;settings&quot;:{&quot;extra_selectors&quot;:&quot;.ebook&quot;}}],&quot;mobile_disabled&quot;:true,&quot;tablet_disabled&quot;:null,&quot;meta&quot;:{&quot;display&quot;:{&quot;stackable&quot;:false,&quot;overlay_disabled&quot;:false,&quot;scrollable_content&quot;:false,&quot;disable_reposition&quot;:false,&quot;size&quot;:&quot;medium&quot;,&quot;responsive_min_width&quot;:&quot;0%&quot;,&quot;responsive_min_width_unit&quot;:false,&quot;responsive_max_width&quot;:&quot;800px&quot;,&quot;responsive_max_width_unit&quot;:false,&quot;custom_width&quot;:&quot;640px&quot;,&quot;custom_width_unit&quot;:false,&quot;custom_height&quot;:&quot;px&quot;,&quot;custom_height_unit&quot;:false,&quot;custom_height_auto&quot;:false,&quot;location&quot;:&quot;center&quot;,&quot;position_from_trigger&quot;:false,&quot;position_top&quot;:&quot;100&quot;,&quot;position_left&quot;:&quot;0&quot;,&quot;position_bottom&quot;:&quot;0&quot;,&quot;position_right&quot;:&quot;0&quot;,&quot;position_fixed&quot;:false,&quot;animation_type&quot;:&quot;fade&quot;,&quot;animation_speed&quot;:&quot;350&quot;,&quot;animation_origin&quot;:&quot;center top&quot;,&quot;overlay_zindex&quot;:false,&quot;zindex&quot;:&quot;1999999999&quot;},&quot;close&quot;:{&quot;text&quot;:&quot;x&quot;,&quot;button_delay&quot;:&quot;0&quot;,&quot;overlay_click&quot;:&quot;1&quot;,&quot;esc_press&quot;:&quot;1&quot;,&quot;f4_press&quot;:false},&quot;click_open&quot;:[]}}">
  13221.  
  13222. <div id="popmake-42032" class="pum-container popmake theme-485 pum-responsive pum-responsive-medium responsive size-medium">
  13223.  
  13224. <div class="pum-content popmake-content" tabindex="0">
  13225. <div class="d-flex">
  13226. <div class="left">
  13227. <h2><span style="color: #ffffff;">Data Disasters Await: Protect Your Links or Face Catastrophe!</span></h2>
  13228. <p class="pop-subheading">Uncover Surprising Threats &amp; Solutions Inside Our eBook</p>
  13229. <p class="pop-text">Did you know, 65% of businesses face link issues during these processes? Don&#8217;t risk data loss. Grab our eBook, &#8220;How to Protect Links During Data Migration or File-System Reorganization &#8211; And What Can Happen If You Don&#8217;t.&#8221; Uncover vital insights for data safety.</p>
  13230. <p><a class="hidden-download" href="https://linktek.com/wp-content/uploads/2023/09/How-to-Protect-Links-During-Data-Migration-eBook.pdf" download="Mastering the art of link management">click here</a></p>
  13231. <script type="text/javascript"></script>
  13232.                <div class='gf_browser_unknown gform_wrapper gravity-theme gform-theme--no-framework' data-form-theme='gravity-theme' data-form-index='0' id='gform_wrapper_36' style='display:none'><div id='gf_36' class='gform_anchor' tabindex='-1'></div>
  13233.                        <div class='gform_heading'>
  13234.                            <h2 class="gform_title">Ebook Download - Popup</h2>
  13235.                            <p class='gform_description'></p>
  13236.                        </div><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_36' id='gform_36'  action='/#gf_36' data-formid='36' novalidate>
  13237. <input type='hidden' class='gforms-pum' value='{"closepopup":false,"closedelay":0,"openpopup":false,"openpopup_id":0}' />
  13238.                        <div class='gform-body gform_body'><div id='gform_fields_36' class='gform_fields top_label form_sublabel_below description_below validation_below'><div id="field_36_1" class="gfield gfield--type-email gfield--input-type-email gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible"  data-js-reload="field_36_1" ><label class='gfield_label gform-field-label' for='input_36_1'>Email<span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_email'>
  13239.                            <input name='input_1' id='input_36_1' type='email' value='' class='large'   placeholder='example@email.com' aria-required="true" aria-invalid="false"  />
  13240.                        </div></div><div id="field_36_11" class="gfield gfield--type-select gfield--input-type-select gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible"  data-js-reload="field_36_11" ><label class='gfield_label gform-field-label' for='input_36_11'>Where did you hear about us<span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_select'><select name='input_11' id='input_36_11' class='large gfield_select'    aria-required="true" aria-invalid="false" ><option value='' selected='selected' class='gf_placeholder'>Where did you hear about us?*</option><option value='Email' >Email</option><option value='Event' >Event</option><option value='Online Forum / Referring Website' >Online Forum / Referring Website</option><option value='Google Search' >Google Search</option><option value='Google Ad' >Google Ad</option><option value='Bing Ad' >Bing Ad</option><option value='Phone Call' >Phone Call</option><option value='Return Customer' >Return Customer</option><option value='Facebook' >Facebook</option><option value='LinkedIn' >LinkedIn</option><option value='X (Twitter)' >X (Twitter)</option><option value='YouTube' >YouTube</option><option value='YouTube Ad' >YouTube Ad</option><option value='Facebook Ad' >Facebook Ad</option><option value='Word of Mouth / Referral' >Word of Mouth / Referral</option><option value='Other' >Other</option></select></div></div><div id="field_36_12" class="gfield gfield--type-text gfield--input-type-text gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible"  data-js-reload="field_36_12" ><label class='gfield_label gform-field-label' for='input_36_12'>Please specify<span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_text'><input name='input_12' id='input_36_12' type='text' value='' class='large'    placeholder='Please specify*' aria-required="true" aria-invalid="false"   /> </div></div><div id="field_36_2" class="gfield gfield--type-hidden gfield--input-type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_36_2" ><div class='ginput_container ginput_container_text'><input name='input_2' id='input_36_2' type='hidden' class='gform_hidden'  aria-invalid="false" value='Ebook Download - Popup' /></div></div><div id="field_36_3" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_36_3" ><div class='ginput_container ginput_container_text'><input name='input_3' id='input_36_3' type='hidden' class='gform_hidden'  aria-invalid="false" value='https://linktek.com/' /></div></div><div id="field_36_4" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_36_4" ><div class='ginput_container ginput_container_text'><input name='input_4' id='input_36_4' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_36_10" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_36_10" ><div class='ginput_container ginput_container_text'><input name='input_10' id='input_36_10' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_36_9" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_36_9" ><div class='ginput_container ginput_container_text'><input name='input_9' id='input_36_9' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_36_5" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_36_5" ><div class='ginput_container ginput_container_text'><input name='input_5' id='input_36_5' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_36_6" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_36_6" ><div class='ginput_container ginput_container_text'><input name='input_6' id='input_36_6' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_36_7" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_36_7" ><div class='ginput_container ginput_container_text'><input name='input_7' id='input_36_7' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_36_8" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_36_8" ><div class='ginput_container ginput_container_text'><input name='input_8' id='input_36_8' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_36_13" class="gfield gfield--type-text field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_hidden"  data-js-reload="field_36_13" ><div class='admin-hidden-markup'><i class='gform-icon gform-icon--hidden'></i><span>Hidden</span></div><label class='gfield_label gform-field-label' for='input_36_13'>gclid</label><div class='ginput_container ginput_container_text'><input name='input_13' id='input_36_13' type='text' value='' class=''      aria-invalid="false"   /> </div></div></div></div>
  13241.        <div class='gform_footer before'> <input type='submit' id='gform_submit_button_36' class='gform_button button' value='Grab Your Shield - Download Now!'  onclick='if(window["gf_submitting_36"]){return false;}  if( !jQuery("#gform_36")[0].checkValidity || jQuery("#gform_36")[0].checkValidity()){window["gf_submitting_36"]=true;}  ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_36"]){return false;} if( !jQuery("#gform_36")[0].checkValidity || jQuery("#gform_36")[0].checkValidity()){window["gf_submitting_36"]=true;}  jQuery("#gform_36").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=36&amp;title=1&amp;description=1&amp;tabindex=0&amp;theme=gravity-theme' />
  13242.            <input type='hidden' class='gform_hidden' name='is_submit_36' value='1' />
  13243.            <input type='hidden' class='gform_hidden' name='gform_submit' value='36' />
  13244.            
  13245.            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' />
  13246.            <input type='hidden' class='gform_hidden' name='state_36' value='WyJ7XCIxMVwiOltcIjVhNmZhMjQ0MjdkZTE4OTQxNjU5Y2EzYmZhMTQzNTQ3XCIsXCI2ZTMxNjhiMWJlNzBhMDVkMTRjMjU0Yzg0ZTlkZjYzZlwiLFwiYTRlMTY5YzFhMzk5MzgzNWUyMWVkYzk4Njk5YzUyY2NcIixcImZkYmY0ZWFhNzQ5Njc1NmRiNDE2ODRlZDE3YzIyZTQ2XCIsXCI0MTI1ODM0MGY0OWI0NjE3ZTlhYjI5NmM4ZjkxZWI3MFwiLFwiODIzZDQ1YWMxMzZjODAxYWYyOWRlMDdmMzc0MjdiYzJcIixcImRkNTM4NzFlNzE4ZTk1MjcxZTMxZjIwYjNjNTYxMjVhXCIsXCJlNGI4ZjA0NzQ2ZTdlZDNmNWEzNGM3NmVlNTlkZjEyN1wiLFwiZjllMjA0ZjdhOWRjM2MwNzdiMGJkMzk2YzA3ZDBmMmZcIixcImE4ODU5M2RkZDZjZDZhNTc1OTVmMjYwNWNiZGM1NGQ3XCIsXCI2YmJmMDRjMWRmODQyYWI3OGFjMjIwZDE2OWIyMjI5NFwiLFwiMjU5ZDAzMmEzMDc3NWMwZGQzODIzZTk3Yzk4YjM1NTdcIixcIjlmOGFlY2MwNjRhYzNhYTM3NGQxOTViMWE1YjQzNjAwXCIsXCI5ZjJkMWU3YjIxOTgzMjFmNmMwNTI1NzE4NWQyZDMxYlwiLFwiYzhkOTI1Mjg1ZmU2MWU4ZjVhNzZmMmI0ZWIzNmEwMmVcIixcIjkyOGVhMzVlOGFiZTY5YWYzMDcxYmFmMTBkMzIxZGQwXCJdfSIsImU5ZWIwMTkzZTkxY2YyYmFlYzhiYzM2YzI3NTk3ZWUwIl0=' />
  13247.            <input type='hidden' class='gform_hidden' name='gform_target_page_number_36' id='gform_target_page_number_36' value='0' />
  13248.            <input type='hidden' class='gform_hidden' name='gform_source_page_number_36' id='gform_source_page_number_36' value='1' />
  13249.            <input type='hidden' name='gform_field_values' value='' />
  13250.            
  13251.        </div>
  13252.                        </form>
  13253.                        </div>
  13254.                <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_36' id='gform_ajax_frame_36' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe>
  13255.                <script>
  13256. gform.initializeOnLoaded( function() {gformInitSpinner( 36, 'https://linktek.com/wp-content/plugins/gravityforms/images/spinner.svg', true );jQuery('#gform_ajax_frame_36').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_36');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_36').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){form_content.find('form').css('opacity', 0);jQuery('#gform_wrapper_36').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_36').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_36').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_36').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_36').val();gformInitSpinner( 36, 'https://linktek.com/wp-content/plugins/gravityforms/images/spinner.svg', true );jQuery(document).trigger('gform_page_loaded', [36, current_page]);window['gf_submitting_36'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_36').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_36').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [36]);window['gf_submitting_36'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_36').text());}else{jQuery('#gform_36').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger("gform_pre_post_render", [{ formId: "36", currentPage: "current_page", abort: function() { this.preventDefault(); } }]);                if (event && event.defaultPrevented) {                return;         }        const gformWrapperDiv = document.getElementById( "gform_wrapper_36" );        if ( gformWrapperDiv ) {            const visibilitySpan = document.createElement( "span" );            visibilitySpan.id = "gform_visibility_test_36";            gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan );        }        const visibilityTestDiv = document.getElementById( "gform_visibility_test_36" );        let postRenderFired = false;                function triggerPostRender() {            if ( postRenderFired ) {                return;            }            postRenderFired = true;            jQuery( document ).trigger( 'gform_post_render', [36, current_page] );            gform.utils.trigger( { event: 'gform/postRender', native: false, data: { formId: 36, currentPage: current_page } } );            if ( visibilityTestDiv ) {                visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );            }        }        function debounce( func, wait, immediate ) {            var timeout;            return function() {                var context = this, args = arguments;                var later = function() {                    timeout = null;                    if ( !immediate ) func.apply( context, args );                };                var callNow = immediate && !timeout;                clearTimeout( timeout );                timeout = setTimeout( later, wait );                if ( callNow ) func.apply( context, args );            };        }        const debouncedTriggerPostRender = debounce( function() {            triggerPostRender();        }, 200 );        if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) {            const observer = new MutationObserver( ( mutations ) => {                mutations.forEach( ( mutation ) => {                    if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) {                        debouncedTriggerPostRender();                        observer.disconnect();                    }                });            });            observer.observe( document.body, {                attributes: true,                childList: false,                subtree: true,                attributeFilter: [ 'style', 'class' ],            });        } else {            triggerPostRender();        }    } );} );
  13257. </script>
  13258.  
  13259.    <script>
  13260.        jQuery( document ).ready(function() {
  13261.        setTimeout(() => { Cookies.get("organic_source") ? jQuery('#input_36_4').val(decodeURIComponent(Cookies.get("organic_source") ?? '')) : '';
  13262. Cookies.get("organic_source_str") ? jQuery('#input_36_10').val(decodeURIComponent(Cookies.get("organic_source_str") ?? '')) : '';
  13263. Cookies.get("utm_source") ? jQuery('#input_36_9').val(decodeURIComponent(Cookies.get("utm_source") ?? '')) : '';
  13264. Cookies.get("utm_medium") ? jQuery('#input_36_5').val(decodeURIComponent(Cookies.get("utm_medium") ?? '')) : '';
  13265. Cookies.get("utm_content") ? jQuery('#input_36_7').val(decodeURIComponent(Cookies.get("utm_content") ?? '')) : '';
  13266. Cookies.get("utm_term") ? jQuery('#input_36_8').val(decodeURIComponent(Cookies.get("utm_term") ?? '')) : '';
  13267. Cookies.get("gclid") ? jQuery('#input_36_13').val(decodeURIComponent(Cookies.get("gclid") ?? '')) : '';
  13268. }, 1000);
  13269.        })
  13270.    </script>
  13271.    
  13272. </div>
  13273. <div><img decoding="async" src="https://linktek.com/wp-content/uploads/2023/09/Linktek-ebook.jpeg" /></div>
  13274. </div>
  13275. </div>
  13276.  
  13277. <button type="button" class="pum-close popmake-close" aria-label="Close">
  13278. x </button>
  13279. </div>
  13280.  
  13281. </div>
  13282. <div id="pum-64086" role="dialog" aria-modal="false"  class="pum pum-overlay pum-theme-485 pum-theme-default-theme popmake-overlay pum-click-to-close click_open" data-popmake="{&quot;id&quot;:64086,&quot;slug&quot;:&quot;linkfixer-advanced-trial-request-popup-2024&quot;,&quot;theme_id&quot;:485,&quot;cookies&quot;:[],&quot;triggers&quot;:[{&quot;type&quot;:&quot;click_open&quot;,&quot;settings&quot;:{&quot;cookie_name&quot;:&quot;&quot;,&quot;extra_selectors&quot;:&quot;.lfatrial&quot;}}],&quot;mobile_disabled&quot;:null,&quot;tablet_disabled&quot;:null,&quot;meta&quot;:{&quot;display&quot;:{&quot;stackable&quot;:false,&quot;overlay_disabled&quot;:false,&quot;scrollable_content&quot;:false,&quot;disable_reposition&quot;:false,&quot;size&quot;:&quot;medium&quot;,&quot;responsive_min_width&quot;:&quot;0%&quot;,&quot;responsive_min_width_unit&quot;:false,&quot;responsive_max_width&quot;:&quot;100%&quot;,&quot;responsive_max_width_unit&quot;:false,&quot;custom_width&quot;:&quot;640px&quot;,&quot;custom_width_unit&quot;:false,&quot;custom_height&quot;:&quot;380px&quot;,&quot;custom_height_unit&quot;:false,&quot;custom_height_auto&quot;:false,&quot;location&quot;:&quot;center&quot;,&quot;position_from_trigger&quot;:false,&quot;position_top&quot;:&quot;40&quot;,&quot;position_left&quot;:&quot;0&quot;,&quot;position_bottom&quot;:&quot;0&quot;,&quot;position_right&quot;:&quot;0&quot;,&quot;position_fixed&quot;:false,&quot;animation_type&quot;:&quot;fade&quot;,&quot;animation_speed&quot;:&quot;350&quot;,&quot;animation_origin&quot;:&quot;center top&quot;,&quot;overlay_zindex&quot;:false,&quot;zindex&quot;:&quot;1999999999&quot;},&quot;close&quot;:{&quot;text&quot;:&quot;fas fa-times&quot;,&quot;button_delay&quot;:&quot;0&quot;,&quot;overlay_click&quot;:&quot;1&quot;,&quot;esc_press&quot;:&quot;1&quot;,&quot;f4_press&quot;:false},&quot;click_open&quot;:[]}}">
  13283.  
  13284. <div id="popmake-64086" class="pum-container popmake theme-485 pum-responsive pum-responsive-medium responsive size-medium">
  13285.  
  13286. <div class="pum-content popmake-content" tabindex="0">
  13287. <div class="popup-container">
  13288. <div class="popup-left">
  13289. <h2 style="font-size: 35px; color: #ffffff; font-weight: bold; padding-bottom: 20px;">Migrate with confidence that your links are safe with <em>LinkFixer Advanced</em></h2>
  13290. <ul class="popup-list" style="margin-bottom: 30px;">
  13291. <li style="margin-bottom: 10px;">Eliminate downtime caused by broken links.</li>
  13292. <li style="margin-bottom: 10px;">Minimize missing data following a migration.</li>
  13293. <li style="margin-bottom: 10px;">Reduce user complaints by preventing a common cause of data loss.</li>
  13294. </ul>
  13295. <p style="color: #ffffff; padding-bottom: 10px;"><em>LinkFixer Advanced™</em> protects your good links and automatically fixes your broken links in today’s most important file types.</p>
  13296. <p>To find out more, fill out the form, call us at <span style="color: #fff701;"><a style="color: #fff701;" href="tel:7274421822">727-442-1822</a></span> or email us at <span style="color: #fff701;"><a style="color: #fff701;" href="mailto:LinkMail@LinkTek.com">LinkMail@LinkTek.com</a></span></p>
  13297. <p><img decoding="async" class="size-medium alignleft" src="https://linktek.com/wp-content/uploads/2024/04/partner-optimized.png" alt="LinkFixer Advanced Supported Platforms" /></p>
  13298. </div>
  13299. <div class="popup-right">
  13300. <div class="form-wrapper">
  13301. <h2>Try <i>LinkFixer Advanced</i></h2>
  13302.  
  13303.                <div class='gf_browser_unknown gform_wrapper gravity-theme gform-theme--no-framework' data-form-theme='gravity-theme' data-form-index='0' id='gform_wrapper_4' style='display:none'><div id='gf_4' class='gform_anchor' tabindex='-1'></div>
  13304.                        <div class='gform_heading'>
  13305. <p class='gform_required_legend'>* indicates required fields</p>
  13306.                        </div><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_4' id='gform_4'  action='/#gf_4' data-formid='4' novalidate>
  13307. <input type='hidden' class='gforms-pum' value='{"closepopup":false,"closedelay":0,"openpopup":false,"openpopup_id":0}' />
  13308.                        <div class='gform-body gform_body'><div id='gform_fields_4' class='gform_fields top_label form_sublabel_below description_below validation_below'><fieldset id="field_4_1" class="gfield gfield--type-name gfield--input-type-name gfield--width-half gfield_contains_required field_sublabel_hidden_label gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible"  data-js-reload="field_4_1" ><legend class='gfield_label gform-field-label gfield_label_before_complex' >Name<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></legend><div class='ginput_complex ginput_container ginput_container--name no_prefix has_first_name no_middle_name no_last_name no_suffix gf_name_has_1 ginput_container_name gform-grid-row' id='input_4_1'>
  13309.                            
  13310.                            <span id='input_4_1_3_container' class='name_first gform-grid-col gform-grid-col--size-auto' >
  13311.                                                    <input type='text' name='input_1.3' id='input_4_1_3' value=''   aria-required='true'   placeholder='First Name*'  />
  13312.                                                    <label for='input_4_1_3' class='gform-field-label gform-field-label--type-sub hidden_sub_label screen-reader-text'>First</label>
  13313.                                                </span>
  13314.                            
  13315.                            
  13316.                            
  13317.                        </div></fieldset><fieldset id="field_4_79" class="gfield gfield--type-name gfield--input-type-name gfield--width-half field_sublabel_hidden_label gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible"  data-js-reload="field_4_79" ><legend class='gfield_label gform-field-label gfield_label_before_complex' >Name</legend><div class='ginput_complex ginput_container ginput_container--name no_prefix no_first_name no_middle_name has_last_name no_suffix gf_name_has_1 ginput_container_name gform-grid-row' id='input_4_79'>
  13318.                            
  13319.                            
  13320.                            
  13321.                            <span id='input_4_79_6_container' class='name_last gform-grid-col gform-grid-col--size-auto' >
  13322.                                                    <input type='text' name='input_79.6' id='input_4_79_6' value=''   aria-required='false'   placeholder='Last Name*'  />
  13323.                                                    <label for='input_4_79_6' class='gform-field-label gform-field-label--type-sub hidden_sub_label screen-reader-text'>Last</label>
  13324.                                                </span>
  13325.                            
  13326.                        </div></fieldset><div id="field_4_2" class="gfield gfield--type-email gfield--input-type-email gfield--width-half gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible"  data-js-reload="field_4_2" ><label class='gfield_label gform-field-label' for='input_4_2'>Work Email<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_email'>
  13327.                            <input name='input_2' id='input_4_2' type='email' value='' class='large'   placeholder='Work Email*' aria-required="true" aria-invalid="false"  />
  13328.                        </div></div><div id="field_4_3" class="gfield gfield--type-phone gfield--input-type-phone gfield--width-half gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible"  data-js-reload="field_4_3" ><label class='gfield_label gform-field-label' for='input_4_3'>Phone<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_phone'><input name='input_3' id='input_4_3' type='tel' value='' class='large'  placeholder='Phone*' aria-required="true" aria-invalid="false"   /></div></div><div id="field_4_6" class="gfield gfield--type-text gfield--input-type-text gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible"  data-js-reload="field_4_6" ><label class='gfield_label gform-field-label' for='input_4_6'>Company<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_text'><input name='input_6' id='input_4_6' type='text' value='' class='large'    placeholder='Company*' aria-required="true" aria-invalid="false"   /> </div></div><div id="field_4_88" class="gfield gfield--type-select gfield--input-type-select gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible"  data-js-reload="field_4_88" ><label class='gfield_label gform-field-label' for='input_4_88'>Where did you hear about us?<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_select'><select name='input_88' id='input_4_88' class='large gfield_select'    aria-required="true" aria-invalid="false" ><option value='' selected='selected' class='gf_placeholder'>Where did you hear about us?*</option><option value='Email' >Email</option><option value='Event' >Event</option><option value='Online Forum / Referring Website' >Online Forum / Referring Website</option><option value='Google Search' >Google Search</option><option value='Google Ad' >Google Ad</option><option value='Bing Ad' >Bing Ad</option><option value='Phone Call' >Phone Call</option><option value='Return Customer' >Return Customer</option><option value='Facebook' >Facebook</option><option value='LinkedIn' >LinkedIn</option><option value='X (Twitter)' >X (Twitter)</option><option value='YouTube' >YouTube</option><option value='YouTube Ad' >YouTube Ad</option><option value='Facebook Ad' >Facebook Ad</option><option value='Word of Mouth / Referral' >Word of Mouth / Referral</option><option value='Other' >Other</option></select></div></div><div id="field_4_89" class="gfield gfield--type-text gfield--input-type-text gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible"  data-js-reload="field_4_89" ><label class='gfield_label gform-field-label' for='input_4_89'>Please specify<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_text'><input name='input_89' id='input_4_89' type='text' value='' class='large'    placeholder='Please specify*' aria-required="true" aria-invalid="false"   /> </div></div><div id="field_4_84" class="gfield gfield--type-text gfield--input-type-text gfield--width-full form-title-target field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_hidden"  data-js-reload="field_4_84" ><div class='admin-hidden-markup'><i class='gform-icon gform-icon--hidden'></i><span>Hidden</span></div><label class='gfield_label gform-field-label' for='input_4_84'>Form Title</label><div class='ginput_container ginput_container_text'><input name='input_84' id='input_4_84' type='text' value='Request Your Free Trial' class='large'      aria-invalid="false"   /> </div></div><div id="field_4_85" class="gfield gfield--type-text gfield--input-type-text gfield--width-full form-url-target field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_hidden"  data-js-reload="field_4_85" ><div class='admin-hidden-markup'><i class='gform-icon gform-icon--hidden'></i><span>Hidden</span></div><label class='gfield_label gform-field-label' for='input_4_85'>Page URL</label><div class='ginput_container ginput_container_text'><input name='input_85' id='input_4_85' type='text' value='https://linktek.com/' class='large'      aria-invalid="false"   /> </div></div><div id="field_4_34" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_4_34" ><div class='ginput_container ginput_container_text'><input name='input_34' id='input_4_34' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_4_87" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_4_87" ><div class='ginput_container ginput_container_text'><input name='input_87' id='input_4_87' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_4_86" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_4_86" ><div class='ginput_container ginput_container_text'><input name='input_86' id='input_4_86' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_4_35" class="gfield gfield--type-hidden gfield--input-type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_4_35" ><div class='ginput_container ginput_container_text'><input name='input_35' id='input_4_35' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_4_36" class="gfield gfield--type-hidden gfield--input-type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_4_36" ><div class='ginput_container ginput_container_text'><input name='input_36' id='input_4_36' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_4_37" class="gfield gfield--type-hidden gfield--input-type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_4_37" ><div class='ginput_container ginput_container_text'><input name='input_37' id='input_4_37' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_4_38" class="gfield gfield--type-hidden gfield--input-type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_4_38" ><div class='ginput_container ginput_container_text'><input name='input_38' id='input_4_38' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_4_56" class="gfield gfield--type-hidden gfield--input-type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_4_56" ><div class='ginput_container ginput_container_text'><input name='input_56' id='input_4_56' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_4_71" class="gfield gfield--type-hidden gfield--input-type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_4_71" ><div class='ginput_container ginput_container_text'><input name='input_71' id='input_4_71' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_4_73" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_4_73" ><div class='ginput_container ginput_container_text'><input name='input_73' id='input_4_73' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_4_74" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_4_74" ><div class='ginput_container ginput_container_text'><input name='input_74' id='input_4_74' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_4_76" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_4_76" ><div class='ginput_container ginput_container_text'><input name='input_76' id='input_4_76' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_4_77" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_4_77" ><div class='ginput_container ginput_container_text'><input name='input_77' id='input_4_77' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_4_78" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_4_78" ><div class='ginput_container ginput_container_text'><input name='input_78' id='input_4_78' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_4_80" class="gfield gfield--type-hidden gfield--input-type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_4_80" ><div class='ginput_container ginput_container_text'><input name='input_80' id='input_4_80' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_4_81" class="gfield gfield--type-hidden gfield--input-type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_4_81" ><div class='ginput_container ginput_container_text'><input name='input_81' id='input_4_81' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_4_90" class="gfield gfield--type-text field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_hidden"  data-js-reload="field_4_90" ><div class='admin-hidden-markup'><i class='gform-icon gform-icon--hidden'></i><span>Hidden</span></div><label class='gfield_label gform-field-label' for='input_4_90'>gclid</label><div class='ginput_container ginput_container_text'><input name='input_90' id='input_4_90' type='text' value='' class=''      aria-invalid="false"   /> </div></div><div id="field_4_91" class="gfield gfield--type-honeypot gform_validation_container field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_4_91" ><label class='gfield_label gform-field-label' for='input_4_91'>Email</label><div class='ginput_container'><input name='input_91' id='input_4_91' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_4_91'>This field is for validation purposes and should be left unchanged.</div></div></div></div>
  13329.        <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_4' class='gform_button button' value='Request Free Trial'  onclick='if(window["gf_submitting_4"]){return false;}  if( !jQuery("#gform_4")[0].checkValidity || jQuery("#gform_4")[0].checkValidity()){window["gf_submitting_4"]=true;}  ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_4"]){return false;} if( !jQuery("#gform_4")[0].checkValidity || jQuery("#gform_4")[0].checkValidity()){window["gf_submitting_4"]=true;}  jQuery("#gform_4").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=4&amp;title=&amp;description=&amp;tabindex=0&amp;theme=gravity-theme' />
  13330.            <input type='hidden' class='gform_hidden' name='is_submit_4' value='1' />
  13331.            <input type='hidden' class='gform_hidden' name='gform_submit' value='4' />
  13332.            
  13333.            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' />
  13334.            <input type='hidden' class='gform_hidden' name='state_4' value='WyJ7XCI4OFwiOltcIjVhNmZhMjQ0MjdkZTE4OTQxNjU5Y2EzYmZhMTQzNTQ3XCIsXCI2ZTMxNjhiMWJlNzBhMDVkMTRjMjU0Yzg0ZTlkZjYzZlwiLFwiYTRlMTY5YzFhMzk5MzgzNWUyMWVkYzk4Njk5YzUyY2NcIixcImZkYmY0ZWFhNzQ5Njc1NmRiNDE2ODRlZDE3YzIyZTQ2XCIsXCI0MTI1ODM0MGY0OWI0NjE3ZTlhYjI5NmM4ZjkxZWI3MFwiLFwiODIzZDQ1YWMxMzZjODAxYWYyOWRlMDdmMzc0MjdiYzJcIixcImRkNTM4NzFlNzE4ZTk1MjcxZTMxZjIwYjNjNTYxMjVhXCIsXCJlNGI4ZjA0NzQ2ZTdlZDNmNWEzNGM3NmVlNTlkZjEyN1wiLFwiZjllMjA0ZjdhOWRjM2MwNzdiMGJkMzk2YzA3ZDBmMmZcIixcImE4ODU5M2RkZDZjZDZhNTc1OTVmMjYwNWNiZGM1NGQ3XCIsXCI2YmJmMDRjMWRmODQyYWI3OGFjMjIwZDE2OWIyMjI5NFwiLFwiMjU5ZDAzMmEzMDc3NWMwZGQzODIzZTk3Yzk4YjM1NTdcIixcIjlmOGFlY2MwNjRhYzNhYTM3NGQxOTViMWE1YjQzNjAwXCIsXCI5ZjJkMWU3YjIxOTgzMjFmNmMwNTI1NzE4NWQyZDMxYlwiLFwiYzhkOTI1Mjg1ZmU2MWU4ZjVhNzZmMmI0ZWIzNmEwMmVcIixcIjkyOGVhMzVlOGFiZTY5YWYzMDcxYmFmMTBkMzIxZGQwXCJdfSIsImY4ODZmZDAxNWYzNjc2NmM4NzdlYmEwZTY4OTUyNGQ0Il0=' />
  13335.            <input type='hidden' class='gform_hidden' name='gform_target_page_number_4' id='gform_target_page_number_4' value='0' />
  13336.            <input type='hidden' class='gform_hidden' name='gform_source_page_number_4' id='gform_source_page_number_4' value='1' />
  13337.            <input type='hidden' name='gform_field_values' value='' />
  13338.            
  13339.        </div>
  13340.                        </form>
  13341.                        </div>
  13342.                <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_4' id='gform_ajax_frame_4' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe>
  13343.                <script>
  13344. gform.initializeOnLoaded( function() {gformInitSpinner( 4, 'https://linktek.com/wp-content/plugins/gravityforms/images/spinner.svg', true );jQuery('#gform_ajax_frame_4').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_4');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_4').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){form_content.find('form').css('opacity', 0);jQuery('#gform_wrapper_4').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_4').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_4').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_4').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_4').val();gformInitSpinner( 4, 'https://linktek.com/wp-content/plugins/gravityforms/images/spinner.svg', true );jQuery(document).trigger('gform_page_loaded', [4, current_page]);window['gf_submitting_4'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_4').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_4').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [4]);window['gf_submitting_4'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_4').text());}else{jQuery('#gform_4').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger("gform_pre_post_render", [{ formId: "4", currentPage: "current_page", abort: function() { this.preventDefault(); } }]);                if (event && event.defaultPrevented) {                return;         }        const gformWrapperDiv = document.getElementById( "gform_wrapper_4" );        if ( gformWrapperDiv ) {            const visibilitySpan = document.createElement( "span" );            visibilitySpan.id = "gform_visibility_test_4";            gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan );        }        const visibilityTestDiv = document.getElementById( "gform_visibility_test_4" );        let postRenderFired = false;                function triggerPostRender() {            if ( postRenderFired ) {                return;            }            postRenderFired = true;            jQuery( document ).trigger( 'gform_post_render', [4, current_page] );            gform.utils.trigger( { event: 'gform/postRender', native: false, data: { formId: 4, currentPage: current_page } } );            if ( visibilityTestDiv ) {                visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );            }        }        function debounce( func, wait, immediate ) {            var timeout;            return function() {                var context = this, args = arguments;                var later = function() {                    timeout = null;                    if ( !immediate ) func.apply( context, args );                };                var callNow = immediate && !timeout;                clearTimeout( timeout );                timeout = setTimeout( later, wait );                if ( callNow ) func.apply( context, args );            };        }        const debouncedTriggerPostRender = debounce( function() {            triggerPostRender();        }, 200 );        if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) {            const observer = new MutationObserver( ( mutations ) => {                mutations.forEach( ( mutation ) => {                    if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) {                        debouncedTriggerPostRender();                        observer.disconnect();                    }                });            });            observer.observe( document.body, {                attributes: true,                childList: false,                subtree: true,                attributeFilter: [ 'style', 'class' ],            });        } else {            triggerPostRender();        }    } );} );
  13345. </script>
  13346.  
  13347.    <script>
  13348.        jQuery( document ).ready(function() {
  13349.        setTimeout(() => { Cookies.get("organic_source") ? jQuery('#input_4_34').val(decodeURIComponent(Cookies.get("organic_source") ?? '')) : '';
  13350. Cookies.get("organic_source_str") ? jQuery('#input_4_87').val(decodeURIComponent(Cookies.get("organic_source_str") ?? '')) : '';
  13351. Cookies.get("utm_source") ? jQuery('#input_4_86').val(decodeURIComponent(Cookies.get("utm_source") ?? '')) : '';
  13352. Cookies.get("utm_medium") ? jQuery('#input_4_35').val(decodeURIComponent(Cookies.get("utm_medium") ?? '')) : '';
  13353. Cookies.get("utm_term") ? jQuery('#input_4_36').val(decodeURIComponent(Cookies.get("utm_term") ?? '')) : '';
  13354. Cookies.get("utm_content") ? jQuery('#input_4_37').val(decodeURIComponent(Cookies.get("utm_content") ?? '')) : '';
  13355. Cookies.get("utm_campaign") ? jQuery('#input_4_38').val(decodeURIComponent(Cookies.get("utm_campaign") ?? '')) : '';
  13356. Cookies.get("utm_content") ? jQuery('#input_4_56').val(decodeURIComponent(Cookies.get("utm_content") ?? '')) : '';
  13357. Cookies.get("first_utm_medium") ? jQuery('#input_4_71').val(decodeURIComponent(Cookies.get("first_utm_medium") ?? '')) : '';
  13358. Cookies.get("first_utm_source") ? jQuery('#input_4_73').val(decodeURIComponent(Cookies.get("first_utm_source") ?? '')) : '';
  13359. Cookies.get("first_utm_campaign") ? jQuery('#input_4_74').val(decodeURIComponent(Cookies.get("first_utm_campaign") ?? '')) : '';
  13360. Cookies.get("gclid") ? jQuery('#input_4_78').val(decodeURIComponent(Cookies.get("gclid") ?? '')) : '';
  13361. Cookies.get("utm_campaignid") ? jQuery('#input_4_81').val(decodeURIComponent(Cookies.get("utm_campaignid") ?? '')) : '';
  13362. Cookies.get("gclid") ? jQuery('#input_4_90').val(decodeURIComponent(Cookies.get("gclid") ?? '')) : '';
  13363. }, 1000);
  13364.        })
  13365.    </script>
  13366.    
  13367. <p style="text-align: center; color: #333;">No Credit Card Required.</p>
  13368. <p style="text-align: center; color: #333;">We hate spam. We don&#8217;t sell e-mail addresses.</p>
  13369. <p><img decoding="async" class="zoho-form-partner-logo-form-new aligncenter" src="https://linktek.com/wp-content/uploads/2021/04/MicrosoftTeams-image.png" alt="" width="391" height="23" /></p>
  13370. <p style="text-align: center;">
  13371. <p class="aiicons" style="display: inline-block; text-align: center;"><span style="color: #000000;">Recommended by</span></p>
  13372. <p class="aiicons" style="display: inline-block; text-align: center;"><span style="color: #000000;"><img decoding="async" src="https://linktek.com/wp-content/uploads/2024/05/chatgpt-logo-chat-gpt-icon-on-white-background-free-vector.jpg" alt="" width="20" height="20" /> ChatGPT,</span></p>
  13373. <p class="aiicons" style="display: inline-block; text-align: center;"><span style="color: #000000;"><img decoding="async" src="https://linktek.com/wp-content/uploads/2024/05/Gemini.png" alt="" width="20" height="20" /> Gemini,</span></p>
  13374. <p class="aiicons" style="display: inline-block; text-align: center;"><span style="color: #000000;"><img decoding="async" src="https://linktek.com/wp-content/uploads/2024/05/claude_app_icon.png" alt="" width="20" height="20" /> Claude and</span></p>
  13375. <p class="aiicons" style="display: inline-block; text-align: center;"><span style="color: #000000;"><img decoding="async" src="https://linktek.com/wp-content/uploads/2024/05/CoPilot.png" alt="" width="20" height="20" /> Copilot</span></p>
  13376. </div>
  13377. </div>
  13378. </div>
  13379. </div>
  13380.  
  13381. <button type="button" class="pum-close popmake-close" aria-label="Close">
  13382. <i class="fas fa-times"></i> </button>
  13383. </div>
  13384.  
  13385. </div>
  13386. <div id="pum-70279" role="dialog" aria-modal="false"  class="pum pum-overlay pum-theme-485 pum-theme-default-theme popmake-overlay click_open" data-popmake="{&quot;id&quot;:70279,&quot;slug&quot;:&quot;technical-support-popup&quot;,&quot;theme_id&quot;:485,&quot;cookies&quot;:[],&quot;triggers&quot;:[{&quot;type&quot;:&quot;click_open&quot;,&quot;settings&quot;:{&quot;cookie_name&quot;:[&quot;pum-70279&quot;],&quot;extra_selectors&quot;:&quot;.support&quot;}}],&quot;mobile_disabled&quot;:null,&quot;tablet_disabled&quot;:null,&quot;meta&quot;:{&quot;display&quot;:{&quot;stackable&quot;:false,&quot;overlay_disabled&quot;:false,&quot;scrollable_content&quot;:false,&quot;disable_reposition&quot;:false,&quot;size&quot;:&quot;small&quot;,&quot;responsive_min_width&quot;:&quot;0%&quot;,&quot;responsive_min_width_unit&quot;:false,&quot;responsive_max_width&quot;:&quot;100%&quot;,&quot;responsive_max_width_unit&quot;:false,&quot;custom_width&quot;:&quot;640px&quot;,&quot;custom_width_unit&quot;:false,&quot;custom_height&quot;:&quot;380px&quot;,&quot;custom_height_unit&quot;:false,&quot;custom_height_auto&quot;:false,&quot;location&quot;:&quot;center&quot;,&quot;position_from_trigger&quot;:false,&quot;position_top&quot;:&quot;40&quot;,&quot;position_left&quot;:&quot;0&quot;,&quot;position_bottom&quot;:&quot;0&quot;,&quot;position_right&quot;:&quot;0&quot;,&quot;position_fixed&quot;:false,&quot;animation_type&quot;:&quot;fade&quot;,&quot;animation_speed&quot;:&quot;350&quot;,&quot;animation_origin&quot;:&quot;center top&quot;,&quot;overlay_zindex&quot;:false,&quot;zindex&quot;:&quot;1999999999&quot;},&quot;close&quot;:{&quot;text&quot;:&quot;fas fa-times&quot;,&quot;button_delay&quot;:&quot;0&quot;,&quot;overlay_click&quot;:false,&quot;esc_press&quot;:false,&quot;f4_press&quot;:false},&quot;click_open&quot;:[]}}">
  13387.  
  13388. <div id="popmake-70279" class="pum-container popmake theme-485 pum-responsive pum-responsive-small responsive size-small">
  13389.  
  13390. <div class="pum-content popmake-content" tabindex="0">
  13391. <h2 class="link-reporter-zoho-form-title" style="text-align: center;">LinkTek Technical Support</h2>
  13392. <p style="text-align: center;">
  13393.                <div class='gf_browser_unknown gform_wrapper gravity-theme gform-theme--no-framework contact-form_wrapper' data-form-theme='gravity-theme' data-form-index='0' id='gform_wrapper_53' ><div id='gf_53' class='gform_anchor' tabindex='-1'></div>
  13394.                        <div class='gform_heading'>
  13395. <p class='gform_required_legend'>* indicates required fields</p>
  13396.                        </div><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_53' id='gform_53' class='contact-form' action='/#gf_53' data-formid='53' novalidate>
  13397. <input type='hidden' class='gforms-pum' value='{"closepopup":false,"closedelay":0,"openpopup":false,"openpopup_id":0}' />
  13398.                        <div class='gform-body gform_body'><div id='gform_fields_53' class='gform_fields top_label form_sublabel_below description_below validation_below'><div id="field_53_66" class="gfield gfield--type-text gfield--input-type-text gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible"  data-js-reload="field_53_66" ><label class='gfield_label gform-field-label' for='input_53_66'>Subject<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_text'><input name='input_66' id='input_53_66' type='text' value='' class='large'    placeholder='Subject*' aria-required="true" aria-invalid="false"   /> </div></div><div id="field_53_2" class="gfield gfield--type-email gfield--input-type-email gfield--width-half gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible"  data-js-reload="field_53_2" ><label class='gfield_label gform-field-label' for='input_53_2'>Email<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_email'>
  13399.                            <input name='input_2' id='input_53_2' type='email' value='' class='large'   placeholder='Email*' aria-required="true" aria-invalid="false"  />
  13400.                        </div></div><div id="field_53_67" class="gfield gfield--type-text gfield--input-type-text gfield--width-half gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible"  data-js-reload="field_53_67" ><label class='gfield_label gform-field-label' for='input_53_67'>Contact Name<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_text'><input name='input_67' id='input_53_67' type='text' value='' class='large'    placeholder='Contact Name*' aria-required="true" aria-invalid="false"   /> </div></div><div id="field_53_69" class="gfield gfield--type-select gfield--input-type-select gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible"  data-js-reload="field_53_69" ><label class='gfield_label gform-field-label' for='input_53_69'>Which best describes you?<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_select'><select name='input_69' id='input_53_69' class='large gfield_select'    aria-required="true" aria-invalid="false" ><option value='' selected='selected' class='gf_placeholder'>Which best describes you?*</option><option value='I&#039;m looking for assistance with my purchased license of LinkFixer Advanced' >I&#039;m looking for assistance with my purchased license of LinkFixer Advanced</option><option value='I&#039;m looking for assistance with my trial of LinkFixer Advanced' >I&#039;m looking for assistance with my trial of LinkFixer Advanced</option><option value='I don&#039;t own LinkFixer Advanced yet and I&#039;m looking for more information' >I don&#039;t own LinkFixer Advanced yet and I&#039;m looking for more information</option></select></div></div><div id="field_53_5" class="gfield gfield--type-textarea gfield--input-type-textarea gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible"  data-js-reload="field_53_5" ><label class='gfield_label gform-field-label' for='input_53_5'>Description<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_textarea'><textarea name='input_5' id='input_53_5' class='textarea small'    placeholder='Description*' aria-required="true" aria-invalid="false"   rows='10' cols='50'></textarea></div></div><div id="field_53_68" class="gfield gfield--type-fileupload gfield--input-type-fileupload gfield--width-full field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_53_68" ><label class='gfield_label gform-field-label' for='input_53_68'>Attach a file</label><div class='ginput_container ginput_container_fileupload'><input type='hidden' name='MAX_FILE_SIZE' value='20971520' /><input name='input_68' id='input_53_68' type='file' class='large' aria-describedby="gfield_upload_rules_53_68" onchange='javascript:gformValidateFileSize( this, 20971520 );'  /><span class='gfield_description gform_fileupload_rules' id='gfield_upload_rules_53_68'>Max. file size: 20 MB.</span><div class='gfield_description validation_message gfield_validation_message validation_message--hidden-on-empty' id='live_validation_message_53_68'></div></div></div><div id="field_53_62" class="gfield gfield--type-text gfield--input-type-text gfield--width-full form-title-target field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_hidden"  data-js-reload="field_53_62" ><div class='admin-hidden-markup'><i class='gform-icon gform-icon--hidden'></i><span>Hidden</span></div><label class='gfield_label gform-field-label' for='input_53_62'>Form Title</label><div class='ginput_container ginput_container_text'><input name='input_62' id='input_53_62' type='text' value='LinkTek Technical Support' class='large'    placeholder='LinkFixer Advanced Technical Support'  aria-invalid="false"   /> </div></div><div id="field_53_63" class="gfield gfield--type-text gfield--input-type-text gfield--width-full form-url-target field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_hidden"  data-js-reload="field_53_63" ><div class='admin-hidden-markup'><i class='gform-icon gform-icon--hidden'></i><span>Hidden</span></div><label class='gfield_label gform-field-label' for='input_53_63'>Page URL</label><div class='ginput_container ginput_container_text'><input name='input_63' id='input_53_63' type='text' value='' class='large'      aria-invalid="false"   /> </div></div><div id="field_53_64" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_53_64" ><div class='ginput_container ginput_container_text'><input name='input_64' id='input_53_64' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_53_32" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_53_32" ><div class='ginput_container ginput_container_text'><input name='input_32' id='input_53_32' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_53_31" class="gfield gfield--type-hidden gfield--input-type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_53_31" ><div class='ginput_container ginput_container_text'><input name='input_31' id='input_53_31' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_53_65" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_53_65" ><div class='ginput_container ginput_container_text'><input name='input_65' id='input_53_65' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_53_33" class="gfield gfield--type-hidden gfield--input-type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_53_33" ><div class='ginput_container ginput_container_text'><input name='input_33' id='input_53_33' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_53_34" class="gfield gfield--type-hidden gfield--input-type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_53_34" ><div class='ginput_container ginput_container_text'><input name='input_34' id='input_53_34' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_53_35" class="gfield gfield--type-hidden gfield--input-type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_53_35" ><div class='ginput_container ginput_container_text'><input name='input_35' id='input_53_35' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_53_50" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_53_50" ><div class='ginput_container ginput_container_text'><input name='input_50' id='input_53_50' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_53_51" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_53_51" ><div class='ginput_container ginput_container_text'><input name='input_51' id='input_53_51' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_53_52" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_53_52" ><div class='ginput_container ginput_container_text'><input name='input_52' id='input_53_52' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_53_17" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_53_17" ><div class='ginput_container ginput_container_text'><input name='input_17' id='input_53_17' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_53_53" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_53_53" ><div class='ginput_container ginput_container_text'><input name='input_53' id='input_53_53' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_53_54" class="gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_53_54" ><div class='ginput_container ginput_container_text'><input name='input_54' id='input_53_54' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_53_56" class="gfield gfield--type-hidden gfield--input-type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_53_56" ><div class='ginput_container ginput_container_text'><input name='input_56' id='input_53_56' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_53_57" class="gfield gfield--type-hidden gfield--input-type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_53_57" ><div class='ginput_container ginput_container_text'><input name='input_57' id='input_53_57' type='hidden' class='gform_hidden'  aria-invalid="false" value='' /></div></div><div id="field_53_70" class="gfield gfield--type-text field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_hidden"  data-js-reload="field_53_70" ><div class='admin-hidden-markup'><i class='gform-icon gform-icon--hidden'></i><span>Hidden</span></div><label class='gfield_label gform-field-label' for='input_53_70'>gclid</label><div class='ginput_container ginput_container_text'><input name='input_70' id='input_53_70' type='text' value='' class=''      aria-invalid="false"   /> </div></div><div id="field_53_71" class="gfield gfield--type-honeypot gform_validation_container field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible"  data-js-reload="field_53_71" ><label class='gfield_label gform-field-label' for='input_53_71'>Email</label><div class='ginput_container'><input name='input_71' id='input_53_71' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_53_71'>This field is for validation purposes and should be left unchanged.</div></div></div></div>
  13401.        <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_53' class='gform_button button' value='Send'  onclick='if(window["gf_submitting_53"]){return false;}  if( !jQuery("#gform_53")[0].checkValidity || jQuery("#gform_53")[0].checkValidity()){window["gf_submitting_53"]=true;}  ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_53"]){return false;} if( !jQuery("#gform_53")[0].checkValidity || jQuery("#gform_53")[0].checkValidity()){window["gf_submitting_53"]=true;}  jQuery("#gform_53").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=53&amp;title=&amp;description=&amp;tabindex=0&amp;theme=gravity-theme' />
  13402.            <input type='hidden' class='gform_hidden' name='is_submit_53' value='1' />
  13403.            <input type='hidden' class='gform_hidden' name='gform_submit' value='53' />
  13404.            
  13405.            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' />
  13406.            <input type='hidden' class='gform_hidden' name='state_53' value='WyJ7XCI2OVwiOltcIjFiMjNkOWY4OTU0ZmE0YzJkOTA4YTMzNTIwNDYyMGE5XCIsXCJlYjA2ZDUyODVhYTVmNmQyOGJiZWJiM2U0NDk1MzE2ZVwiLFwiNGYzMDQ3MTYzOTFiYjQ5NmQ2Mzk1YmM4YmY2YThlYzdcIl19IiwiZTY4ZDZlOTg2ZWE4NjNhODRhNWEyYmU5MzdjMDljMWYiXQ==' />
  13407.            <input type='hidden' class='gform_hidden' name='gform_target_page_number_53' id='gform_target_page_number_53' value='0' />
  13408.            <input type='hidden' class='gform_hidden' name='gform_source_page_number_53' id='gform_source_page_number_53' value='1' />
  13409.            <input type='hidden' name='gform_field_values' value='' />
  13410.            
  13411.        </div>
  13412.                        </form>
  13413.                        </div>
  13414.                <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_53' id='gform_ajax_frame_53' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe>
  13415.                <script>
  13416. gform.initializeOnLoaded( function() {gformInitSpinner( 53, 'https://linktek.com/wp-content/plugins/gravityforms/images/spinner.svg', true );jQuery('#gform_ajax_frame_53').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_53');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_53').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_53').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_53').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_53').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_53').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_53').val();gformInitSpinner( 53, 'https://linktek.com/wp-content/plugins/gravityforms/images/spinner.svg', true );jQuery(document).trigger('gform_page_loaded', [53, current_page]);window['gf_submitting_53'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_53').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_53').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [53]);window['gf_submitting_53'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_53').text());}else{jQuery('#gform_53').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger("gform_pre_post_render", [{ formId: "53", currentPage: "current_page", abort: function() { this.preventDefault(); } }]);                if (event && event.defaultPrevented) {                return;         }        const gformWrapperDiv = document.getElementById( "gform_wrapper_53" );        if ( gformWrapperDiv ) {            const visibilitySpan = document.createElement( "span" );            visibilitySpan.id = "gform_visibility_test_53";            gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan );        }        const visibilityTestDiv = document.getElementById( "gform_visibility_test_53" );        let postRenderFired = false;                function triggerPostRender() {            if ( postRenderFired ) {                return;            }            postRenderFired = true;            jQuery( document ).trigger( 'gform_post_render', [53, current_page] );            gform.utils.trigger( { event: 'gform/postRender', native: false, data: { formId: 53, currentPage: current_page } } );            if ( visibilityTestDiv ) {                visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );            }        }        function debounce( func, wait, immediate ) {            var timeout;            return function() {                var context = this, args = arguments;                var later = function() {                    timeout = null;                    if ( !immediate ) func.apply( context, args );                };                var callNow = immediate && !timeout;                clearTimeout( timeout );                timeout = setTimeout( later, wait );                if ( callNow ) func.apply( context, args );            };        }        const debouncedTriggerPostRender = debounce( function() {            triggerPostRender();        }, 200 );        if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) {            const observer = new MutationObserver( ( mutations ) => {                mutations.forEach( ( mutation ) => {                    if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) {                        debouncedTriggerPostRender();                        observer.disconnect();                    }                });            });            observer.observe( document.body, {                attributes: true,                childList: false,                subtree: true,                attributeFilter: [ 'style', 'class' ],            });        } else {            triggerPostRender();        }    } );} );
  13417. </script>
  13418.  
  13419.    <script>
  13420.        jQuery( document ).ready(function() {
  13421.        setTimeout(() => { Cookies.get("organic_source") ? jQuery('#input_53_64').val(decodeURIComponent(Cookies.get("organic_source") ?? '')) : '';
  13422. Cookies.get("organic_source_str") ? jQuery('#input_53_32').val(decodeURIComponent(Cookies.get("organic_source_str") ?? '')) : '';
  13423. Cookies.get("utm_source") ? jQuery('#input_53_31').val(decodeURIComponent(Cookies.get("utm_source") ?? '')) : '';
  13424. Cookies.get("utm_medium") ? jQuery('#input_53_65').val(decodeURIComponent(Cookies.get("utm_medium") ?? '')) : '';
  13425. Cookies.get("utm_term") ? jQuery('#input_53_33').val(decodeURIComponent(Cookies.get("utm_term") ?? '')) : '';
  13426. Cookies.get("utm_content") ? jQuery('#input_53_34').val(decodeURIComponent(Cookies.get("utm_content") ?? '')) : '';
  13427. Cookies.get("utm_campaign") ? jQuery('#input_53_35').val(decodeURIComponent(Cookies.get("utm_campaign") ?? '')) : '';
  13428. Cookies.get("first_utm_medium") ? jQuery('#input_53_50').val(decodeURIComponent(Cookies.get("first_utm_medium") ?? '')) : '';
  13429. Cookies.get("first_utm_source") ? jQuery('#input_53_51').val(decodeURIComponent(Cookies.get("first_utm_source") ?? '')) : '';
  13430. Cookies.get("first_utm_campaign") ? jQuery('#input_53_52').val(decodeURIComponent(Cookies.get("first_utm_campaign") ?? '')) : '';
  13431. Cookies.get("gclid") ? jQuery('#input_53_54').val(decodeURIComponent(Cookies.get("gclid") ?? '')) : '';
  13432. Cookies.get("utm_campaignid") ? jQuery('#input_53_57').val(decodeURIComponent(Cookies.get("utm_campaignid") ?? '')) : '';
  13433. Cookies.get("gclid") ? jQuery('#input_53_70').val(decodeURIComponent(Cookies.get("gclid") ?? '')) : '';
  13434. }, 1000);
  13435.        })
  13436.    </script>
  13437.    </p>
  13438. </div>
  13439.  
  13440. <button type="button" class="pum-close popmake-close" aria-label="Close">
  13441. <i class="fas fa-times"></i> </button>
  13442. </div>
  13443.  
  13444. </div>
  13445. <div id="pum-27853" role="dialog" aria-modal="false"  class="pum pum-overlay pum-theme-485 pum-theme-default-theme popmake-overlay click_open" data-popmake="{&quot;id&quot;:27853,&quot;slug&quot;:&quot;video-4&quot;,&quot;theme_id&quot;:485,&quot;cookies&quot;:[],&quot;triggers&quot;:[{&quot;type&quot;:&quot;click_open&quot;,&quot;settings&quot;:{&quot;cookie_name&quot;:&quot;&quot;,&quot;extra_selectors&quot;:&quot;a.watch.video-four&quot;}}],&quot;mobile_disabled&quot;:null,&quot;tablet_disabled&quot;:null,&quot;meta&quot;:{&quot;display&quot;:{&quot;stackable&quot;:false,&quot;overlay_disabled&quot;:false,&quot;scrollable_content&quot;:false,&quot;disable_reposition&quot;:false,&quot;size&quot;:&quot;medium&quot;,&quot;responsive_min_width&quot;:&quot;0%&quot;,&quot;responsive_min_width_unit&quot;:false,&quot;responsive_max_width&quot;:&quot;100%&quot;,&quot;responsive_max_width_unit&quot;:false,&quot;custom_width&quot;:&quot;640px&quot;,&quot;custom_width_unit&quot;:false,&quot;custom_height&quot;:&quot;380px&quot;,&quot;custom_height_unit&quot;:false,&quot;custom_height_auto&quot;:false,&quot;location&quot;:&quot;center top&quot;,&quot;position_from_trigger&quot;:false,&quot;position_top&quot;:&quot;100&quot;,&quot;position_left&quot;:&quot;0&quot;,&quot;position_bottom&quot;:&quot;0&quot;,&quot;position_right&quot;:&quot;0&quot;,&quot;position_fixed&quot;:false,&quot;animation_type&quot;:&quot;fade&quot;,&quot;animation_speed&quot;:&quot;350&quot;,&quot;animation_origin&quot;:&quot;center top&quot;,&quot;overlay_zindex&quot;:false,&quot;zindex&quot;:&quot;1999999999&quot;},&quot;close&quot;:{&quot;text&quot;:&quot;&quot;,&quot;button_delay&quot;:&quot;0&quot;,&quot;overlay_click&quot;:false,&quot;esc_press&quot;:false,&quot;f4_press&quot;:false},&quot;click_open&quot;:[]}}">
  13446.  
  13447. <div id="popmake-27853" class="pum-container popmake theme-485 pum-responsive pum-responsive-medium responsive size-medium">
  13448.  
  13449. <div class="pum-content popmake-content" tabindex="0">
  13450. <div class="video-pop"><iframe id="ytplayer" src="" width="720" height="405" frameborder="0" allowfullscreen="allowfullscreen" data-src="https://www.youtube.com/embed/jt19PPhaBXg?controls=0"><span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"></span></iframe></div>
  13451. </div>
  13452.  
  13453. <button type="button" class="pum-close popmake-close" aria-label="Close">
  13454. CLOSE </button>
  13455. </div>
  13456.  
  13457. </div>
  13458. <div id="pum-34724" role="dialog" aria-modal="false"  class="pum pum-overlay pum-theme-485 pum-theme-default-theme popmake-overlay click_open" data-popmake="{&quot;id&quot;:34724,&quot;slug&quot;:&quot;ppc-landing-page-video&quot;,&quot;theme_id&quot;:485,&quot;cookies&quot;:[],&quot;triggers&quot;:[{&quot;type&quot;:&quot;click_open&quot;,&quot;settings&quot;:{&quot;extra_selectors&quot;:&quot;a.watch.video-ppc-landing&quot;}}],&quot;mobile_disabled&quot;:null,&quot;tablet_disabled&quot;:null,&quot;meta&quot;:{&quot;display&quot;:{&quot;stackable&quot;:false,&quot;overlay_disabled&quot;:false,&quot;scrollable_content&quot;:false,&quot;disable_reposition&quot;:false,&quot;size&quot;:&quot;medium&quot;,&quot;responsive_min_width&quot;:&quot;0%&quot;,&quot;responsive_min_width_unit&quot;:false,&quot;responsive_max_width&quot;:&quot;100%&quot;,&quot;responsive_max_width_unit&quot;:false,&quot;custom_width&quot;:&quot;640px&quot;,&quot;custom_width_unit&quot;:false,&quot;custom_height&quot;:&quot;380px&quot;,&quot;custom_height_unit&quot;:false,&quot;custom_height_auto&quot;:false,&quot;location&quot;:&quot;center top&quot;,&quot;position_from_trigger&quot;:false,&quot;position_top&quot;:&quot;100&quot;,&quot;position_left&quot;:&quot;0&quot;,&quot;position_bottom&quot;:&quot;0&quot;,&quot;position_right&quot;:&quot;0&quot;,&quot;position_fixed&quot;:false,&quot;animation_type&quot;:&quot;fade&quot;,&quot;animation_speed&quot;:&quot;350&quot;,&quot;animation_origin&quot;:&quot;center top&quot;,&quot;overlay_zindex&quot;:false,&quot;zindex&quot;:&quot;1999999999&quot;},&quot;close&quot;:{&quot;text&quot;:&quot;&quot;,&quot;button_delay&quot;:&quot;0&quot;,&quot;overlay_click&quot;:false,&quot;esc_press&quot;:false,&quot;f4_press&quot;:false},&quot;click_open&quot;:[]}}">
  13459.  
  13460. <div id="popmake-34724" class="pum-container popmake theme-485 pum-responsive pum-responsive-medium responsive size-medium">
  13461.  
  13462. <div class="pum-content popmake-content" tabindex="0">
  13463. <div class="video-pop"><iframe id="ytplayer" src="" width="720" height="405" frameborder="0" allowfullscreen="allowfullscreen" data-src="https://www.youtube.com/embed/Y0I4dS2mBVM?controls=0"><span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"></span></iframe></div>
  13464. </div>
  13465.  
  13466. <button type="button" class="pum-close popmake-close" aria-label="Close">
  13467. CLOSE </button>
  13468. </div>
  13469.  
  13470. </div>
  13471. <script>
  13472. (function () {
  13473. var c = document.body.className;
  13474. c = c.replace(/woocommerce-no-js/, 'woocommerce-js');
  13475. document.body.className = c;
  13476. })();
  13477. </script>
  13478. <link rel='stylesheet' id='wc-blocks-style-css' href='https://linktek.com/wp-content/plugins/woocommerce/assets/client/blocks/wc-blocks.css' media='all' />
  13479. <script src="https://linktek.com/wp-content/uploads/hummingbird-assets/3c5e84552320d8fc9496bba1a4fd6963.js" id="mpp_gutenberg_tabs-js"></script>
  13480. <script src="https://linktek.com/wp-content/plugins/bb-plugin/js/jquery.magnificpopup.js" id="jquery-magnificpopup-js"></script>
  13481. <script id="jquery-waypoints-js-extra">
  13482. var number_module_1amto42zdexg = {"start_number":"0","number":"13967","max":"13967","locale":"en-US"};
  13483. </script>
  13484. <script src="https://linktek.com/wp-content/plugins/bb-plugin/js/jquery.waypoints.min.js" id="jquery-waypoints-js"></script>
  13485. <script id="jquery-waypoints-js-after">
  13486. jQuery( '.fl-node-1amto42zdexg .fl-number-int' ).html( new Intl.NumberFormat('en-US').format(0) );
  13487. </script>
  13488. <script src="https://linktek.com/wp-includes/js/masonry.min.js" id="masonry-js"></script>
  13489. <script src="https://linktek.com/wp-includes/js/jquery/jquery.masonry.min.js" id="jquery-masonry-js"></script>
  13490. <script src="https://linktek.com/wp-content/plugins/bb-plugin/js/jquery.ba-throttle-debounce.min.js" id="jquery-throttle-js"></script>
  13491. <script defer="defer" id="base-js" data-type="lazy" data-src="https://linktek.com/wp-content/themes/bb-theme-child/js/base.js"></script>
  13492. <script src="https://linktek.com/wp-content/plugins/woocommerce/assets/js/sourcebuster/sourcebuster.min.js" id="sourcebuster-js-js"></script>
  13493. <script id="wc-order-attribution-js-extra">
  13494. var wc_order_attribution = {"params":{"lifetime":1.0e-5,"session":30,"base64":false,"ajaxurl":"https:\/\/linktek.com\/wp-admin\/admin-ajax.php","prefix":"wc_order_attribution_","allowTracking":true},"fields":{"source_type":"current.typ","referrer":"current_add.rf","utm_campaign":"current.cmp","utm_source":"current.src","utm_medium":"current.mdm","utm_content":"current.cnt","utm_id":"current.id","utm_term":"current.trm","utm_source_platform":"current.plt","utm_creative_format":"current.fmt","utm_marketing_tactic":"current.tct","session_entry":"current_add.ep","session_start_time":"current_add.fd","session_pages":"session.pgs","session_count":"udata.vst","user_agent":"udata.uag"}};
  13495. </script>
  13496. <script src="https://linktek.com/wp-content/plugins/woocommerce/assets/js/frontend/order-attribution.min.js" id="wc-order-attribution-js"></script>
  13497. <script id="perfmatters-lazy-load-js-before">
  13498. window.lazyLoadOptions={elements_selector:"img[data-src],.perfmatters-lazy,.perfmatters-lazy-css-bg",thresholds:"0px 0px",class_loading:"pmloading",class_loaded:"pmloaded",callback_loaded:function(element){if(element.tagName==="IFRAME"){if(element.classList.contains("pmloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}};window.addEventListener("LazyLoad::Initialized",function(e){var lazyLoadInstance=e.detail.instance;var target=document.querySelector("body");var observer=new MutationObserver(function(mutations){lazyLoadInstance.update()});var config={childList:!0,subtree:!0};observer.observe(target,config);});function perfmattersLazyLoadYouTube(e){var t=document.createElement("iframe"),r="ID?";r+=0===e.dataset.query.length?"":e.dataset.query+"&",r+="autoplay=1",t.setAttribute("src",r.replace("ID",e.dataset.src)),t.setAttribute("frameborder","0"),t.setAttribute("allowfullscreen","1"),t.setAttribute("allow","accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"),e.replaceChild(t,e.firstChild)}
  13499. </script>
  13500. <script async src="https://linktek.com/wp-content/plugins/perfmatters/js/lazyload.min.js" id="perfmatters-lazy-load-js"></script>
  13501. <script src="https://linktek.com/wp-includes/js/dist/dom-ready.min.js" id="wp-dom-ready-js"></script>
  13502. <script src="https://linktek.com/wp-includes/js/dist/hooks.min.js" id="wp-hooks-js"></script>
  13503. <script src="https://linktek.com/wp-includes/js/dist/i18n.min.js" id="wp-i18n-js"></script>
  13504. <script id="wp-i18n-js-after">
  13505. wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
  13506. </script>
  13507. <script src="https://linktek.com/wp-includes/js/dist/a11y.min.js" id="wp-a11y-js"></script>
  13508. <script defer='defer' src="https://linktek.com/wp-content/plugins/gravityforms/js/placeholders.jquery.min.js" id="gform_placeholder-js"></script>
  13509. <script defer='defer' src="https://linktek.com/wp-content/plugins/gravityforms/assets/js/dist/vendor-theme.min.js" id="gform_gravityforms_theme_vendors-js"></script>
  13510. <script id="gform_gravityforms_theme-js-extra">
  13511. var gform_theme_config = {"common":{"form":{"honeypot":{"version_hash":"f6f249d0416e881ab9bd12cca5f963e7"}}},"hmr_dev":"","public_path":"https:\/\/linktek.com\/wp-content\/plugins\/gravityforms\/assets\/js\/dist\/"};
  13512. </script>
  13513. <script defer='defer' src="https://linktek.com/wp-content/plugins/gravityforms/assets/js/dist/scripts-theme.min.js" id="gform_gravityforms_theme-js"></script>
  13514. <script src="https://linktek.com/wp-includes/js/jquery/ui/core.min.js" id="jquery-ui-core-js"></script>
  13515. <script id="popup-maker-site-js-extra">
  13516. var pum_vars = {"version":"1.20.2","pm_dir_url":"https:\/\/linktek.com\/wp-content\/plugins\/popup-maker\/","ajaxurl":"https:\/\/linktek.com\/wp-admin\/admin-ajax.php","restapi":"https:\/\/linktek.com\/wp-json\/pum\/v1","rest_nonce":null,"default_theme":"485","debug_mode":"1","disable_tracking":"","home_url":"\/","message_position":"top","core_sub_forms_enabled":"1","popups":[],"cookie_domain":"","analytics_route":"analytics","analytics_api":"https:\/\/linktek.com\/wp-json\/pum\/v1"};
  13517. var pum_debug_vars = {"debug_mode_enabled":"Popup Maker: Debug Mode Enabled","debug_started_at":"Debug started at:","debug_more_info":"For more information on how to use this information visit https:\/\/docs.wppopupmaker.com\/?utm_medium=js-debug-info&utm_campaign=contextual-help&utm_source=browser-console&utm_content=more-info","global_info":"Global Information","localized_vars":"Localized variables","popups_initializing":"Popups Initializing","popups_initialized":"Popups Initialized","single_popup_label":"Popup: #","theme_id":"Theme ID: ","label_method_call":"Method Call:","label_method_args":"Method Arguments:","label_popup_settings":"Settings","label_triggers":"Triggers","label_cookies":"Cookies","label_delay":"Delay:","label_conditions":"Conditions","label_cookie":"Cookie:","label_settings":"Settings:","label_selector":"Selector:","label_mobile_disabled":"Mobile Disabled:","label_tablet_disabled":"Tablet Disabled:","label_event":"Event: %s","triggers":{"click_open":"Click Open","auto_open":"Time Delay \/ Auto Open","form_submission":"Form Submission"},"cookies":{"on_popup_close":"On Popup Close","on_popup_open":"On Popup Open","form_submission":"Form Submission","pum_sub_form_success":"Subscription Form: Successful","pum_sub_form_already_subscribed":"Subscription Form: Already Subscribed","manual":"Manual","gforms_form_success":"Gravity Form Success (deprecated. Use Form Submission instead.)"}};
  13518. var pum_sub_vars = {"ajaxurl":"https:\/\/linktek.com\/wp-admin\/admin-ajax.php","message_position":"top"};
  13519. var pum_popups = {"pum-42032":{"triggers":[{"type":"auto_open","settings":{"cookie_name":["pum-42032"],"delay":"3000"}},{"type":"click_open","settings":{"extra_selectors":".ebook"}}],"cookies":[{"event":"on_popup_close","settings":{"name":"pum-42032","key":"","session":null,"path":true,"time":"2 days"}}],"disable_on_mobile":true,"disable_on_tablet":false,"atc_promotion":null,"explain":null,"type_section":null,"theme_id":"485","size":"medium","responsive_min_width":"0%","responsive_max_width":"800px","custom_width":"640px","custom_height_auto":false,"custom_height":"px","scrollable_content":false,"animation_type":"fade","animation_speed":"350","animation_origin":"center top","open_sound":"none","custom_sound":"","location":"center","position_top":"100","position_bottom":"0","position_left":"0","position_right":"0","position_from_trigger":false,"position_fixed":false,"overlay_disabled":false,"stackable":false,"disable_reposition":false,"zindex":"1999999999","close_button_delay":"0","fi_promotion":null,"close_on_form_submission":false,"close_on_form_submission_delay":"0","close_on_overlay_click":true,"close_on_esc_press":true,"close_on_f4_press":false,"disable_form_reopen":false,"disable_accessibility":false,"theme_slug":"default-theme","id":42032,"slug":"ebook-download"},"pum-64086":{"triggers":[{"type":"click_open","settings":{"cookie_name":"","extra_selectors":".lfatrial"}}],"cookies":[],"disable_on_mobile":false,"disable_on_tablet":false,"atc_promotion":null,"explain":null,"type_section":null,"theme_id":"485","size":"medium","responsive_min_width":"0%","responsive_max_width":"100%","custom_width":"640px","custom_height_auto":false,"custom_height":"380px","scrollable_content":false,"animation_type":"fade","animation_speed":"350","animation_origin":"center top","open_sound":"none","custom_sound":"","location":"center","position_top":"40","position_bottom":"0","position_left":"0","position_right":"0","position_from_trigger":false,"position_fixed":false,"overlay_disabled":false,"stackable":false,"disable_reposition":false,"zindex":"1999999999","close_button_delay":"0","fi_promotion":null,"close_on_form_submission":false,"close_on_form_submission_delay":"1000","close_on_overlay_click":true,"close_on_esc_press":true,"close_on_f4_press":false,"disable_form_reopen":false,"disable_accessibility":false,"theme_slug":"default-theme","id":64086,"slug":"linkfixer-advanced-trial-request-popup-2024"},"pum-70279":{"triggers":[{"type":"click_open","settings":{"cookie_name":["pum-70279"],"extra_selectors":".support"}}],"cookies":[],"disable_on_mobile":false,"disable_on_tablet":false,"atc_promotion":null,"explain":null,"type_section":null,"theme_id":"485","size":"small","responsive_min_width":"0%","responsive_max_width":"100%","custom_width":"640px","custom_height_auto":false,"custom_height":"380px","scrollable_content":false,"animation_type":"fade","animation_speed":"350","animation_origin":"center top","open_sound":"none","custom_sound":"","location":"center","position_top":"40","position_bottom":"0","position_left":"0","position_right":"0","position_from_trigger":false,"position_fixed":false,"overlay_disabled":false,"stackable":false,"disable_reposition":false,"zindex":"1999999999","close_button_delay":"0","fi_promotion":null,"close_on_form_submission":false,"close_on_form_submission_delay":"1000","close_on_overlay_click":false,"close_on_esc_press":false,"close_on_f4_press":false,"disable_form_reopen":false,"disable_accessibility":false,"theme_slug":"default-theme","id":70279,"slug":"technical-support-popup"},"pum-27853":{"triggers":[{"type":"click_open","settings":{"cookie_name":"","extra_selectors":"a.watch.video-four"}}],"cookies":[],"disable_on_mobile":false,"disable_on_tablet":false,"atc_promotion":null,"explain":null,"type_section":null,"theme_id":"485","size":"medium","responsive_min_width":"0%","responsive_max_width":"100%","custom_width":"640px","custom_height_auto":false,"custom_height":"380px","scrollable_content":false,"animation_type":"fade","animation_speed":"350","animation_origin":"center top","open_sound":"none","custom_sound":"","location":"center top","position_top":"100","position_bottom":"0","position_left":"0","position_right":"0","position_from_trigger":false,"position_fixed":false,"overlay_disabled":false,"stackable":false,"disable_reposition":false,"zindex":"1999999999","close_button_delay":"0","fi_promotion":null,"close_on_form_submission":false,"close_on_form_submission_delay":"0","close_on_overlay_click":false,"close_on_esc_press":false,"close_on_f4_press":false,"disable_form_reopen":false,"disable_accessibility":false,"theme_slug":"default-theme","id":27853,"slug":"video-4"},"pum-34724":{"triggers":[{"type":"click_open","settings":{"extra_selectors":"a.watch.video-ppc-landing"}}],"cookies":[],"disable_on_mobile":false,"disable_on_tablet":false,"atc_promotion":null,"explain":null,"type_section":null,"theme_id":"485","size":"medium","responsive_min_width":"0%","responsive_max_width":"100%","custom_width":"640px","custom_height_auto":false,"custom_height":"380px","scrollable_content":false,"animation_type":"fade","animation_speed":"350","animation_origin":"center top","open_sound":"none","custom_sound":"","location":"center top","position_top":"100","position_bottom":"0","position_left":"0","position_right":"0","position_from_trigger":false,"position_fixed":false,"overlay_disabled":false,"stackable":false,"disable_reposition":false,"zindex":"1999999999","close_button_delay":"0","fi_promotion":null,"close_on_form_submission":false,"close_on_form_submission_delay":"0","close_on_overlay_click":false,"close_on_esc_press":false,"close_on_f4_press":false,"disable_form_reopen":false,"disable_accessibility":false,"theme_slug":"default-theme","id":34724,"slug":"ppc-landing-page-video"}};
  13520. </script>
  13521. <script src="//linktek.com/wp-content/uploads/pum/pum-site-scripts.js?defer&amp;generated=1727969614&amp;ver=1.20.2" id="popup-maker-site-js"></script>
  13522. <script src="https://linktek.com/wp-content/plugins/popup-maker/assets/js/vendor/mobile-detect.min.js" id="mobile-detect-js"></script>
  13523. <script defer id="__ytprefsfitvids__-js" data-type="lazy" data-src="https://linktek.com/wp-content/plugins/youtube-embed-plus/scripts/fitvids.min.js"></script>
  13524. <script id="fl-automator-js-extra">
  13525. var themeopts = {"medium_breakpoint":"992","mobile_breakpoint":"768"};
  13526. </script>
  13527. <script src="https://linktek.com/wp-content/themes/bb-theme/js/theme.js" id="fl-automator-js"></script>
  13528. <script type="text/javascript" id="flying-scripts">const loadScriptsTimer=setTimeout(loadScripts,7*1000);const userInteractionEvents=["mouseover","keydown","touchstart","touchmove","wheel"];userInteractionEvents.forEach(function(event){window.addEventListener(event,triggerScriptLoader,{passive:!0})});function triggerScriptLoader(){loadScripts();clearTimeout(loadScriptsTimer);userInteractionEvents.forEach(function(event){window.removeEventListener(event,triggerScriptLoader,{passive:!0})})}
  13529. function loadScripts(){document.querySelectorAll("script[data-type='lazy']").forEach(function(elem){elem.setAttribute("src",elem.getAttribute("data-src"))})}</script>
  13530.    <script>
  13531. gform.initializeOnLoaded( function() { jQuery(document).on('gform_post_render', function(event, formId, currentPage){if(formId == 36) {gf_global["number_formats"][36] = {"1":{"price":false,"value":false},"11":{"price":false,"value":false},"12":{"price":false,"value":false},"2":{"price":false,"value":false},"3":{"price":false,"value":false},"4":{"price":false,"value":false},"10":{"price":false,"value":false},"9":{"price":false,"value":false},"5":{"price":false,"value":false},"6":{"price":false,"value":false},"7":{"price":false,"value":false},"8":{"price":false,"value":false},"13":{"price":false,"value":false}};if(window['jQuery']){if(!window['gf_form_conditional_logic'])window['gf_form_conditional_logic'] = new Array();window['gf_form_conditional_logic'][36] = { logic: { 12: {"field":{"enabled":true,"actionType":"show","logicType":"any","rules":[{"fieldId":"11","operator":"is","value":"Other"},{"fieldId":"11","operator":"is","value":"Event"},{"fieldId":"11","operator":"is","value":"Online Forum \/ Referring Website"}]},"nextButton":null,"section":null} }, dependents: { 12: [12] }, animation: 0, defaults: {"2":"Ebook Download - Popup","3":"https:\/\/linktek.com\/"}, fields: {"1":[],"11":[12],"12":[],"2":[],"3":[],"4":[],"10":[],"9":[],"5":[],"6":[],"7":[],"8":[],"13":[]} }; if(!window['gf_number_format'])window['gf_number_format'] = 'decimal_dot';jQuery(document).ready(function(){gform.utils.trigger({ event: 'gform/conditionalLogic/init/start', native: false, data: { formId: 36, fields: null, isInit: true } });window['gformInitPriceFields']();gf_apply_rules(36, [12], true);jQuery('#gform_wrapper_36').show();jQuery('#gform_wrapper_36 form').css('opacity', '');jQuery(document).trigger('gform_post_conditional_logic', [36, null, true]);gform.utils.trigger({ event: 'gform/conditionalLogic/init/end', native: false, data: { formId: 36, fields: null, isInit: true } });} );} if(typeof Placeholders != 'undefined'){
  13532.                        Placeholders.enable();
  13533.                    }} } );jQuery(document).on('gform_post_conditional_logic', function(event, formId, fields, isInit){} ) } );
  13534. </script>
  13535. <script>
  13536. gform.initializeOnLoaded( function() {jQuery(document).trigger("gform_pre_post_render", [{ formId: "36", currentPage: "1", abort: function() { this.preventDefault(); } }]);                if (event && event.defaultPrevented) {                return;         }        const gformWrapperDiv = document.getElementById( "gform_wrapper_36" );        if ( gformWrapperDiv ) {            const visibilitySpan = document.createElement( "span" );            visibilitySpan.id = "gform_visibility_test_36";            gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan );        }        const visibilityTestDiv = document.getElementById( "gform_visibility_test_36" );        let postRenderFired = false;                function triggerPostRender() {            if ( postRenderFired ) {                return;            }            postRenderFired = true;            jQuery( document ).trigger( 'gform_post_render', [36, 1] );            gform.utils.trigger( { event: 'gform/postRender', native: false, data: { formId: 36, currentPage: 1 } } );            if ( visibilityTestDiv ) {                visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );            }        }        function debounce( func, wait, immediate ) {            var timeout;            return function() {                var context = this, args = arguments;                var later = function() {                    timeout = null;                    if ( !immediate ) func.apply( context, args );                };                var callNow = immediate && !timeout;                clearTimeout( timeout );                timeout = setTimeout( later, wait );                if ( callNow ) func.apply( context, args );            };        }        const debouncedTriggerPostRender = debounce( function() {            triggerPostRender();        }, 200 );        if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) {            const observer = new MutationObserver( ( mutations ) => {                mutations.forEach( ( mutation ) => {                    if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) {                        debouncedTriggerPostRender();                        observer.disconnect();                    }                });            });            observer.observe( document.body, {                attributes: true,                childList: false,                subtree: true,                attributeFilter: [ 'style', 'class' ],            });        } else {            triggerPostRender();        }    } );
  13537. </script>
  13538. <script>
  13539. gform.initializeOnLoaded( function() { jQuery(document).on('gform_post_render', function(event, formId, currentPage){if(formId == 4) {gf_global["number_formats"][4] = {"1":{"price":false,"value":false},"79":{"price":false,"value":false},"2":{"price":false,"value":false},"3":{"price":false,"value":false},"6":{"price":false,"value":false},"88":{"price":false,"value":false},"89":{"price":false,"value":false},"84":{"price":false,"value":false},"85":{"price":false,"value":false},"34":{"price":false,"value":false},"87":{"price":false,"value":false},"86":{"price":false,"value":false},"35":{"price":false,"value":false},"36":{"price":false,"value":false},"37":{"price":false,"value":false},"38":{"price":false,"value":false},"56":{"price":false,"value":false},"71":{"price":false,"value":false},"73":{"price":false,"value":false},"74":{"price":false,"value":false},"76":{"price":false,"value":false},"77":{"price":false,"value":false},"78":{"price":false,"value":false},"80":{"price":false,"value":false},"81":{"price":false,"value":false},"90":{"price":false,"value":false},"91":{"price":false,"value":false}};if(window['jQuery']){if(!window['gf_form_conditional_logic'])window['gf_form_conditional_logic'] = new Array();window['gf_form_conditional_logic'][4] = { logic: { 89: {"field":{"enabled":true,"actionType":"show","logicType":"any","rules":[{"fieldId":"88","operator":"is","value":"Other"},{"fieldId":"88","operator":"is","value":"Event"},{"fieldId":"88","operator":"is","value":"Online Forum \/ Referring Website"}]},"nextButton":null,"section":null} }, dependents: { 89: [89] }, animation: 0, defaults: {"1":{"1.2":"","1.3":"","1.4":"","1.6":"","1.8":""},"79":{"79.2":"","79.3":"","79.4":"","79.6":"","79.8":""},"84":"Request Your Free Trial","85":"https:\/\/linktek.com\/"}, fields: {"1":[],"79":[],"2":[],"3":[],"6":[],"88":[89],"89":[],"84":[],"85":[],"34":[],"87":[],"86":[],"35":[],"36":[],"37":[],"38":[],"56":[],"71":[],"73":[],"74":[],"76":[],"77":[],"78":[],"80":[],"81":[],"90":[],"91":[]} }; if(!window['gf_number_format'])window['gf_number_format'] = 'decimal_dot';jQuery(document).ready(function(){gform.utils.trigger({ event: 'gform/conditionalLogic/init/start', native: false, data: { formId: 4, fields: null, isInit: true } });window['gformInitPriceFields']();gf_apply_rules(4, [89], true);jQuery('#gform_wrapper_4').show();jQuery('#gform_wrapper_4 form').css('opacity', '');jQuery(document).trigger('gform_post_conditional_logic', [4, null, true]);gform.utils.trigger({ event: 'gform/conditionalLogic/init/end', native: false, data: { formId: 4, fields: null, isInit: true } });} );} if(typeof Placeholders != 'undefined'){
  13540.                        Placeholders.enable();
  13541.                    }} } );jQuery(document).on('gform_post_conditional_logic', function(event, formId, fields, isInit){} ) } );
  13542. </script>
  13543. <script>
  13544. gform.initializeOnLoaded( function() {jQuery(document).trigger("gform_pre_post_render", [{ formId: "4", currentPage: "1", abort: function() { this.preventDefault(); } }]);                if (event && event.defaultPrevented) {                return;         }        const gformWrapperDiv = document.getElementById( "gform_wrapper_4" );        if ( gformWrapperDiv ) {            const visibilitySpan = document.createElement( "span" );            visibilitySpan.id = "gform_visibility_test_4";            gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan );        }        const visibilityTestDiv = document.getElementById( "gform_visibility_test_4" );        let postRenderFired = false;                function triggerPostRender() {            if ( postRenderFired ) {                return;            }            postRenderFired = true;            jQuery( document ).trigger( 'gform_post_render', [4, 1] );            gform.utils.trigger( { event: 'gform/postRender', native: false, data: { formId: 4, currentPage: 1 } } );            if ( visibilityTestDiv ) {                visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );            }        }        function debounce( func, wait, immediate ) {            var timeout;            return function() {                var context = this, args = arguments;                var later = function() {                    timeout = null;                    if ( !immediate ) func.apply( context, args );                };                var callNow = immediate && !timeout;                clearTimeout( timeout );                timeout = setTimeout( later, wait );                if ( callNow ) func.apply( context, args );            };        }        const debouncedTriggerPostRender = debounce( function() {            triggerPostRender();        }, 200 );        if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) {            const observer = new MutationObserver( ( mutations ) => {                mutations.forEach( ( mutation ) => {                    if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) {                        debouncedTriggerPostRender();                        observer.disconnect();                    }                });            });            observer.observe( document.body, {                attributes: true,                childList: false,                subtree: true,                attributeFilter: [ 'style', 'class' ],            });        } else {            triggerPostRender();        }    } );
  13545. </script>
  13546. <script>
  13547. gform.initializeOnLoaded( function() { jQuery(document).on('gform_post_render', function(event, formId, currentPage){if(formId == 53) {if(typeof Placeholders != 'undefined'){
  13548.                        Placeholders.enable();
  13549.                    }} } );jQuery(document).on('gform_post_conditional_logic', function(event, formId, fields, isInit){} ) } );
  13550. </script>
  13551. <script>
  13552. gform.initializeOnLoaded( function() {jQuery(document).trigger("gform_pre_post_render", [{ formId: "53", currentPage: "1", abort: function() { this.preventDefault(); } }]);                if (event && event.defaultPrevented) {                return;         }        const gformWrapperDiv = document.getElementById( "gform_wrapper_53" );        if ( gformWrapperDiv ) {            const visibilitySpan = document.createElement( "span" );            visibilitySpan.id = "gform_visibility_test_53";            gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan );        }        const visibilityTestDiv = document.getElementById( "gform_visibility_test_53" );        let postRenderFired = false;                function triggerPostRender() {            if ( postRenderFired ) {                return;            }            postRenderFired = true;            jQuery( document ).trigger( 'gform_post_render', [53, 1] );            gform.utils.trigger( { event: 'gform/postRender', native: false, data: { formId: 53, currentPage: 1 } } );            if ( visibilityTestDiv ) {                visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );            }        }        function debounce( func, wait, immediate ) {            var timeout;            return function() {                var context = this, args = arguments;                var later = function() {                    timeout = null;                    if ( !immediate ) func.apply( context, args );                };                var callNow = immediate && !timeout;                clearTimeout( timeout );                timeout = setTimeout( later, wait );                if ( callNow ) func.apply( context, args );            };        }        const debouncedTriggerPostRender = debounce( function() {            triggerPostRender();        }, 200 );        if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) {            const observer = new MutationObserver( ( mutations ) => {                mutations.forEach( ( mutation ) => {                    if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) {                        debouncedTriggerPostRender();                        observer.disconnect();                    }                });            });            observer.observe( document.body, {                attributes: true,                childList: false,                subtree: true,                attributeFilter: [ 'style', 'class' ],            });        } else {            triggerPostRender();        }    } );
  13553. </script>
  13554. <script data-type="lazy" data-src="data:text/javascript;base64,LyohCiAqIEJvd3NlciAtIGEgYnJvd3NlciBkZXRlY3RvcgogKiBodHRwczovL2dpdGh1Yi5jb20vZGVkL2Jvd3NlcgogKiBNSVQgTGljZW5zZSB8IChjKSBEdXN0aW4gRGlheiAyMDE1CiAqLwoKIWZ1bmN0aW9uIChuYW1lLCBkZWZpbml0aW9uKSB7CiAgaWYgKHR5cGVvZiBtb2R1bGUgIT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlLmV4cG9ydHMpIG1vZHVsZS5leHBvcnRzID0gZGVmaW5pdGlvbigpCiAgZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIGRlZmluZShuYW1lLCBkZWZpbml0aW9uKQogIGVsc2UgdGhpc1tuYW1lXSA9IGRlZmluaXRpb24oKQp9KCdib3dzZXInLCBmdW5jdGlvbiAoKSB7CiAgLyoqCiAgICAqIFNlZSB1c2VyYWdlbnRzLmpzIGZvciBleGFtcGxlcyBvZiBuYXZpZ2F0b3IudXNlckFnZW50CiAgICAqLwoKICB2YXIgdCA9IHRydWUKCiAgZnVuY3Rpb24gZGV0ZWN0KHVhKSB7CgogICAgZnVuY3Rpb24gZ2V0Rmlyc3RNYXRjaChyZWdleCkgewogICAgICB2YXIgbWF0Y2ggPSB1YS5tYXRjaChyZWdleCk7CiAgICAgIHJldHVybiAobWF0Y2ggJiYgbWF0Y2gubGVuZ3RoID4gMSAmJiBtYXRjaFsxXSkgfHwgJyc7CiAgICB9CgogICAgZnVuY3Rpb24gZ2V0U2Vjb25kTWF0Y2gocmVnZXgpIHsKICAgICAgdmFyIG1hdGNoID0gdWEubWF0Y2gocmVnZXgpOwogICAgICByZXR1cm4gKG1hdGNoICYmIG1hdGNoLmxlbmd0aCA+IDEgJiYgbWF0Y2hbMl0pIHx8ICcnOwogICAgfQoKICAgIHZhciBpb3NkZXZpY2UgPSBnZXRGaXJzdE1hdGNoKC8oaXBvZHxpcGhvbmV8aXBhZCkvaSkudG9Mb3dlckNhc2UoKQogICAgICAsIGxpa2VBbmRyb2lkID0gL2xpa2UgYW5kcm9pZC9pLnRlc3QodWEpCiAgICAgICwgYW5kcm9pZCA9ICFsaWtlQW5kcm9pZCAmJiAvYW5kcm9pZC9pLnRlc3QodWEpCiAgICAgICwgbmV4dXNNb2JpbGUgPSAvbmV4dXNccypbMC02XVxzKi9pLnRlc3QodWEpCiAgICAgICwgbmV4dXNUYWJsZXQgPSAhbmV4dXNNb2JpbGUgJiYgL25leHVzXHMqWzAtOV0rL2kudGVzdCh1YSkKICAgICAgLCBjaHJvbWVvcyA9IC9Dck9TLy50ZXN0KHVhKQogICAgICAsIHNpbGsgPSAvc2lsay9pLnRlc3QodWEpCiAgICAgICwgc2FpbGZpc2ggPSAvc2FpbGZpc2gvaS50ZXN0KHVhKQogICAgICAsIHRpemVuID0gL3RpemVuL2kudGVzdCh1YSkKICAgICAgLCB3ZWJvcyA9IC8od2VifGhwdylvcy9pLnRlc3QodWEpCiAgICAgICwgd2luZG93c3Bob25lID0gL3dpbmRvd3MgcGhvbmUvaS50ZXN0KHVhKQogICAgICAsIHdpbmRvd3MgPSAhd2luZG93c3Bob25lICYmIC93aW5kb3dzL2kudGVzdCh1YSkKICAgICAgLCBtYWMgPSAhaW9zZGV2aWNlICYmICFzaWxrICYmIC9tYWNpbnRvc2gvaS50ZXN0KHVhKQogICAgICAsIGxpbnV4ID0gIWFuZHJvaWQgJiYgIXNhaWxmaXNoICYmICF0aXplbiAmJiAhd2Vib3MgJiYgL2xpbnV4L2kudGVzdCh1YSkKICAgICAgLCBlZGdlVmVyc2lvbiA9IGdldEZpcnN0TWF0Y2goL2VkZ2VcLyhcZCsoXC5cZCspPykvaSkKICAgICAgLCB2ZXJzaW9uSWRlbnRpZmllciA9IGdldEZpcnN0TWF0Y2goL3ZlcnNpb25cLyhcZCsoXC5cZCspPykvaSkKICAgICAgLCB0YWJsZXQgPSAvdGFibGV0L2kudGVzdCh1YSkKICAgICAgLCBtb2JpbGUgPSAhdGFibGV0ICYmIC9bXi1dbW9iaS9pLnRlc3QodWEpCiAgICAgICwgeGJveCA9IC94Ym94L2kudGVzdCh1YSkKICAgICAgLCByZXN1bHQKCiAgICBpZiAoL29wZXJhfG9wcnxvcGlvcy9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnT3BlcmEnCiAgICAgICwgb3BlcmE6IHQKICAgICAgLCB2ZXJzaW9uOiB2ZXJzaW9uSWRlbnRpZmllciB8fCBnZXRGaXJzdE1hdGNoKC8oPzpvcGVyYXxvcHJ8b3Bpb3MpW1xzXC9dKFxkKyhcLlxkKyk/KS9pKQogICAgICB9CiAgICB9CiAgICBlbHNlIGlmICgvY29hc3QvaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ09wZXJhIENvYXN0JwogICAgICAgICwgY29hc3Q6IHQKICAgICAgICAsIHZlcnNpb246IHZlcnNpb25JZGVudGlmaWVyIHx8IGdldEZpcnN0TWF0Y2goLyg/OmNvYXN0KVtcc1wvXShcZCsoXC5cZCspPykvaSkKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoL3lhYnJvd3Nlci9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnWWFuZGV4IEJyb3dzZXInCiAgICAgICwgeWFuZGV4YnJvd3NlcjogdAogICAgICAsIHZlcnNpb246IHZlcnNpb25JZGVudGlmaWVyIHx8IGdldEZpcnN0TWF0Y2goLyg/OnlhYnJvd3NlcilbXHNcL10oXGQrKFwuXGQrKT8pL2kpCiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKC91Y2Jyb3dzZXIvaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgICBuYW1lOiAnVUMgQnJvd3NlcicKICAgICAgICAsIHVjYnJvd3NlcjogdAogICAgICAgICwgdmVyc2lvbjogZ2V0Rmlyc3RNYXRjaCgvKD86dWNicm93c2VyKVtcc1wvXShcZCsoPzpcLlxkKykrKS9pKQogICAgICB9CiAgICB9CiAgICBlbHNlIGlmICgvbXhpb3MvaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ01heHRob24nCiAgICAgICAgLCBtYXh0aG9uOiB0CiAgICAgICAgLCB2ZXJzaW9uOiBnZXRGaXJzdE1hdGNoKC8oPzpteGlvcylbXHNcL10oXGQrKD86XC5cZCspKykvaSkKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoL2VwaXBoYW55L2kudGVzdCh1YSkpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdFcGlwaGFueScKICAgICAgICAsIGVwaXBoYW55OiB0CiAgICAgICAgLCB2ZXJzaW9uOiBnZXRGaXJzdE1hdGNoKC8oPzplcGlwaGFueSlbXHNcL10oXGQrKD86XC5cZCspKykvaSkKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoL3B1ZmZpbi9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnUHVmZmluJwogICAgICAgICwgcHVmZmluOiB0CiAgICAgICAgLCB2ZXJzaW9uOiBnZXRGaXJzdE1hdGNoKC8oPzpwdWZmaW4pW1xzXC9dKFxkKyg/OlwuXGQrKT8pL2kpCiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKC9zbGVpcG5pci9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnU2xlaXBuaXInCiAgICAgICAgLCBzbGVpcG5pcjogdAogICAgICAgICwgdmVyc2lvbjogZ2V0Rmlyc3RNYXRjaCgvKD86c2xlaXBuaXIpW1xzXC9dKFxkKyg/OlwuXGQrKSspL2kpCiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKC9rLW1lbGVvbi9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnSy1NZWxlb24nCiAgICAgICAgLCBrTWVsZW9uOiB0CiAgICAgICAgLCB2ZXJzaW9uOiBnZXRGaXJzdE1hdGNoKC8oPzprLW1lbGVvbilbXHNcL10oXGQrKD86XC5cZCspKykvaSkKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAod2luZG93c3Bob25lKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnV2luZG93cyBQaG9uZScKICAgICAgLCB3aW5kb3dzcGhvbmU6IHQKICAgICAgfQogICAgICBpZiAoZWRnZVZlcnNpb24pIHsKICAgICAgICByZXN1bHQubXNlZGdlID0gdAogICAgICAgIHJlc3VsdC52ZXJzaW9uID0gZWRnZVZlcnNpb24KICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICByZXN1bHQubXNpZSA9IHQKICAgICAgICByZXN1bHQudmVyc2lvbiA9IGdldEZpcnN0TWF0Y2goL2llbW9iaWxlXC8oXGQrKFwuXGQrKT8pL2kpCiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKC9tc2llfHRyaWRlbnQvaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ0ludGVybmV0IEV4cGxvcmVyJwogICAgICAsIG1zaWU6IHQKICAgICAgLCB2ZXJzaW9uOiBnZXRGaXJzdE1hdGNoKC8oPzptc2llIHxydjopKFxkKyhcLlxkKyk/KS9pKQogICAgICB9CiAgICB9IGVsc2UgaWYgKGNocm9tZW9zKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnQ2hyb21lJwogICAgICAsIGNocm9tZW9zOiB0CiAgICAgICwgY2hyb21lQm9vazogdAogICAgICAsIGNocm9tZTogdAogICAgICAsIHZlcnNpb246IGdldEZpcnN0TWF0Y2goLyg/OmNocm9tZXxjcmlvc3xjcm1vKVwvKFxkKyhcLlxkKyk/KS9pKQogICAgICB9CiAgICB9IGVsc2UgaWYgKC9jaHJvbWUuKz8gZWRnZS9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnTWljcm9zb2Z0IEVkZ2UnCiAgICAgICwgbXNlZGdlOiB0CiAgICAgICwgdmVyc2lvbjogZWRnZVZlcnNpb24KICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoL3ZpdmFsZGkvaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ1ZpdmFsZGknCiAgICAgICAgLCB2aXZhbGRpOiB0CiAgICAgICAgLCB2ZXJzaW9uOiBnZXRGaXJzdE1hdGNoKC92aXZhbGRpXC8oXGQrKFwuXGQrKT8pL2kpIHx8IHZlcnNpb25JZGVudGlmaWVyCiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKHNhaWxmaXNoKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnU2FpbGZpc2gnCiAgICAgICwgc2FpbGZpc2g6IHQKICAgICAgLCB2ZXJzaW9uOiBnZXRGaXJzdE1hdGNoKC9zYWlsZmlzaFxzP2Jyb3dzZXJcLyhcZCsoXC5cZCspPykvaSkKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoL3NlYW1vbmtleVwvL2kudGVzdCh1YSkpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdTZWFNb25rZXknCiAgICAgICwgc2VhbW9ua2V5OiB0CiAgICAgICwgdmVyc2lvbjogZ2V0Rmlyc3RNYXRjaCgvc2VhbW9ua2V5XC8oXGQrKFwuXGQrKT8pL2kpCiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKC9maXJlZm94fGljZXdlYXNlbHxmeGlvcy9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnRmlyZWZveCcKICAgICAgLCBmaXJlZm94OiB0CiAgICAgICwgdmVyc2lvbjogZ2V0Rmlyc3RNYXRjaCgvKD86ZmlyZWZveHxpY2V3ZWFzZWx8Znhpb3MpWyBcL10oXGQrKFwuXGQrKT8pL2kpCiAgICAgIH0KICAgICAgaWYgKC9cKChtb2JpbGV8dGFibGV0KTtbXlwpXSpydjpbXGRcLl0rXCkvaS50ZXN0KHVhKSkgewogICAgICAgIHJlc3VsdC5maXJlZm94b3MgPSB0CiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKHNpbGspIHsKICAgICAgcmVzdWx0ID0gIHsKICAgICAgICBuYW1lOiAnQW1hem9uIFNpbGsnCiAgICAgICwgc2lsazogdAogICAgICAsIHZlcnNpb24gOiBnZXRGaXJzdE1hdGNoKC9zaWxrXC8oXGQrKFwuXGQrKT8pL2kpCiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKC9waGFudG9tL2kudGVzdCh1YSkpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdQaGFudG9tSlMnCiAgICAgICwgcGhhbnRvbTogdAogICAgICAsIHZlcnNpb246IGdldEZpcnN0TWF0Y2goL3BoYW50b21qc1wvKFxkKyhcLlxkKyk/KS9pKQogICAgICB9CiAgICB9CiAgICBlbHNlIGlmICgvc2xpbWVyanMvaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ1NsaW1lckpTJwogICAgICAgICwgc2xpbWVyOiB0CiAgICAgICAgLCB2ZXJzaW9uOiBnZXRGaXJzdE1hdGNoKC9zbGltZXJqc1wvKFxkKyhcLlxkKyk/KS9pKQogICAgICB9CiAgICB9CiAgICBlbHNlIGlmICgvYmxhY2tiZXJyeXxcYmJiXGQrL2kudGVzdCh1YSkgfHwgL3JpbVxzdGFibGV0L2kudGVzdCh1YSkpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdCbGFja0JlcnJ5JwogICAgICAsIGJsYWNrYmVycnk6IHQKICAgICAgLCB2ZXJzaW9uOiB2ZXJzaW9uSWRlbnRpZmllciB8fCBnZXRGaXJzdE1hdGNoKC9ibGFja2JlcnJ5W1xkXStcLyhcZCsoXC5cZCspPykvaSkKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAod2Vib3MpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdXZWJPUycKICAgICAgLCB3ZWJvczogdAogICAgICAsIHZlcnNpb246IHZlcnNpb25JZGVudGlmaWVyIHx8IGdldEZpcnN0TWF0Y2goL3coPzplYik/b3Nicm93c2VyXC8oXGQrKFwuXGQrKT8pL2kpCiAgICAgIH07CiAgICAgIGlmKCAvdG91Y2hwYWRcLy9pLnRlc3QodWEpICl7CiAgICAgICAgcmVzdWx0LnRvdWNocGFkID0gdDsKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoL2JhZGEvaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ0JhZGEnCiAgICAgICwgYmFkYTogdAogICAgICAsIHZlcnNpb246IGdldEZpcnN0TWF0Y2goL2RvbGZpblwvKFxkKyhcLlxkKyk/KS9pKQogICAgICB9OwogICAgfQogICAgZWxzZSBpZiAodGl6ZW4pIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdUaXplbicKICAgICAgLCB0aXplbjogdAogICAgICAsIHZlcnNpb246IGdldEZpcnN0TWF0Y2goLyg/OnRpemVuXHM/KT9icm93c2VyXC8oXGQrKFwuXGQrKT8pL2kpIHx8IHZlcnNpb25JZGVudGlmaWVyCiAgICAgIH07CiAgICB9CiAgICBlbHNlIGlmICgvcXVwemlsbGEvaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ1F1cFppbGxhJwogICAgICAgICwgcXVwemlsbGE6IHQKICAgICAgICAsIHZlcnNpb246IGdldEZpcnN0TWF0Y2goLyg/OnF1cHppbGxhKVtcc1wvXShcZCsoPzpcLlxkKykrKS9pKSB8fCB2ZXJzaW9uSWRlbnRpZmllcgogICAgICB9CiAgICB9CiAgICBlbHNlIGlmICgvY2hyb21pdW0vaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ0Nocm9taXVtJwogICAgICAgICwgY2hyb21pdW06IHQKICAgICAgICAsIHZlcnNpb246IGdldEZpcnN0TWF0Y2goLyg/OmNocm9taXVtKVtcc1wvXShcZCsoPzpcLlxkKyk/KS9pKSB8fCB2ZXJzaW9uSWRlbnRpZmllcgogICAgICB9CiAgICB9CiAgICBlbHNlIGlmICgvY2hyb21lfGNyaW9zfGNybW8vaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ0Nocm9tZScKICAgICAgICAsIGNocm9tZTogdAogICAgICAgICwgdmVyc2lvbjogZ2V0Rmlyc3RNYXRjaCgvKD86Y2hyb21lfGNyaW9zfGNybW8pXC8oXGQrKFwuXGQrKT8pL2kpCiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKGFuZHJvaWQpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdBbmRyb2lkJwogICAgICAgICwgdmVyc2lvbjogdmVyc2lvbklkZW50aWZpZXIKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoL3NhZmFyaXxhcHBsZXdlYmtpdC9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnU2FmYXJpJwogICAgICAsIHNhZmFyaTogdAogICAgICB9CiAgICAgIGlmICh2ZXJzaW9uSWRlbnRpZmllcikgewogICAgICAgIHJlc3VsdC52ZXJzaW9uID0gdmVyc2lvbklkZW50aWZpZXIKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoaW9zZGV2aWNlKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lIDogaW9zZGV2aWNlID09ICdpcGhvbmUnID8gJ2lQaG9uZScgOiBpb3NkZXZpY2UgPT0gJ2lwYWQnID8gJ2lQYWQnIDogJ2lQb2QnCiAgICAgIH0KICAgICAgLy8gV1RGOiB2ZXJzaW9uIGlzIG5vdCBwYXJ0IG9mIHVzZXIgYWdlbnQgaW4gd2ViIGFwcHMKICAgICAgaWYgKHZlcnNpb25JZGVudGlmaWVyKSB7CiAgICAgICAgcmVzdWx0LnZlcnNpb24gPSB2ZXJzaW9uSWRlbnRpZmllcgogICAgICB9CiAgICB9CiAgICBlbHNlIGlmKC9nb29nbGVib3QvaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ0dvb2dsZWJvdCcKICAgICAgLCBnb29nbGVib3Q6IHQKICAgICAgLCB2ZXJzaW9uOiBnZXRGaXJzdE1hdGNoKC9nb29nbGVib3RcLyhcZCsoXC5cZCspKS9pKSB8fCB2ZXJzaW9uSWRlbnRpZmllcgogICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6IGdldEZpcnN0TWF0Y2goL14oLiopXC8oLiopIC8pLAogICAgICAgIHZlcnNpb246IGdldFNlY29uZE1hdGNoKC9eKC4qKVwvKC4qKSAvKQogICAgIH07CiAgIH0KCiAgICAvLyBzZXQgd2Via2l0IG9yIGdlY2tvIGZsYWcgZm9yIGJyb3dzZXJzIGJhc2VkIG9uIHRoZXNlIGVuZ2luZXMKICAgIGlmICghcmVzdWx0Lm1zZWRnZSAmJiAvKGFwcGxlKT93ZWJraXQvaS50ZXN0KHVhKSkgewogICAgICBpZiAoLyhhcHBsZSk/d2Via2l0XC81MzdcLjM2L2kudGVzdCh1YSkpIHsKICAgICAgICByZXN1bHQubmFtZSA9IHJlc3VsdC5uYW1lIHx8ICJCbGluayIKICAgICAgICByZXN1bHQuYmxpbmsgPSB0CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmVzdWx0Lm5hbWUgPSByZXN1bHQubmFtZSB8fCAiV2Via2l0IgogICAgICAgIHJlc3VsdC53ZWJraXQgPSB0CiAgICAgIH0KICAgICAgaWYgKCFyZXN1bHQudmVyc2lvbiAmJiB2ZXJzaW9uSWRlbnRpZmllcikgewogICAgICAgIHJlc3VsdC52ZXJzaW9uID0gdmVyc2lvbklkZW50aWZpZXIKICAgICAgfQogICAgfSBlbHNlIGlmICghcmVzdWx0Lm9wZXJhICYmIC9nZWNrb1wvL2kudGVzdCh1YSkpIHsKICAgICAgcmVzdWx0Lm5hbWUgPSByZXN1bHQubmFtZSB8fCAiR2Vja28iCiAgICAgIHJlc3VsdC5nZWNrbyA9IHQKICAgICAgcmVzdWx0LnZlcnNpb24gPSByZXN1bHQudmVyc2lvbiB8fCBnZXRGaXJzdE1hdGNoKC9nZWNrb1wvKFxkKyhcLlxkKyk/KS9pKQogICAgfQoKICAgIC8vIHNldCBPUyBmbGFncyBmb3IgcGxhdGZvcm1zIHRoYXQgaGF2ZSBtdWx0aXBsZSBicm93c2VycwogICAgaWYgKCFyZXN1bHQubXNlZGdlICYmIChhbmRyb2lkIHx8IHJlc3VsdC5zaWxrKSkgewogICAgICByZXN1bHQuYW5kcm9pZCA9IHQKICAgIH0gZWxzZSBpZiAoaW9zZGV2aWNlKSB7CiAgICAgIHJlc3VsdFtpb3NkZXZpY2VdID0gdAogICAgICByZXN1bHQuaW9zID0gdAogICAgfSBlbHNlIGlmIChtYWMpIHsKICAgICAgcmVzdWx0Lm1hYyA9IHQKICAgIH0gZWxzZSBpZiAoeGJveCkgewogICAgICByZXN1bHQueGJveCA9IHQKICAgIH0gZWxzZSBpZiAod2luZG93cykgewogICAgICByZXN1bHQud2luZG93cyA9IHQKICAgIH0gZWxzZSBpZiAobGludXgpIHsKICAgICAgcmVzdWx0LmxpbnV4ID0gdAogICAgfQoKICAgIC8vIE9TIHZlcnNpb24gZXh0cmFjdGlvbgogICAgdmFyIG9zVmVyc2lvbiA9ICcnOwogICAgaWYgKHJlc3VsdC53aW5kb3dzcGhvbmUpIHsKICAgICAgb3NWZXJzaW9uID0gZ2V0Rmlyc3RNYXRjaCgvd2luZG93cyBwaG9uZSAoPzpvcyk/XHM/KFxkKyhcLlxkKykqKS9pKTsKICAgIH0gZWxzZSBpZiAoaW9zZGV2aWNlKSB7CiAgICAgIG9zVmVyc2lvbiA9IGdldEZpcnN0TWF0Y2goL29zIChcZCsoW19cc11cZCspKikgbGlrZSBtYWMgb3MgeC9pKTsKICAgICAgb3NWZXJzaW9uID0gb3NWZXJzaW9uLnJlcGxhY2UoL1tfXHNdL2csICcuJyk7CiAgICB9IGVsc2UgaWYgKGFuZHJvaWQpIHsKICAgICAgb3NWZXJzaW9uID0gZ2V0Rmlyc3RNYXRjaCgvYW5kcm9pZFsgXC8tXShcZCsoXC5cZCspKikvaSk7CiAgICB9IGVsc2UgaWYgKHJlc3VsdC53ZWJvcykgewogICAgICBvc1ZlcnNpb24gPSBnZXRGaXJzdE1hdGNoKC8oPzp3ZWJ8aHB3KW9zXC8oXGQrKFwuXGQrKSopL2kpOwogICAgfSBlbHNlIGlmIChyZXN1bHQuYmxhY2tiZXJyeSkgewogICAgICBvc1ZlcnNpb24gPSBnZXRGaXJzdE1hdGNoKC9yaW1cc3RhYmxldFxzb3NccyhcZCsoXC5cZCspKikvaSk7CiAgICB9IGVsc2UgaWYgKHJlc3VsdC5iYWRhKSB7CiAgICAgIG9zVmVyc2lvbiA9IGdldEZpcnN0TWF0Y2goL2JhZGFcLyhcZCsoXC5cZCspKikvaSk7CiAgICB9IGVsc2UgaWYgKHJlc3VsdC50aXplbikgewogICAgICBvc1ZlcnNpb24gPSBnZXRGaXJzdE1hdGNoKC90aXplbltcL1xzXShcZCsoXC5cZCspKikvaSk7CiAgICB9CiAgICBpZiAob3NWZXJzaW9uKSB7CiAgICAgIHJlc3VsdC5vc3ZlcnNpb24gPSBvc1ZlcnNpb247CiAgICB9CgogICAgLy8gZGV2aWNlIHR5cGUgZXh0cmFjdGlvbgogICAgdmFyIG9zTWFqb3JWZXJzaW9uID0gb3NWZXJzaW9uLnNwbGl0KCcuJylbMF07CiAgICBpZiAoCiAgICAgICAgIHRhYmxldAogICAgICB8fCBuZXh1c1RhYmxldAogICAgICB8fCBpb3NkZXZpY2UgPT0gJ2lwYWQnCiAgICAgIHx8IChhbmRyb2lkICYmIChvc01ham9yVmVyc2lvbiA9PSAzIHx8IChvc01ham9yVmVyc2lvbiA+PSA0ICYmICFtb2JpbGUpKSkKICAgICAgfHwgcmVzdWx0LnNpbGsKICAgICkgewogICAgICByZXN1bHQudGFibGV0ID0gdAogICAgfSBlbHNlIGlmICgKICAgICAgICAgbW9iaWxlCiAgICAgIHx8IGlvc2RldmljZSA9PSAnaXBob25lJwogICAgICB8fCBpb3NkZXZpY2UgPT0gJ2lwb2QnCiAgICAgIHx8IGFuZHJvaWQKICAgICAgfHwgbmV4dXNNb2JpbGUKICAgICAgfHwgcmVzdWx0LmJsYWNrYmVycnkKICAgICAgfHwgcmVzdWx0LndlYm9zCiAgICAgIHx8IHJlc3VsdC5iYWRhCiAgICApIHsKICAgICAgcmVzdWx0Lm1vYmlsZSA9IHQKICAgIH0KCiAgICAvLyBHcmFkZWQgQnJvd3NlciBTdXBwb3J0CiAgICAvLyBodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS95dWkvYXJ0aWNsZXMvZ2JzCiAgICBpZiAocmVzdWx0Lm1zZWRnZSB8fAogICAgICAgIChyZXN1bHQubXNpZSAmJiByZXN1bHQudmVyc2lvbiA+PSAxMCkgfHwKICAgICAgICAocmVzdWx0LnlhbmRleGJyb3dzZXIgJiYgcmVzdWx0LnZlcnNpb24gPj0gMTUpIHx8CgkJICAgIChyZXN1bHQudml2YWxkaSAmJiByZXN1bHQudmVyc2lvbiA+PSAxLjApIHx8CiAgICAgICAgKHJlc3VsdC5jaHJvbWUgJiYgcmVzdWx0LnZlcnNpb24gPj0gMjApIHx8CiAgICAgICAgKHJlc3VsdC5maXJlZm94ICYmIHJlc3VsdC52ZXJzaW9uID49IDIwLjApIHx8CiAgICAgICAgKHJlc3VsdC5zYWZhcmkgJiYgcmVzdWx0LnZlcnNpb24gPj0gNikgfHwKICAgICAgICAocmVzdWx0Lm9wZXJhICYmIHJlc3VsdC52ZXJzaW9uID49IDEwLjApIHx8CiAgICAgICAgKHJlc3VsdC5pb3MgJiYgcmVzdWx0Lm9zdmVyc2lvbiAmJiByZXN1bHQub3N2ZXJzaW9uLnNwbGl0KCIuIilbMF0gPj0gNikgfHwKICAgICAgICAocmVzdWx0LmJsYWNrYmVycnkgJiYgcmVzdWx0LnZlcnNpb24gPj0gMTAuMSkKICAgICAgICB8fCAocmVzdWx0LmNocm9taXVtICYmIHJlc3VsdC52ZXJzaW9uID49IDIwKQogICAgICAgICkgewogICAgICByZXN1bHQuYSA9IHQ7CiAgICB9CiAgICBlbHNlIGlmICgocmVzdWx0Lm1zaWUgJiYgcmVzdWx0LnZlcnNpb24gPCAxMCkgfHwKICAgICAgICAocmVzdWx0LmNocm9tZSAmJiByZXN1bHQudmVyc2lvbiA8IDIwKSB8fAogICAgICAgIChyZXN1bHQuZmlyZWZveCAmJiByZXN1bHQudmVyc2lvbiA8IDIwLjApIHx8CiAgICAgICAgKHJlc3VsdC5zYWZhcmkgJiYgcmVzdWx0LnZlcnNpb24gPCA2KSB8fAogICAgICAgIChyZXN1bHQub3BlcmEgJiYgcmVzdWx0LnZlcnNpb24gPCAxMC4wKSB8fAogICAgICAgIChyZXN1bHQuaW9zICYmIHJlc3VsdC5vc3ZlcnNpb24gJiYgcmVzdWx0Lm9zdmVyc2lvbi5zcGxpdCgiLiIpWzBdIDwgNikKICAgICAgICB8fCAocmVzdWx0LmNocm9taXVtICYmIHJlc3VsdC52ZXJzaW9uIDwgMjApCiAgICAgICAgKSB7CiAgICAgIHJlc3VsdC5jID0gdAogICAgfSBlbHNlIHJlc3VsdC54ID0gdAoKICAgIHJldHVybiByZXN1bHQKICB9CgogIHZhciBib3dzZXIgPSBkZXRlY3QodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgPyBuYXZpZ2F0b3IudXNlckFnZW50IDogJycpCgogIGJvd3Nlci50ZXN0ID0gZnVuY3Rpb24gKGJyb3dzZXJMaXN0KSB7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJyb3dzZXJMaXN0Lmxlbmd0aDsgKytpKSB7CiAgICAgIHZhciBicm93c2VySXRlbSA9IGJyb3dzZXJMaXN0W2ldOwogICAgICBpZiAodHlwZW9mIGJyb3dzZXJJdGVtPT09ICdzdHJpbmcnKSB7CiAgICAgICAgaWYgKGJyb3dzZXJJdGVtIGluIGJvd3NlcikgewogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICAvKioKICAgKiBHZXQgdmVyc2lvbiBwcmVjaXNpb25zIGNvdW50CiAgICoKICAgKiBAZXhhbXBsZQogICAqICAgZ2V0VmVyc2lvblByZWNpc2lvbigiMS4xMC4zIikgLy8gMwogICAqCiAgICogQHBhcmFtICB7c3RyaW5nfSB2ZXJzaW9uCiAgICogQHJldHVybiB7bnVtYmVyfQogICAqLwogIGZ1bmN0aW9uIGdldFZlcnNpb25QcmVjaXNpb24odmVyc2lvbikgewogICAgcmV0dXJuIHZlcnNpb24uc3BsaXQoIi4iKS5sZW5ndGg7CiAgfQoKICAvKioKICAgKiBBcnJheTo6bWFwIHBvbHlmaWxsCiAgICoKICAgKiBAcGFyYW0gIHtBcnJheX0gYXJyCiAgICogQHBhcmFtICB7RnVuY3Rpb259IGl0ZXJhdG9yCiAgICogQHJldHVybiB7QXJyYXl9CiAgICovCiAgZnVuY3Rpb24gbWFwKGFyciwgaXRlcmF0b3IpIHsKICAgIHZhciByZXN1bHQgPSBbXSwgaTsKICAgIGlmIChBcnJheS5wcm90b3R5cGUubWFwKSB7CiAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwoYXJyLCBpdGVyYXRvcik7CiAgICB9CiAgICBmb3IgKGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7CiAgICAgIHJlc3VsdC5wdXNoKGl0ZXJhdG9yKGFycltpXSkpOwogICAgfQogICAgcmV0dXJuIHJlc3VsdDsKICB9CgogIC8qKgogICAqIENhbGN1bGF0ZSBicm93c2VyIHZlcnNpb24gd2VpZ2h0CiAgICoKICAgKiBAZXhhbXBsZQogICAqICAgY29tcGFyZVZlcnNpb25zKFsnMS4xMC4yLjEnLCAgJzEuOC4yLjEuOTAnXSkgICAgLy8gMQogICAqICAgY29tcGFyZVZlcnNpb25zKFsnMS4wMTAuMi4xJywgJzEuMDkuMi4xLjkwJ10pOyAgLy8gMQogICAqICAgY29tcGFyZVZlcnNpb25zKFsnMS4xMC4yLjEnLCAgJzEuMTAuMi4xJ10pOyAgICAgLy8gMAogICAqICAgY29tcGFyZVZlcnNpb25zKFsnMS4xMC4yLjEnLCAgJzEuMDgwMC4yJ10pOyAgICAgLy8gLTEKICAgKgogICAqIEBwYXJhbSAge0FycmF5PFN0cmluZz59IHZlcnNpb25zIHZlcnNpb25zIHRvIGNvbXBhcmUKICAgKiBAcmV0dXJuIHtOdW1iZXJ9IGNvbXBhcmlzb24gcmVzdWx0CiAgICovCiAgZnVuY3Rpb24gY29tcGFyZVZlcnNpb25zKHZlcnNpb25zKSB7CiAgICAvLyAxKSBnZXQgY29tbW9uIHByZWNpc2lvbiBmb3IgYm90aCB2ZXJzaW9ucywgZm9yIGV4YW1wbGUgZm9yICIxMC4wIiBhbmQgIjkiIGl0IHNob3VsZCBiZSAyCiAgICB2YXIgcHJlY2lzaW9uID0gTWF0aC5tYXgoZ2V0VmVyc2lvblByZWNpc2lvbih2ZXJzaW9uc1swXSksIGdldFZlcnNpb25QcmVjaXNpb24odmVyc2lvbnNbMV0pKTsKICAgIHZhciBjaHVua3MgPSBtYXAodmVyc2lvbnMsIGZ1bmN0aW9uICh2ZXJzaW9uKSB7CiAgICAgIHZhciBkZWx0YSA9IHByZWNpc2lvbiAtIGdldFZlcnNpb25QcmVjaXNpb24odmVyc2lvbik7CgogICAgICAvLyAyKSAiOSIgLT4gIjkuMCIgKGZvciBwcmVjaXNpb24gPSAyKQogICAgICB2ZXJzaW9uID0gdmVyc2lvbiArIG5ldyBBcnJheShkZWx0YSArIDEpLmpvaW4oIi4wIik7CgogICAgICAvLyAzKSAiOS4wIiAtPiBbIjAwMDAwMDAwMCIiLCAiMDAwMDAwMDA5Il0KICAgICAgcmV0dXJuIG1hcCh2ZXJzaW9uLnNwbGl0KCIuIiksIGZ1bmN0aW9uIChjaHVuaykgewogICAgICAgIHJldHVybiBuZXcgQXJyYXkoMjAgLSBjaHVuay5sZW5ndGgpLmpvaW4oIjAiKSArIGNodW5rOwogICAgICB9KS5yZXZlcnNlKCk7CiAgICB9KTsKCiAgICAvLyBpdGVyYXRlIGluIHJldmVyc2Ugb3JkZXIgYnkgcmV2ZXJzZWQgY2h1bmtzIGFycmF5CiAgICB3aGlsZSAoLS1wcmVjaXNpb24gPj0gMCkgewogICAgICAvLyA0KSBjb21wYXJlOiAiMDAwMDAwMDA5IiA+ICIwMDAwMDAwMTAiID0gZmFsc2UgKGJ1dCAiOSIgPiAiMTAiID0gdHJ1ZSkKICAgICAgaWYgKGNodW5rc1swXVtwcmVjaXNpb25dID4gY2h1bmtzWzFdW3ByZWNpc2lvbl0pIHsKICAgICAgICByZXR1cm4gMTsKICAgICAgfQogICAgICBlbHNlIGlmIChjaHVua3NbMF1bcHJlY2lzaW9uXSA9PT0gY2h1bmtzWzFdW3ByZWNpc2lvbl0pIHsKICAgICAgICBpZiAocHJlY2lzaW9uID09PSAwKSB7CiAgICAgICAgICAvLyBhbGwgdmVyc2lvbiBjaHVua3MgYXJlIHNhbWUKICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0KICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICByZXR1cm4gLTE7CiAgICAgIH0KICAgIH0KICB9CgogIC8qKgogICAqIENoZWNrIGlmIGJyb3dzZXIgaXMgdW5zdXBwb3J0ZWQKICAgKgogICAqIEBleGFtcGxlCiAgICogICBib3dzZXIuaXNVbnN1cHBvcnRlZEJyb3dzZXIoewogICAqICAgICBtc2llOiAiMTAiLAogICAqICAgICBmaXJlZm94OiAiMjMiLAogICAqICAgICBjaHJvbWU6ICIyOSIsCiAgICogICAgIHNhZmFyaTogIjUuMSIsCiAgICogICAgIG9wZXJhOiAiMTYiLAogICAqICAgICBwaGFudG9tOiAiNTM0IgogICAqICAgfSk7CiAgICoKICAgKiBAcGFyYW0gIHtPYmplY3R9ICBtaW5WZXJzaW9ucyBtYXAgb2YgbWluaW1hbCB2ZXJzaW9uIHRvIGJyb3dzZXIKICAgKiBAcGFyYW0gIHtCb29sZWFufSBbc3RyaWN0TW9kZSA9IGZhbHNlXSBmbGFnIHRvIHJldHVybiBmYWxzZSBpZiBicm93c2VyIHdhc24ndCBmb3VuZCBpbiBtYXAKICAgKiBAcGFyYW0gIHtTdHJpbmd9ICBbdWFdIHVzZXIgYWdlbnQgc3RyaW5nCiAgICogQHJldHVybiB7Qm9vbGVhbn0KICAgKi8KICBmdW5jdGlvbiBpc1Vuc3VwcG9ydGVkQnJvd3NlcihtaW5WZXJzaW9ucywgc3RyaWN0TW9kZSwgdWEpIHsKICAgIHZhciBfYm93c2VyID0gYm93c2VyOwoKICAgIC8vIG1ha2Ugc3RyaWN0TW9kZSBwYXJhbSBvcHRpb25hbCB3aXRoIHVhIHBhcmFtIHVzYWdlCiAgICBpZiAodHlwZW9mIHN0cmljdE1vZGUgPT09ICdzdHJpbmcnKSB7CiAgICAgIHVhID0gc3RyaWN0TW9kZTsKICAgICAgc3RyaWN0TW9kZSA9IHZvaWQoMCk7CiAgICB9CgogICAgaWYgKHN0cmljdE1vZGUgPT09IHZvaWQoMCkpIHsKICAgICAgc3RyaWN0TW9kZSA9IGZhbHNlOwogICAgfQogICAgaWYgKHVhKSB7CiAgICAgIF9ib3dzZXIgPSBkZXRlY3QodWEpOwogICAgfQoKICAgIHZhciB2ZXJzaW9uID0gIiIgKyBfYm93c2VyLnZlcnNpb247CiAgICBmb3IgKHZhciBicm93c2VyIGluIG1pblZlcnNpb25zKSB7CiAgICAgIGlmIChtaW5WZXJzaW9ucy5oYXNPd25Qcm9wZXJ0eShicm93c2VyKSkgewogICAgICAgIGlmIChfYm93c2VyW2Jyb3dzZXJdKSB7CiAgICAgICAgICAvLyBicm93c2VyIHZlcnNpb24gYW5kIG1pbiBzdXBwb3J0ZWQgdmVyc2lvbi4KICAgICAgICAgIHJldHVybiBjb21wYXJlVmVyc2lvbnMoW3ZlcnNpb24sIG1pblZlcnNpb25zW2Jyb3dzZXJdXSkgPCAwOwogICAgICAgIH0KICAgICAgfQogICAgfQoKICAgIHJldHVybiBzdHJpY3RNb2RlOyAvLyBub3QgZm91bmQKICB9CgogIC8qKgogICAqIENoZWNrIGlmIGJyb3dzZXIgaXMgc3VwcG9ydGVkCiAgICoKICAgKiBAcGFyYW0gIHtPYmplY3R9IG1pblZlcnNpb25zIG1hcCBvZiBtaW5pbWFsIHZlcnNpb24gdG8gYnJvd3NlcgogICAqIEBwYXJhbSAge0Jvb2xlYW59IFtzdHJpY3RNb2RlID0gZmFsc2VdIGZsYWcgdG8gcmV0dXJuIGZhbHNlIGlmIGJyb3dzZXIgd2Fzbid0IGZvdW5kIGluIG1hcAogICAqIEBwYXJhbSAge1N0cmluZ30gIFt1YV0gdXNlciBhZ2VudCBzdHJpbmcKICAgKiBAcmV0dXJuIHtCb29sZWFufQogICAqLwogIGZ1bmN0aW9uIGNoZWNrKG1pblZlcnNpb25zLCBzdHJpY3RNb2RlLCB1YSkgewogICAgcmV0dXJuICFpc1Vuc3VwcG9ydGVkQnJvd3NlcihtaW5WZXJzaW9ucywgc3RyaWN0TW9kZSwgdWEpOwogIH0KCiAgYm93c2VyLmlzVW5zdXBwb3J0ZWRCcm93c2VyID0gaXNVbnN1cHBvcnRlZEJyb3dzZXI7CiAgYm93c2VyLmNvbXBhcmVWZXJzaW9ucyA9IGNvbXBhcmVWZXJzaW9uczsKICBib3dzZXIuY2hlY2sgPSBjaGVjazsKCiAgLyoKICAgKiBTZXQgb3VyIGRldGVjdCBtZXRob2QgdG8gdGhlIG1haW4gYm93c2VyIG9iamVjdCBzbyB3ZSBjYW4KICAgKiByZXVzZSBpdCB0byB0ZXN0IG90aGVyIHVzZXIgYWdlbnRzLgogICAqIFRoaXMgaXMgbmVlZGVkIHRvIGltcGxlbWVudCBmdXR1cmUgdGVzdHMuCiAgICovCiAgYm93c2VyLl9kZXRlY3QgPSBkZXRlY3Q7CgogIHJldHVybiBib3dzZXIKfSk7CgooZnVuY3Rpb24oJCl7CiAgVUFCQlRyaWdnZXIgPSB7CgogICAgICAvKioKICAgICAgICogVHJpZ2dlciBhIGhvb2suCiAgICAgICAqCiAgICAgICAqIEBzaW5jZSAxLjEuMC4zCiAgICAgICAqIEBtZXRob2QgdHJpZ2dlckhvb2sKICAgICAgICogQHBhcmFtIHtTdHJpbmd9IGhvb2sgVGhlIGhvb2sgdG8gdHJpZ2dlci4KICAgICAgICogQHBhcmFtIHtBcnJheX0gYXJncyBBbiBhcnJheSBvZiBhcmdzIHRvIHBhc3MgdG8gdGhlIGhvb2suCiAgICAgICAqLwogICAgICB0cmlnZ2VySG9vazogZnVuY3Rpb24oIGhvb2ssIGFyZ3MgKQogICAgICB7CiAgICAgICAgJCggJ2JvZHknICkudHJpZ2dlciggJ3VhYmItdHJpZ2dlci4nICsgaG9vaywgYXJncyApOwogICAgICB9LAogICAgCiAgICAgIC8qKgogICAgICAgKiBBZGQgYSBob29rLgogICAgICAgKgogICAgICAgKiBAc2luY2UgMS4xLjAuMwogICAgICAgKiBAbWV0aG9kIGFkZEhvb2sKICAgICAgICogQHBhcmFtIHtTdHJpbmd9IGhvb2sgVGhlIGhvb2sgdG8gYWRkLgogICAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayBBIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiB0aGUgaG9vayBpcyB0cmlnZ2VyZWQuCiAgICAgICAqLwogICAgICBhZGRIb29rOiBmdW5jdGlvbiggaG9vaywgY2FsbGJhY2sgKQogICAgICB7CiAgICAgICAgJCggJ2JvZHknICkub24oICd1YWJiLXRyaWdnZXIuJyArIGhvb2ssIGNhbGxiYWNrICk7CiAgICAgIH0sCiAgICAKICAgICAgLyoqCiAgICAgICAqIFJlbW92ZSBhIGhvb2suCiAgICAgICAqCiAgICAgICAqIEBzaW5jZSAxLjEuMC4zCiAgICAgICAqIEBtZXRob2QgcmVtb3ZlSG9vawogICAgICAgKiBAcGFyYW0ge1N0cmluZ30gaG9vayBUaGUgaG9vayB0byByZW1vdmUuCiAgICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbiB0byByZW1vdmUuCiAgICAgICAqLwogICAgICByZW1vdmVIb29rOiBmdW5jdGlvbiggaG9vaywgY2FsbGJhY2sgKQogICAgICB7CiAgICAgICAgJCggJ2JvZHknICkub2ZmKCAndWFiYi10cmlnZ2VyLicgKyBob29rLCBjYWxsYmFjayApOwogICAgICB9LAogIH07Cn0pKGpRdWVyeSk7CgpqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCAkICkgewoKICAgIGlmKCB0eXBlb2YgYm93c2VyICE9PSAndW5kZWZpbmVkJyAmJiBib3dzZXIgIT09IG51bGwgKSB7CgogICAgICB2YXIgdWFiYl9icm93c2VyICAgPSBib3dzZXIubmFtZSwKICAgICAgICAgIHVhYmJfYnJvd3Nlcl92ID0gYm93c2VyLnZlcnNpb24sCiAgICAgICAgICB1YWJiX2Jyb3dzZXJfY2xhc3MgPSB1YWJiX2Jyb3dzZXIucmVwbGFjZSgvXHMrL2csICctJykudG9Mb3dlckNhc2UoKSwKICAgICAgICAgIHVhYmJfYnJvd3Nlcl92X2NsYXNzID0gdWFiYl9icm93c2VyX2NsYXNzICsgcGFyc2VJbnQoIHVhYmJfYnJvd3Nlcl92ICk7CiAgICAgIAogICAgICAkKCdodG1sJykuYWRkQ2xhc3ModWFiYl9icm93c2VyX2NsYXNzKS5hZGRDbGFzcyh1YWJiX2Jyb3dzZXJfdl9jbGFzcyk7CiAgICAgIAogICAgfQoKICAgICQoJy51YWJiLXJvdy1zZXBhcmF0b3InKS5wYXJlbnRzKCdodG1sJykuY3NzKCdvdmVyZmxvdy14JywgJ2hpZGRlbicpOwp9KTsKdmFyIHdwQWpheFVybCA9ICdodHRwczovL2xpbmt0ZWsuY29tL3dwLWFkbWluL2FkbWluLWFqYXgucGhwJzt2YXIgZmxCdWlsZGVyVXJsID0gJ2h0dHBzOi8vbGlua3Rlay5jb20vd3AtY29udGVudC9wbHVnaW5zL2JiLXBsdWdpbi8nO3ZhciBGTEJ1aWxkZXJMYXlvdXRDb25maWcgPSB7CglhbmNob3JMaW5rQW5pbWF0aW9ucyA6IHsKCQlkdXJhdGlvbiAJOiAxMDAwLAoJCWVhc2luZwkJOiAnc3dpbmcnLAoJCW9mZnNldCAJCTogMTAwCgl9LAoJcGF0aHMgOiB7CgkJcGx1Z2luVXJsIDogJ2h0dHBzOi8vbGlua3Rlay5jb20vd3AtY29udGVudC9wbHVnaW5zL2JiLXBsdWdpbi8nLAoJCXdwQWpheFVybCA6ICdodHRwczovL2xpbmt0ZWsuY29tL3dwLWFkbWluL2FkbWluLWFqYXgucGhwJwoJfSwKCWJyZWFrcG9pbnRzIDogewoJCXNtYWxsICA6IDc2OCwKCQltZWRpdW0gOiA5OTIsCgkJbGFyZ2UgOiAxMjAwCX0sCgl3YXlwb2ludDogewoJCW9mZnNldDogODAKCX0KfTsKKGZ1bmN0aW9uKCQpewoKCWlmKHR5cGVvZiBGTEJ1aWxkZXJMYXlvdXQgIT0gJ3VuZGVmaW5lZCcpIHsKCQlyZXR1cm47Cgl9CgoJLyoqCgkgKiBIZWxwZXIgY2xhc3Mgd2l0aCBnZW5lcmljIGxvZ2ljIGZvciBhIGJ1aWxkZXIgbGF5b3V0LgoJICoKCSAqIEBjbGFzcyBGTEJ1aWxkZXJMYXlvdXQKCSAqIEBzaW5jZSAxLjAKCSAqLwoJRkxCdWlsZGVyTGF5b3V0ID0gewoKCQkvKioKCQkgKiBJbml0aWFsaXplcyBhIGJ1aWxkZXIgbGF5b3V0LgoJCSAqCgkJICogQHNpbmNlIDEuMAoJCSAqIEBtZXRob2QgaW5pdAoJCSAqLwoJCWluaXQ6IGZ1bmN0aW9uKCkKCQl7CgkJCS8vIERlc3Ryb3kgZXhpc3RpbmcgbGF5b3V0IGV2ZW50cy4KCQkJRkxCdWlsZGVyTGF5b3V0Ll9kZXN0cm95KCk7CgoJCQkvLyBJbml0IENTUyBjbGFzc2VzLgoJCQlGTEJ1aWxkZXJMYXlvdXQuX2luaXRDbGFzc2VzKCk7CgoJCQkvLyBJbml0IGJhY2tncm91bmRzLgoJCQlGTEJ1aWxkZXJMYXlvdXQuX2luaXRCYWNrZ3JvdW5kcygpOwoKCQkJLy8gSW5pdCByb3cgc2hhcGUgbGF5ZXIgaGVpZ2h0LgoJCQlGTEJ1aWxkZXJMYXlvdXQuX2luaXRSb3dTaGFwZUxheWVySGVpZ2h0KCk7CgoJCQkvLyBPbmx5IGluaXQgaWYgdGhlIGJ1aWxkZXIgaXNuJ3QgYWN0aXZlLgoJCQlpZiAoIDAgPT09ICQoJy5mbC1idWlsZGVyLWVkaXQnKS5sZW5ndGggKSB7CgoJCQkJLy8gSW5pdCBtb2R1bGUgYW5pbWF0aW9ucy4KCQkJCUZMQnVpbGRlckxheW91dC5faW5pdE1vZHVsZUFuaW1hdGlvbnMoKTsKCgkJCQkvLyBJbml0IGFuY2hvciBsaW5rcy4KCQkJCUZMQnVpbGRlckxheW91dC5faW5pdEFuY2hvckxpbmtzKCk7CgoJCQkJLy8gSW5pdCB0aGUgYnJvd3NlciBoYXNoLgoJCQkJRkxCdWlsZGVyTGF5b3V0Ll9pbml0SGFzaCgpOwoKCQkJCS8vIEluaXQgZm9ybXMuCgkJCQlGTEJ1aWxkZXJMYXlvdXQuX2luaXRGb3JtcygpOwoKCQkJCUZMQnVpbGRlckxheW91dC5fcmVvcmRlck1lbnUoKTsKCQkJfQoJCX0sCgoJCS8qKgoJCSAqIFB1YmxpYyBtZXRob2QgZm9yIHJlZnJlc2hpbmcgV29va21hcmsgb3IgTW9zYWljRmxvdyBnYWxsZXJpZXMKCQkgKiB3aXRoaW4gYW4gZWxlbWVudC4KCQkgKgoJCSAqIEBzaW5jZSAxLjcuNAoJCSAqIEBtZXRob2QgcmVmcmVzaEdhbGxlcmllcwoJCSAqLwoJCXJlZnJlc2hHYWxsZXJpZXM6IGZ1bmN0aW9uKCBlbGVtZW50ICkKCQl7CgkJCXZhciAkZWxlbWVudCAgPSAndW5kZWZpbmVkJyA9PSB0eXBlb2YgZWxlbWVudCA/ICQoICdib2R5JyApIDogJCggZWxlbWVudCApLAoJCQkJbWZDb250ZW50ID0gJGVsZW1lbnQuZmluZCggJy5mbC1tb3NhaWNmbG93LWNvbnRlbnQnICksCgkJCQl3bUNvbnRlbnQgPSAkZWxlbWVudC5maW5kKCAnLmZsLWdhbGxlcnknICksCgkJCQltZk9iamVjdCAgPSBudWxsOwoKCQkJaWYgKCBtZkNvbnRlbnQgKSB7CgoJCQkJbWZPYmplY3QgPSBtZkNvbnRlbnQuZGF0YSggJ21vc2FpY2Zsb3cnICk7CgoJCQkJaWYgKCBtZk9iamVjdCApIHsKCQkJCQltZk9iamVjdC5jb2x1bW5zID0gJCggW10gKTsKCQkJCQltZk9iamVjdC5jb2x1bW5zSGVpZ2h0cyA9IFtdOwoJCQkJCW1mQ29udGVudC5kYXRhKCAnbW9zYWljZmxvdycsIG1mT2JqZWN0ICk7CgkJCQkJbWZDb250ZW50Lm1vc2FpY2Zsb3coICdyZWZpbGwnICk7CgkJCQl9CgkJCX0KCQkJaWYgKCB3bUNvbnRlbnQgKSB7CgkJCQl3bUNvbnRlbnQudHJpZ2dlciggJ3JlZnJlc2hXb29rbWFyaycgKTsKCQkJfQoJCX0sCgoJCS8qKgoJCSAqIFB1YmxpYyBtZXRob2QgZm9yIHJlZnJlc2hpbmcgTWFzb25yeSB3aXRoaW4gYW4gZWxlbWVudAoJCSAqCgkJICogQHNpbmNlIDEuOC4xCgkJICogQG1ldGhvZCByZWZyZXNoR3JpZExheW91dAoJCSAqLwoJCXJlZnJlc2hHcmlkTGF5b3V0OiBmdW5jdGlvbiggZWxlbWVudCApCgkJewoJCQl2YXIgJGVsZW1lbnQgCQk9ICd1bmRlZmluZWQnID09IHR5cGVvZiBlbGVtZW50ID8gJCggJ2JvZHknICkgOiAkKCBlbGVtZW50ICksCgkJCQltc25yeUNvbnRlbnQJPSAkZWxlbWVudC5maW5kKCcubWFzb25yeScpOwoKCQkJaWYgKCBtc25yeUNvbnRlbnQubGVuZ3RoICkJewoJCQkJbXNucnlDb250ZW50Lm1hc29ucnkoJ2xheW91dCcpOwoJCQl9CgkJfSwKCgkJLyoqCgkJICogUHVibGljIG1ldGhvZCBmb3IgcmVsb2FkaW5nIEJ4U2xpZGVyIHdpdGhpbiBhbiBlbGVtZW50CgkJICoKCQkgKiBAc2luY2UgMS44LjEKCQkgKiBAbWV0aG9kIHJlbG9hZFNsaWRlcgoJCSAqLwoJCXJlbG9hZFNsaWRlcjogZnVuY3Rpb24oIGVsZW1lbnQgKQoJCXsKCQkJdmFyICRlbGVtZW50IAk9ICd1bmRlZmluZWQnID09IHR5cGVvZiBlbGVtZW50ID8gJCggJ2JvZHknICkgOiAkKCBlbGVtZW50ICksCgkJCQlieENvbnRlbnQJPSAkZWxlbWVudC5maW5kKCcuYngtdmlld3BvcnQgPiBkaXYnKS5lcSgwKSwKCQkJCWJ4T2JqZWN0ICAgCT0gbnVsbDsKCgkJCWlmICggYnhDb250ZW50Lmxlbmd0aCApIHsKCQkJCWJ4T2JqZWN0ID0gYnhDb250ZW50LmRhdGEoICdieFNsaWRlcicpOwoJCQkJaWYgKCBieE9iamVjdCApIHsKCQkJCQlieE9iamVjdC5yZWxvYWRTbGlkZXIoKTsKCQkJCX0KCQkJfQoJCX0sCgoJCS8qKgoJCSAqIFB1YmxpYyBtZXRob2QgZm9yIHJlc2l6aW5nIFdQIGF1ZGlvIHBsYXllcgoJCSAqCgkJICogQHNpbmNlIDEuOC4yCgkJICogQG1ldGhvZCByZXNpemVBdWRpbwoJCSAqLwoJCXJlc2l6ZUF1ZGlvOiBmdW5jdGlvbiggZWxlbWVudCApCgkJewoJCQl2YXIgJGVsZW1lbnQgCSAJPSAndW5kZWZpbmVkJyA9PSB0eXBlb2YgZWxlbWVudCA/ICQoICdib2R5JyApIDogJCggZWxlbWVudCApLAoJCQkJYXVkaW9QbGF5ZXJzIAk9ICRlbGVtZW50LmZpbmQoJy53cC1hdWRpby1zaG9ydGNvZGUubWVqcy1hdWRpbycpLAoJCQkJcGxheWVyIAkJIAk9IG51bGwsCgkJCQltZWpzUGxheWVyIAkgCT0gbnVsbCwKCQkJCXJhaWwgCQkJPSBudWxsLAoJCQkJcmFpbFdpZHRoIAkJPSA0MDA7CgoJCQlpZiAoIGF1ZGlvUGxheWVycy5sZW5ndGggJiYgdHlwZW9mIG1lanMgIT09ICd1bmRlZmluZWQnICkgewogICAgICAgICAgICAJYXVkaW9QbGF5ZXJzLmVhY2goZnVuY3Rpb24oKXsKCSAgICAgICAgICAgIAlwbGF5ZXIgCQk9ICQodGhpcyk7CgkgICAgICAgICAgICAJbWVqc1BsYXllciAJPSBtZWpzLnBsYXllcnNbcGxheWVyLmF0dHIoJ2lkJyldOwoJICAgICAgICAgICAgCXJhaWwgCQk9IHBsYXllci5maW5kKCcubWVqcy1jb250cm9scyAubWVqcy10aW1lLXJhaWwnKTsKCSAgICAgICAgICAgIAl2YXIgaW5uZXJNZWpzID0gcGxheWVyLmZpbmQoJy5tZWpzLWlubmVyJyksCgkgICAgICAgICAgICAJCXRvdGFsIAkgID0gcGxheWVyLmZpbmQoJy5tZWpzLWNvbnRyb2xzIC5tZWpzLXRpbWUtdG90YWwnKTsKCgkgICAgICAgICAgICAJaWYgKCB0eXBlb2YgbWVqc1BsYXllciAhPT0gJ3VuZGVmaW5lZCcgKSB7CgkgICAgICAgICAgICAJCXJhaWxXaWR0aCA9IE1hdGguY2VpbChwbGF5ZXIud2lkdGgoKSAqIDAuOCk7CgoJICAgICAgICAgICAgCQlpZiAoIGlubmVyTWVqcy5sZW5ndGggKSB7CgoJCSAgICAgICAgICAgIAkJcmFpbC5jc3MoJ3dpZHRoJywgcmFpbFdpZHRoICsncHghaW1wb3J0YW50Jyk7CgkJICAgICAgICAgICAgCQkvL3RvdGFsLndpZHRoKHJhaWwud2lkdGgoKSAtIDEwKTsKCgkJICAgICAgICAgICAgCQltZWpzUGxheWVyLm9wdGlvbnMuYXV0b3NpemVQcm9ncmVzcyA9IHRydWU7CgoJCSAgICAgICAgICAgIAkJLy8gd2Via2l0IGhhcyB0cm91YmxlIGRvaW5nIHRoaXMgd2l0aG91dCBhIGRlbGF5CgkJCQkJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCQkJCQltZWpzUGxheWVyLnNldENvbnRyb2xzU2l6ZSgpOwoJCQkJCQkJfSwgNTApOwoKCQkJICAgICAgICAgICAgCXBsYXllci5maW5kKCcubWVqcy1pbm5lcicpLmNzcyh7CgkJCSAgICAgICAgICAgIAkJdmlzaWJpbGl0eTogJ3Zpc2libGUnLAoJCQkgICAgICAgICAgICAJCWhlaWdodDogJ2luaGVyaXQnCgkJCSAgICAgICAgICAgIAl9KTsKCQkgICAgICAgICAgICAJfQoJCSAgICAgICAgICAgCX0KCSAgICAgICAgICAgIH0pOwoJICAgICAgICB9CgkJfSwKCgkJLyoqCgkJICogUHVibGljIG1ldGhvZCBmb3IgcHJlbG9hZGluZyBXUCBhdWRpbyBwbGF5ZXIgd2hlbiBpdCdzIGluc2lkZSB0aGUgaGlkZGVuIGVsZW1lbnQKCQkgKgoJCSAqIEBzaW5jZSAxLjguMgoJCSAqIEBtZXRob2QgcHJlbG9hZEF1ZGlvCgkJICovCgkJcHJlbG9hZEF1ZGlvOiBmdW5jdGlvbihlbGVtZW50KQoJCXsKCQkJdmFyICRlbGVtZW50IAkgPSAndW5kZWZpbmVkJyA9PSB0eXBlb2YgZWxlbWVudCA/ICQoICdib2R5JyApIDogJCggZWxlbWVudCApLAoJCQkJY29udGVudFdyYXAgID0gJGVsZW1lbnQuY2xvc2VzdCgnLmZsLWFjY29yZGlvbi1pdGVtJyksCgkJCQlhdWRpb1BsYXllcnMgPSAkZWxlbWVudC5maW5kKCcud3AtYXVkaW8tc2hvcnRjb2RlLm1lanMtYXVkaW8nKTsKCgkJCWlmICggISBjb250ZW50V3JhcC5oYXNDbGFzcygnZmwtYWNjb3JkaW9uLWl0ZW0tYWN0aXZlJykgJiYgYXVkaW9QbGF5ZXJzLmZpbmQoJy5tZWpzLWlubmVyJykubGVuZ3RoICkgewoJCQkJYXVkaW9QbGF5ZXJzLmZpbmQoJy5tZWpzLWlubmVyJykuY3NzKHsKCQkJCQl2aXNpYmlsaXR5IDogJ2hpZGRlbicsCgkJCQkJaGVpZ2h0OiAwCgkJCQl9KTsKCQkJfQoJCX0sCgoJCS8qKgoJCSAqIFB1YmxpYyBtZXRob2QgZm9yIHJlc2l6aW5nIHNsaWRlc2hvdyBtb21kdWxlIHdpdGhpbiB0aGUgdGFiCgkJICoKCQkgKiBAc2luY2UgMS4xMC41CgkJICogQG1ldGhvZCByZXNpemVTbGlkZXNob3cKCQkgKi8KCQlyZXNpemVTbGlkZXNob3c6IGZ1bmN0aW9uKCl7CgkJCWlmKHR5cGVvZiBZVUkgIT09ICd1bmRlZmluZWQnKSB7CgkJCQlZVUkoKS51c2UoJ25vZGUtZXZlbnQtc2ltdWxhdGUnLCBmdW5jdGlvbihZKSB7CgkJCQkJWS5vbmUod2luZG93KS5zaW11bGF0ZSgicmVzaXplIik7CgkJCQl9KTsKCQkJfQoJCX0sCgoJCS8qKgoJCSAqIFB1YmxpYyBtZXRob2QgZm9yIHJlbG9hZGluZyBhbiBlbWJlZGRlZCBHb29nbGUgTWFwIHdpdGhpbiB0aGUgdGFicyBvciBoaWRkZW4gZWxlbWVudC4KCQkgKgoJCSAqIEBzaW5jZSAyLjIKCQkgKiBAbWV0aG9kIHJlbG9hZEdvb2dsZU1hcAoJCSAqLwoJCXJlbG9hZEdvb2dsZU1hcDogZnVuY3Rpb24oZWxlbWVudCl7CgkJCXZhciAkZWxlbWVudCAgPSAndW5kZWZpbmVkJyA9PSB0eXBlb2YgZWxlbWVudCA/ICQoICdib2R5JyApIDogJCggZWxlbWVudCApLAoJCQkgICAgZ29vZ2xlTWFwID0gJGVsZW1lbnQuZmluZCggJ2lmcmFtZVtzcmMqPSJnb29nbGUuY29tL21hcHMiXScgKTsKCgkJCWlmICggZ29vZ2xlTWFwLmxlbmd0aCApIHsKCQkJICAgIGdvb2dsZU1hcC5hdHRyKCAnc3JjJywgZnVuY3Rpb24oaSwgdmFsKSB7CgkJCSAgICAgICAgcmV0dXJuIHZhbDsKCQkJICAgIH0pOwoJCQl9CgkJfSwKCgkJLyoqCgkJICogVW5iaW5kcyBidWlsZGVyIGxheW91dCBldmVudHMuCgkJICoKCQkgKiBAc2luY2UgMS4wCgkJICogQGFjY2VzcyBwcml2YXRlCgkJICogQG1ldGhvZCBfZGVzdHJveQoJCSAqLwoJCV9kZXN0cm95OiBmdW5jdGlvbigpCgkJewoJCQl2YXIgd2luID0gJCh3aW5kb3cpOwoKCQkJd2luLm9mZignc2Nyb2xsLmZsLWJnLXBhcmFsbGF4Jyk7CgkJCXdpbi5vZmYoJ3Jlc2l6ZS5mbC1iZy12aWRlbycpOwoJCX0sCgoJCS8qKgoJCSAqIENoZWNrcyB0byBzZWUgaWYgdGhlIGN1cnJlbnQgZGV2aWNlIGhhcyB0b3VjaCBlbmFibGVkLgoJCSAqCgkJICogQHNpbmNlIDEuMAoJCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJCSAqIEBtZXRob2QgX2lzVG91Y2gKCQkgKiBAcmV0dXJuIHtCb29sZWFufQoJCSAqLwoJCV9pc1RvdWNoOiBmdW5jdGlvbigpCgkJewoJCQlpZigoJ29udG91Y2hzdGFydCcgaW4gd2luZG93KSB8fCAod2luZG93LkRvY3VtZW50VG91Y2ggJiYgZG9jdW1lbnQgaW5zdGFuY2VvZiBEb2N1bWVudFRvdWNoKSkgewoJCQkJcmV0dXJuIHRydWU7CgkJCX0KCgkJCXJldHVybiBmYWxzZTsKCQl9LAoKCQkvKioKCQkgKiBDaGVja3MgdG8gc2VlIGlmIHRoZSBjdXJyZW50IGRldmljZSBpcyBtb2JpbGUuCgkJICoKCQkgKiBAc2luY2UgMS43CgkJICogQGFjY2VzcyBwcml2YXRlCgkJICogQG1ldGhvZCBfaXNNb2JpbGUKCQkgKiBAcmV0dXJuIHtCb29sZWFufQoJCSAqLwoJCV9pc01vYmlsZTogZnVuY3Rpb24oKQoJCXsKCQkJcmV0dXJuIC9Nb2JpbGV8QW5kcm9pZHxTaWxrXC98S2luZGxlfEJsYWNrQmVycnl8T3BlcmEgTWluaXxPcGVyYSBNb2JpfHdlYk9TL2kudGVzdCggbmF2aWdhdG9yLnVzZXJBZ2VudCApOwoJCX0sCgoJCS8qKgoJCSAqIEluaXRpYWxpemVzIGJ1aWxkZXIgYm9keSBjbGFzc2VzLgoJCSAqCgkJICogQHNpbmNlIDEuMAoJCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJCSAqIEBtZXRob2QgX2luaXRDbGFzc2VzCgkJICovCgkJX2luaXRDbGFzc2VzOiBmdW5jdGlvbigpCgkJewoJCQl2YXIgYm9keSA9ICQoICdib2R5JyApLAoJCQkJdWEgICA9IG5hdmlnYXRvci51c2VyQWdlbnQ7CgoJCQkvLyBBZGQgdGhlIGJ1aWxkZXIgYm9keSBjbGFzcy4KCQkJaWYgKCAhIGJvZHkuaGFzQ2xhc3MoICdhcmNoaXZlJyApICYmICQoICcuZmwtYnVpbGRlci1jb250ZW50LXByaW1hcnknICkubGVuZ3RoID4gMCApIHsKCQkJCWJvZHkuYWRkQ2xhc3MoJ2ZsLWJ1aWxkZXInKTsKCQkJfQoKCQkJLy8gQWRkIHRoZSBidWlsZGVyIHRvdWNoIGJvZHkgY2xhc3MuCgkJCWlmKEZMQnVpbGRlckxheW91dC5faXNUb3VjaCgpKSB7CgkJCQlib2R5LmFkZENsYXNzKCdmbC1idWlsZGVyLXRvdWNoJyk7CgkJCX0KCgkJCS8vIEFkZCB0aGUgYnVpbGRlciBtb2JpbGUgYm9keSBjbGFzcy4KCQkJaWYoRkxCdWlsZGVyTGF5b3V0Ll9pc01vYmlsZSgpKSB7CgkJCQlib2R5LmFkZENsYXNzKCdmbC1idWlsZGVyLW1vYmlsZScpOwoJCQl9CgoJCQlpZiAoICQod2luZG93KS53aWR0aCgpIDwgRkxCdWlsZGVyTGF5b3V0Q29uZmlnLmJyZWFrcG9pbnRzLnNtYWxsICkgewoJCQkJYm9keS5hZGRDbGFzcyggJ2ZsLWJ1aWxkZXItYnJlYWtwb2ludC1zbWFsbCcgKTsKCQkJfQoKCQkJaWYgKCAkKHdpbmRvdykud2lkdGgoKSA+IEZMQnVpbGRlckxheW91dENvbmZpZy5icmVha3BvaW50cy5zbWFsbCAmJiAkKHdpbmRvdykud2lkdGgoKSA8IEZMQnVpbGRlckxheW91dENvbmZpZy5icmVha3BvaW50cy5tZWRpdW0gKSB7CgkJCQlib2R5LmFkZENsYXNzKCAnZmwtYnVpbGRlci1icmVha3BvaW50LW1lZGl1bScgKTsKCQkJfQoKCQkJaWYgKCAkKHdpbmRvdykud2lkdGgoKSA+IEZMQnVpbGRlckxheW91dENvbmZpZy5icmVha3BvaW50cy5tZWRpdW0gJiYgJCh3aW5kb3cpLndpZHRoKCkgPCBGTEJ1aWxkZXJMYXlvdXRDb25maWcuYnJlYWtwb2ludHMubGFyZ2UgKSB7CgkJCQlib2R5LmFkZENsYXNzKCAnZmwtYnVpbGRlci1icmVha3BvaW50LWxhcmdlJyApOwoJCQl9CgoJCQlpZiAoICQod2luZG93KS53aWR0aCgpID4gRkxCdWlsZGVyTGF5b3V0Q29uZmlnLmJyZWFrcG9pbnRzLmxhcmdlICkgewoJCQkJYm9keS5hZGRDbGFzcyggJ2ZsLWJ1aWxkZXItYnJlYWtwb2ludC1kZWZhdWx0JyApOwoJCQl9CgoJCQkvLyBJRTExIGJvZHkgY2xhc3MuCgkJCWlmICggdWEuaW5kZXhPZiggJ1RyaWRlbnQvNy4wJyApID4gLTEgJiYgdWEuaW5kZXhPZiggJ3J2OjExLjAnICkgPiAtMSApIHsKCQkJCWJvZHkuYWRkQ2xhc3MoICdmbC1idWlsZGVyLWllLTExJyApOwoJCQl9CgkJfSwKCgkJLyoqCgkJICogSW5pdGlhbGl6ZXMgYnVpbGRlciBub2RlIGJhY2tncm91bmRzIHRoYXQgcmVxdWlyZQoJCSAqIGFkZGl0aW9uYWwgSmF2YVNjcmlwdCBsb2dpYyBzdWNoIGFzIHBhcmFsbGF4LgoJCSAqCgkJICogQHNpbmNlIDEuMS40CgkJICogQGFjY2VzcyBwcml2YXRlCgkJICogQG1ldGhvZCBfaW5pdEJhY2tncm91bmRzCgkJICovCgkJX2luaXRCYWNrZ3JvdW5kczogZnVuY3Rpb24oKQoJCXsKCQkJdmFyIHdpbiA9ICQod2luZG93KTsKCgkJCS8vIEluaXQgcGFyYWxsYXggYmFja2dyb3VuZHMuCgkJCWlmKCQoJy5mbC1yb3ctYmctcGFyYWxsYXgnKS5sZW5ndGggPiAwICYmICFGTEJ1aWxkZXJMYXlvdXQuX2lzTW9iaWxlKCkpIHsKCQkJCUZMQnVpbGRlckxheW91dC5fc2Nyb2xsUGFyYWxsYXhCYWNrZ3JvdW5kcygpOwoJCQkJRkxCdWlsZGVyTGF5b3V0Ll9pbml0UGFyYWxsYXhCYWNrZ3JvdW5kcygpOwoJCQkJd2luLm9uKCdyZXNpemUuZmwtYmctcGFyYWxsYXgnLCBGTEJ1aWxkZXJMYXlvdXQuX2luaXRQYXJhbGxheEJhY2tncm91bmRzKTsKCQkJCXdpbi5vbignc2Nyb2xsLmZsLWJnLXBhcmFsbGF4JywgRkxCdWlsZGVyTGF5b3V0Ll9zY3JvbGxQYXJhbGxheEJhY2tncm91bmRzKTsKCQkJfQoKCQkJLy8gSW5pdCB2aWRlbyBiYWNrZ3JvdW5kcy4KCQkJaWYoJCgnLmZsLWJnLXZpZGVvJykubGVuZ3RoID4gMCkgewoJCQkJRkxCdWlsZGVyTGF5b3V0Ll9pbml0QmdWaWRlb3MoKTsKCQkJCUZMQnVpbGRlckxheW91dC5fcmVzaXplQmdWaWRlb3MoKTsKCgkJCQkvLyBFbnN1cmUgRkxCdWlsZGVyTGF5b3V0Ll9yZXNpemVCZ1ZpZGVvcygpIGlzIG9ubHkgY2FsbGVkIG9uY2Ugb24gd2luZG93IHJlc2l6ZS4KCQkJCXZhciByZXNpemVCR1RpbWVyID0gbnVsbDsKCQkJCXdpbi5vbigncmVzaXplLmZsLWJnLXZpZGVvJywgZnVuY3Rpb24oZSl7CgkJCQkJY2xlYXJUaW1lb3V0KCByZXNpemVCR1RpbWVyICk7CgkJCQkJcmVzaXplQkdUaW1lciA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CgkJCQkJCUZMQnVpbGRlckxheW91dC5fcmVzaXplQmdWaWRlb3MoZSk7CgkJCQkJfSwgMTAwICk7CgkJCQl9KTsKCQkJfQoJCX0sCgoJCS8qKgoJCSAqIEluaXRpYWxpemVzIGFsbCBwYXJhbGxheCBiYWNrZ3JvdW5kcyBpbiBhIGxheW91dC4KCQkgKgoJCSAqIEBzaW5jZSAxLjEuNAoJCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJCSAqIEBtZXRob2QgX2luaXRQYXJhbGxheEJhY2tncm91bmRzCgkJICovCgkJX2luaXRQYXJhbGxheEJhY2tncm91bmRzOiBmdW5jdGlvbigpCgkJewoJCQkkKCcuZmwtcm93LWJnLXBhcmFsbGF4JykuZWFjaChGTEJ1aWxkZXJMYXlvdXQuX2luaXRQYXJhbGxheEJhY2tncm91bmQpOwoJCX0sCgoJCS8qKgoJCSAqIEluaXRpYWxpemVzIGEgc2luZ2xlIHBhcmFsbGF4IGJhY2tncm91bmQuCgkJICoKCQkgKiBAc2luY2UgMS4xLjQKCQkgKiBAYWNjZXNzIHByaXZhdGUKCQkgKiBAbWV0aG9kIF9pbml0UGFyYWxsYXhCYWNrZ3JvdW5kcwoJCSAqLwoJCV9pbml0UGFyYWxsYXhCYWNrZ3JvdW5kOiBmdW5jdGlvbigpCgkJewoJCQl2YXIgcm93ICAgICA9ICQodGhpcyksCgkJCQljb250ZW50ID0gcm93LmZpbmQoJz4gLmZsLXJvdy1jb250ZW50LXdyYXAnKSwKCQkJCXdpbldpZHRoID0gJCh3aW5kb3cpLndpZHRoKCksCgkJCQlzY3JlZW5TaXplID0gJycsCgkJCQlpbWFnZVNyYyA9IHsKCQkJCQlkZWZhdWx0OiAnJywKCQkJCQltZWRpdW06ICcnLAoJCQkJCXJlc3BvbnNpdmU6ICcnLAoJCQkJfTsKCgkJCWltYWdlU3JjLmRlZmF1bHQgPSByb3cuZGF0YSgncGFyYWxsYXgtaW1hZ2UnKSB8fCAnJzsKCQkJaW1hZ2VTcmMubWVkaXVtID0gcm93LmRhdGEoJ3BhcmFsbGF4LWltYWdlLW1lZGl1bScpIHx8IGltYWdlU3JjLmRlZmF1bHQ7CgkJCWltYWdlU3JjLnJlc3BvbnNpdmUgPSByb3cuZGF0YSgncGFyYWxsYXgtaW1hZ2UtcmVzcG9uc2l2ZScpIHx8IGltYWdlU3JjLm1lZGl1bTsKCgkJCWlmICh3aW5XaWR0aCA+IEZMQnVpbGRlckxheW91dENvbmZpZy5icmVha3BvaW50cy5tZWRpdW0pIHsKCQkJCXNjcmVlblNpemUgPSAnZGVmYXVsdCc7CgkJCX0gZWxzZSBpZiAod2luV2lkdGggPiBGTEJ1aWxkZXJMYXlvdXRDb25maWcuYnJlYWtwb2ludHMuc21hbGwgJiYgd2luV2lkdGggPD0gRkxCdWlsZGVyTGF5b3V0Q29uZmlnLmJyZWFrcG9pbnRzLm1lZGl1bSApIHsKCQkJCXNjcmVlblNpemUgPSAnbWVkaXVtJzsKCQkJfSBlbHNlIGlmICh3aW5XaWR0aCA8PSBGTEJ1aWxkZXJMYXlvdXRDb25maWcuYnJlYWtwb2ludHMuc21hbGwpIHsKCQkJCXNjcmVlblNpemUgPSAncmVzcG9uc2l2ZSc7CgkJCX0KCgkJCWNvbnRlbnQuY3NzKCdiYWNrZ3JvdW5kLWltYWdlJywgJ3VybCgnICsgaW1hZ2VTcmNbc2NyZWVuU2l6ZV0gKyAnKScpOwoJCQlyb3cuZGF0YSgnY3VycmVudC1pbWFnZS1sb2FkZWQnLCBzY3JlZW5TaXplICk7CgoJCX0sCgoJCS8qKgoJCSAqIEZpcmVzIHdoZW4gdGhlIHdpbmRvdyBpcyBzY3JvbGxlZCB0byBhZGp1c3QKCQkgKiBwYXJhbGxheCBiYWNrZ3JvdW5kcy4KCQkgKgoJCSAqIEBzaW5jZSAxLjEuNAoJCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJCSAqIEBtZXRob2QgX3Njcm9sbFBhcmFsbGF4QmFja2dyb3VuZHMKCQkgKi8KCQlfc2Nyb2xsUGFyYWxsYXhCYWNrZ3JvdW5kczogZnVuY3Rpb24oKQoJCXsKCQkJJCgnLmZsLXJvdy1iZy1wYXJhbGxheCcpLmVhY2goRkxCdWlsZGVyTGF5b3V0Ll9zY3JvbGxQYXJhbGxheEJhY2tncm91bmQpOwoJCX0sCgoJCS8qKgoJCSAqIEZpcmVzIHdoZW4gdGhlIHdpbmRvdyBpcyBzY3JvbGxlZCB0byBhZGp1c3QKCQkgKiBhIHNpbmdsZSBwYXJhbGxheCBiYWNrZ3JvdW5kLgoJCSAqCgkJICogQHNpbmNlIDEuMS40CgkJICogQGFjY2VzcyBwcml2YXRlCgkJICogQG1ldGhvZCBfc2Nyb2xsUGFyYWxsYXhCYWNrZ3JvdW5kCgkJICovCgkJX3Njcm9sbFBhcmFsbGF4QmFja2dyb3VuZDogZnVuY3Rpb24oKQoJCXsKCQkJdmFyIHdpbiAgICAgCSAgPSAkKHdpbmRvdyksCgkJCQlyb3cgICAgIAkgID0gJCh0aGlzKSwKCQkJCWNvbnRlbnQgCSAgPSByb3cuZmluZCgnPiAuZmwtcm93LWNvbnRlbnQtd3JhcCcpLAoJCQkJc3BlZWQgICAJICA9IHJvdy5kYXRhKCdwYXJhbGxheC1zcGVlZCcpLAoJCQkJb2Zmc2V0ICAJICA9IGNvbnRlbnQub2Zmc2V0KCksCgkJCQl5UG9zCQkgID0gLSgod2luLnNjcm9sbFRvcCgpIC0gb2Zmc2V0LnRvcCkgLyBzcGVlZCksCgkJCQlpbml0aWFsT2Zmc2V0ID0gKCByb3cuZGF0YSgncGFyYWxsYXgtb2Zmc2V0JykgIT0gbnVsbCApID8gcm93LmRhdGEoJ3BhcmFsbGF4LW9mZnNldCcpIDogMCwKCQkJCXRvdGFsT2Zmc2V0ICAgPSB5UG9zIC0gaW5pdGlhbE9mZnNldDsKCgkJCWNvbnRlbnQuY3NzKCdiYWNrZ3JvdW5kLXBvc2l0aW9uJywgJ2NlbnRlciAnICsgdG90YWxPZmZzZXQgKyAncHgnKTsKCQl9LAoKCQkvKioKCQkgKiBJbml0aWFsaXplcyBhbGwgdmlkZW8gYmFja2dyb3VuZHMuCgkJICoKCQkgKiBAc2luY2UgMS42LjMuMwoJCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJCSAqIEBtZXRob2QgX2luaXRCZ1ZpZGVvcwoJCSAqLwoJCV9pbml0QmdWaWRlb3M6IGZ1bmN0aW9uKCkKCQl7CgkJCSQoJy5mbC1iZy12aWRlbycpLmVhY2goRkxCdWlsZGVyTGF5b3V0Ll9pbml0QmdWaWRlbyk7CgkJfSwKCgkJLyoqCgkJICogSW5pdGlhbGl6ZXMgYSB2aWRlbyBiYWNrZ3JvdW5kLgoJCSAqCgkJICogQHNpbmNlIDEuNi4zLjMKCQkgKiBAYWNjZXNzIHByaXZhdGUKCQkgKiBAbWV0aG9kIF9pbml0QmdWaWRlbwoJCSAqLwoJCV9pbml0QmdWaWRlbzogZnVuY3Rpb24oKQoJCXsKCQkJdmFyIHdyYXAgICA9ICQoIHRoaXMgKSwKCQkJCXdpZHRoICAgICAgID0gd3JhcC5kYXRhKCAnd2lkdGgnICksCgkJCQloZWlnaHQgICAgICA9IHdyYXAuZGF0YSggJ2hlaWdodCcgKSwKCQkJCW1wNCAgICAgICAgID0gd3JhcC5kYXRhKCAnbXA0JyApLAoJCQkJeW91dHViZSAgICAgPSB3cmFwLmRhdGEoICd5b3V0dWJlJyksCgkJCQl2aW1lbyAgICAgICA9IHdyYXAuZGF0YSggJ3ZpbWVvJyksCgkJCQltcDRUeXBlICAgICA9IHdyYXAuZGF0YSggJ21wNC10eXBlJyApLAoJCQkJd2VibSAgICAgICAgPSB3cmFwLmRhdGEoICd3ZWJtJyApLAoJCQkJd2VibVR5cGUgICAgPSB3cmFwLmRhdGEoICd3ZWJtLXR5cGUnICksCgkJCQlmYWxsYmFjayAgICA9IHdyYXAuZGF0YSggJ2ZhbGxiYWNrJyApLAoJCQkJbG9hZGVkICAgICAgPSB3cmFwLmRhdGEoICdsb2FkZWQnICksCgkJCQl2aWRlb01vYmlsZSA9IHdyYXAuZGF0YSggJ3ZpZGVvLW1vYmlsZScgKSwKCQkJCWZhbGxiYWNrVGFnID0gJycsCgkJCQl2aWRlb1RhZyAgICA9IG51bGwsCgkJCQltcDRUYWcgICAgICA9IG51bGwsCgkJCQl3ZWJtVGFnICAgICA9IG51bGw7CgoJCQkvLyBSZXR1cm4gaWYgdGhlIHZpZGVvIGhhcyBiZWVuIGxvYWRlZCBmb3IgdGhpcyByb3cuCgkJCWlmICggbG9hZGVkICkgewoJCQkJcmV0dXJuOwoJCQl9CgoJCQl2aWRlb1RhZyAgPSAkKCAnPHZpZGVvIGF1dG9wbGF5IGxvb3AgbXV0ZWQgcGxheXNpbmxpbmU+PC92aWRlbz4nICk7CgoJCQkvKioKCQkJICogQWRkIHBvc3RlciBpbWFnZSAoZmFsbGJhY2sgaW1hZ2UpCgkJCSAqLwoJCQlpZiggJ3VuZGVmaW5lZCcgIT0gdHlwZW9mIGZhbGxiYWNrICYmICcnICE9IGZhbGxiYWNrICkgewoJCQkJdmlkZW9UYWcuYXR0ciggJ3Bvc3RlcicsICdkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBQUFBUC8vL3lINUJBRUFBQUFBTEFBQUFBQUJBQUVBQUFJQlJBQTcnICkKCQkJCXZpZGVvVGFnLmNzcyh7CgkJCQkJYmFja2dyb3VuZEltYWdlOiAndXJsKCInICsgZmFsbGJhY2sgKyAnIiknLAoJCQkJCWJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JywKCQkJCQliYWNrZ3JvdW5kUmVwZWF0OiAnbm8tcmVwZWF0JywKCQkJCQliYWNrZ3JvdW5kU2l6ZTogJ2NvdmVyJywKCQkJCQliYWNrZ3JvdW5kUG9zaXRpb246ICdjZW50ZXIgY2VudGVyJywKCQkJCX0pCgkJCX0KCgkJCS8vIE1QNCBTb3VyY2UgVGFnCgkJCWlmICggJ3VuZGVmaW5lZCcgIT0gdHlwZW9mIG1wNCAmJiAnJyAhPSBtcDQgKSB7CgoJCQkJbXA0VGFnID0gJCggJzxzb3VyY2UgLz4nICk7CgkJCQltcDRUYWcuYXR0ciggJ3NyYycsIG1wNCApOwoJCQkJbXA0VGFnLmF0dHIoICd0eXBlJywgbXA0VHlwZSApOwoKCQkJCXZpZGVvVGFnLmFwcGVuZCggbXA0VGFnICk7CgkJCX0KCQkJLy8gV2ViTSBTb3VyY2UgVGFnCgkJCWlmICggJ3VuZGVmaW5lZCcgIT0gdHlwZW9mIHdlYm0gJiYgJycgIT0gd2VibSApIHsKCgkJCQl3ZWJtVGFnID0gJCggJzxzb3VyY2UgLz4nICk7CgkJCQl3ZWJtVGFnLmF0dHIoICdzcmMnLCB3ZWJtICk7CgkJCQl3ZWJtVGFnLmF0dHIoICd0eXBlJywgd2VibVR5cGUgKTsKCgkJCQl2aWRlb1RhZy5hcHBlbmQoIHdlYm1UYWcgKTsKCQkJfQoKCQkJLy8gVGhpcyBpcyBlaXRoZXIgZGVza3RvcCwgb3IgbW9iaWxlIGlzIGVuYWJsZWQuCgkJCWlmICggISBGTEJ1aWxkZXJMYXlvdXQuX2lzTW9iaWxlKCkgfHwgKCBGTEJ1aWxkZXJMYXlvdXQuX2lzTW9iaWxlKCkgJiYgInllcyIgPT0gdmlkZW9Nb2JpbGUgKSApIHsKCQkJCWlmICggJ3VuZGVmaW5lZCcgIT0gdHlwZW9mIHlvdXR1YmUgKSB7CgkJCQkJRkxCdWlsZGVyTGF5b3V0Ll9pbml0WW91dHViZUJnVmlkZW8uYXBwbHkoIHRoaXMgKTsKCQkJCX0KCQkJCWVsc2UgaWYgKCAndW5kZWZpbmVkJyAhPSB0eXBlb2YgdmltZW8gKSB7CgkJCQkJRkxCdWlsZGVyTGF5b3V0Ll9pbml0VmltZW9CZ1ZpZGVvLmFwcGx5KCB0aGlzICk7CgkJCQl9CgkJCQllbHNlIHsKCQkJCQl3cmFwLmFwcGVuZCggdmlkZW9UYWcgKTsKCQkJCX0KCQkJfQoJCQllbHNlIHsKCQkJCS8vIGlmIHdlIGFyZSBoZXJlLCBpdCBtZWFucyB3ZSBhcmUgb24gbW9iaWxlIGFuZCBOTyBpcyBzZXQgc28gcmVtb3ZlIHZpZGVvIHNyYyBhbmQgdXNlIGZhbGxiYWNrCgkJCQl2aWRlb1RhZy5hdHRyKCdzcmMnLCAnJykKCQkJCXdyYXAuYXBwZW5kKCB2aWRlb1RhZyApOwoJCQl9CgoJCQkvLyBNYXJrIHRoaXMgdmlkZW8gYXMgbG9hZGVkLgoJCQl3cmFwLmRhdGEoJ2xvYWRlZCcsIHRydWUpOwoJCX0sCgoJCS8qKgoJCSAqIEluaXRpYWxpemVzIFlvdXR1YmUgdmlkZW8gYmFja2dyb3VuZAoJCSAqCgkJICogQHNpbmNlIDEuOQoJCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJCSAqIEBtZXRob2QgX2luaXRZb3V0dWJlQmdWaWRlbwoJCSAqLwoJCV9pbml0WW91dHViZUJnVmlkZW86IGZ1bmN0aW9uKCkKCQl7CgkJCXZhciBwbGF5ZXJXcmFwICA9ICQodGhpcyksCgkJCQl2aWRlb0lkICAgICA9IHBsYXllcldyYXAuZGF0YSgndmlkZW8taWQnKSwKCQkJCXZpZGVvUGxheWVyID0gcGxheWVyV3JhcC5maW5kKCcuZmwtYmctdmlkZW8tcGxheWVyJyksCgkJCQllbmFibGVBdWRpbyA9IHBsYXllcldyYXAuZGF0YSgnZW5hYmxlLWF1ZGlvJyksCgkJCQlhdWRpb0J1dHRvbiA9IHBsYXllcldyYXAuZmluZCgnLmZsLWJnLXZpZGVvLWF1ZGlvJyksCgkJCQlzdGFydFRpbWUgICA9ICd1bmRlZmluZWQnICE9PSB0eXBlb2YgcGxheWVyV3JhcC5kYXRhKCdzdGFydCcpID8gcGxheWVyV3JhcC5kYXRhKCdzdGFydCcpIDogMCwKCQkJCXN0YXJ0VGltZSAgID0gJ3VuZGVmaW5lZCcgIT09IHR5cGVvZiBwbGF5ZXJXcmFwLmRhdGEoJ3QnKSAmJiBzdGFydFRpbWUgPT09IDAgPyBwbGF5ZXJXcmFwLmRhdGEoJ3QnKSA6IHN0YXJ0VGltZSwKCQkJCWVuZFRpbWUgICAgID0gJ3VuZGVmaW5lZCcgIT09IHR5cGVvZiBwbGF5ZXJXcmFwLmRhdGEoJ2VuZCcpID8gcGxheWVyV3JhcC5kYXRhKCdlbmQnKSA6IDAsCgkJCQlsb29wICAgICAgICA9ICd1bmRlZmluZWQnICE9PSB0eXBlb2YgcGxheWVyV3JhcC5kYXRhKCdsb29wJykgPyBwbGF5ZXJXcmFwLmRhdGEoJ2xvb3AnKSA6IDEsCgkJCQlzdGF0ZUNvdW50ICA9IDAsCgkJCQlwbGF5ZXIsZmFsbGJhY2tfc2hvd2luZzsKCgkJCWlmICggdmlkZW9JZCApIHsKCQkJCWZhbGxiYWNrID0gcGxheWVyV3JhcC5kYXRhKCdmYWxsYmFjaycpIHx8IGZhbHNlCgkJCQlpZiggZmFsbGJhY2sgKSB7CgkJCQkJcGxheWVyV3JhcC5maW5kKCdpZnJhbWUnKS5yZW1vdmUoKQoJCQkJCWZhbGxiYWNrVGFnID0gJCggJzxkaXY+PC9kaXY+JyApOwoJCQkJCWZhbGxiYWNrVGFnLmFkZENsYXNzKCAnZmwtYmctdmlkZW8tZmFsbGJhY2snICk7CgkJCQkJZmFsbGJhY2tUYWcuY3NzKCAnYmFja2dyb3VuZC1pbWFnZScsICd1cmwoJyArIHBsYXllcldyYXAuZGF0YSgnZmFsbGJhY2snKSArICcpJyApOwoJCQkJCWZhbGxiYWNrVGFnLmNzcyggJ2JhY2tncm91bmQtc2l6ZScsICdjb3ZlcicgKTsKCQkJCQlmYWxsYmFja1RhZy5jc3MoICd0cmFuc2l0aW9uJywgJ2JhY2tncm91bmQtaW1hZ2UgMXMnKQoJCQkJCXBsYXllcldyYXAuYXBwZW5kKCBmYWxsYmFja1RhZyApOwoJCQkJCWZhbGxiYWNrX3Nob3dpbmcgPSB0cnVlOwoJCQkJfQoJCQkJRkxCdWlsZGVyTGF5b3V0Ll9vbllvdXR1YmVBcGlSZWFkeSggZnVuY3Rpb24oIFlUICkgewoJCQkJCXNldFRpbWVvdXQoIGZ1bmN0aW9uKCkgewoKCQkJCQkJcGxheWVyID0gbmV3IFlULlBsYXllciggdmlkZW9QbGF5ZXJbMF0sIHsKCQkJCQkJCXZpZGVvSWQ6IHZpZGVvSWQsCgkJCQkJCQlldmVudHM6IHsKCQkJCQkJCQlvblJlYWR5OiBmdW5jdGlvbihldmVudCkgewoJCQkJCQkJCQlpZiAoICJubyIgPT09IGVuYWJsZUF1ZGlvIHx8IEZMQnVpbGRlckxheW91dC5faXNNb2JpbGUoKSApIHsKCQkJCQkJCQkJCWV2ZW50LnRhcmdldC5tdXRlKCk7CgkJCQkJCQkJCX0KCQkJCQkJCQkJZWxzZSBpZiAoICJ5ZXMiID09PSBlbmFibGVBdWRpbyAmJiBldmVudC50YXJnZXQuaXNNdXRlZCApIHsKCQkJCQkJCQkJCWV2ZW50LnRhcmdldC51bk11dGUoKTsKCQkJCQkJCQkJfQoKCQkJCQkJCQkJLy8gU3RvcmUgYW4gaW5zdGFuY2UgdG8gYSBwYXJlbnQKCQkJCQkJCQkJcGxheWVyV3JhcC5kYXRhKCdZVFBsYXllcicsIHBsYXllcik7CgkJCQkJCQkJCUZMQnVpbGRlckxheW91dC5fcmVzaXplWW91dHViZUJnVmlkZW8uYXBwbHkocGxheWVyV3JhcCk7CgoJCQkJCQkJCQkvLyBRdWV1ZSB0aGUgdmlkZW8uCgkJCQkJCQkJCWV2ZW50LnRhcmdldC5wbGF5VmlkZW8oKTsKCgkJCQkJCQkJCWlmICggYXVkaW9CdXR0b24ubGVuZ3RoID4gMCAmJiAhIEZMQnVpbGRlckxheW91dC5faXNNb2JpbGUoKSApIHsKCQkJCQkJCQkJCWF1ZGlvQnV0dG9uLm9uKCAnY2xpY2snLCB7YnV0dG9uOiBhdWRpb0J1dHRvbiwgcGxheWVyOiBwbGF5ZXJ9LCBGTEJ1aWxkZXJMYXlvdXQuX3RvZ2dsZUJnVmlkZW9BdWRpbyApOwoJCQkJCQkJCQl9CgkJCQkJCQkJfSwKCQkJCQkJCQlvblN0YXRlQ2hhbmdlOiBmdW5jdGlvbiggZXZlbnQgKSB7CgoJCQkJCQkJCQlpZiAoIGV2ZW50LmRhdGEgPT09IDEgKSB7CgkJCQkJCQkJCQlpZiAoIGZhbGxiYWNrX3Nob3dpbmcgKSB7CgkJCQkJCQkJCQkJJCggJy5mbC1iZy12aWRlby1mYWxsYmFjaycgKS5jc3MoICdiYWNrZ3JvdW5kLWltYWdlJywgJ3VybChkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBQUFBUC8vL3lINUJBRUFBQUFBTEFBQUFBQUJBQUVBQUFJQlJBQTcpJyApCgkJCQkJCQkJCQl9CgkJCQkJCQkJCX0KCQkJCQkJCQkJLy8gTWFudWFsIGNoZWNrIGlmIHZpZGVvIGlzIG5vdCBwbGF5YWJsZSBpbiBzb21lIGJyb3dzZXJzLgoJCQkJCQkJCQkvLyBTdGF0ZUNoYW5nZSBvcmRlcjogWy0xLCAzLCAtMV0KCQkJCQkJCQkJaWYgKCBzdGF0ZUNvdW50IDwgNCApIHsKCQkJCQkJCQkJCXN0YXRlQ291bnQrKzsKCQkJCQkJCQkJfQoKCQkJCQkJCQkJLy8gQ29tcGx5IHdpdGggdGhlIGF1ZGlvIHBvbGljeSBpbiBzb21lIGJyb3dzZXJzIGxpa2UgQ2hyb21lIGFuZCBTYWZhcmkuCgkJCQkJCQkJCWlmICggc3RhdGVDb3VudCA+IDEgJiYgKC0xID09PSBldmVudC5kYXRhIHx8IDIgPT09IGV2ZW50LmRhdGEpICYmICJ5ZXMiID09PSBlbmFibGVBdWRpbyApIHsKCQkJCQkJCQkJCXBsYXllci5tdXRlKCk7CgkJCQkJCQkJCQlwbGF5ZXIucGxheVZpZGVvKCk7CgkJCQkJCQkJCQlhdWRpb0J1dHRvbi5zaG93KCk7CgkJCQkJCQkJCX0KCgkJCQkJCQkJCWlmICggZXZlbnQuZGF0YSA9PT0gWVQuUGxheWVyU3RhdGUuRU5ERUQgJiYgMSA9PT0gbG9vcCApIHsKCQkJCQkJCQkJCWlmICggc3RhcnRUaW1lID4gMCApIHsKCQkJCQkJCQkJCQlwbGF5ZXIuc2Vla1RvKCBzdGFydFRpbWUgKTsKCQkJCQkJCQkJCX0KCQkJCQkJCQkJCWVsc2UgewoJCQkJCQkJCQkJCXBsYXllci5wbGF5VmlkZW8oKTsKCQkJCQkJCQkJCX0KCQkJCQkJCQkJfQoJCQkJCQkJCX0sCgkJCQkJCQkJb25FcnJvcjogZnVuY3Rpb24oZXZlbnQpIHsKCQkJCQkJCQkJY29uc29sZS5pbmZvKCdZVCBFcnJvcjogJyArIGV2ZW50LmRhdGEpCgkJCQkJCQkJCUZMQnVpbGRlckxheW91dC5fb25FcnJvcllvdXR1YmVWaW1lbyhwbGF5ZXJXcmFwKQoJCQkJCQkJCX0KCQkJCQkJCX0sCgkJCQkJCQlwbGF5ZXJWYXJzOiB7CgkJCQkJCQkJcGxheXNpbmxpbmU6IEZMQnVpbGRlckxheW91dC5faXNNb2JpbGUoKSA/IDEgOiAwLAoJCQkJCQkJCWNvbnRyb2xzOiAwLAoJCQkJCQkJCXNob3dpbmZvOiAwLAoJCQkJCQkJCXJlbCA6IDAsCgkJCQkJCQkJc3RhcnQ6IHN0YXJ0VGltZSwKCQkJCQkJCQllbmQ6IGVuZFRpbWUsCgkJCQkJCQl9CgkJCQkJCX0gKTsKCQkJCQl9LCAxICk7CgkJCQl9ICk7CgkJCX0KCQl9LAoKCQkvKioKCQkgKiBPbiB5b3V0dWJlIG9yIHZpbWVvIGVycm9yIHNob3cgdGhlIGZhbGxiYWNrIGltYWdlIGlmIGF2YWlsYWJsZS4KCQkgKiBAc2luY2UgMi4wLjcKCQkgKi8KCQlfb25FcnJvcllvdXR1YmVWaW1lbzogZnVuY3Rpb24ocGxheWVyV3JhcCkgewoKCQkJZmFsbGJhY2sgPSBwbGF5ZXJXcmFwLmRhdGEoJ2ZhbGxiYWNrJykgfHwgZmFsc2UKCQkJaWYoICEgZmFsbGJhY2sgKSB7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQkJcGxheWVyV3JhcC5maW5kKCdpZnJhbWUnKS5yZW1vdmUoKQoJCQlmYWxsYmFja1RhZyA9ICQoICc8ZGl2PjwvZGl2PicgKTsKCQkJZmFsbGJhY2tUYWcuYWRkQ2xhc3MoICdmbC1iZy12aWRlby1mYWxsYmFjaycgKTsKCQkJZmFsbGJhY2tUYWcuY3NzKCAnYmFja2dyb3VuZC1pbWFnZScsICd1cmwoJyArIHBsYXllcldyYXAuZGF0YSgnZmFsbGJhY2snKSArICcpJyApOwoJCQlwbGF5ZXJXcmFwLmFwcGVuZCggZmFsbGJhY2tUYWcgKTsKCQl9LAoKCQkvKioKCQkgKiBDaGVjayBpZiBZb3V0dWJlIEFQSSBoYXMgYmVlbiBkb3dubG9hZGVkCgkJICoKCQkgKiBAc2luY2UgMS45CgkJICogQGFjY2VzcyBwcml2YXRlCgkJICogQG1ldGhvZCBfb25Zb3V0dWJlQXBpUmVhZHkKCQkgKiBAcGFyYW0gIHtGdW5jdGlvbn0gY2FsbGJhY2sgTWV0aG9kIHRvIGNhbGwgd2hlbiBZVCBBUEkgaGFzIGJlZW4gbG9hZGVkCgkJICovCgkJX29uWW91dHViZUFwaVJlYWR5OiBmdW5jdGlvbiggY2FsbGJhY2sgKSB7CgkJCWlmICggd2luZG93LllUICYmIFlULmxvYWRlZCApIHsKCQkJCWNhbGxiYWNrKCBZVCApOwoJCQl9IGVsc2UgewoJCQkJLy8gSWYgbm90IHJlYWR5IGNoZWNrIGFnYWluIGJ5IHRpbWVvdXQuLgoJCQkJc2V0VGltZW91dCggZnVuY3Rpb24oKSB7CgkJCQkJRkxCdWlsZGVyTGF5b3V0Ll9vbllvdXR1YmVBcGlSZWFkeSggY2FsbGJhY2sgKTsKCQkJCX0sIDM1MCApOwoJCQl9CgkJfSwKCgkJLyoqCgkJICogSW5pdGlhbGl6ZXMgVmltZW8gdmlkZW8gYmFja2dyb3VuZAoJCSAqCgkJICogQHNpbmNlIDEuOQoJCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJCSAqIEBtZXRob2QgX2luaXRWaW1lb0JnVmlkZW8KCQkgKi8KCQlfaW5pdFZpbWVvQmdWaWRlbzogZnVuY3Rpb24oKQoJCXsKCQkJdmFyIHBsYXllcldyYXAJPSAkKHRoaXMpLAoJCQkJdmlkZW9JZCAJPSBwbGF5ZXJXcmFwLmRhdGEoJ3ZpZGVvLWlkJyksCgkJCQl2aWRlb1BsYXllciA9IHBsYXllcldyYXAuZmluZCgnLmZsLWJnLXZpZGVvLXBsYXllcicpLAoJCQkJZW5hYmxlQXVkaW8gPSBwbGF5ZXJXcmFwLmRhdGEoJ2VuYWJsZS1hdWRpbycpLAoJCQkJYXVkaW9CdXR0b24gPSBwbGF5ZXJXcmFwLmZpbmQoJy5mbC1iZy12aWRlby1hdWRpbycpLAoJCQkJcGxheWVyLAoJCQkJd2lkdGggPSBwbGF5ZXJXcmFwLm91dGVyV2lkdGgoKSwKCQkJCXVhICAgID0gbmF2aWdhdG9yLnVzZXJBZ2VudDsKCgkJCWlmICggdHlwZW9mIFZpbWVvICE9PSAndW5kZWZpbmVkJyAmJiB2aWRlb0lkICkJewoJCQkJcGxheWVyID0gbmV3IFZpbWVvLlBsYXllcih2aWRlb1BsYXllclswXSwgewoJCQkJCWlkICAgICAgICAgOiB2aWRlb0lkLAoJCQkJCWxvb3AgICAgICAgOiB0cnVlLAoJCQkJCXRpdGxlICAgICAgOiBmYWxzZSwKCQkJCQlwb3J0cmFpdCAgIDogZmFsc2UsCgkJCQkJYmFja2dyb3VuZCA6IHRydWUsCgkJCQkJYXV0b3BhdXNlICA6IGZhbHNlLAoJCQkJCW11dGVkICAgICAgOiB0cnVlCgkJCQl9KTsKCgkJCQlwbGF5ZXJXcmFwLmRhdGEoJ1ZNUGxheWVyJywgcGxheWVyKTsKCQkJCWlmICggIm5vIiA9PT0gZW5hYmxlQXVkaW8gKSB7CgkJCQkJcGxheWVyLnNldFZvbHVtZSgwKTsKCQkJCX0KCQkJCWVsc2UgaWYgKCJ5ZXMiID09PSBlbmFibGVBdWRpbyApIHsKCQkJCQkvLyBDaHJvbWUsIFNhZmFyaSwgRmlyZWZveCBoYXZlIGF1ZGlvIHBvbGljeSByZXN0cmljdGlvbnMgZm9yIGF1dG9wbGF5IHZpZGVvcy4KCQkJCQlpZiAoIHVhLmluZGV4T2YoIlNhZmFyaSIpID4gLTEgfHwgdWEuaW5kZXhPZigiQ2hyb21lIikgPiAtMSB8fCB1YS5pbmRleE9mKCJGaXJlZm94IikgPiAtMSApIHsKCQkJCQkJcGxheWVyLnNldFZvbHVtZSgwKTsKCQkJCQkJYXVkaW9CdXR0b24uc2hvdygpOwoJCQkJCX0KCQkJCQllbHNlIHsKCQkJCQkJcGxheWVyLnNldFZvbHVtZSgxKTsKCQkJCQl9CgkJCQl9CgoJCQkJcGxheWVyLnBsYXkoKS5jYXRjaChmdW5jdGlvbihlcnJvcikgewoJCQkJCUZMQnVpbGRlckxheW91dC5fb25FcnJvcllvdXR1YmVWaW1lbyhwbGF5ZXJXcmFwKQoJCQkJfSk7CgoJCQkJaWYgKCBhdWRpb0J1dHRvbi5sZW5ndGggPiAwICkgewoJCQkJCWF1ZGlvQnV0dG9uLm9uKCAnY2xpY2snLCB7YnV0dG9uOiBhdWRpb0J1dHRvbiwgcGxheWVyOiBwbGF5ZXJ9LCBGTEJ1aWxkZXJMYXlvdXQuX3RvZ2dsZUJnVmlkZW9BdWRpbyApOwoJCQkJfQoJCQl9CgkJfSwKCgkJLyoqCgkJICogTXV0ZSAvIHVubXV0ZSBhdWRpbyBvbiByb3cncyB2aWRlbyBiYWNrZ3JvdW5kLgoJCSAqIEl0IHdvcmtzIGZvciBib3RoIFlvdXR1YmUgYW5kIFZpbWVvLgoJCSAqCgkJICogQHNpbmNlIDIuMS4zCgkJICogQGFjY2VzcyBwcml2YXRlCgkJICogQG1ldGhvZCBfdG9nZ2xlQmdWaWRlb0F1ZGlvCgkJICogQHBhcmFtIHtPYmplY3R9IGUgTWV0aG9kIGFyZ3VtZW50cwoJCSAqLwoJCV90b2dnbGVCZ1ZpZGVvQXVkaW86IGZ1bmN0aW9uKCBlICkgewoJCQl2YXIgcGxheWVyICA9IGUuZGF0YS5wbGF5ZXIsCgkJCSAgICBjb250cm9sID0gZS5kYXRhLmJ1dHRvbi5maW5kKCcuZmwtYXVkaW8tY29udHJvbCcpOwoKCQkJaWYgKCBjb250cm9sLmhhc0NsYXNzKCAnZmEtdm9sdW1lLW9mZicgKSApIHsKCQkJCS8vIFVubXV0ZQoJCQkJY29udHJvbAoJCQkJCS5yZW1vdmVDbGFzcyggJ2ZhLXZvbHVtZS1vZmYnICkKCQkJCQkuYWRkQ2xhc3MoICdmYS12b2x1bWUtdXAnICk7CgkJCQllLmRhdGEuYnV0dG9uLmZpbmQoICcuZmEtdGltZXMnICkuaGlkZSgpOwoKCQkJCWlmICggJ2Z1bmN0aW9uJyA9PT0gdHlwZW9mIHBsYXllci51bk11dGUgKSB7CgkJCQkJcGxheWVyLnVuTXV0ZSgpOwoJCQkJfQoJCQkJZWxzZSB7CgkJCQkJcGxheWVyLnNldFZvbHVtZSggMSApOwoJCQkJfQoJCQl9CgkJCWVsc2UgewoJCQkJLy8gTXV0ZQoJCQkJY29udHJvbAoJCQkJCS5yZW1vdmVDbGFzcyggJ2ZhLXZvbHVtZS11cCcgKQoJCQkJCS5hZGRDbGFzcyggJ2ZhLXZvbHVtZS1vZmYnICk7CgkJCQllLmRhdGEuYnV0dG9uLmZpbmQoICcuZmEtdGltZXMnICkuc2hvdygpOwoKCQkJCWlmICggJ2Z1bmN0aW9uJyA9PT0gdHlwZW9mIHBsYXllci51bk11dGUgKSB7CgkJCQkJcGxheWVyLm11dGUoKTsKCQkJCX0KCQkJCWVsc2UgewoJCQkJCXBsYXllci5zZXRWb2x1bWUoIDAgKTsKCQkJCX0KCQkJfQoJCX0sCgoJCS8qKgoJCSAqIEZpcmVzIHdoZW4gdGhlcmUgaXMgYW4gZXJyb3IgbG9hZGluZyBhIHZpZGVvCgkJICogYmFja2dyb3VuZCBzb3VyY2UgYW5kIHNob3dzIHRoZSBmYWxsYmFjay4KCQkgKgoJCSAqIEBzaW5jZSAxLjYuMy4zCgkJICogQGFjY2VzcyBwcml2YXRlCgkJICogQG1ldGhvZCBfdmlkZW9CZ1NvdXJjZUVycm9yCgkJICogQHBhcmFtIHtPYmplY3R9IGUgQW4gZXZlbnQgb2JqZWN0CgkJICogQGRlcHJlY2F0ZWQgMi4wLjMKCQkgKi8KCQlfdmlkZW9CZ1NvdXJjZUVycm9yOiBmdW5jdGlvbiggZSApCgkJewoJCQl2YXIgc291cmNlIAkJPSAkKCBlLnRhcmdldCApLAoJCQkJd3JhcCAgIAkJPSBzb3VyY2UuY2xvc2VzdCggJy5mbC1iZy12aWRlbycgKSwKCQkJCXZpZAkJICAgID0gd3JhcC5maW5kKCAndmlkZW8nICksCgkJCQlmYWxsYmFjayAgCT0gd3JhcC5kYXRhKCAnZmFsbGJhY2snICksCgkJCQlmYWxsYmFja1RhZyA9ICcnOwoJCQlzb3VyY2UucmVtb3ZlKCk7CgoJCQlpZiAoIHZpZC5maW5kKCAnc291cmNlJyApLmxlbmd0aCApIHsKCQkJCS8vIERvbid0IHNob3cgdGhlIGZhbGxiYWNrIGlmIHdlIHN0aWxsIGhhdmUgb3RoZXIgc291cmNlcyB0byBjaGVjay4KCQkJCXJldHVybjsKCQkJfSBlbHNlIGlmICggJycgIT09IGZhbGxiYWNrICkgewoJCQkJZmFsbGJhY2tUYWcgPSAkKCAnPGRpdj48L2Rpdj4nICk7CgkJCQlmYWxsYmFja1RhZy5hZGRDbGFzcyggJ2ZsLWJnLXZpZGVvLWZhbGxiYWNrJyApOwoJCQkJZmFsbGJhY2tUYWcuY3NzKCAnYmFja2dyb3VuZC1pbWFnZScsICd1cmwoJyArIGZhbGxiYWNrICsgJyknICk7CgkJCQl3cmFwLmFwcGVuZCggZmFsbGJhY2tUYWcgKTsKCQkJCXZpZC5yZW1vdmUoKTsKCQkJfQoJCX0sCgoJCS8qKgoJCSAqIEZpcmVzIHdoZW4gdGhlIHdpbmRvdyBpcyByZXNpemVkIHRvIHJlc2l6ZQoJCSAqIGFsbCB2aWRlbyBiYWNrZ3JvdW5kcy4KCQkgKgoJCSAqIEBzaW5jZSAxLjEuNAoJCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJCSAqIEBtZXRob2QgX3Jlc2l6ZUJnVmlkZW9zCgkJICovCgkJX3Jlc2l6ZUJnVmlkZW9zOiBmdW5jdGlvbigpCgkJewoJCQkkKCcuZmwtYmctdmlkZW8nKS5lYWNoKCBmdW5jdGlvbigpIHsKCgkJCQlGTEJ1aWxkZXJMYXlvdXQuX3Jlc2l6ZUJnVmlkZW8uYXBwbHkoIHRoaXMgKTsKCgkJCQlpZiAoICQoIHRoaXMgKS5wYXJlbnQoKS5maW5kKCAnaW1nJyApLmxlbmd0aCA+IDAgKSB7CgkJCQkJJCggdGhpcyApLnBhcmVudCgpLmltYWdlc0xvYWRlZCggJC5wcm94eSggRkxCdWlsZGVyTGF5b3V0Ll9yZXNpemVCZ1ZpZGVvLCB0aGlzICkgKTsKCQkJCX0KCQkJfSApOwoJCX0sCgoJCS8qKgoJCSAqIEZpcmVzIHdoZW4gdGhlIHdpbmRvdyBpcyByZXNpemVkIHRvIHJlc2l6ZQoJCSAqIGEgc2luZ2xlIHZpZGVvIGJhY2tncm91bmQuCgkJICoKCQkgKiBAc2luY2UgMS4xLjQKCQkgKiBAYWNjZXNzIHByaXZhdGUKCQkgKiBAbWV0aG9kIF9yZXNpemVCZ1ZpZGVvCgkJICovCgkJX3Jlc2l6ZUJnVmlkZW86IGZ1bmN0aW9uKCkKCQl7CgkJCWlmICggMCA9PT0gJCggdGhpcyApLmZpbmQoICd2aWRlbycgKS5sZW5ndGggJiYgMCA9PT0gJCggdGhpcyApLmZpbmQoICdpZnJhbWUnICkubGVuZ3RoICkgewoJCQkJcmV0dXJuOwoJCQl9CgoJCQl2YXIgd3JhcCAgICAgICAgPSAkKHRoaXMpLAoJCQkJd3JhcEhlaWdodCAgPSB3cmFwLm91dGVySGVpZ2h0KCksCgkJCQl3cmFwV2lkdGggICA9IHdyYXAub3V0ZXJXaWR0aCgpLAoJCQkJdmlkICAgICAgICAgPSB3cmFwLmZpbmQoJ3ZpZGVvJyksCgkJCQl2aWRIZWlnaHQgICA9IHdyYXAuZGF0YSgnaGVpZ2h0JyksCgkJCQl2aWRXaWR0aCAgICA9IHdyYXAuZGF0YSgnd2lkdGgnKSwKCQkJCW5ld1dpZHRoICAgID0gd3JhcFdpZHRoLAoJCQkJbmV3SGVpZ2h0ICAgPSBNYXRoLnJvdW5kKHZpZEhlaWdodCAqIHdyYXBXaWR0aC92aWRXaWR0aCksCgkJCQluZXdMZWZ0ICAgICA9IDAsCgkJCQluZXdUb3AgICAgICA9IDAsCgkJCQlpZnJhbWUgCQk9IHdyYXAuZmluZCgnaWZyYW1lJyksCgkJCQlpc1Jvd0Z1bGxIZWlnaHQgPSAkKHRoaXMpLmNsb3Nlc3QoJy5mbC1yb3ctYmctdmlkZW8nKS5oYXNDbGFzcygnZmwtcm93LWZ1bGwtaGVpZ2h0JyksCgkJCQl2aWRDU1MgICAgICAgICAgPSB7CgkJCQkJdG9wOiAgICAgICAnNTAlJywKCQkJCQlsZWZ0OiAgICAgICc1MCUnLAoJCQkJCXRyYW5zZm9ybTogJ3RyYW5zbGF0ZSgtNTAlLC01MCUpJywKCQkJCX07CgoJCQlpZiAoIHZpZC5sZW5ndGggKSB7CgkJCQlpZih2aWRIZWlnaHQgPT09ICcnIHx8IHR5cGVvZiB2aWRIZWlnaHQgPT09ICd1bmRlZmluZWQnIHx8IHZpZFdpZHRoID09PSAnJyB8fCB0eXBlb2YgdmlkV2lkdGggPT09ICd1bmRlZmluZWQnKSB7CgkJCQkJdmlkLmNzcyh7CgkJCQkJCSdsZWZ0JyAgICAgIDogJzBweCcsCgkJCQkJCSd0b3AnICAgICAgIDogJzBweCcsCgkJCQkJCSd3aWR0aCcgICAgIDogbmV3V2lkdGggKyAncHgnCgkJCQkJfSk7CgoJCQkJCS8vIFRyeSB0byBzZXQgdGhlIGFjdHVhbCB2aWRlbyBkaW1lbnNpb24gb24gJ2xvYWRlZG1ldGFkYXRhJyB3aGVuIHVzaW5nIFVSTCBhcyB2aWRlbyBzb3VyY2UKCQkJCQl2aWQub24oJ2xvYWRlZG1ldGFkYXRhJywgRkxCdWlsZGVyTGF5b3V0Ll9yZXNpemVPbkxvYWRlZE1ldGEpOwoJCQkJCQoJCQkJCXJldHVybjsKCQkJCX0KCgkJCQlpZiAoICEgaXNSb3dGdWxsSGVpZ2h0ICkgewoJCQkJCWlmICggbmV3SGVpZ2h0IDwgd3JhcEhlaWdodCApIHsKCQkJCQkJbmV3SGVpZ2h0ID0gd3JhcEhlaWdodDsKCQkJCQkJbmV3TGVmdCAgID0gLSgobmV3V2lkdGggLSB3cmFwV2lkdGgpIC8gMik7CgkJCQkJCW5ld1dpZHRoICA9IHZpZEhlaWdodCA/IE1hdGgucm91bmQodmlkV2lkdGggKiB3cmFwSGVpZ2h0L3ZpZEhlaWdodCkgOiBuZXdXaWR0aDsKCQkJCQl9CgkJCQkJZWxzZSB7CgkJCQkJCW5ld1RvcCA9IC0oKG5ld0hlaWdodCAtIHdyYXBIZWlnaHQpLzIpOwoJCQkJCX0KCQkJCQl2aWRDU1MgPSB7CgkJCQkJCWxlZnQgICA6IG5ld0xlZnQgKyAncHgnLAoJCQkJCQl0b3AgICAgOiBuZXdUb3AgKyAncHgnLAoJCQkJCQloZWlnaHQgOiBuZXdIZWlnaHQgKyAncHgnLAoJCQkJCQl3aWR0aCAgOiBuZXdXaWR0aCArICdweCcsCgkJCQkJfQoJCQkJfQoKCQkJCXZpZC5jc3MoIHZpZENTUyApOwoKCQkJfQoJCQllbHNlIGlmICggaWZyYW1lLmxlbmd0aCApIHsKCgkJCQkvLyBSZXNpemUgWW91dHViZSB2aWRlbyBwbGF5ZXIgd2l0aGluIGlmcmFtZSB0YWcKCQkJCWlmICggdHlwZW9mIHdyYXAuZGF0YSgneW91dHViZScpICE9PSAndW5kZWZpbmVkJyApIHsKCQkJCQlGTEJ1aWxkZXJMYXlvdXQuX3Jlc2l6ZVlvdXR1YmVCZ1ZpZGVvLmFwcGx5KHRoaXMpOwoJCQkJfQoJCQl9CgkJfSwKCgkJLyoqCgkJICogRmlyZXMgd2hlbiB2aWRlbyBtZXRhIGhhcyBiZWVuIGxvYWRlZC4KCQkgKiBUaGlzIHdpbGwgYmUgVHJpZ2dlcmVkIHdoZW4gd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZXMgd2VyZSBub3Qgc3BlY2lmaWVkIGR1cmluZyB2aWRlbyBiYWNrZ3JvdW5kIHJlc2l6aW5nLgoJCSAqCgkJICogQHNpbmNlIDEuOC41CgkJICogQGFjY2VzcyBwcml2YXRlCgkJICogQG1ldGhvZCBfcmVzaXplT25Mb2FkZWRNZXRhCgkJICovCgkJX3Jlc2l6ZU9uTG9hZGVkTWV0YTogZnVuY3Rpb24oKXsKCQkJdmFyIHZpZGVvIAkJPSAkKHRoaXMpLAoJCQkJd3JhcEhlaWdodCAJPSB2aWRlby5wYXJlbnQoKS5vdXRlckhlaWdodCgpLAoJCQkJd3JhcFdpZHRoIAk9IHZpZGVvLnBhcmVudCgpLm91dGVyV2lkdGgoKSwKCQkJCXZpZFdpZHRoIAk9IHZpZGVvWzBdLnZpZGVvV2lkdGgsCgkJCQl2aWRIZWlnaHQgCT0gdmlkZW9bMF0udmlkZW9IZWlnaHQsCgkJCQluZXdIZWlnaHQgICA9IE1hdGgucm91bmQodmlkSGVpZ2h0ICogd3JhcFdpZHRoL3ZpZFdpZHRoKSwKCQkJCW5ld1dpZHRoICAgID0gd3JhcFdpZHRoLAoJCQkJbmV3TGVmdCAgICAgPSAwLAoJCQkJbmV3VG9wIAkJPSAwOwoKCQkJaWYobmV3SGVpZ2h0IDwgd3JhcEhlaWdodCkgewoJCQkJbmV3SGVpZ2h0ICAgPSB3cmFwSGVpZ2h0OwoJCQkJbmV3V2lkdGggICAgPSBNYXRoLnJvdW5kKHZpZFdpZHRoICogd3JhcEhlaWdodC92aWRIZWlnaHQpOwoJCQkJbmV3TGVmdCAgICAgPSAtKChuZXdXaWR0aCAtIHdyYXBXaWR0aCkvMik7CgkJCX0KCQkJZWxzZSB7CgkJCQluZXdUb3AgICAgICA9IC0oKG5ld0hlaWdodCAtIHdyYXBIZWlnaHQpLzIpOwoJCQl9CgoJCQl2aWRlby5wYXJlbnQoKS5kYXRhKCd3aWR0aCcsIHZpZFdpZHRoKTsKCQkJdmlkZW8ucGFyZW50KCkuZGF0YSgnaGVpZ2h0JywgdmlkSGVpZ2h0KTsKCgkJCXZpZGVvLmNzcyh7CgkJCQknbGVmdCcgICAgICA6IG5ld0xlZnQgKyAncHgnLAoJCQkJJ3RvcCcgICAgICAgOiBuZXdUb3AgKyAncHgnLAoJCQkJJ3dpZHRoJyAgICAgOiBuZXdXaWR0aCArICdweCcsCgkJCQknaGVpZ2h0JyAJOiBuZXdIZWlnaHQgKyAncHgnCgkJCX0pOwoJCX0sCgoJCS8qKgoJCSAqIEZpcmVzIHdoZW4gdGhlIHdpbmRvdyBpcyByZXNpemVkIHRvIHJlc2l6ZQoJCSAqIGEgc2luZ2xlIFlvdXR1YmUgdmlkZW8gYmFja2dyb3VuZC4KCQkgKgoJCSAqIEBzaW5jZSAxLjkKCQkgKiBAYWNjZXNzIHByaXZhdGUKCQkgKiBAbWV0aG9kIF9yZXNpemVZb3V0dWJlQmdWaWRlbwoJCSAqLwoJCV9yZXNpemVZb3V0dWJlQmdWaWRlbzogZnVuY3Rpb24oKQoJCXsKCQkJdmFyIHdyYXAJCQkJPSAkKHRoaXMpLAoJCQkJd3JhcFdpZHRoIAkJCT0gd3JhcC5vdXRlcldpZHRoKCksCgkJCQl3cmFwSGVpZ2h0IAkJCT0gd3JhcC5vdXRlckhlaWdodCgpLAoJCQkJcGxheWVyIAkJCQk9IHdyYXAuZGF0YSgnWVRQbGF5ZXInKSwKCQkJCXZpZGVvIAkJCQk9IHBsYXllciA/IHBsYXllci5nZXRJZnJhbWUoKSA6IG51bGwsCgkJCQlhc3BlY3RSYXRpb1NldHRpbmcgCT0gJzE2OjknLCAvLyBNZWRpdW0KCQkJCWFzcGVjdFJhdGlvQXJyYXkgCT0gYXNwZWN0UmF0aW9TZXR0aW5nLnNwbGl0KCAnOicgKSwKCQkJCWFzcGVjdFJhdGlvIAkJPSBhc3BlY3RSYXRpb0FycmF5WzBdIC8gYXNwZWN0UmF0aW9BcnJheVsxXSwKCQkJCXJhdGlvV2lkdGggCQkJPSB3cmFwV2lkdGggLyBhc3BlY3RSYXRpbywKCQkJCXJhdGlvSGVpZ2h0IAkJPSB3cmFwSGVpZ2h0ICogYXNwZWN0UmF0aW8sCgkJCQlpc1dpZHRoRml4ZWQgCQk9IHdyYXBXaWR0aCAvIHdyYXBIZWlnaHQgPiBhc3BlY3RSYXRpbywKCQkJCXdpZHRoIAkJCQk9IGlzV2lkdGhGaXhlZCA/IHdyYXBXaWR0aCA6IHJhdGlvSGVpZ2h0LAoJCQkJaGVpZ2h0IAkJCQk9IGlzV2lkdGhGaXhlZCA/IHJhdGlvV2lkdGggOiB3cmFwSGVpZ2h0OwoKCQkJaWYgKCB2aWRlbyApIHsKCQkJCSQodmlkZW8pLndpZHRoKCB3aWR0aCApLmhlaWdodCggaGVpZ2h0ICk7CgkJCX0KCQl9LAoKCQkvKioKCQkgKiBJbml0aWFsaXplcyBtb2R1bGUgYW5pbWF0aW9ucy4KCQkgKgoJCSAqIEBzaW5jZSAxLjEuOQoJCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJCSAqIEBtZXRob2QgX2luaXRNb2R1bGVBbmltYXRpb25zCgkJICovCgkJX2luaXRNb2R1bGVBbmltYXRpb25zOiBmdW5jdGlvbigpCgkJewoJCQlpZih0eXBlb2YgalF1ZXJ5LmZuLndheXBvaW50ICE9PSAndW5kZWZpbmVkJykgewoJCQkJJCgnLmZsLWFuaW1hdGlvbicpLmVhY2goIGZ1bmN0aW9uKCkgewoJCQkJCXZhciBub2RlID0gJCggdGhpcyApLAoJCQkJCQlub2RlVG9wID0gbm9kZS5vZmZzZXQoKS50b3AsCgkJCQkJCXdpbkhlaWdodCA9ICQoIHdpbmRvdyApLmhlaWdodCgpLAoJCQkJCQlib2R5SGVpZ2h0ID0gJCggJ2JvZHknICkuaGVpZ2h0KCksCgkJCQkJCXdheXBvaW50ID0gRkxCdWlsZGVyTGF5b3V0Q29uZmlnLndheXBvaW50LAoJCQkJCQlvZmZzZXQgPSAnODAlJzsKCgkJCQkJaWYgKCB0eXBlb2Ygd2F5cG9pbnQub2Zmc2V0ICE9PSB1bmRlZmluZWQgKSB7CgkJCQkJCW9mZnNldCA9IEZMQnVpbGRlckxheW91dENvbmZpZy53YXlwb2ludC5vZmZzZXQgKyAnJSc7CgkJCQkJfQoKCQkJCQlpZiAoIGJvZHlIZWlnaHQgLSBub2RlVG9wIDwgd2luSGVpZ2h0ICogMC4yICkgewoJCQkJCQlvZmZzZXQgPSAnMTAwJSc7CgkJCQkJfQoKCQkJCQlub2RlLndheXBvaW50KHsKCQkJCQkJb2Zmc2V0OiBvZmZzZXQsCgkJCQkJCWhhbmRsZXI6IEZMQnVpbGRlckxheW91dC5fZG9Nb2R1bGVBbmltYXRpb24KCQkJCQl9KTsKCQkJCX0gKTsKCQkJfQoJCX0sCgoJCS8qKgoJCSAqIFJ1bnMgYSBtb2R1bGUgYW5pbWF0aW9uLgoJCSAqCgkJICogQHNpbmNlIDEuMS45CgkJICogQGFjY2VzcyBwcml2YXRlCgkJICogQG1ldGhvZCBfZG9Nb2R1bGVBbmltYXRpb24KCQkgKi8KCQlfZG9Nb2R1bGVBbmltYXRpb246IGZ1bmN0aW9uKCkKCQl7CgkJCXZhciBtb2R1bGUgPSAndW5kZWZpbmVkJyA9PSB0eXBlb2YgdGhpcy5lbGVtZW50ID8gJCh0aGlzKSA6ICQodGhpcy5lbGVtZW50KSwKCQkJCWRlbGF5ID0gcGFyc2VGbG9hdChtb2R1bGUuZGF0YSgnYW5pbWF0aW9uLWRlbGF5JykpLAoJCQkJZHVyYXRpb24gPSBwYXJzZUZsb2F0KG1vZHVsZS5kYXRhKCdhbmltYXRpb24tZHVyYXRpb24nKSk7CgoJCQlpZiAoICEgaXNOYU4oIGR1cmF0aW9uICkgKSB7CgkJCQltb2R1bGUuY3NzKCAnYW5pbWF0aW9uLWR1cmF0aW9uJywgZHVyYXRpb24gKyAncycgKTsKCQkJfQoKCQkJaWYoIWlzTmFOKGRlbGF5KSAmJiBkZWxheSA+IDApIHsKCQkJCXNldFRpbWVvdXQoZnVuY3Rpb24oKXsKCQkJCQltb2R1bGUuYWRkQ2xhc3MoJ2ZsLWFuaW1hdGVkJyk7CgkJCQl9LCBkZWxheSAqIDEwMDApOwoJCQl9IGVsc2UgewoJCQkJc2V0VGltZW91dChmdW5jdGlvbigpewoJCQkJCW1vZHVsZS5hZGRDbGFzcygnZmwtYW5pbWF0ZWQnKTsKCQkJCX0sIDEpOwoJCQl9CgkJfSwKCgkJLyoqCgkJICogT3BlbnMgYSB0YWIgb3IgYWNjb3JkaW9uIGl0ZW0gaWYgdGhlIGJyb3dzZXIgaGFzaCBpcyBzZXQKCQkgKiB0byB0aGUgSUQgb2Ygb25lIG9uIHRoZSBwYWdlLgoJCSAqCgkJICogQHNpbmNlIDEuNi4wCgkJICogQGFjY2VzcyBwcml2YXRlCgkJICogQG1ldGhvZCBfaW5pdEhhc2gKCQkgKi8KCQlfaW5pdEhhc2g6IGZ1bmN0aW9uKCkKCQl7CgkJCXZhciBoYXNoIAkJCT0gd2luZG93LmxvY2F0aW9uLmhhc2gucmVwbGFjZSggJyMnLCAnJyApLnNwbGl0KCAnLycgKS5zaGlmdCgpLAoJCQkJZWxlbWVudCAJCT0gbnVsbCwKCQkJCXRhYnMJCQk9IG51bGwsCgkJCQlyZXNwb25zaXZlTGFiZWwJPSBudWxsLAoJCQkJdGFiSW5kZXgJCT0gbnVsbCwKCQkJCWxhYmVsCQkJPSBudWxsOwoKCQkJaWYgKCAnJyAhPT0gaGFzaCApIHsKCgkJCQl0cnkgewoKCQkJCQllbGVtZW50ID0gJCggJyMnICsgaGFzaCApOwoKCQkJCQlpZiAoIGVsZW1lbnQubGVuZ3RoID4gMCApIHsKCgkJCQkJCWlmICggZWxlbWVudC5oYXNDbGFzcyggJ2ZsLWFjY29yZGlvbi1pdGVtJyApICkgewoJCQkJCQkJc2V0VGltZW91dCggZnVuY3Rpb24oKSB7CgkJCQkJCQkJZWxlbWVudC5maW5kKCAnLmZsLWFjY29yZGlvbi1idXR0b24nICkudHJpZ2dlciggJ2NsaWNrJyApOwoJCQkJCQkJfSwgMTAwICk7CgkJCQkJCX0KCQkJCQkJaWYgKCBlbGVtZW50Lmhhc0NsYXNzKCAnZmwtdGFicy1wYW5lbCcgKSApIHsKCQkJCQkJCXNldFRpbWVvdXQoIGZ1bmN0aW9uKCkgewoJCQkJCQkJCXRhYnMgCQkJPSBlbGVtZW50LmNsb3Nlc3QoICcuZmwtdGFicycgKTsKCQkJCQkJCQlyZXNwb25zaXZlTGFiZWwgPSBlbGVtZW50LmZpbmQoICcuZmwtdGFicy1wYW5lbC1sYWJlbCcgKTsKCQkJCQkJCQl0YWJJbmRleCAJCT0gcmVzcG9uc2l2ZUxhYmVsLmRhdGEoICdpbmRleCcgKTsKCQkJCQkJCQlsYWJlbCAJCQk9IHRhYnMuZmluZCggJy5mbC10YWJzLWxhYmVscyAuZmwtdGFicy1sYWJlbFtkYXRhLWluZGV4PScgKyB0YWJJbmRleCArICddJyApOwoJCQkJCQkJCQoJCQkJCQkJCWxhYmVsWzBdLmNsaWNrKCk7CgkJCQkJCQkJRkxCdWlsZGVyTGF5b3V0Ll9zY3JvbGxUb0VsZW1lbnQoZWxlbWVudCk7CgkJCQkJCQl9LCAxMDAgKTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJCWNhdGNoKCBlICkge30KCQkJfQoJCX0sCgoJCS8qKgoJCSAqIEluaXRpYWxpemVzIGFsbCBhbmNob3IgbGlua3Mgb24gdGhlIHBhZ2UgZm9yIHNtb290aCBzY3JvbGxpbmcuCgkJICoKCQkgKiBAc2luY2UgMS40LjkKCQkgKiBAYWNjZXNzIHByaXZhdGUKCQkgKiBAbWV0aG9kIF9pbml0QW5jaG9yTGlua3MKCQkgKi8KCQlfaW5pdEFuY2hvckxpbmtzOiBmdW5jdGlvbigpCgkJewoJCQkkKCAnYScgKS5lYWNoKCBGTEJ1aWxkZXJMYXlvdXQuX2luaXRBbmNob3JMaW5rICk7CgkJfSwKCgkJLyoqCgkJICogSW5pdGlhbGl6ZXMgYSBzaW5nbGUgYW5jaG9yIGxpbmsgZm9yIHNtb290aCBzY3JvbGxpbmcuCgkJICoKCQkgKiBAc2luY2UgMS40LjkKCQkgKiBAYWNjZXNzIHByaXZhdGUKCQkgKiBAbWV0aG9kIF9pbml0QW5jaG9yTGluawoJCSAqLwoJCV9pbml0QW5jaG9yTGluazogZnVuY3Rpb24oKQoJCXsKCQkJdmFyIGxpbmsgICAgPSAkKCB0aGlzICksCgkJCQlocmVmICAgID0gbGluay5hdHRyKCAnaHJlZicgKSwKCQkJCWxvYyAgICAgPSB3aW5kb3cubG9jYXRpb24sCgkJCQlpZCAgICAgID0gbnVsbCwKCQkJCWVsZW1lbnQgPSBudWxsLAoJCQkJZmxOb2RlICA9IGZhbHNlOwoKCQkJaWYgKCAndW5kZWZpbmVkJyAhPSB0eXBlb2YgaHJlZiAmJiBocmVmLmluZGV4T2YoICcjJyApID4gLTEgJiYgbGluay5jbG9zZXN0KCdzdmcnKS5sZW5ndGggPCAxICkgewoKCQkJCWlmICggbG9jLnBhdGhuYW1lLnJlcGxhY2UoIC9eXC8vLCAnJyApID09IHRoaXMucGF0aG5hbWUucmVwbGFjZSggL15cLy8sICcnICkgJiYgbG9jLmhvc3RuYW1lID09IHRoaXMuaG9zdG5hbWUgKSB7CgoJCQkJCXRyeSB7CgoJCQkJCQlpZCAgICAgID0gaHJlZi5zcGxpdCggJyMnICkucG9wKCk7CgkJCQkJCS8vIElmIHRoZXJlIGlzIG5vIElEIHRoZW4gd2UgaGF2ZSBub3doZXJlIHRvIGxvb2sKCQkJCQkJLy8gRml4ZXMgYSBxdWlyayBpbiBqUXVlcnkgYW5kIEZpcmVGb3gKCQkJCQkJaWYoICEgaWQgKSB7CgkJCQkJCQlyZXR1cm47CgkJCQkJCX0KCQkJCQkJZWxlbWVudCA9ICQoICcjJyArIGlkICk7CgoJCQkJCQlpZiAoIGVsZW1lbnQubGVuZ3RoID4gMCApIHsKCQkJCQkJCWZsTm9kZSA9IGVsZW1lbnQuaGFzQ2xhc3MoICdmbC1yb3cnICkgfHwgZWxlbWVudC5oYXNDbGFzcyggJ2ZsLWNvbCcgKSB8fCBlbGVtZW50Lmhhc0NsYXNzKCAnZmwtbW9kdWxlJyApOwoJCQkJCQkJaWYgKCAhZWxlbWVudC5oYXNDbGFzcyggJ2ZsLW5vLXNjcm9sbCcgKSAmJiAoIGxpbmsuaGFzQ2xhc3MoICdmbC1zY3JvbGwtbGluaycgKSB8fCBmbE5vZGUgKSApIHsKCQkJCQkJCQkkKCBsaW5rICkub24oICdjbGljaycsIEZMQnVpbGRlckxheW91dC5fc2Nyb2xsVG9FbGVtZW50T25MaW5rQ2xpY2sgKTsKCQkJCQkJCX0KCQkJCQkJCWlmICggZWxlbWVudC5oYXNDbGFzcyggJ2ZsLWFjY29yZGlvbi1pdGVtJyApICkgewoJCQkJCQkJCSQoIGxpbmsgKS5vbiggJ2NsaWNrJywgRkxCdWlsZGVyTGF5b3V0Ll9zY3JvbGxUb0FjY29yZGlvbk9uTGlua0NsaWNrICk7CgkJCQkJCQl9CgkJCQkJCQlpZiAoIGVsZW1lbnQuaGFzQ2xhc3MoICdmbC10YWJzLXBhbmVsJyApICkgewoJCQkJCQkJCSQoIGxpbmsgKS5vbiggJ2NsaWNrJywgRkxCdWlsZGVyTGF5b3V0Ll9zY3JvbGxUb1RhYk9uTGlua0NsaWNrICk7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgkJCQkJY2F0Y2goIGUgKSB7fQoJCQkJfQoJCQl9CgkJfSwKCgkJLyoqCgkJICogU2Nyb2xscyB0byBhbiBlbGVtZW50IHdoZW4gYW4gYW5jaG9yIGxpbmsgaXMgY2xpY2tlZC4KCQkgKgoJCSAqIEBzaW5jZSAxLjQuOQoJCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJCSAqIEBtZXRob2QgX3Njcm9sbFRvRWxlbWVudE9uTGlua0NsaWNrCgkJICogQHBhcmFtIHtPYmplY3R9IGUgQW4gZXZlbnQgb2JqZWN0LgoJCSAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIEEgZnVuY3Rpb24gdG8gY2FsbCB3aGVuIHRoZSBzY3JvbGwgaXMgY29tcGxldGUuCgkJICovCgkJX3Njcm9sbFRvRWxlbWVudE9uTGlua0NsaWNrOiBmdW5jdGlvbiggZSwgY2FsbGJhY2sgKQoJCXsKCQkJdmFyIGVsZW1lbnQgPSAkKCAnIycgKyAkKCB0aGlzICkuYXR0ciggJ2hyZWYnICkuc3BsaXQoICcjJyApLnBvcCgpICk7CgoJCQlGTEJ1aWxkZXJMYXlvdXQuX3Njcm9sbFRvRWxlbWVudCggZWxlbWVudCwgY2FsbGJhY2sgKTsKCgkJCWUucHJldmVudERlZmF1bHQoKTsKCQl9LAoKCQkvKioKCQkgKiBTY3JvbGxzIHRvIGFuIGVsZW1lbnQuCgkJICoKCQkgKiBAc2luY2UgMS42LjQuNQoJCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJCSAqIEBtZXRob2QgX3Njcm9sbFRvRWxlbWVudAoJCSAqIEBwYXJhbSB7T2JqZWN0fSBlbGVtZW50IFRoZSBlbGVtZW50IHRvIHNjcm9sbCB0by4KCQkgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayBBIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiB0aGUgc2Nyb2xsIGlzIGNvbXBsZXRlLgoJCSAqLwoJCV9zY3JvbGxUb0VsZW1lbnQ6IGZ1bmN0aW9uKCBlbGVtZW50LCBjYWxsYmFjayApCgkJewoJCQl2YXIgY29uZmlnICA9IEZMQnVpbGRlckxheW91dENvbmZpZy5hbmNob3JMaW5rQW5pbWF0aW9ucywKCQkJCWRlc3QgICAgPSAwLAoJCQkJd2luICAgICA9ICQoIHdpbmRvdyApLAoJCQkJZG9jICAgICA9ICQoIGRvY3VtZW50ICk7CgoJCQlpZiAoIGVsZW1lbnQubGVuZ3RoID4gMCApIHsKCgkJCQlpZiAoICdmaXhlZCcgPT09IGVsZW1lbnQuY3NzKCdwb3NpdGlvbicpIHx8ICdmaXhlZCcgPT09IGVsZW1lbnQucGFyZW50KCkuY3NzKCdwb3NpdGlvbicpICkgewoJCQkJCWRlc3QgPSBlbGVtZW50LnBvc2l0aW9uKCkudG9wOwoJCQkJfQoJCQkJZWxzZSBpZiAoIGVsZW1lbnQub2Zmc2V0KCkudG9wID4gZG9jLmhlaWdodCgpIC0gd2luLmhlaWdodCgpICkgewoJCQkJCWRlc3QgPSBkb2MuaGVpZ2h0KCkgLSB3aW4uaGVpZ2h0KCk7CgkJCQl9CgkJCQllbHNlIHsKCQkJCQlkZXN0ID0gZWxlbWVudC5vZmZzZXQoKS50b3AgLSBjb25maWcub2Zmc2V0OwoJCQkJfQoKCQkJCSQoICdodG1sLCBib2R5JyApLmFuaW1hdGUoIHsgc2Nyb2xsVG9wOiBkZXN0IH0sIGNvbmZpZy5kdXJhdGlvbiwgY29uZmlnLmVhc2luZywgZnVuY3Rpb24oKSB7CgoJCQkJCWlmICggJ3VuZGVmaW5lZCcgIT0gdHlwZW9mIGNhbGxiYWNrICkgewoJCQkJCQljYWxsYmFjaygpOwoJCQkJCX0KCgkJCQkJaWYgKCB1bmRlZmluZWQgIT0gZWxlbWVudC5hdHRyKCAnaWQnICkgKSB7CgoJCQkJCQlpZiAoIGhpc3RvcnkucHVzaFN0YXRlICkgewoJCQkJCQkJaGlzdG9yeS5wdXNoU3RhdGUoIG51bGwsIG51bGwsICcjJyArIGVsZW1lbnQuYXR0ciggJ2lkJyApICk7CgkJCQkJCX0KCQkJCQkJZWxzZSB7CgkJCQkJCQl3aW5kb3cubG9jYXRpb24uaGFzaCA9IGVsZW1lbnQuYXR0ciggJ2lkJyApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfSApOwoJCQl9CgkJfSwKCgkJLyoqCgkJICogU2Nyb2xscyB0byBhbiBhY2NvcmRpb24gaXRlbSB3aGVuIGEgbGluayBpcyBjbGlja2VkLgoJCSAqCgkJICogQHNpbmNlIDEuNS45CgkJICogQGFjY2VzcyBwcml2YXRlCgkJICogQG1ldGhvZCBfc2Nyb2xsVG9BY2NvcmRpb25PbkxpbmtDbGljawoJCSAqIEBwYXJhbSB7T2JqZWN0fSBlIEFuIGV2ZW50IG9iamVjdC4KCQkgKi8KCQlfc2Nyb2xsVG9BY2NvcmRpb25PbkxpbmtDbGljazogZnVuY3Rpb24oIGUgKQoJCXsKCQkJdmFyIGVsZW1lbnQgPSAkKCAnIycgKyAkKCB0aGlzICkuYXR0ciggJ2hyZWYnICkuc3BsaXQoICcjJyApLnBvcCgpICk7CgoJCQlpZiAoIGVsZW1lbnQubGVuZ3RoID4gMCApIHsKCgkJCQl2YXIgY2FsbGJhY2sgPSBmdW5jdGlvbigpIHsKCQkJCQlpZiAoIGVsZW1lbnQgKSB7CgkJCQkJCWVsZW1lbnQuZmluZCggJy5mbC1hY2NvcmRpb24tYnV0dG9uJyApLnRyaWdnZXIoICdjbGljaycgKTsKCQkJCQkJZWxlbWVudCA9IGZhbHNlOwoJCQkJCX0KCQkJCX07CgoJCQkJRkxCdWlsZGVyTGF5b3V0Ll9zY3JvbGxUb0VsZW1lbnRPbkxpbmtDbGljay5jYWxsKCB0aGlzLCBlLCBjYWxsYmFjayApOwoJCQl9CgkJfSwKCgkJLyoqCgkJICogU2Nyb2xscyB0byBhIHRhYiBwYW5lbCB3aGVuIGEgbGluayBpcyBjbGlja2VkLgoJCSAqCgkJICogQHNpbmNlIDEuNS45CgkJICogQGFjY2VzcyBwcml2YXRlCgkJICogQG1ldGhvZCBfc2Nyb2xsVG9UYWJPbkxpbmtDbGljawoJCSAqIEBwYXJhbSB7T2JqZWN0fSBlIEFuIGV2ZW50IG9iamVjdC4KCQkgKi8KCQlfc2Nyb2xsVG9UYWJPbkxpbmtDbGljazogZnVuY3Rpb24oIGUgKQoJCXsKCQkJdmFyIGVsZW1lbnQgCQk9ICQoICcjJyArICQoIHRoaXMgKS5hdHRyKCAnaHJlZicgKS5zcGxpdCggJyMnICkucG9wKCkgKSwKCQkJCXRhYnMJCQk9IG51bGwsCgkJCQlsYWJlbCAgIAkJPSBudWxsLAoJCQkJcmVzcG9uc2l2ZUxhYmVsID0gbnVsbDsKCgkJCWlmICggZWxlbWVudC5sZW5ndGggPiAwICkgewoKCQkJCXRhYnMgCQkJPSBlbGVtZW50LmNsb3Nlc3QoICcuZmwtdGFicycgKTsKCQkJCXJlc3BvbnNpdmVMYWJlbCA9IGVsZW1lbnQuZmluZCggJy5mbC10YWJzLXBhbmVsLWxhYmVsJyApOwoJCQkJdGFiSW5kZXggCQk9IHJlc3BvbnNpdmVMYWJlbC5kYXRhKCAnaW5kZXgnICk7CgkJCQlsYWJlbCAJCQk9IHRhYnMuZmluZCggJy5mbC10YWJzLWxhYmVscyAuZmwtdGFicy1sYWJlbFtkYXRhLWluZGV4PScgKyB0YWJJbmRleCArICddJyApOwoKCQkJCWlmICggcmVzcG9uc2l2ZUxhYmVsLmlzKCAnOnZpc2libGUnICkgKSB7CgkJCQkJCgkJCQkJdmFyIGNhbGxiYWNrID0gZnVuY3Rpb24oKSB7CgkJCQkJCWlmICggZWxlbWVudCApIHsKCQkJCQkJCXJlc3BvbnNpdmVMYWJlbC50cmlnZ2VyKCAkLkV2ZW50KCAnY2xpY2snLCB7IHdoaWNoOiAxIH0gKSApOwoJCQkJCQl9CgkJCQkJfTsKCgkJCQkJRkxCdWlsZGVyTGF5b3V0Ll9zY3JvbGxUb0VsZW1lbnRPbkxpbmtDbGljay5jYWxsKCB0aGlzLCBlLCBjYWxsYmFjayApOwoJCQkJfQoJCQkJZWxzZSB7CgkJCQkJbGFiZWxbMF0uY2xpY2soKTsKCQkJCQlGTEJ1aWxkZXJMYXlvdXQuX3Njcm9sbFRvRWxlbWVudCggZWxlbWVudCApOwoJCQkJfQoKCQkJCWUucHJldmVudERlZmF1bHQoKTsKCQkJfQoJCX0sCgoJCS8qKgoJCSAqIEluaXRpYWxpemVzIGFsbCBidWlsZGVyIGZvcm1zIG9uIGEgcGFnZS4KCQkgKgoJCSAqIEBzaW5jZSAxLjUuNAoJCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJCSAqIEBtZXRob2QgX2luaXRGb3JtcwoJCSAqLwoJCV9pbml0Rm9ybXM6IGZ1bmN0aW9uKCkKCQl7CgkJCWlmICggISBGTEJ1aWxkZXJMYXlvdXQuX2hhc1BsYWNlaG9sZGVyU3VwcG9ydCApIHsKCQkJCSQoICcuZmwtZm9ybS1maWVsZCBpbnB1dCcgKS5lYWNoKCBGTEJ1aWxkZXJMYXlvdXQuX2luaXRGb3JtRmllbGRQbGFjZWhvbGRlckZhbGxiYWNrICk7CgkJCX0KCgkJCSQoICcuZmwtZm9ybS1maWVsZCBpbnB1dCcgKS5vbiggJ2ZvY3VzJywgRkxCdWlsZGVyTGF5b3V0Ll9jbGVhckZvcm1GaWVsZEVycm9yICk7CgkJfSwKCgkJLyoqCgkJICogQ2hlY2tzIHRvIHNlZSBpZiB0aGUgY3VycmVudCBkZXZpY2UgaGFzIEhUTUw1CgkJICogcGxhY2Vob2xkZXIgc3VwcG9ydC4KCQkgKgoJCSAqIEBzaW5jZSAxLjUuNAoJCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJCSAqIEBtZXRob2QgX2hhc1BsYWNlaG9sZGVyU3VwcG9ydAoJCSAqIEByZXR1cm4ge0Jvb2xlYW59CgkJICovCgkJX2hhc1BsYWNlaG9sZGVyU3VwcG9ydDogZnVuY3Rpb24oKQoJCXsKCQkJdmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ2lucHV0JyApOwoKCQkJcmV0dXJuICd1bmRlZmluZWQnICE9IGlucHV0LnBsYWNlaG9sZGVyOwoJCX0sCgoJCS8qKgoJCSAqIEluaXRpYWxpemVzIHRoZSBmYWxsYmFjayBmb3Igd2hlbiBwbGFjZWhvbGRlcnMgYXJlbid0IHN1cHBvcnRlZC4KCQkgKgoJCSAqIEBzaW5jZSAxLjUuNAoJCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJCSAqIEBtZXRob2QgX2luaXRGb3JtRmllbGRQbGFjZWhvbGRlckZhbGxiYWNrCgkJICovCgkJX2luaXRGb3JtRmllbGRQbGFjZWhvbGRlckZhbGxiYWNrOiBmdW5jdGlvbigpCgkJewoJCQl2YXIgZmllbGQgICAgICAgPSAkKCB0aGlzICksCgkJCQl2YWwgICAgICAgICA9IGZpZWxkLnZhbCgpLAoJCQkJcGxhY2Vob2xkZXIgPSBmaWVsZC5hdHRyKCAncGxhY2Vob2xkZXInICk7CgoJCQlpZiAoICd1bmRlZmluZWQnICE9IHBsYWNlaG9sZGVyICYmICcnID09PSB2YWwgKSB7CgkJCQlmaWVsZC52YWwoIHBsYWNlaG9sZGVyICk7CgkJCQlmaWVsZC5vbiggJ2ZvY3VzJywgRkxCdWlsZGVyTGF5b3V0Ll9oaWRlRm9ybUZpZWxkUGxhY2Vob2xkZXJGYWxsYmFjayApOwoJCQkJZmllbGQub24oICdibHVyJywgRkxCdWlsZGVyTGF5b3V0Ll9zaG93Rm9ybUZpZWxkUGxhY2Vob2xkZXJGYWxsYmFjayApOwoJCQl9CgkJfSwKCgkJLyoqCgkJICogSGlkZXMgYSBmYWxsYmFjayBwbGFjZWhvbGRlciBvbiBmb2N1cy4KCQkgKgoJCSAqIEBzaW5jZSAxLjUuNAoJCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJCSAqIEBtZXRob2QgX2hpZGVGb3JtRmllbGRQbGFjZWhvbGRlckZhbGxiYWNrCgkJICovCgkJX2hpZGVGb3JtRmllbGRQbGFjZWhvbGRlckZhbGxiYWNrOiBmdW5jdGlvbigpCgkJewoJCQl2YXIgZmllbGQgICAgICAgPSAkKCB0aGlzICksCgkJCQl2YWwgICAgICAgICA9IGZpZWxkLnZhbCgpLAoJCQkJcGxhY2Vob2xkZXIgPSBmaWVsZC5hdHRyKCAncGxhY2Vob2xkZXInICk7CgoJCQlpZiAoIHZhbCA9PSBwbGFjZWhvbGRlciApIHsKCQkJCWZpZWxkLnZhbCggJycgKTsKCQkJfQoJCX0sCgoJCS8qKgoJCSAqIFNob3dzIGEgZmFsbGJhY2sgcGxhY2Vob2xkZXIgb24gYmx1ci4KCQkgKgoJCSAqIEBzaW5jZSAxLjUuNAoJCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJCSAqIEBtZXRob2QgX3Nob3dGb3JtRmllbGRQbGFjZWhvbGRlckZhbGxiYWNrCgkJICovCgkJX3Nob3dGb3JtRmllbGRQbGFjZWhvbGRlckZhbGxiYWNrOiBmdW5jdGlvbigpCgkJewoJCQl2YXIgZmllbGQgICAgICAgPSAkKCB0aGlzICksCgkJCQl2YWwgICAgICAgICA9IGZpZWxkLnZhbCgpLAoJCQkJcGxhY2Vob2xkZXIgPSBmaWVsZC5hdHRyKCAncGxhY2Vob2xkZXInICk7CgoJCQlpZiAoICcnID09PSB2YWwgKSB7CgkJCQlmaWVsZC52YWwoIHBsYWNlaG9sZGVyICk7CgkJCX0KCQl9LAoKCQkvKioKCQkgKiBDbGVhcnMgYSBmb3JtIGZpZWxkIGVycm9yIG1lc3NhZ2UuCgkJICoKCQkgKiBAc2luY2UgMS41LjQKCQkgKiBAYWNjZXNzIHByaXZhdGUKCQkgKiBAbWV0aG9kIF9jbGVhckZvcm1GaWVsZEVycm9yCgkJICovCgkJX2NsZWFyRm9ybUZpZWxkRXJyb3I6IGZ1bmN0aW9uKCkKCQl7CgkJCXZhciBmaWVsZCA9ICQoIHRoaXMgKTsKCgkJCWZpZWxkLnJlbW92ZUNsYXNzKCAnZmwtZm9ybS1lcnJvcicgKTsKCQkJZmllbGQuc2libGluZ3MoICcuZmwtZm9ybS1lcnJvci1tZXNzYWdlJyApLmhpZGUoKTsKCQl9LAoKCQkvKioKCQkgKiBJbml0IFJvdyBTaGFwZSBMYXllcidzIGhlaWdodC4KCQkgKgoJCSAqIEBzaW5jZSAyLjUuMwoJCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJCSAqIEBtZXRob2QgX2luaXRSb3dTaGFwZUxheWVySGVpZ2h0CgkJICovCgkJX2luaXRSb3dTaGFwZUxheWVySGVpZ2h0OiBmdW5jdGlvbiAoKSB7CgkJCUZMQnVpbGRlckxheW91dC5fYWRqdXN0Um93U2hhcGVMYXllckhlaWdodCgpOwoJCQkkKCB3aW5kb3cgKS5vbiggJ3Jlc2l6ZScsIEZMQnVpbGRlckxheW91dC5fYWRqdXN0Um93U2hhcGVMYXllckhlaWdodCApOwoJCX0sCgoJCS8qKgoJCSAqIEFkanVzdCBSb3cgU2hhcGUgTGF5ZXIncyBoZWlnaHQgdG8gZml4IHRvIHJlbW92ZSB0aGUgZmluZSBsaW5lIHRoYXQgYXBwZWFycyBvbiBjZXJ0YWluIHNjcmVlbiBzaXplcy4KCQkgKgoJCSAqIEBzaW5jZSAyLjUuMwoJCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJCSAqIEBtZXRob2QgX2FkanVzdFJvd1NoYXBlTGF5ZXJIZWlnaHQKCQkgKi8KCQlfYWRqdXN0Um93U2hhcGVMYXllckhlaWdodDogZnVuY3Rpb24oKSB7CgkJCXZhciByb3dTaGFwZUxheWVycyA9ICQoJy5mbC1idWlsZGVyLXNoYXBlLWxheWVyJyk7CgoJCQkkKCByb3dTaGFwZUxheWVycyApLmVhY2goZnVuY3Rpb24gKGluZGV4KSB7CgkJCQl2YXIgcm93U2hhcGVMYXllciA9ICQodGhpcyksCgkJCQkJc2hhcGUgPSAkKHJvd1NoYXBlTGF5ZXIpLmZpbmQoJ3N2ZycpLAoJCQkJCWhlaWdodCA9IHNoYXBlLmhlaWdodCgpLAoJCQkJCWV4Y2x1ZGVTaGFwZXMgPSAnLmZsLWJ1aWxkZXItc2hhcGUtY2lyY2xlLCAuZmwtYnVpbGRlci1zaGFwZS1kb3QtY2x1c3RlciwgLmZsLWJ1aWxkZXItc2hhcGUtdG9wb2dyYXBoeSwgLmZsLWJ1aWxkZXItc2hhcGUtcmVjdCc7CgoJCQkJaWYgKCAhIHJvd1NoYXBlTGF5ZXIuaXMoIGV4Y2x1ZGVTaGFwZXMgKSApIHsKCQkJCQkkKHNoYXBlKS5jc3MoJ2hlaWdodCcsIE1hdGguY2VpbCggaGVpZ2h0ICkgKTsKCQkJCX0KCQkJfSk7CgkJfSwKCQlfc3RyaW5nX3RvX3NsdWc6IGZ1bmN0aW9uKCBzdHIgKSB7CgkJCXN0ciA9IHN0ci5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpOyAvLyB0cmltCgkJCWlmICggJ3VuZGVmaW5lZCcgPT0gdHlwZW9mIHdpbmRvdy5fZmxfc3RyaW5nX3RvX3NsdWdfcmVnZXggKSB7CgkJCQlyZWdleCA9IG5ldyBSZWdFeHAoJ1teYS16QS1aMC05XCciOigpICEuLC1ffF0nLCAnZycpOwoJCQl9IGVsc2UgewoJCQkJcmVnZXggPSBuZXcgUmVnRXhwKCdbXicgKyB3aW5kb3cuX2ZsX3N0cmluZ190b19zbHVnX3JlZ2V4ICsgJ1wnIjpcKFwpICEuLC1ffFxcXHB7TGV0dGVyfV0nLCAndWcnKTsKCQkJfQoJCQlzdHIgPSBzdHIucmVwbGFjZShyZWdleCwgJycpIC8vIHJlbW92ZSBpbnZhbGlkIGNoYXJzCgkJCQkucmVwbGFjZSgvXHMrL2csICcgJyk7IC8vIGNvbGxhcHNlIHdoaXRlc3BhY2UgYW5kIHJlcGxhY2UgYnkgYSBzcGFjZQoJCQlyZXR1cm4gc3RyOwoJCX0sCgkJX3Jlb3JkZXJNZW51OiBmdW5jdGlvbigpIHsKCQkJaWYgKCAkKCcjd3AtYWRtaW4tYmFyLWZsLWJ1aWxkZXItZnJvbnRlbmQtZWRpdC1saW5rLWRlZmF1bHQgbGknKS5sZW5ndGggPiAxICkgewoJCQkJCSQoICcjd3AtYWRtaW4tYmFyLWZsLWJ1aWxkZXItZnJvbnRlbmQtZHVwbGljYXRlLWxpbmsnICkKCQkJCQkuYXBwZW5kVG8oJyN3cC1hZG1pbi1iYXItZmwtYnVpbGRlci1mcm9udGVuZC1lZGl0LWxpbmstZGVmYXVsdCcpCgkJCQkJLmNzcyggJ3BhZGRpbmctdG9wJywgJzVweCcgKQoJCQkJCS5jc3MoICdib3JkZXItdG9wJywgJzJweCBzb2xpZCAjMUQyMTI1JyApCgkJCQkJLmNzcyggJ21hcmdpbi10b3AnLCAnNXB4JyApCgkJCQl9CgkJfQoJfTsKCgkvKiBJbml0aWFsaXplcyB0aGUgYnVpbGRlciBsYXlvdXQuICovCgkkKGZ1bmN0aW9uKCl7CgkJRkxCdWlsZGVyTGF5b3V0LmluaXQoKTsKCX0pOwoKfSkoalF1ZXJ5KTsKCi8qIFN0YXJ0IEdsb2JhbCBKUyAqLwoKLyogRW5kIEdsb2JhbCBKUyAqLwoKalF1ZXJ5KGZ1bmN0aW9uKCQpIHsKCQoJCSQoZnVuY3Rpb24oKSB7CgkJJCggJy5mbC1ub2RlLTVlMWRkZWQ0Nzc3YzAgLmZsLXBob3RvLWltZycgKQoJCQkub24oICdtb3VzZWVudGVyJywgZnVuY3Rpb24oIGUgKSB7CgkJCQkkKCB0aGlzICkuZGF0YSggJ3RpdGxlJywgJCggdGhpcyApLmF0dHIoICd0aXRsZScgKSApLnJlbW92ZUF0dHIoICd0aXRsZScgKTsKCQkJfSApCgkJCS5vbiggJ21vdXNlbGVhdmUnLCBmdW5jdGlvbiggZSApewoJCQkJJCggdGhpcyApLmF0dHIoICd0aXRsZScsICQoIHRoaXMgKS5kYXRhKCAndGl0bGUnICkgKS5kYXRhKCAndGl0bGUnLCBudWxsICk7CgkJCX0gKTsKCX0pOwoJCXdpbmRvdy5fZmxfc3RyaW5nX3RvX3NsdWdfcmVnZXggPSAnYS16QS1aMC05JzsKfSk7CgooZnVuY3Rpb24oJCkgewoKCS8qKgoJICogQ2xhc3MgZm9yIE1lbnUgTW9kdWxlCgkgKgoJICogQHNpbmNlIDEuNi4xCgkgKi8KCUZMQnVpbGRlck1lbnUgPSBmdW5jdGlvbiggc2V0dGluZ3MgKXsKCgkJLy8gc2V0IHBhcmFtcwoJCXRoaXMubm9kZUlkICAgICAgICAgICAgICA9IHNldHRpbmdzLmlkOwoJCXRoaXMubm9kZUNsYXNzICAgICAgICAgICA9ICcuZmwtbm9kZS0nICsgc2V0dGluZ3MuaWQ7CgkJdGhpcy53cmFwcGVyQ2xhc3MgICAgICAgID0gdGhpcy5ub2RlQ2xhc3MgKyAnIC5mbC1tZW51JzsKCQl0aGlzLnR5cGUJCQkJID0gc2V0dGluZ3MudHlwZTsKCQl0aGlzLm1vYmlsZVRvZ2dsZQkJID0gc2V0dGluZ3MubW9iaWxlOwoJCXRoaXMubW9iaWxlQmVsb3dSb3cJCSA9IHNldHRpbmdzLm1vYmlsZUJlbG93Um93OwoJCXRoaXMubW9iaWxlRmx5b3V0CQkgPSBzZXR0aW5ncy5tb2JpbGVGbHlvdXQ7CgkJdGhpcy5icmVha1BvaW50cyAgICAgICAgID0gc2V0dGluZ3MuYnJlYWtQb2ludHM7CgkJdGhpcy5tb2JpbGVCcmVha3BvaW50CSA9IHNldHRpbmdzLm1vYmlsZUJyZWFrcG9pbnQ7CgkJdGhpcy5jdXJyZW50QnJvd3NlcldpZHRoID0gJCggd2luZG93ICkud2lkdGgoKTsKCQl0aGlzLnBvc3RJZCAgICAgICAgICAgICAgPSBzZXR0aW5ncy5wb3N0SWQ7CgkJdGhpcy5tb2JpbGVTdGFja2VkICAgICAgID0gc2V0dGluZ3MubW9iaWxlU3RhY2tlZDsKCgkJLy8gaW5pdGlhbGl6ZSB0aGUgbWVudQoJCXRoaXMuX2luaXRNZW51KCk7CgoJCS8vIGNoZWNrIGlmIHZpZXdwb3J0IGlzIHJlc2l6aW5nCgkJJCggd2luZG93ICkub24oICdyZXNpemUnLCAkLnByb3h5KCBmdW5jdGlvbiggZSApIHsKCgkJCXZhciB3aWR0aCA9ICQoIHdpbmRvdyApLndpZHRoKCk7CgoJCQkvLyBpZiBzY3JlZW4gd2lkdGggaXMgcmVzaXplZCwgcmVsb2FkIHRoZSBtZW51CgkJICAgIGlmKCB3aWR0aCAhPSB0aGlzLmN1cnJlbnRCcm93c2VyV2lkdGggKXsKCgkJCQl0aGlzLmN1cnJlbnRCcm93c2VyV2lkdGggPSB3aWR0aDsKCQkJCXRoaXMuX2luaXRNZW51KCk7CiAJCQkJdGhpcy5fY2xpY2tPckhvdmVyKCk7CgkJCX0KCgkJfSwgdGhpcyApICk7CgoJCSQoICdib2R5JyApLm9uKCAnY2xpY2snLCAkLnByb3h5KCBmdW5jdGlvbiggZSApIHsKCQkJaWYgKCAndW5kZWZpbmVkJyAhPT0gdHlwZW9mIEZMQnVpbGRlckNvbmZpZyApewoJCQkJcmV0dXJuOwoJCQl9CgoJCQl2YXIgYWN0aXZlTW9iaWxlTWVudSA9ICQodGhpcy53cmFwcGVyQ2xhc3MgKyAnIC5mbC1tZW51LW1vYmlsZS10b2dnbGUuZmwtYWN0aXZlJyApOwoJCQlpZiAoIGFjdGl2ZU1vYmlsZU1lbnUubGVuZ3RoICYmICggJ2V4cGFuZGVkJyAhPT0gdGhpcy5tb2JpbGVUb2dnbGUgKSApewoJCQkJJCggYWN0aXZlTW9iaWxlTWVudSApLnRyaWdnZXIoJ2NsaWNrJyk7CgkJCX0KCgkJCSQoIHRoaXMud3JhcHBlckNsYXNzICkuZmluZCggJy5mbC1oYXMtc3VibWVudScgKS5yZW1vdmVDbGFzcyggJ2ZvY3VzJyApOwoJCQkkKCB0aGlzLndyYXBwZXJDbGFzcyApLmZpbmQoICcuZmwtaGFzLXN1Ym1lbnUgLnN1Yi1tZW51JyApLnJlbW92ZUNsYXNzKCAnZm9jdXMnICk7CgoJCX0sIHRoaXMgKSApOwoKCQkvLyBDbG9zZSBNb2JpbGUgbWVudSB3aGVuIHRhYmJpbmcgb3V0IGZyb20gdGhlIGxhc3QgbWVudSBpdGVtLgoJCSQoIHRoaXMud3JhcHBlckNsYXNzICsgJyB1bC5tZW51ID4gbGk6bGFzdC1jaGlsZCcgKS5vbiggJ2ZvY3Vzb3V0JywgJC5wcm94eShmdW5jdGlvbiAoZSkgewoJCQlpZiAoICQoIHRoaXMud3JhcHBlckNsYXNzICkuZmluZCggJy5mbC1tZW51LW1vYmlsZS10b2dnbGUnICkuaGFzQ2xhc3MoICdmbC1hY3RpdmUnICkgJiYgKCAnZXhwYW5kZWQnICE9PSB0aGlzLm1vYmlsZVRvZ2dsZSApICkgewoJCQkJaWYgKCAhICQoIGUucmVsYXRlZFRhcmdldCApLnBhcmVudCgpLmhhc0NsYXNzKCAnbWVudS1pdGVtJyApICkgewoJCQkJCSQoIHRoaXMud3JhcHBlckNsYXNzICkuZmluZCggJy5mbC1tZW51LW1vYmlsZS10b2dnbGUnICkudHJpZ2dlciggJ2NsaWNrJyApOwkKCQkJCX0KCQkJfQoJCX0sIHRoaXMgKSApOwoKCX07CgoJRkxCdWlsZGVyTWVudS5wcm90b3R5cGUgPSB7CgkJbm9kZUNsYXNzICAgICAgICAgICAgICAgOiAnJywKCQl3cmFwcGVyQ2xhc3MgICAgICAgICAgICA6ICcnLAoJCXR5cGUgCSAgICAgICAgICAgICAgICA6ICcnLAoJCWJyZWFrUG9pbnRzIAkJCToge30sCgkJJHN1Ym1lbnVzCQkJCTogbnVsbCwKCgkJLyoqCgkJICogQ2hlY2sgaWYgdGhlIHNjcmVlbiBzaXplIGZpdHMgYSBtb2JpbGUgdmlld3BvcnQuCgkJICoKCQkgKiBAc2luY2UgIDEuNi4xCgkJICogQHJldHVybiBib29sCgkJICovCgkJX2lzTW9iaWxlOiBmdW5jdGlvbigpewoJCQlyZXR1cm4gdGhpcy5jdXJyZW50QnJvd3NlcldpZHRoIDw9IHRoaXMuYnJlYWtQb2ludHMuc21hbGwgPyB0cnVlIDogZmFsc2U7CgkJfSwKCgkJLyoqCgkJICogQ2hlY2sgaWYgdGhlIHNjcmVlbiBzaXplIGZpdHMgYSBtZWRpdW0gdmlld3BvcnQuCgkJICoKCQkgKiBAc2luY2UgIDEuMTAuNQoJCSAqIEByZXR1cm4gYm9vbAoJCSAqLwoJCV9pc01lZGl1bTogZnVuY3Rpb24oKXsKCQkJcmV0dXJuIHRoaXMuY3VycmVudEJyb3dzZXJXaWR0aCA8PSB0aGlzLmJyZWFrUG9pbnRzLm1lZGl1bSA/IHRydWUgOiBmYWxzZTsKCQl9LAoKCQkvKioKCQkgKiBDaGVjayBpZiB0aGUgc2NyZWVuIHNpemUgZml0cyBhIGxhcmdlIHZpZXdwb3J0LgoJCSAqCgkJICogQHNpbmNlICAxLjEwLjUKCQkgKiBAcmV0dXJuIGJvb2wKCQkgKi8KCQlfaXNMYXJnZTogZnVuY3Rpb24oKXsKCQkJcmV0dXJuIHRoaXMuY3VycmVudEJyb3dzZXJXaWR0aCA8PSB0aGlzLmJyZWFrUG9pbnRzLmxhcmdlID8gdHJ1ZSA6IGZhbHNlOwoJCX0sCgoJCS8qKgoJCSAqIENoZWNrIGlmIHRoZSBtZW51IHNob3VsZCB0b2dnbGUgZm9yIHRoZSBjdXJyZW50IHZpZXdwb3J0IGJhc2Ugb24gdGhlIHNlbGVjdGVkIGJyZWFrcG9pbnQKCQkgKgoJCSAqIEBzZWUgCXRoaXMuX2lzTW9iaWxlKCkKCQkgKiBAc2VlIAl0aGlzLl9pc01lZGl1bSgpCgkJICogQHNpbmNlICAJMS4xMC41CgkJICogQHJldHVybiBib29sCgkJICovCgkJX2lzTWVudVRvZ2dsZTogZnVuY3Rpb24oKXsKCQkJaWYgKCAoICdhbHdheXMnID09IHRoaXMubW9iaWxlQnJlYWtwb2ludAoJCQkJfHwgKCB0aGlzLl9pc01vYmlsZSgpICYmICdtb2JpbGUnID09IHRoaXMubW9iaWxlQnJlYWtwb2ludCApCgkJCQl8fCAoIHRoaXMuX2lzTWVkaXVtKCkgJiYgJ21lZGl1bS1tb2JpbGUnID09IHRoaXMubW9iaWxlQnJlYWtwb2ludCApCgkJCQl8fCAoIHRoaXMuX2lzTGFyZ2UoKSAmJiAnbGFyZ2UtbW9iaWxlJyA9PSB0aGlzLm1vYmlsZUJyZWFrcG9pbnQgKQoJCQkpICYmICggJCggdGhpcy53cmFwcGVyQ2xhc3MgKS5maW5kKCAnLmZsLW1lbnUtbW9iaWxlLXRvZ2dsZScgKS5pcygnOnZpc2libGUnKSB8fCAnZXhwYW5kZWQnID09IHRoaXMubW9iaWxlVG9nZ2xlICkgKSB7CgkJCQlyZXR1cm4gdHJ1ZTsKCQkJfQoKCQkJcmV0dXJuIGZhbHNlOwoJCX0sCgoJCS8qKgoJCSAqIEluaXRpYWxpemUgdGhlIHRvZ2dsZSBsb2dpYyBmb3IgdGhlIG1lbnUuCgkJICoKCQkgKiBAc2VlICAgIHRoaXMuX2lzTWVudVRvZ2dsZSgpCgkJICogQHNlZSAgICB0aGlzLl9tZW51T25DTGljaygpCgkJICogQHNlZSAgICB0aGlzLl9jbGlja09ySG92ZXIoKQoJCSAqIEBzZWUgICAgdGhpcy5fc3VibWVudU9uUmlnaHQoKQoJCSAqIEBzZWUgICAgdGhpcy5fc3VibWVudVJvd1ppbmRleEZpeCgpCgkJICogQHNlZSAgICB0aGlzLl90b2dnbGVGb3JNb2JpbGUoKQoJCSAqIEBzaW5jZSAgMS42LjEKCQkgKiBAcmV0dXJuIHZvaWQKCQkgKi8KCQlfaW5pdE1lbnU6IGZ1bmN0aW9uKCl7CgkJCXRoaXMuX3NldHVwU3VibWVudSgpOwoJCQl0aGlzLl9tZW51T25Gb2N1cygpOwoJCQl0aGlzLl9zdWJtZW51T25DbGljaygpOwoJCQlpZiAoICQoIHRoaXMubm9kZUNsYXNzICkubGVuZ3RoICYmIHRoaXMudHlwZSA9PSAnaG9yaXpvbnRhbCcgKSB7CgkJCQl0aGlzLl9pbml0TWVnYU1lbnVzKCk7CgkJCX0KCgkJCWlmKCB0aGlzLl9pc01lbnVUb2dnbGUoKSB8fCB0aGlzLnR5cGUgPT0gJ2FjY29yZGlvbicgKXsKCgkJCQkkKCB0aGlzLndyYXBwZXJDbGFzcyApLm9mZiggJ21vdXNlZW50ZXIgbW91c2VsZWF2ZScgKTsKCQkJCXRoaXMuX21lbnVPbkNsaWNrKCk7CgkJCQl0aGlzLl9jbGlja09ySG92ZXIoKTsKCgkJCX0gZWxzZSB7CgkJCQkkKCB0aGlzLndyYXBwZXJDbGFzcyApLm9mZiggJ2NsaWNrJyApOwoJCQkJdGhpcy5fc3VibWVudU9uUmlnaHQoKTsKCQkJCXRoaXMuX3N1Ym1lbnVSb3daaW5kZXhGaXgoKTsKCQkJfQoKCQkJaWYoIHRoaXMubW9iaWxlVG9nZ2xlICE9ICdleHBhbmRlZCcgKXsKCQkJCXRoaXMuX3RvZ2dsZUZvck1vYmlsZSgpOwoJCQl9CgoJCQlpZiggJCggdGhpcy53cmFwcGVyQ2xhc3MgKS5maW5kKCAnLmZsLW1lbnUtc2VhcmNoLWl0ZW0nICkubGVuZ3RoICl7CgkJCQl0aGlzLl90b2dnbGVNZW51U2VhcmNoKCk7CgkJCX0KCgkJCWlmKCAkKCB0aGlzLndyYXBwZXJDbGFzcyApLmZpbmQoICcuZmwtbWVudS1jYXJ0LWl0ZW0nKS5sZW5ndGggKXsKCQkJCXRoaXMuX3dvb1VwZGF0ZVBhcmFtcygpOwoJCQl9CgkJfSwKCgkJLyoqCgkJICogSW5pdGlhbGl6ZXMgc3VibWVudSBkcm9wZG93bnMuCgkJICoKCQkgKiBAc2luY2UgMy4wCgkJICogQHJldHVybiB2b2lkCgkJICovCgkJX3NldHVwU3VibWVudTogZnVuY3Rpb24oKSB7CgkJCSQoIHRoaXMud3JhcHBlckNsYXNzICsgJyB1bC5zdWItbWVudScgKS5lYWNoKCBmdW5jdGlvbigpewoJCQkJJCggdGhpcyApLmNsb3Nlc3QoICdsaScgKS5hdHRyKCAnYXJpYS1oYXNwb3B1cCcsICd0cnVlJyApOwoJCQl9KTsKCQl9LAoKCQkvKioKCQkgKiBBZGRzIGEgZm9jdXMgY2xhc3MgdG8gbWVudSBlbGVtZW50cyBzaW1pbGFyIHRvIGJlIHVzZWQgc2ltaWxhciB0byBDU1MgOmhvdmVyIHBzdWVkbyBldmVudAoJCSAqCgkJICogQHNpbmNlICAxLjkuMAoJCSAqIEByZXR1cm4gdm9pZAoJCSAqLwoJCV9tZW51T25Gb2N1czogZnVuY3Rpb24oKXsKCQkJdmFyIGNLZXkgICAgICA9IDAsCgkJCSAgICBpc1NoaWZ0ZWQgPSBmYWxzZTsKCgkJCSQoIHRoaXMubm9kZUNsYXNzICkub2ZmKCdrZXlkb3duJykub24oICdrZXlkb3duJywgJ2EnLCBmdW5jdGlvbiggZSApewoJCQkJY0tleSAgICAgID0gZS53aGljaDsKCQkJCWlzU2hpZnRlZCA9IGUuc2hpZnRLZXk7CgkJCX0pOwoKCQkJJCggdGhpcy5ub2RlQ2xhc3MgKS5vZmYoJ2ZvY3VzJykub24oICdmb2N1cycsICdhJywgJC5wcm94eSggZnVuY3Rpb24oIGUgKXsKCQkJCXZhciAkbWVudUl0ZW0JPSAkKCBlLnRhcmdldCApLnBhcmVudHMoICcubWVudS1pdGVtJyApLmZpcnN0KCksCgkJCQkJJHBhcmVudHMJPSAkKCBlLnRhcmdldCApLnBhcmVudHNVbnRpbCggdGhpcy53cmFwcGVyQ2xhc3MgKTsKCgkJCQkkKCcuZmwtbWVudSAuZm9jdXMnKS5yZW1vdmVDbGFzcygnZm9jdXMnKTsKCgkJCQkkbWVudUl0ZW0uYWRkQ2xhc3MoJ2ZvY3VzJykKCQkJCSRwYXJlbnRzLmFkZENsYXNzKCdmb2N1cycpCgoJCQl9LCB0aGlzICkgKS5vbiggJ2ZvY3Vzb3V0JywgJ2EnLCAkLnByb3h5KCBmdW5jdGlvbiggZSApewoJCQkJdmFyIGVsICAgICAgICAgICAgPSAkKGUudGFyZ2V0KS5wYXJlbnQoKSwKCQkgICAgICAgICAgICAkbWVnYU1lbnUgICAgID0gZWwuY2xvc2VzdCggJy5tZWdhLW1lbnUnICksCgkJICAgICAgICAgICAgJG1lZ2FMYXN0SXRlbSA9ICRtZWdhTWVudS5maW5kKCc+IC5zdWItbWVudSA+IC5tZW51LWl0ZW06bGFzdC1jaGlsZCcpLAoJCQkJCWlzTGFzdENoaWxkICAgPSAhICRtZWdhTWVudS5sZW5ndGggJiYgZWwuaXMoJzpsYXN0LWNoaWxkJyApOwoKCQkgICAgICAgIGlmKCAkbWVnYU1lbnUubGVuZ3RoICkgewoJCQkJCWlzTGFzdENoaWxkID0gZWwuaXMoICRtZWdhTGFzdEl0ZW0gKSB8fCBlbC5pcyggJG1lZ2FMYXN0SXRlbS5maW5kKCAnLm1lbnUtaXRlbTpsYXN0LWNoaWxkJyApICk7CgkJCQl9CgoJCQkJaWYgKCBpc0xhc3RDaGlsZCAmJiBjS2V5ID09PSA5ICYmIGlzU2hpZnRlZCApIHsKCQkJCQlpc0xhc3RDaGlsZCA9IGZhbHNlOwoJCQkJCWNLZXkgICAgICAgPSAwOwoJCQkJCWlzU2hpZnRlZCAgPSBmYWxzZTsKCQkJCX0KCgkJCQlpZiAoIGlzTGFzdENoaWxkICkgewoJCQkJCSQoIGUudGFyZ2V0ICkucGFyZW50c1VudGlsKCB0aGlzLndyYXBwZXJDbGFzcyApLnJlbW92ZUNsYXNzKCAnZm9jdXMnICk7CgkJCQl9CgoJCQl9LCB0aGlzICkgKTsKCQl9LAoKCQkvKioKCQkgKiBMb2dpYyBmb3Igc3VibWVudSB0b2dnbGluZyBvbiBhY2NvcmRpb25zIG9yIG1vYmlsZSBtZW51cyAodmVydGljYWwsIGhvcml6b250YWwpCgkJICoKCQkgKiBAc2luY2UgIDEuNi4xCgkJICogQHJldHVybiB2b2lkCgkJICovCgkJX21lbnVPbkNsaWNrOiBmdW5jdGlvbigpewoJCQkkKCB0aGlzLndyYXBwZXJDbGFzcyApLm9mZigpLm9uKCAnY2xpY2snLCAnLmZsLWhhcy1zdWJtZW51LWNvbnRhaW5lcicsICQucHJveHkoIGZ1bmN0aW9uKCBlICl7CgoJCQkJdmFyICRsaW5rCQkJPSAkKCBlLnRhcmdldCApLnBhcmVudHMoICcuZmwtaGFzLXN1Ym1lbnUnICkuZmlyc3QoKSwKCQkJCQkkc3ViTWVudSAJCT0gJGxpbmsuY2hpbGRyZW4oICcuc3ViLW1lbnUnICkuZmlyc3QoKSwKCQkJCQkkaHJlZgkgCQk9ICRsaW5rLmNoaWxkcmVuKCcuZmwtaGFzLXN1Ym1lbnUtY29udGFpbmVyJykuZmlyc3QoKS5maW5kKCc+IGEnKS5hdHRyKCdocmVmJyksCgkJCQkJJHN1Yk1lbnVQYXJlbnRzID0gJCggZS50YXJnZXQgKS5wYXJlbnRzKCAnLnN1Yi1tZW51JyApLAoJCQkJCSRhY3RpdmVQYXJlbnRzIAk9ICQoIGUudGFyZ2V0ICkucGFyZW50cyggJy5mbC1oYXMtc3VibWVudS5mbC1hY3RpdmUnICk7CgoJCQkJaWYoICEkc3ViTWVudS5pcygnOnZpc2libGUnKSB8fCAkKGUudGFyZ2V0KS5oYXNDbGFzcygnZmwtbWVudS10b2dnbGUnKQoJCQkJCXx8ICgkc3ViTWVudS5pcygnOnZpc2libGUnKSAmJiAodHlwZW9mICRocmVmID09PSAndW5kZWZpbmVkJyB8fCAkaHJlZiA9PSAnIycpKSApewoJCQkJCWUucHJldmVudERlZmF1bHQoKTsKCQkJCX0KCQkJCWVsc2UgewoJCQkJCWUuc3RvcFByb3BhZ2F0aW9uKCk7CgkJCQkJd2luZG93LmxvY2F0aW9uLmhyZWYgPSAkaHJlZjsKCQkJCQlyZXR1cm47CgkJCQl9CgoJCQkJaWYgKCQodGhpcy53cmFwcGVyQ2xhc3MpLmhhc0NsYXNzKCdmbC1tZW51LWFjY29yZGlvbi1jb2xsYXBzZScpKSB7CgoJCQkJCWlmICggISRsaW5rLnBhcmVudHMoJy5tZW51LWl0ZW0nKS5oYXNDbGFzcygnZmwtYWN0aXZlJykgKSB7CgkJCQkJCSQoJy5tZW51IC5mbC1hY3RpdmUnLCB0aGlzLndyYXBwZXJDbGFzcykubm90KCRsaW5rKS5yZW1vdmVDbGFzcygnZmwtYWN0aXZlJyk7CgkJCQkJfQoJCQkJCWVsc2UgaWYgKCRsaW5rLnBhcmVudHMoJy5tZW51LWl0ZW0nKS5oYXNDbGFzcygnZmwtYWN0aXZlJykgJiYgJGxpbmsucGFyZW50KCcuc3ViLW1lbnUnKS5sZW5ndGgpIHsKCQkJCQkJJCgnLm1lbnUgLmZsLWFjdGl2ZScsIHRoaXMud3JhcHBlckNsYXNzKS5ub3QoJGxpbmspLm5vdCgkYWN0aXZlUGFyZW50cykucmVtb3ZlQ2xhc3MoJ2ZsLWFjdGl2ZScpOwoJCQkJCX0KCgkJCQkJJCgnLnN1Yi1tZW51JywgdGhpcy53cmFwcGVyQ2xhc3MpLm5vdCgkc3ViTWVudSkubm90KCRzdWJNZW51UGFyZW50cykuc2xpZGVVcCgnbm9ybWFsJyk7CgkJCQl9CgoJCQkJaWYgKCAhIHRoaXMubW9iaWxlU3RhY2tlZCAmJiAnaG9yaXpvbnRhbCcgPT0gdGhpcy50eXBlICYmICdleHBhbmRlZCcgPT0gdGhpcy5tb2JpbGVUb2dnbGUgKSB7CgkJCQkJJCggdGhpcy53cmFwcGVyQ2xhc3MgKS5maW5kKCAnLmZsLWFjdGl2ZScgKS5ub3QoJGxpbmspLm5vdCgkYWN0aXZlUGFyZW50cykucmVtb3ZlQ2xhc3MoICdmbC1hY3RpdmUnICk7CgkJCQl9CgkJCQllbHNlIHsKCQkJCQkkc3ViTWVudS5zbGlkZVRvZ2dsZSgpOwoJCQkJfQoKCQkJCSRsaW5rLnRvZ2dsZUNsYXNzKCAnZmwtYWN0aXZlJyApOwoJCQkJZS5zdG9wUHJvcGFnYXRpb24oKTsKCgkJCX0sIHRoaXMgKSApOwoKCQl9LAoKCQkvKioKCQkgKiBMb2dpYyBmb3Igc3VibWVudSBpdGVtcyBjbGljayBldmVudAoJCSAqCgkJICogQHNpbmNlICAxLjEwLjYKCQkgKiBAcmV0dXJuIHZvaWQKCQkgKi8KCQlfc3VibWVudU9uQ2xpY2s6IGZ1bmN0aW9uKCl7CgkJCSQoIHRoaXMud3JhcHBlckNsYXNzICsgJyAuc3ViLW1lbnUnICkub2ZmKCkub24oICdjbGljaycsICdhJywgJC5wcm94eSggZnVuY3Rpb24oIGUgKXsKCQkJCWlmICggJCggZS50YXJnZXQgKS5wYXJlbnQoKS5oYXNDbGFzcygnZm9jdXMnKSApIHsKCQkJCQkkKCBlLnRhcmdldCApLnBhcmVudHNVbnRpbCggdGhpcy53cmFwcGVyQ2xhc3MgKS5yZW1vdmVDbGFzcygnZm9jdXMnKTsKCQkJCX0KCQkJfSwgdGhpcyApICk7CgkJfSwKCgkJLyoqCgkJICogQ2hhbmdlcyBnZW5lcmFsIHN0eWxpbmcgYW5kIGJlaGF2aW9yIG9mIG1lbnVzIGJhc2VkIG9uIG1vYmlsZSAvIGRlc2t0b3Agdmlld3BvcnQuCgkJICoKCQkgKiBAc2VlICAgIHRoaXMuX2lzTWVudVRvZ2dsZSgpCgkJICogQHNpbmNlICAxLjYuMQoJCSAqIEByZXR1cm4gdm9pZAoJCSAqLwoJCV9jbGlja09ySG92ZXI6IGZ1bmN0aW9uKCl7CgkJCXRoaXMuJHN1Ym1lbnVzID0gdGhpcy4kc3VibWVudXMgfHwgJCggdGhpcy53cmFwcGVyQ2xhc3MgKS5maW5kKCAnLnN1Yi1tZW51JyApOwoJCQl2YXIgJHdyYXBwZXIgICA9ICQoIHRoaXMud3JhcHBlckNsYXNzICksCgkJCQkkbWVudSAgICAgID0gJHdyYXBwZXIuZmluZCggJy5tZW51JyApOwoJCQkJJGxpICAgICAgICA9ICR3cmFwcGVyLmZpbmQoICcuZmwtaGFzLXN1Ym1lbnUnICk7CgoJCQlpZiggdGhpcy5faXNNZW51VG9nZ2xlKCkgKXsKCQkJCSRsaS5lYWNoKCBmdW5jdGlvbiggZWwgKXsKCQkJCQlpZiggISQodGhpcykuaGFzQ2xhc3MoJ2ZsLWFjdGl2ZScpICl7CgkJCQkJCSQodGhpcykuZmluZCggJy5zdWItbWVudScgKS5mYWRlT3V0KCk7CgkJCQkJfQoJCQkJfSApOwoJCQl9IGVsc2UgewoJCQkJJGxpLmVhY2goIGZ1bmN0aW9uKCBlbCApewoJCQkJCWlmKCAhJCh0aGlzKS5oYXNDbGFzcygnZmwtYWN0aXZlJykgKXsKCQkJCQkJJCh0aGlzKS5maW5kKCAnLnN1Yi1tZW51JyApLmNzcyggewoJCQkJCQkJJ2Rpc3BsYXknIDogJycsCgkJCQkJCQknb3BhY2l0eScgOiAnJwoJCQkJCQl9ICk7CgkJCQkJfQoJCQkJfSApOwoJCQl9CgkJfSwKCgkJLyoqCgkJICogTG9naWMgdG8gcHJldmVudCBzdWJtZW51cyB0byBnbyBvdXRzaWRlIHZpZXdwb3J0IGJvdW5kYXJpZXMuCgkJICoKCQkgKiBAc2luY2UgIDEuNi4xCgkJICogQHJldHVybiB2b2lkCgkJICovCgkJX3N1Ym1lbnVPblJpZ2h0OiBmdW5jdGlvbigpewoKCQkJJCggdGhpcy53cmFwcGVyQ2xhc3MgKQoJCQkJLm9uKCAnbW91c2VlbnRlciBmb2N1cycsICcuZmwtaGFzLXN1Ym1lbnUnLCAkLnByb3h5KCBmdW5jdGlvbiggZSApewoKCQkJCQlpZiggJCAoIGUuY3VycmVudFRhcmdldCApLmZpbmQoJy5zdWItbWVudScpLmxlbmd0aCA9PT0gMCApIHsKCQkJCQkJcmV0dXJuOwoJCQkJCX0KCgkJCQkJdmFyICRsaW5rICAgICAgICAgICA9ICQoIGUuY3VycmVudFRhcmdldCApLAoJCQkJCQkkcGFyZW50ICAgICAgICAgPSAkbGluay5wYXJlbnQoKSwKCQkJCQkJJHN1Yk1lbnUgICAgICAgID0gJGxpbmsuZmluZCggJy5zdWItbWVudScgKSwKCQkJCQkJc3ViTWVudVdpZHRoICAgID0gJHN1Yk1lbnUud2lkdGgoKSwKCQkJCQkJc3ViTWVudVBvcyAgICAgID0gMCwKCQkJCQkJYm9keVdpZHRoICAgICAgID0gJCggJ2JvZHknICkud2lkdGgoKTsKCgkJCQkJaWYoICRsaW5rLmNsb3Nlc3QoICcuZmwtbWVudS1zdWJtZW51LXJpZ2h0JyApLmxlbmd0aCAhPT0gMCkgewoKCQkJCQkJJGxpbmsuYWRkQ2xhc3MoICdmbC1tZW51LXN1Ym1lbnUtcmlnaHQnICk7CgoJCQkJCX0gZWxzZSBpZiggJCggJ2JvZHknICkuaGFzQ2xhc3MoICdydGwnICkgKSB7CgoJCQkJCQlzdWJNZW51UG9zID0gJHBhcmVudC5pcyggJy5zdWItbWVudScgKSA/CgkJCQkJCQkJCSAkcGFyZW50Lm9mZnNldCgpLmxlZnQgLSBzdWJNZW51V2lkdGg6CgkJCQkJCQkJCSAkbGluay5vZmZzZXQoKS5sZWZ0IC0gJGxpbmsud2lkdGgoKSAtIHN1Yk1lbnVXaWR0aDsKCgkJCQkJCWlmKCBzdWJNZW51UG9zIDw9IDAgKSB7CgkJCQkJCQkkbGluay5hZGRDbGFzcyggJ2ZsLW1lbnUtc3VibWVudS1yaWdodCcgKTsKCQkJCQkJfQoKCQkJCQl9IGVsc2UgewoKCQkJCQkJc3ViTWVudVBvcyA9ICRwYXJlbnQuaXMoICcuc3ViLW1lbnUnICkgPwoJCQkJCQkJCQkgJHBhcmVudC5vZmZzZXQoKS5sZWZ0ICsgJHBhcmVudC53aWR0aCgpICsgc3ViTWVudVdpZHRoIDoKCQkJCQkJCQkJICRsaW5rLm9mZnNldCgpLmxlZnQgKyAkbGluay53aWR0aCgpICsgc3ViTWVudVdpZHRoOwoKCQkJCQkJaWYoIHN1Yk1lbnVQb3MgPiBib2R5V2lkdGggKSB7CgkJCQkJCQkkbGluay5hZGRDbGFzcygnZmwtbWVudS1zdWJtZW51LXJpZ2h0Jyk7CgkJCQkJCX0KCQkJCQl9CgkJCQl9LCB0aGlzICkgKQoJCQkJLm9uKCAnbW91c2VsZWF2ZScsICcuZmwtaGFzLXN1Ym1lbnUnLCAkLnByb3h5KCBmdW5jdGlvbiggZSApewoJCQkJCSQoIGUuY3VycmVudFRhcmdldCApLnJlbW92ZUNsYXNzKCAnZmwtbWVudS1zdWJtZW51LXJpZ2h0JyApOwoJCQkJfSwgdGhpcyApICk7CgoJCX0sCgoJCS8qKgoJCSAqIExvZ2ljIHRvIHByZXZlbnQgc3VibWVudXMgdG8gZ28gYmVoaW5kIHRoZSBuZXh0IG92ZXJsYXkgcm93LgoJCSAqCgkJICogQHNpbmNlICAxLjEwLjkKCQkgKiBAcmV0dXJuIHZvaWQKCQkgKi8KCQlfc3VibWVudVJvd1ppbmRleEZpeDogZnVuY3Rpb24oIGUgKXsKCgkJCSQoIHRoaXMud3JhcHBlckNsYXNzICkKCQkJCS5vbiggJ21vdXNlZW50ZXInLCAndWwubWVudSA+IC5mbC1oYXMtc3VibWVudScsICQucHJveHkoIGZ1bmN0aW9uKCBlICl7CgoJCQkJCWlmKCAkICggZS5jdXJyZW50VGFyZ2V0ICkuZmluZCgnLnN1Yi1tZW51JykubGVuZ3RoID09PSAwICkgewoJCQkJCQlyZXR1cm47CgkJCQkJfQoKCQkJCQkkKCB0aGlzLm5vZGVDbGFzcyApCgkJCQkJCS5jbG9zZXN0KCAnLmZsLXJvdycgKQoJCQkJCQkuZmluZCggJy5mbC1yb3ctY29udGVudCcgKQoJCQkJCQkuY3NzKCAnei1pbmRleCcsICcxMCcgKTsKCgkJCQl9LCB0aGlzICkgKQoJCQkJLm9uKCAnbW91c2VsZWF2ZScsICd1bC5tZW51ID4gLmZsLWhhcy1zdWJtZW51JywgJC5wcm94eSggZnVuY3Rpb24oIGUgKXsKCgkJCQkJJCggdGhpcy5ub2RlQ2xhc3MgKQoJCQkJCQkuY2xvc2VzdCggJy5mbC1yb3cnICkKCQkJCQkJLmZpbmQoICcuZmwtcm93LWNvbnRlbnQnICkKCQkJCQkJLmNzcyggJ3otaW5kZXgnLCAnJyApOwoKCQkJCX0sIHRoaXMgKSApOwoJCX0sCgoJCS8qKgoJCSAqIExvZ2ljIGZvciB0aGUgbW9iaWxlIG1lbnUgYnV0dG9uLgoJCSAqCgkJICogQHNpbmNlICAxLjYuMQoJCSAqIEByZXR1cm4gdm9pZAoJCSAqLwoJCV90b2dnbGVGb3JNb2JpbGU6IGZ1bmN0aW9uKCl7CgoJCQl2YXIgJHdyYXBwZXIgPSBudWxsLAoJCQkJJG1lbnUgICAgPSBudWxsLAoJCQkJc2VsZiAgICAgPSB0aGlzOwoKCQkJaWYoIHRoaXMuX2lzTWVudVRvZ2dsZSgpICl7CgoJCQkJaWYgKCB0aGlzLl9pc01vYmlsZUJlbG93Um93RW5hYmxlZCgpICkgewoJCQkJCXRoaXMuX3BsYWNlTW9iaWxlTWVudUJlbG93Um93KCk7CgkJCQkJJHdyYXBwZXIgPSAkKCB0aGlzLndyYXBwZXJDbGFzcyApOwoJCQkJCSRtZW51ICAgID0gJCggdGhpcy5ub2RlQ2xhc3MgKyAnLWNsb25lJyApOwoJCQkJCSRtZW51LmZpbmQoICd1bC5tZW51JyApLnNob3coKTsKCQkJCX0KCQkJCWVsc2UgewoJCQkJCSR3cmFwcGVyID0gJCggdGhpcy53cmFwcGVyQ2xhc3MgKTsKCQkJCQkkbWVudSAgICA9ICR3cmFwcGVyLmZpbmQoICcubWVudScgKTsKCQkJCX0KCgkJCQlpZiggISR3cmFwcGVyLmZpbmQoICcuZmwtbWVudS1tb2JpbGUtdG9nZ2xlJyApLmhhc0NsYXNzKCAnZmwtYWN0aXZlJyApICYmICEgc2VsZi5tb2JpbGVGbHlvdXQgKXsKCQkJCQkkbWVudS5jc3MoeyBkaXNwbGF5OiAnbm9uZScgfSk7CgkJCQl9CgoJCQkJLy8gRmxheW91dCBNZW51CgkJCQlpZiAoIHNlbGYubW9iaWxlRmx5b3V0ICkgewoJCQkJCXRoaXMuX2luaXRGbHlvdXRNZW51KCk7CgkJCQl9CgoJCQkJJHdyYXBwZXIub24oICdjbGljaycsICcuZmwtbWVudS1tb2JpbGUtdG9nZ2xlJywgZnVuY3Rpb24oIGUgKXsKCgkJCQkJJCggdGhpcyApLnRvZ2dsZUNsYXNzKCAnZmwtYWN0aXZlJyApOwoKCQkJCQlpZiAoIHNlbGYubW9iaWxlRmx5b3V0ICkgewoJCQkJCQlzZWxmLl90b2dnbGVGbHlvdXRNZW51KCk7CgkJCQkJfQoJCQkJCWVsc2UgewoJCQkJCQl2YXIgdGFyZ2V0TWVudSA9IG51bGw7CgkJCQkJCQoJCQkJCQlpZiAoIHNlbGYubW9iaWxlQmVsb3dSb3cgKSB7CgkJCQkJCQl0YXJnZXRNZW51ID0gJCggdGhpcyApLmNsb3Nlc3QoICcuZmwtY29sJyApLm5leHQoICcuZmwtbWVudS1tb2JpbGUtY2xvbmUnICk7CgkJCQkJCX0gZWxzZSB7CgkJCQkJCQl0YXJnZXRNZW51ID0gJCggdGhpcyApLmNsb3Nlc3QoICcuZmwtbWVudScgKS5maW5kKCAndWwubWVudScgKTsKCQkJCQkJfQoJCQkJCQkKCQkJCQkJaWYgKCB0YXJnZXRNZW51Lmxlbmd0aCApIHsKCQkJCQkJCSRtZW51ID0gJCggdGFyZ2V0TWVudSApOwoJCQkJCQl9CgoJCQkJCQkkbWVudS5zbGlkZVRvZ2dsZSgpOwoJCQkJCX0KCgkJCQkJZS5zdG9wUHJvcGFnYXRpb24oKTsKCQkJCX0gKTsKCgkJCQkvLyBIaWRlIGFjdGl2ZSBtZW51IHdoZW4gY2xpY2sgb24gYW5jaG9yIGxpbmsgSUQgdGhhdCBleGlzdHMgb24gYSBwYWdlLgoJCQkJJG1lbnUub2ZmKCkub24oICdjbGljaycsICcubWVudS1pdGVtID4gYVtocmVmKj0iIyJdOm5vdChbaHJlZj0iIyJdKScsIGZ1bmN0aW9uKGUpewoJCQkJCXZhciAkaHJlZiA9ICQodGhpcykuYXR0cignaHJlZicpLAoJCQkJCQkkdGFyZ2V0SUQgPSAkaHJlZi5zcGxpdCgnIycpWzFdLAoJCQkJCQllbGVtZW50ID0gJCgnIycgKyAkdGFyZ2V0SUQpOwoJCQkJCWlmICggJCgnYm9keScpLmZpbmQoZWxlbWVudCkubGVuZ3RoID4gMCApIHsKCQkJCQkJJCggdGhpcyApLnRvZ2dsZUNsYXNzKCAnZmwtYWN0aXZlJyApOwoJCQkJCQlGTEJ1aWxkZXJMYXlvdXQuX3Njcm9sbFRvRWxlbWVudCggZWxlbWVudCApOwoJCQkJCQlpZiAoICEgc2VsZi5faXNNZW51VG9nZ2xlKCkgKSB7CgkJCQkJCQkkbWVudS5zbGlkZVRvZ2dsZSgpOwoJCQkJCQl9CgkJCQkJfQoJCQkJfSk7CgkJCX0KCQkJZWxzZSB7CgoJCQkJaWYgKCB0aGlzLl9pc01vYmlsZUJlbG93Um93RW5hYmxlZCgpICkgewoJCQkJCXRoaXMuX3JlbW92ZU1lbnVGcm9tQmVsb3dSb3coKTsKCQkJCX0KCgkJCQkkd3JhcHBlciA9ICQoIHRoaXMud3JhcHBlckNsYXNzICksCgkJCQkkbWVudSAgICA9ICR3cmFwcGVyLmZpbmQoICd1bC5tZW51JyApOwoJCQkJJHdyYXBwZXIuZmluZCggJy5mbC1tZW51LW1vYmlsZS10b2dnbGUnICkucmVtb3ZlQ2xhc3MoICdmbC1hY3RpdmUnICk7CgkJCQkkbWVudS5jc3MoeyBkaXNwbGF5OiAnJyB9KTsKCgkJCQlpZiAoICEgdGhpcy5faXNNb2JpbGVCZWxvd1Jvd0VuYWJsZWQoKSApIHsKCQkJCQkkbWVudS5vZmYoICdjbGljaycsICcubWVudS1pdGVtID4gYVtocmVmKj0iIyJdOm5vdChbaHJlZj0iIyJdKScgKTsKCQkJCX0KCgkJCQlpZiAoIHRoaXMubW9iaWxlRmx5b3V0ICYmICR3cmFwcGVyLmZpbmQoICcuZmwtbWVudS1tb2JpbGUtZmx5b3V0JyApLmxlbmd0aCA+IDAgKSB7CgkJCQkJJCggJ2JvZHknICkuY3NzKCAnbWFyZ2luJywgJycgKTsKCQkJCQkkKCAnLmZsLWJ1aWxkZXItdWktcGlubmVkLWNvbnRlbnQtdHJhbnNmb3JtJyApLmNzcyggJ3RyYW5zZm9ybScsICcnICk7CgkJCQkJJG1lbnUudW53cmFwKCk7CgkJCQkJJHdyYXBwZXIuZmluZCggJy5mbC1tZW51LW1vYmlsZS1jbG9zZScgKS5yZW1vdmUoKTsKCQkJCQkkd3JhcHBlci5maW5kKCAnLmZsLW1lbnUtbW9iaWxlLW9wYWNpdHknICkucmVtb3ZlKCk7CgkJCQl9CgkJCX0KCQl9LAoKCQkvKioKCQkgKiBJbml0IGFueSBtZWdhIG1lbnVzIHRoYXQgZXhpc3QuCgkJICoKCQkgKiBAc2VlIAl0aGlzLl9pc01lbnVUb2dnbGUoKQoJCSAqIEBzaW5jZSAgCTEuMTAuNAoJCSAqIEByZXR1cm4gdm9pZAoJCSAqLwoJCV9pbml0TWVnYU1lbnVzOiBmdW5jdGlvbigpewoKCQkJdmFyIG1vZHVsZSAgICAgPSAkKCB0aGlzLm5vZGVDbGFzcyApLAoJCQkJcm93Q29udGVudCA9IG1vZHVsZS5jbG9zZXN0KCAnLmZsLXJvdy1jb250ZW50JyApLAoJCQkJcm93V2lkdGggICA9IHJvd0NvbnRlbnQud2lkdGgoKSwKCQkJCW1lZ2FzICAgICAgPSBtb2R1bGUuZmluZCggJy5tZWdhLW1lbnUnICksCgkJCQlkaXNhYmxlZCAgID0gbW9kdWxlLmZpbmQoICcubWVnYS1tZW51LWRpc2FibGVkJyApLAoJCQkJaXNUb2dnbGUgICA9IHRoaXMuX2lzTWVudVRvZ2dsZSgpOwoKCQkJaWYgKCBpc1RvZ2dsZSApIHsKCQkJCW1lZ2FzLnJlbW92ZUNsYXNzKCAnbWVnYS1tZW51JyApLmFkZENsYXNzKCAnbWVnYS1tZW51LWRpc2FibGVkJyApOwoJCQkJbW9kdWxlLmZpbmQoICdsaS5tZWdhLW1lbnUtZGlzYWJsZWQgPiB1bC5zdWItbWVudScgKS5jc3MoICd3aWR0aCcsICcnICk7CgkJCQlyb3dDb250ZW50LmNzcyggJ3Bvc2l0aW9uJywgJycgKTsKCQkJfSBlbHNlIHsKCQkJCWRpc2FibGVkLnJlbW92ZUNsYXNzKCAnbWVnYS1tZW51LWRpc2FibGVkJyApLmFkZENsYXNzKCAnbWVnYS1tZW51JyApOwoJCQkJbW9kdWxlLmZpbmQoICdsaS5tZWdhLW1lbnUgPiB1bC5zdWItbWVudScgKS5jc3MoICd3aWR0aCcsIHJvd1dpZHRoICsgJ3B4JyApOwoJCQkJcm93Q29udGVudC5jc3MoICdwb3NpdGlvbicsICdyZWxhdGl2ZScgKTsKCQkJfQoJCX0sCgoJCS8qKgoJCSAqIENoZWNrIHRvIHNlZSBpZiBCZWxvdyBSb3cgc2hvdWxkIGJlIGVuYWJsZWQuCgkJICoKCQkgKiBAc2luY2UgIAkxLjExCgkJICogQHJldHVybiBib29sZWFuCgkJICovCgkJX2lzTW9iaWxlQmVsb3dSb3dFbmFibGVkOiBmdW5jdGlvbigpIHsKCQkJcmV0dXJuIHRoaXMubW9iaWxlQmVsb3dSb3cgJiYgJCggdGhpcy5ub2RlQ2xhc3MgKS5jbG9zZXN0KCAnLmZsLWNvbCcgKS5sZW5ndGg7CgkJfSwKCgkJLyoqCgkJICogTG9naWMgZm9yIHB1dHRpbmcgdGhlIG1vYmlsZSBtZW51IGJlbG93IHRoZSBtZW51J3MKCQkgKiBjb2x1bW4gc28gaXQgc3BhbnMgdGhlIGZ1bGwgd2lkdGggb2YgdGhlIHBhZ2UuCgkJICoKCQkgKiBAc2luY2UgIDEuMTAKCQkgKiBAcmV0dXJuIHZvaWQKCQkgKi8KCQlfcGxhY2VNb2JpbGVNZW51QmVsb3dSb3c6IGZ1bmN0aW9uKCl7CgoJCQlpZiAoICQoIHRoaXMubm9kZUNsYXNzICsgJy1jbG9uZScgKS5sZW5ndGggKSB7CgkJCQlyZXR1cm47CgkJCX0KCgkJCXZhciBtb2R1bGUgPSAkKCB0aGlzLm5vZGVDbGFzcyApLAoJCQkJY2xvbmUgID0gbnVsbCwKCQkJCWNvbCAgICA9IG1vZHVsZS5jbG9zZXN0KCAnLmZsLWNvbCcgKTsKCgkJCWlmICggbW9kdWxlLmxlbmd0aCA8IDEgKSB7CgkJCQlyZXR1cm47CgkJCX0KCgkJCWNsb25lID0gKCBtb2R1bGUubGVuZ3RoID4gMSApID8gJCggbW9kdWxlWzBdICkuY2xvbmUoKSA6IG1vZHVsZS5jbG9uZSgpOwoJCQltb2R1bGUuZmluZCggJ3VsLm1lbnUnICkucmVtb3ZlKCk7CgkJCWNsb25lLmFkZENsYXNzKCAoIHRoaXMubm9kZUNsYXNzICsgJy1jbG9uZScgKS5yZXBsYWNlKCAnLicsICcnICkgKTsKCQkJY2xvbmUuYWRkQ2xhc3MoICdmbC1tZW51LW1vYmlsZS1jbG9uZScgKTsKCQkJY2xvbmUuZmluZCggJy5mbC1tZW51LW1vYmlsZS10b2dnbGUnICkucmVtb3ZlKCk7CgkJCWNvbC5hZnRlciggY2xvbmUgKTsKCgkJCS8vIFJlbW92ZXMgYW5pbWF0aW9uIHdoZW4gZW5hYmxlZC4KCQkJaWYgKCBtb2R1bGUuaGFzQ2xhc3MoICdmbC1hbmltYXRpb24nICkgKSB7CgkJCQljbG9uZS5yZW1vdmVDbGFzcyggJ2ZsLWFuaW1hdGlvbicgKTsKCQkJfQoKCQkJdGhpcy5fbWVudU9uQ2xpY2soKTsKCQl9LAoKCQkvKioKCQkgKiBMb2dpYyBmb3IgcmVtb3ZpbmcgdGhlIG1vYmlsZSBtZW51IGZyb20gYmVsb3cgdGhlIG1lbnUncwoJCSAqIGNvbHVtbiBhbmQgcHV0dGluZyBpdCBiYWNrIGluIHRoZSBtYWluIHdyYXBwZXIuCgkJICoKCQkgKiBAc2luY2UgIDEuMTAKCQkgKiBAcmV0dXJuIHZvaWQKCQkgKi8KCQlfcmVtb3ZlTWVudUZyb21CZWxvd1JvdzogZnVuY3Rpb24oKXsKCgkJCWlmICggISAkKCB0aGlzLm5vZGVDbGFzcyArICctY2xvbmUnICkubGVuZ3RoICkgewoJCQkJcmV0dXJuOwoJCQl9CgoJCQl2YXIgbW9kdWxlID0gJCggdGhpcy5ub2RlQ2xhc3MgKSwKCQkJCWNsb25lICA9ICQoIHRoaXMubm9kZUNsYXNzICsgJy1jbG9uZScgKSwKCQkJCW1lbnUgICA9IGNsb25lLmZpbmQoICd1bC5tZW51JyApOwoKCQkJbW9kdWxlLmZpbmQoICcuZmwtbWVudS1tb2JpbGUtdG9nZ2xlJyApLmFmdGVyKCBtZW51ICk7CgkJCWNsb25lLnJlbW92ZSgpOwoJCQltZW51LmZpbmQoICdhJyApLmVhY2goIEZMQnVpbGRlckxheW91dC5faW5pdEFuY2hvckxpbmsgKTsKCQl9LAoKCQkvKioKCQkgKiBMb2dpYyBmb3IgRmx5b3V0IHJlc3BvbnNpdmUgbWVudS4KCQkgKgoJCSAqIEBzaW5jZSAyLjIKCQkgKiBAcmV0dXJuIHZvaWQKCQkgKi8KCQlfaW5pdEZseW91dE1lbnU6IGZ1bmN0aW9uKCl7CgkJCXZhciB3aW4gICAgID0gJCggd2luZG93ICksCgkJCQl3cmFwcGVyID0gJCggdGhpcy53cmFwcGVyQ2xhc3MgKSwKCQkJCW1lbnUgIAk9IHdyYXBwZXIuZmluZCggJ3VsLm1lbnUnICksCgkJCQlidXR0b24JPSB3cmFwcGVyLmZpbmQoICcuZmwtbWVudS1tb2JpbGUtdG9nZ2xlJyApOwoKCQkJaWYgKCAwID09PSB3cmFwcGVyLmZpbmQoICcuZmwtbWVudS1tb2JpbGUtZmx5b3V0JyApLmxlbmd0aCApIHsKCQkJCW1lbnUud3JhcCggJzxkaXYgY2xhc3M9ImZsLW1lbnUtbW9iaWxlLWZseW91dCI+PC9kaXY+JyApOwoJCQl9CgoJCQlpZiAoIDAgPT09IHdyYXBwZXIuZmluZCggJy5mbC1tZW51LW1vYmlsZS1jbG9zZScgKS5sZW5ndGggKSB7CgkJCQljbG9zZSA9IHdpbmRvdy5mbF9yZXNwb25zaXZlX2Nsb3NlIHx8ICdDbG9zZScKCQkJCXdyYXBwZXIuZmluZCggJy5mbC1tZW51LW1vYmlsZS1mbHlvdXQnICkKCQkJCQkucHJlcGVuZCggJzxidXR0b24gY2xhc3M9ImZsLW1lbnUtbW9iaWxlLWNsb3NlIiBhcmlhLWxhYmVsPSInICsgY2xvc2UgKyAnIj48aSBjbGFzcz0iZmFzIGZhLXRpbWVzIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPjwvYnV0dG9uPicgKTsKCQkJfQoKCQkJLy8gUHVzaCB3aXRoIG9wYWNpdHkKCQkJaWYgKCB3cmFwcGVyLmhhc0NsYXNzKCAnZmwtbWVudS1yZXNwb25zaXZlLWZseW91dC1wdXNoLW9wYWNpdHknICkgJiYgMCA9PT0gd3JhcHBlci5maW5kKCAnLmZsLW1lbnUtbW9iaWxlLW9wYWNpdHknICkubGVuZ3RoICkgewoJCQkJd3JhcHBlci5hcHBlbmQoICc8ZGl2IGNsYXNzPSJmbC1tZW51LW1vYmlsZS1vcGFjaXR5Ij48L2Rpdj4nICk7CgkJCX0KCgkJCXdyYXBwZXIub24oICdjbGljaycsICcuZmwtbWVudS1tb2JpbGUtb3BhY2l0eSwgLmZsLW1lbnUtbW9iaWxlLWNsb3NlJywgZnVuY3Rpb24oZSl7CgkJCQlidXR0b24udHJpZ2dlciggJ2NsaWNrJyApOwoJCQkJZS5zdG9wUHJvcGFnYXRpb24oKTsKCQkJfSk7CgoJCQlpZiAoICd1bmRlZmluZWQnICE9PSB0eXBlb2YgRkxCdWlsZGVyICkgewoJCQkJRkxCdWlsZGVyLmFkZEhvb2soJ3Jlc3RhcnRFZGl0aW5nU2Vzc2lvbicsIGZ1bmN0aW9uKCl7CgkJCQkJJCggJy5mbC1idWlsZGVyLXVpLXBpbm5lZC1jb250ZW50LXRyYW5zZm9ybScgKS5jc3MoICd0cmFuc2Zvcm0nLCAnJyApOwoKCQkJCQkvLyBUb2dnbGUgYWN0aXZlIG1lbnUuCgkJCQkJaWYgKCBidXR0b24uaGFzQ2xhc3MoICdmbC1hY3RpdmUnICkgKSB7CgkJCQkJCWJ1dHRvbi50cmlnZ2VyKCAnY2xpY2snICk7CgkJCQkJfQoJCQkJfSk7CgkJCX0KCQl9LAoKCQkvKioKCQkgKiBMb2dpYyB0byBlbmFibGUvZGlzYWJsZSB0aGUgRmx5b3V0IG1lbnUgb24gYnV0dG9uIGNsaWNrLgoJCSAqCgkJICogQHNpbmNlIDIuMgoJCSAqIEByZXR1cm4gdm9pZAoJCSAqLwoJCV90b2dnbGVGbHlvdXRNZW51OiBmdW5jdGlvbigpewoJCQl2YXIgd3JhcHBlcgkJPSAkKCB0aGlzLndyYXBwZXJDbGFzcyApLAoJCQkJYnV0dG9uCQk9IHdyYXBwZXIuZmluZCggJy5mbC1tZW51LW1vYmlsZS10b2dnbGUnICksCgkJCQl3cmFwRmx5b3V0CT0gd3JhcHBlci5maW5kKCAnLmZsLW1lbnUtbW9iaWxlLWZseW91dCcgKSwKCQkJCXBvc2l0aW9uIAk9IHdyYXBwZXIuaGFzQ2xhc3MoICdmbC1mbHlvdXQtcmlnaHQnICkgPyAncmlnaHQnIDogJ2xlZnQnLAoJCQkJcHVzaE1lbnUgCT0gd3JhcHBlci5oYXNDbGFzcyggJ2ZsLW1lbnUtcmVzcG9uc2l2ZS1mbHlvdXQtcHVzaCcgKSB8fCB3cmFwcGVyLmhhc0NsYXNzKCAnZmwtbWVudS1yZXNwb25zaXZlLWZseW91dC1wdXNoLW9wYWNpdHknICksCgkJCQlvcGFjaXR5CQk9IHdyYXBwZXIuZmluZCggJy5mbC1tZW51LW1vYmlsZS1vcGFjaXR5JyApLAoJCQkJbWFyZ2luUG9zCT0ge30sCgkJCQlwb3NBdHRyCQk9IHt9LAoJCQkJZml4ZWRQb3MgCT0ge30sCgkJCQl3aW5IZWlnaHQJPSAkKHdpbmRvdykuaGVpZ2h0KCksCgkJCQlmaXhlZEhlYWRlcgk9ICQoJ2hlYWRlciwgaGVhZGVyID4gZGl2Jyk7CgoJCQlpZiAoIGJ1dHRvbi5oYXNDbGFzcyggJ2ZsLWFjdGl2ZScgKSApIHsKCQkJCXBvc0F0dHJbIHBvc2l0aW9uIF0gID0gJzBweCc7CgkJCQlwb3NBdHRyWyAnaGVpZ2h0JyBdICA9IHdpbkhlaWdodCArICdweCc7CgkJCX0gZWxzZSB7CgkJCQlwb3NBdHRyWyBwb3NpdGlvbiBdICA9ICctMjY3cHgnOwoJCQl9CgoJCQl3cmFwRmx5b3V0LmNzcyggcG9zQXR0ciApOwoKCQkJLy8gRml4IHRoZSBwdXNoIG1lbnUgd2hlbiBidWlsZGVyIHVpIHBhbmVsIGlzIHBpbm5lZC4KCQkJaWYgKCAkKCAnLmZsLWJ1aWxkZXItdWktcGlubmVkLWNvbnRlbnQtdHJhbnNmb3JtJyApLmxlbmd0aCA+IDAgJiYgISAkKCAnYm9keScgKS5oYXNDbGFzcyggJ2ZsLWJ1aWxkZXItZWRpdCcgKSApIHsKCQkJCSQoICcuZmwtYnVpbGRlci11aS1waW5uZWQtY29udGVudC10cmFuc2Zvcm0nICkuY3NzKCAndHJhbnNmb3JtJywgJ25vbmUnICk7CgkJCX0KCgkJCWlmICggcHVzaE1lbnUgKSB7CgkJCQltYXJnaW5Qb3NbICdtYXJnaW4tJyArIHBvc2l0aW9uIF0gPSBidXR0b24uaGFzQ2xhc3MoICdmbC1hY3RpdmUnICkgPyAnMjUwcHgnIDogJzBweCc7CgkJCQkkKCAnYm9keScgKS5hbmltYXRlKCBtYXJnaW5Qb3MsIDIwMCk7CgoJCQkJLy8gRml4ZWQgaGVhZGVyCgkJCQlpZiAoIGZpeGVkSGVhZGVyLmxlbmd0aCA+IDAgKSB7CgkJCQkJZml4ZWRQb3NbIHBvc2l0aW9uXSA9IGJ1dHRvbi5oYXNDbGFzcyggJ2ZsLWFjdGl2ZScgKSA/ICcyNTBweCcgOiAnMHB4JzsKCQkJCQlmaXhlZEhlYWRlci5lYWNoKGZ1bmN0aW9uKCl7CgkJCQkJCWlmICggJ2ZpeGVkJyA9PSAkKCB0aGlzICkuY3NzKCAncG9zaXRpb24nICkgKSB7CgkJCQkJCQkkKCB0aGlzICkuY3NzKHsKCQkJCQkJCQknLXdlYmtpdC10cmFuc2l0aW9uJzogJ25vbmUnLAoJCQkJCQkJCSctby10cmFuc2l0aW9uJwkJOiAnbm9uZScsCgkJCQkJCQkJJ3RyYW5zaXRpb24nCQk6ICdub25lJwoJCQkJCQkJfSk7CgkJCQkJCQkkKCB0aGlzICkuYW5pbWF0ZSggZml4ZWRQb3MsIDIwMCApOwoJCQkJCQl9CgkJCQkJfSk7CgkJCQl9CgkJCX0KCgkJCWlmICggb3BhY2l0eS5sZW5ndGggPiAwICYmIGJ1dHRvbi5oYXNDbGFzcyggJ2ZsLWFjdGl2ZScgKSApIHsKCQkJCW9wYWNpdHkuc2hvdygpOwoJCQl9CgkJCWVsc2UgewoJCQkJb3BhY2l0eS5oaWRlKCk7CgkJCX0KCQl9LAoKCQkvKioKCQkgKiBTaG93cyBvciBoaWRlcyB0aGUgbmF2IHNlYXJjaCBmb3JtLgoJCSAqCgkJICogQHNpbmNlIDIuNQoJCSAqIEBtZXRob2QgX3RvZ2dsZU1lbnVTZWFyY2gKCQkgKi8KCQlfdG9nZ2xlTWVudVNlYXJjaDogZnVuY3Rpb24oKXsKCQkJdmFyIHdyYXBwZXIgPSAkKCB0aGlzLndyYXBwZXJDbGFzcyApLmZpbmQoJy5mbC1tZW51LXNlYXJjaC1pdGVtJyksCgkJCQlidXR0b24gID0gd3JhcHBlci5maW5kKCdhLmZsLWJ1dHRvbicpLAoJCQkJZm9ybSAgICA9IHdyYXBwZXIuZmluZCgnLmZsLXNlYXJjaC1mb3JtLWlucHV0LXdyYXAnKSwKCQkJCXNlbGYgICAgPSB0aGlzOwoKCQkJYnV0dG9uLm9uKCdjbGljaycsIGZ1bmN0aW9uKGUpewoJCQkJZS5wcmV2ZW50RGVmYXVsdCgpOwoKCQkJCWlmKGZvcm0uaXMoJzp2aXNpYmxlJykpIHsKCQkJCQlmb3JtLnN0b3AoKS5mYWRlT3V0KDIwMCk7CgkJCQl9CgkJCQllbHNlIHsKCQkJCQlmb3JtLnN0b3AoKS5mYWRlSW4oMjAwKTsKCQkJCQkkKCdib2R5Jykub24oJ2NsaWNrLmZsLW1lbnUtc2VhcmNoJywgJC5wcm94eShzZWxmLl9oaWRlTWVudVNlYXJjaCwgc2VsZikpOwoJCQkJCWZvcm0uZmluZCgnLmZsLXNlYXJjaC10ZXh0JykuZm9jdXMoKTsKCQkJCX0KCQkJfSk7CgkJfSwKCgkJLyoqCgkJICogSGlkZXMgdGhlIG5hdiBzZWFyY2ggZm9ybS4KCQkgKgoJCSAqIEBzaW5jZSAyLjUKCQkgKiBAbWV0aG9kIF9oaWRlTWVudVNlYXJjaAoJCSAqLwoJCV9oaWRlTWVudVNlYXJjaDogZnVuY3Rpb24oZSl7CgkJCXZhciBmb3JtID0gJCggdGhpcy53cmFwcGVyQ2xhc3MgKS5maW5kKCcuZmwtc2VhcmNoLWZvcm0taW5wdXQtd3JhcCcpOwoKCQkJaWYoZSAhPT0gdW5kZWZpbmVkKSB7CgkJCQlpZigkKGUudGFyZ2V0KS5jbG9zZXN0KCcuZmwtbWVudS1zZWFyY2gtaXRlbScpLmxlbmd0aCA+IDApIHsKCQkJCQlyZXR1cm47CgkJCQl9CgkJCX0KCgkJCWZvcm0uc3RvcCgpLmZhZGVPdXQoMjAwKTsKCQkJJCgnYm9keScpLm9mZignY2xpY2suZmwtbWVudS1zZWFyY2gnKTsKCQl9LAoKCQkvKioKCQkgKiBBZGRzIG1lbnUgbm9kZSBhbmQgcG9zdCBJRCB0byBXb29Db21tZXJjZSBhamF4IFVSTCByZXF1ZXN0cy4KCQkgKgoJCSAqIEBzaW5jZSAgMy4wCgkJICogQHJldHVybiB2b2lkCgkJICovCgkJX3dvb1VwZGF0ZVBhcmFtczogZnVuY3Rpb24oKSB7CgkJCWlmICggJ3VuZGVmaW5lZCcgIT09IHR5cGVvZiB3Y19jYXJ0X2ZyYWdtZW50c19wYXJhbXMgKSB7CgkJCQl3Y19jYXJ0X2ZyYWdtZW50c19wYXJhbXMud2NfYWpheF91cmwgKz0gJyZmbC1tZW51LW5vZGU9JysgdGhpcy5ub2RlSWQgKycmcG9zdC1pZD0nKyB0aGlzLnBvc3RJZDsKCQkJfQoJCQlpZiAoICd1bmRlZmluZWQnICE9PSB0eXBlb2Ygd2NfYWRkX3RvX2NhcnRfcGFyYW1zICkgewoJCQkJd2NfYWRkX3RvX2NhcnRfcGFyYW1zLndjX2FqYXhfdXJsICs9ICcmZmwtbWVudS1ub2RlPScrIHRoaXMubm9kZUlkICsnJnBvc3QtaWQ9JysgdGhpcy5wb3N0SWQ7CgkJCX0KCQl9LAoJfTsKCn0pKGpRdWVyeSk7CgooZnVuY3Rpb24oJCkgewoKCSQoZnVuY3Rpb24oKSB7CgoJCW5ldyBGTEJ1aWxkZXJNZW51KHsKCQkJaWQ6ICc1ZTFkZGVkNDc3N2MzJywKCQkJdHlwZTogJ2hvcml6b250YWwnLAoJCQltb2JpbGU6ICdoYW1idXJnZXInLAoJCQltb2JpbGVCZWxvd1JvdzogZmFsc2UsCgkJCW1vYmlsZUZseW91dDogZmFsc2UsCgkJCWJyZWFrUG9pbnRzOiB7CgkJCQlsYXJnZTogMTIwMCwKCQkJCW1lZGl1bTogOTkyLAoJCQkJc21hbGw6IDc2OAkJCX0sCgkJCW1vYmlsZUJyZWFrcG9pbnQ6ICdtb2JpbGUnLAoJCQlwb3N0SWQgOiAnMzk2OTknLAoJCQltb2JpbGVTdGFja2VkOiB0cnVlLAoJCX0pOwoKCX0pOwoKfSkoalF1ZXJ5KTsKCihmdW5jdGlvbigkKSB7CgoJRkxCdWlsZGVyU2VhcmNoRm9ybSA9IGZ1bmN0aW9uKHNldHRpbmdzKSB7CgkJdGhpcy5zZXR0aW5ncyAgID0gc2V0dGluZ3M7CgkJdGhpcy5ub2RlQ2xhc3MgID0gJy5mbC1ub2RlLScgKyBzZXR0aW5ncy5pZDsKCQl0aGlzLnNlYXJjaEZvcm0gPSAkKHRoaXMubm9kZUNsYXNzICsgJyAuZmwtc2VhcmNoLWZvcm0nKTsKCQl0aGlzLmZvcm0gICAgICAgPSB0aGlzLnNlYXJjaEZvcm0uZmluZCgnZm9ybScpOwoJCXRoaXMuaW5wdXQgICAgICA9IHRoaXMuZm9ybS5maW5kKCdpbnB1dFt0eXBlPXNlYXJjaF0nKTsKCQl0aGlzLmJ1dHRvbiAgICAgPSB0aGlzLnNlYXJjaEZvcm0uZmluZCgnYS5mbC1idXR0b24sIGEuZmwtYnV0dG9uIConKTsKCQl0aGlzLnJlc3VsdHNFbCAgPSAkKHRoaXMubm9kZUNsYXNzICsgJyAuZmwtc2VhcmNoLXJlc3VsdHMtY29udGVudCcpOwoKCQl0aGlzLl9pbml0KCk7Cgl9OwoKCUZMQnVpbGRlclNlYXJjaEZvcm0ucHJvdG90eXBlID0gewoKCQlzZXR0aW5nczoge30sCgkJbm9kZUNsYXNzOiAnJywKCQlzZWFyY2hGb3JtOiAnJywKCQlmb3JtOiBudWxsLAoJCWlucHV0OiBudWxsLAoJCWJ1dHRvbjogbnVsbCwKCQlyZXN1bHRzRWw6ICcnLAoJCXNlYXJjaGluZzogZmFsc2UsCgkJcHJldlNlYXJjaERhdGE6IHt9LAoJCXJlcXVlc3Q6IG51bGwsCgoJCV9pbml0OiBmdW5jdGlvbigpIHsKCQkJdGhpcy5fYmluZEV2ZW50cygpOwoJCQl0aGlzLl9wb3B1cFNlYXJjaCgpOwoJCX0sCgoJCV9iaW5kRXZlbnRzOiBmdW5jdGlvbigpewoJCQl2YXIgJHRoaXMgICAgICAgID0gdGhpcywKCQkJCWtleUNvZGUgICAgICA9IG51bGwsCgkJCQlrZXlUeXBlICAgICAgPSBudWxsLAoJCQkgICAgZW50ZXJQcmVzc2VkID0gZmFsc2UsCgkJCQl0LCBldDsKCgkJCXRoaXMuYnV0dG9uLm9uKCdjbGljaycsICQucHJveHkodGhpcy5fYnV0dG9uQ2xpY2ssIHRoaXMpKTsKCgkJCWlmICggJ2FqYXgnID09IHRoaXMuc2V0dGluZ3MucmVzdWx0ICkgewoJCQkJJChkb2N1bWVudCkub24oJ2NsaWNrIHRvdWNoZW5kJywgZnVuY3Rpb24oZSl7CgkJCQkJaWYoICQoZS50YXJnZXQpLmlzKCdpbnB1dCcpICkgcmV0dXJuOwoKCQkJCQkkdGhpcy5faGlkZVJlc3VsdHMoKTsKCQkJCX0gKTsKCgkJCQkkdGhpcy5yZXN1bHRzRWwuYmluZCgiY2xpY2sgdG91Y2hlbmQiLCBmdW5jdGlvbiAoZSkgewoJICAgICAgICAgICAgICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7CgkgICAgICAgICAgICB9KTsKCgkJCQkvLyBEaXNhYmxlIGZvcm0gc3VibWl0LgoJCQkJJHRoaXMuZm9ybS5vbiggJ3N1Ym1pdCcsIGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoJICAgICAgICAgICAgfSk7CgoJCQkJdGhpcy5pbnB1dC5vbigna2V5dXAnLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudCkgewoJCQkJCQlrZXlDb2RlID0gd2luZG93LmV2ZW50LmtleUNvZGU7CiAgICAgICAgICAgICAgICAgICAgICAgIGtleVR5cGUgPSB3aW5kb3cuZXZlbnQudHlwZTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGUpIHsKCQkJCQkJa2V5Q29kZSA9IGUud2hpY2g7CiAgICAgICAgICAgICAgICAgICAgICAgIGtleVR5cGUgPSBlLnR5cGU7CiAgICAgICAgICAgICAgICAgICAgfQoKCQkJCQkvLyBQcmV2ZW50IHJhcGlkIGVudGVyCgkgICAgICAgICAgICAgICAgaWYgKCAxMyA9PSBrZXlDb2RlICkgewoJICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoZXQpOwoJICAgICAgICAgICAgICAgICAgICBldCA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKXsKCSAgICAgICAgICAgICAgICAgICAgICAgIGVudGVyUHJlc3NlZCA9IGZhbHNlOwoJICAgICAgICAgICAgICAgICAgICB9LCAzMDApOwoJICAgICAgICAgICAgICAgICAgICBpZiAoIGVudGVyUHJlc3NlZCApIHsKCQkJCQkgICAgICAgIHJldHVybiBmYWxzZTsKCSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKCSAgICAgICAgICAgICAgICAgICAgICAgIGVudGVyUHJlc3NlZCA9IHRydWU7CgkgICAgICAgICAgICAgICAgICAgIH0KCSAgICAgICAgICAgICAgICB9CgoJCQkJCWlmICggJHRoaXMuaW5wdXQudmFsKCkubGVuZ3RoID49IDMgJiYgJ2tleXVwJyA9PSBrZXlUeXBlICYmIDEzID09IGtleUNvZGUgKSB7CgkJCQkJCSR0aGlzLl9zZWFyY2goZSk7CgkJCQkJCXJldHVybiBmYWxzZTsKCQkJCQl9CiAgICAgICAgICAgICAgICB9KTsKCgkJCQl0aGlzLmlucHV0Lm9uKCdjbGljayBpbnB1dCcsIGZ1bmN0aW9uKGUpIHsKCQkJCQlpZiAod2luZG93LmV2ZW50KSB7CgkJCQkJCWtleUNvZGUgPSB3aW5kb3cuZXZlbnQua2V5Q29kZTsKICAgICAgICAgICAgICAgICAgICAgICAga2V5VHlwZSA9IHdpbmRvdy5ldmVudC50eXBlOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZSkgewogICAgICAgICAgICAgICAgICAgICAgICBrZXlDb2RlID0gZS53aGljaDsKICAgICAgICAgICAgICAgICAgICAgICAga2V5VHlwZSA9IGUudHlwZTsKICAgICAgICAgICAgICAgICAgICB9CgoJCQkJCS8vIEYxIHRvIEYxMgoJCQkJCWlmICggKGtleUNvZGUgPj0gMzcgJiYga2V5Q29kZSA8PSA0MCkgfHwgKGtleUNvZGUgPj0gMTEyICYmIGtleUNvZGUgPD0gMTIzKSApIHsKCQkJCQkJcmV0dXJuOwoJCQkJCX0KCgkJCQkJaWYgKCR0aGlzLmlucHV0LnZhbCgpLmxlbmd0aCA8IDMpIHsKCSAgICAgICAgICAgICAgICAgICAgJHRoaXMuX2hpZGVMb2FkZXIoKTsKCSAgICAgICAgICAgICAgICAgICAgJHRoaXMuX2hpZGVSZXN1bHRzKCk7CgkgICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy5wb3N0ICE9IG51bGwpICR0aGlzLnBvc3QuYWJvcnQoKTsKCSAgICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHQpOwoJICAgICAgICAgICAgICAgICAgICByZXR1cm47CgkgICAgICAgICAgICAgICAgfQoKCSAgICAgICAgICAgICAgICBpZiAoICdjbGljaycgPT0ga2V5VHlwZSB8fCBrZXlDb2RlID09IDMyICkgewoJCQkJCQlpZiAoICR0aGlzLnJlc3VsdHNFbC5odG1sKCkubGVuZ3RoICE9IDAgKSB7CgkJCQkJCQljbGVhclRpbWVvdXQodCk7CgkJCQkJCQlpZiggJHRoaXMucmVzdWx0c0VsLmhhc0NsYXNzKCdmbC1zZWFyY2gtb3BlbicpICkgcmV0dXJuOwoJCQkJCQkJJHRoaXMuX3Nob3dSZXN1bHRzKCk7CgkJCQkJCX0KCQkJCQkJZWxzZSB7CgkJCQkJCQkkdGhpcy5faGlkZVJlc3VsdHMoKTsKCQkJCQkJfQoJCQkJCQlyZXR1cm47CgkgICAgICAgICAgICAgICAgfQoKCSAgICAgICAgICAgICAgICBpZiAoJHRoaXMucmVxdWVzdCAhPSBudWxsKSAkdGhpcy5yZXF1ZXN0LmFib3J0KCk7CgkgICAgICAgICAgICAgICAgJHRoaXMuX2hpZGVMb2FkZXIoKTsKCgkJCQkJY2xlYXJUaW1lb3V0KHQpOwoJCQkJCXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewoJCQkJCQkkdGhpcy5fc2VhcmNoKGUpOwoJCQkJCX0sIDEwMCk7CgkJCQl9KTsKCQkJfQoJCX0sCgoJCV9zZWFyY2g6IGZ1bmN0aW9uKGUpIHsKCQkJZS5wcmV2ZW50RGVmYXVsdCgpOwoKCQkJaWYgKCQudHJpbSh0aGlzLmlucHV0LnZhbCgpKS5sZW5ndGggPCAxKSB7CgkJCQlyZXR1cm47CgkJCX0KCgkJCWlmICggJ2FqYXgnID09IHRoaXMuc2V0dGluZ3MucmVzdWx0ICkgewoJCQkJdGhpcy5fZG9BamF4U2VhcmNoKCk7CgkJCX0KCQkJZWxzZSB7CgkJCQl0aGlzLmZvcm0uc3VibWl0KCk7CgkJCQkvLyBUT0RPOiBfZG9SZWRpcmVjdFJlc3VsdHMoKQoJCQl9CgoJCQlyZXR1cm4gZmFsc2U7CgkJfSwKCgkJX2RvQWpheFNlYXJjaDogZnVuY3Rpb24oKSB7CgkJCXZhciBzZWFyY2hUZXh0ICAgICA9IHRoaXMuaW5wdXQudmFsKCksCgkJCQlwb3N0SWQgICAgICAgICA9IHRoaXMuc2VhcmNoRm9ybS5jbG9zZXN0KCAnLmZsLWJ1aWxkZXItY29udGVudCcgKS5kYXRhKCAncG9zdC1pZCcgKSwKCQkJCXRlbXBsYXRlSWQgICAgID0gdGhpcy5zZWFyY2hGb3JtLmRhdGEoICd0ZW1wbGF0ZS1pZCcgKSwKCQkJCXRlbXBsYXRlTm9kZUlkID0gdGhpcy5zZWFyY2hGb3JtLmRhdGEoICd0ZW1wbGF0ZS1ub2RlLWlkJyApLAoJCQkJYWpheERhdGEgICAgICAgPSB7fSwKCQkJCXNlbGYgICAgICAgICAgID0gdGhpczsKCgkJCWlmICggdGhpcy5zZWFyY2hpbmcgJiYgMCApIHJldHVybjsKICAgICAgICAgICAgaWYgKCBzZWFyY2hUZXh0Lmxlbmd0aCA8IDEgKSByZXR1cm47CgoJCQl0aGlzLnNlYXJjaGluZyA9IHRydWU7CgoJCQkvLyBTaG93IGxvYWRlcgoJCQl0aGlzLl9zaG93TG9hZGVyKCk7CgoJCQlhamF4RGF0YSA9IHsKCQkJCWFjdGlvbiAgICAgICAgICAgOiAnZmxfc2VhcmNoX3F1ZXJ5JywKCQkJCWtleXdvcmQgICAgICAgICAgOiBzZWFyY2hUZXh0LAoJCQkJcG9zdF9pZCAgICAgICAgICA6IHBvc3RJZCwKCQkJCXRlbXBsYXRlX2lkICAgICAgOiB0ZW1wbGF0ZUlkLAoJCQkJdGVtcGxhdGVfbm9kZV9pZCA6IHRlbXBsYXRlTm9kZUlkLAoJCQkJbm9kZV9pZCAgICAgICAgICA6IHRoaXMuc2V0dGluZ3MuaWQsCgkJCX0KCgkJCS8vIENoZWNrIHRvIHNlZSBpZiBzZWFyY2hpbmcgdGhlIHNhbWUga2V5d29yZHMuCgkJCWlmICggSlNPTi5zdHJpbmdpZnkoYWpheERhdGEpID09PSBKU09OLnN0cmluZ2lmeSh0aGlzLnByZXZTZWFyY2hEYXRhKSApIHsKCQkJCWlmICggISB0aGlzLnJlc3VsdHNFbC5oYXNDbGFzcygnZmwtc2VhcmNoLW9wZW4nKSApIHsKCQkJCQl0aGlzLl9zaG93UmVzdWx0cygpOwoJCQkJfQogICAgICAgICAgICAgICAgdGhpcy5faGlkZUxvYWRlcigpOwogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CgoJCQkvLyBTZW5kIHNlcnZlciByZXF1ZXN0LgoJCQl0aGlzLnJlcXVlc3QgPSAkLnBvc3QoIEZMQnVpbGRlckxheW91dENvbmZpZy5wYXRocy53cEFqYXhVcmwsIGFqYXhEYXRhLCBmdW5jdGlvbihyZXNwb25zZSl7CgkJCQlzZWxmLl9oaWRlTG9hZGVyKCk7CgoJCQkJc2VsZi5yZXN1bHRzRWwuaHRtbCgiIik7CgkJCQlzZWxmLnJlc3VsdHNFbC5odG1sKHJlc3BvbnNlKTsKCQkJCXNlbGYuX3Nob3dSZXN1bHRzKCk7CgoJCQkJc2VsZi5wcmV2U2VhcmNoRGF0YSA9IGFqYXhEYXRhOwoJCQl9KTsKCQl9LAoKCQlfcG9wdXBTZWFyY2g6IGZ1bmN0aW9uKCkgewoJCQl2YXIgaW5wdXRXcmFwID0gdGhpcy5zZWFyY2hGb3JtLmZpbmQoJy5mbC1zZWFyY2gtZm9ybS1pbnB1dC13cmFwJyksCgkJCQkkdGhpcyAgICAgPSB0aGlzOwoKCQkJaWYgKCdidXR0b24nICE9IHRoaXMuc2V0dGluZ3MubGF5b3V0IHx8ICdmdWxsc2NyZWVuJyAhPSB0aGlzLnNldHRpbmdzLmJ0bkFjdGlvbikgewoJCQkJcmV0dXJuOwoJCQl9CgoJCQl0aGlzLmJ1dHRvbi5vZmYoJ2NsaWNrJyk7CgkJCXRoaXMuYnV0dG9uLm1hZ25pZmljUG9wdXAoewoJCQkJdHlwZTogJ2lubGluZScsCgkJCQltYWluQ2xhc3M6ICdmbC1ub2RlLScgKyB0aGlzLnNldHRpbmdzLmlkLAoJCQkJaXRlbXM6IHsKCQkJCQlzcmM6IGlucHV0V3JhcFswXSwKCQkJCX0sCgkJCQlhbGlnblRvcDogdHJ1ZSwKCQkJCXNob3dDbG9zZUJ0bjogJHRoaXMuc2V0dGluZ3Muc2hvd0Nsb3NlQnRuLAoJCQkJY2xvc2VCdG5JbnNpZGU6IGZhbHNlLAoJCQkJZW5hYmxlRXNjYXBlS2V5OiB0cnVlLAoJCQkJY2xvc2VPbkJnQ2xpY2s6IGZhbHNlLAoJCQkJZm9jdXM6ICdpbnB1dFt0eXBlPXNlYXJjaF0nLAoJCQkJdExvYWRpbmc6ICc8aSBjbGFzcz0iZmFzIGZhLXNwaW5uZXIgZmEtc3BpbiBmYS0zeCBmYS1mdyI+PC9pPicsCgkJCQljYWxsYmFja3M6IHsKCQkJCQlvcGVuOiBmdW5jdGlvbigpewoJCQkJCQkkdGhpcy5pbnB1dC50cmlnZ2VyKCdjbGljaycpOwoJCQkJCX0KCQkJCX0KCQkJfSk7CgkJCXRoaXMucmVzdWx0c0VsLmFwcGVuZFRvKCBpbnB1dFdyYXAgKTsKCQl9LAoKCQlfYnV0dG9uQ2xpY2s6IGZ1bmN0aW9uKGUpIHsKCQkJZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsKCQkJaWYgKHRoaXMuc2VhcmNoRm9ybS5oYXNDbGFzcygnZmwtc2VhcmNoLWJ1dHRvbi1leHBhbmQnKSkgewoJCQkJdGhpcy5zZWFyY2hGb3JtLmZpbmQoJy5mbC1zZWFyY2gtZm9ybS13cmFwJykudG9nZ2xlQ2xhc3MoJ2ZsLXNlYXJjaC1leHBhbmRlZCcpOwoKCQkJCWlmICh0aGlzLnNlYXJjaEZvcm0uZmluZCgnLmZsLXNlYXJjaC1mb3JtLXdyYXAnKS5oYXNDbGFzcygnZmwtc2VhcmNoLWV4cGFuZGVkJykpIHsKCQkJCQl0aGlzLmlucHV0LmZvY3VzKCk7CgkJCQl9CgkJCQllbHNlIHsKCQkJCQl0aGlzLl9oaWRlUmVzdWx0cygpOwoJCQkJfQoKCQkJCXJldHVybiBmYWxzZTsKCQkJfSBlbHNlIHsKCQkJCXRoaXMuX3NlYXJjaChlKTsKCQkJfQoJCX0sCgoJCV9zaG93UmVzdWx0czogZnVuY3Rpb24oKXsKCQkJLy8gQ2xvc2UgYW55IHNlYXJjaCByZXN1bHRzIGluIGEgcGFnZS4KCQkJdGhpcy5faGlkZVJlc3VsdHMoKTsKCQkJdGhpcy5yZXN1bHRzRWwuYWRkQ2xhc3MoJ2ZsLXNlYXJjaC1vcGVuJyk7CgoJCQlpZiAoJ2J1dHRvbicgPT0gdGhpcy5zZXR0aW5ncy5sYXlvdXQgJiYgJ2V4cGFuZCcgPT0gdGhpcy5zZXR0aW5ncy5idG5BY3Rpb24pIHsKCQkJCXRoaXMuc2VhcmNoRm9ybS5maW5kKCcuZmwtc2VhcmNoLWZvcm0taW5wdXQtd3JhcCcpLmNzcygnb3ZlcmZsb3cnLCAndmlzaWJsZScpOwoJCQl9CgkJfSwKCgkJX2hpZGVSZXN1bHRzOiBmdW5jdGlvbigpewoJCQkkKCcuZmwtc2VhcmNoLXJlc3VsdHMtY29udGVudCcpLnJlbW92ZUNsYXNzKCdmbC1zZWFyY2gtb3BlbicpOwoKCQkJaWYgKCdidXR0b24nID09IHRoaXMuc2V0dGluZ3MubGF5b3V0ICYmICdleHBhbmQnID09IHRoaXMuc2V0dGluZ3MuYnRuQWN0aW9uKSB7CgkJCQl0aGlzLnNlYXJjaEZvcm0uZmluZCgnLmZsLXNlYXJjaC1mb3JtLWlucHV0LXdyYXAnKS5yZW1vdmVBdHRyKCdzdHlsZScpOwoJCQl9CgkJfSwKCgkJX2RvUmVkaXJlY3RSZXN1bHRzOiBmdW5jdGlvbigpewoJCQkvLyBUT0RPCgkJfSwKCgkJX3Nob3dMb2FkZXI6IGZ1bmN0aW9uKCl7CgkJCSQodGhpcy5ub2RlQ2xhc3MgKyAnIC5mbC1zZWFyY2gtbG9hZGVyLXdyYXAnKS5zaG93KCk7CgkJfSwKCgkJX2hpZGVMb2FkZXI6IGZ1bmN0aW9uKCl7CgkJCXRoaXMuc2VhcmNoaW5nID0gZmFsc2U7CgkJCSQodGhpcy5ub2RlQ2xhc3MgKyAnIC5mbC1zZWFyY2gtbG9hZGVyLXdyYXAnKS5oaWRlKCk7CgkJfSwKCgkJX2NsZWFuSW5wdXQ6IGZ1bmN0aW9uKHMpIHsKCSAgICAgICAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChzKS5yZXBsYWNlKC9cJTIwL2csICcrJyk7CgkgICAgfQoKCX0KCn0pKGpRdWVyeSk7CihmdW5jdGlvbigkKSB7CgoJJChmdW5jdGlvbigpIHsKCQluZXcgRkxCdWlsZGVyU2VhcmNoRm9ybSh7CgkJCWlkOiAnZnp0b2RiaDF5ZzMwJywKCQkJbGF5b3V0OiAnYnV0dG9uJywKCQkJYnRuQWN0aW9uOiAnZnVsbHNjcmVlbicsCgkJCXJlc3VsdDogJ2FqYXgnLAoJCQlzaG93Q2xvc2VCdG46IHRydWUsCgkJfSk7Cgl9KTsKCn0pKGpRdWVyeSk7CmpRdWVyeShmdW5jdGlvbigkKSB7CgkKCQkkKGZ1bmN0aW9uKCkgewoJCSQoICcuZmwtbm9kZS02eHI0ZzI1ZTNkZm4gLmZsLXBob3RvLWltZycgKQoJCQkub24oICdtb3VzZWVudGVyJywgZnVuY3Rpb24oIGUgKSB7CgkJCQkkKCB0aGlzICkuZGF0YSggJ3RpdGxlJywgJCggdGhpcyApLmF0dHIoICd0aXRsZScgKSApLnJlbW92ZUF0dHIoICd0aXRsZScgKTsKCQkJfSApCgkJCS5vbiggJ21vdXNlbGVhdmUnLCBmdW5jdGlvbiggZSApewoJCQkJJCggdGhpcyApLmF0dHIoICd0aXRsZScsICQoIHRoaXMgKS5kYXRhKCAndGl0bGUnICkgKS5kYXRhKCAndGl0bGUnLCBudWxsICk7CgkJCX0gKTsKCX0pOwoJCXdpbmRvdy5fZmxfc3RyaW5nX3RvX3NsdWdfcmVnZXggPSAnYS16QS1aMC05JzsKfSk7Cgp2YXIgRkxCdWlsZGVyTnVtYmVyOwoKKGZ1bmN0aW9uKCQpIHsKCgkvKioKCSAqIENsYXNzIGZvciBOdW1iZXIgQ291bnRlciBNb2R1bGUKCSAqCgkgKiBAc2luY2UgMS42LjEKCSAqLwoJRkxCdWlsZGVyTnVtYmVyID0gZnVuY3Rpb24oIHNldHRpbmdzICl7CgoJCS8vIHNldCBwYXJhbXMKCQl0aGlzLm5vZGVDbGFzcyAgICAgICAgICAgPSAnLmZsLW5vZGUtJyArIHNldHRpbmdzLmlkOwoJCXRoaXMud3JhcHBlckNsYXNzICAgICAgICA9IHRoaXMubm9kZUNsYXNzICsgJyAuZmwtbnVtYmVyJzsKCQl0aGlzLmxheW91dCAgICAgICAgICAgICAgPSBzZXR0aW5ncy5sYXlvdXQ7CgkJdGhpcy50eXBlICAgICAgICAgICAgICAgID0gc2V0dGluZ3MudHlwZTsKCQl0aGlzLnN0YXJ0TnVtYmVyICAgICAgICAgPSBwYXJzZUZsb2F0KCAoICd1bmRlZmluZWQnICE9PSB0eXBlb2Ygd2luZG93WyJudW1iZXJfbW9kdWxlXyIgKyBzZXR0aW5ncy5pZF0gKSA/IHdpbmRvd1sibnVtYmVyX21vZHVsZV8iICsgc2V0dGluZ3MuaWRdLnN0YXJ0X251bWJlciA6IHNldHRpbmdzLnN0YXJ0X251bWJlciApOwoJCXRoaXMubnVtYmVyICAgICAgICAgICAgICA9IHBhcnNlRmxvYXQoICggJ3VuZGVmaW5lZCcgIT09IHR5cGVvZiB3aW5kb3dbIm51bWJlcl9tb2R1bGVfIiArIHNldHRpbmdzLmlkXSApID8gd2luZG93WyJudW1iZXJfbW9kdWxlXyIgKyBzZXR0aW5ncy5pZF0ubnVtYmVyIDogc2V0dGluZ3MubnVtYmVyICk7CgkJdGhpcy5tYXggICAgICAgICAgICAgICAgID0gcGFyc2VGbG9hdCggKCAndW5kZWZpbmVkJyAhPT0gdHlwZW9mIHdpbmRvd1sibnVtYmVyX21vZHVsZV8iICsgc2V0dGluZ3MuaWRdICkgPyB3aW5kb3dbIm51bWJlcl9tb2R1bGVfIiArIHNldHRpbmdzLmlkXS5tYXggOiBzZXR0aW5ncy5tYXggKTsKCQl0aGlzLmxvY2FsZSAgICAgICAgICAgICAgPSAoICd1bmRlZmluZWQnICE9PSB0eXBlb2Ygd2luZG93WyJudW1iZXJfbW9kdWxlXyIgKyBzZXR0aW5ncy5pZF0gKSA/IHdpbmRvd1sibnVtYmVyX21vZHVsZV8iICsgc2V0dGluZ3MuaWRdLmxvY2FsZSA6ICdlbl9VUyc7CgkJdGhpcy5zcGVlZCAgICAgICAgICAgICAgID0gc2V0dGluZ3Muc3BlZWQ7CgkJdGhpcy5kZWxheSAgICAgICAgICAgICAgID0gc2V0dGluZ3MuZGVsYXk7CgkJdGhpcy5icmVha1BvaW50cyAgICAgICAgID0gc2V0dGluZ3MuYnJlYWtQb2ludHM7CgkJdGhpcy5jdXJyZW50QnJvd3NlcldpZHRoID0gJCggd2luZG93ICkud2lkdGgoKTsKCQl0aGlzLmFuaW1hdGVkICAgICAgICAgICAgPSBmYWxzZTsKCgkJLy8gaW5pdGlhbGl6ZSB0aGUgbWVudQoJCXRoaXMuX2luaXROdW1iZXIoKTsKCgl9OwoKCUZMQnVpbGRlck51bWJlci5wcm90b3R5cGUgPSB7CgkJbm9kZUNsYXNzICAgICAgICAgICAgICAgOiAnJywKCQl3cmFwcGVyQ2xhc3MgICAgICAgICAgICA6ICcnLAoJCWxheW91dCAgICAgICAgICAgICAgICAgIDogJycsCgkJdHlwZSAgICAgICAgICAgICAgICAgICAgOiAnJywKCQlzdGFydE51bWJlciAgICAgICAgICAgICA6IDAsCgkJbnVtYmVyICAgICAgICAgICAgICAgICAgOiAwLAoJCW1heCAgICAgICAgICAgICAgICAgICAgIDogMCwKCQlzcGVlZCAgICAgICAgICAgICAgICAgICA6IDAsCgkJZGVsYXkgICAgICAgICAgICAgICAgICAgOiAwLAoKCQlfaW5pdE51bWJlcjogZnVuY3Rpb24oKXsKCgkJCXZhciBzZWxmID0gdGhpczsKCgkJCWlmKCB0eXBlb2YgalF1ZXJ5LmZuLndheXBvaW50ICE9PSAndW5kZWZpbmVkJyAmJiAhIHRoaXMuYW5pbWF0ZWQgKSB7CgkJCQkkKCB0aGlzLndyYXBwZXJDbGFzcyApLndheXBvaW50KHsKCQkJCQlvZmZzZXQ6IEZMQnVpbGRlckxheW91dENvbmZpZy53YXlwb2ludC5vZmZzZXQgKyAnJScsCgkJCQkJdHJpZ2dlck9uY2U6IHRydWUsCgkJCQkJaGFuZGxlcjogZnVuY3Rpb24oIGRpcmVjdGlvbiApewoJCQkJCQlzZWxmLl9pbml0Q291bnQoKTsKCQkJCQl9CgkJCQl9KTsKCQkJfSBlbHNlIHsKCQkJCXNlbGYuX2luaXRDb3VudCgpOwoJCQl9CgkJfSwKCgkJX2luaXRDb3VudDogZnVuY3Rpb24oKXsKCgkJCXZhciAkbnVtYmVyID0gJCggdGhpcy53cmFwcGVyQ2xhc3MgKS5maW5kKCAnLmZsLW51bWJlci1zdHJpbmcnICk7CgoJCQlpZiggIWlzTmFOKCB0aGlzLmRlbGF5ICkgJiYgdGhpcy5kZWxheSA+IDAgKSB7CgkJCQlzZXRUaW1lb3V0KCBmdW5jdGlvbigpewoJCQkJCWlmKCB0aGlzLmxheW91dCA9PSAnY2lyY2xlJyApewoJCQkJCQl0aGlzLl90cmlnZ2VyQ2lyY2xlKCk7CgkJCQkJfSBlbHNlIGlmKCB0aGlzLmxheW91dCA9PSAnYmFycycgKXsKCQkJCQkJdGhpcy5fdHJpZ2dlckJhcigpOwoJCQkJCX0KCQkJCQl0aGlzLl9jb3VudE51bWJlcigpOwoJCQkJfS5iaW5kKCB0aGlzICksIHRoaXMuZGVsYXkgKiAxMDAwICk7CgkJCX0KCQkJZWxzZSB7CgkJCQlpZiggdGhpcy5sYXlvdXQgPT0gJ2NpcmNsZScgKXsKCQkJCQl0aGlzLl90cmlnZ2VyQ2lyY2xlKCk7CgkJCQl9IGVsc2UgaWYoIHRoaXMubGF5b3V0ID09ICdiYXJzJyApewoJCQkJCXRoaXMuX3RyaWdnZXJCYXIoKTsKCQkJCX0KCQkJCXRoaXMuX2NvdW50TnVtYmVyKCk7CgkJCX0KCQl9LAoKCQlfY291bnROdW1iZXI6IGZ1bmN0aW9uKCl7CgoJCQl2YXIgJG51bWJlciAgICA9ICQoIHRoaXMud3JhcHBlckNsYXNzICkuZmluZCggJy5mbC1udW1iZXItc3RyaW5nJyApLAoJCQkJJHN0cmluZyAgICA9ICRudW1iZXIuZmluZCggJy5mbC1udW1iZXItaW50JyApLAoJCQkJbnVtYmVyICAgICA9IHBhcnNlRmxvYXQoICRzdHJpbmcuZGF0YSggJ251bWJlcicgKSApLAoJCQkJY3VycmVudCAgICA9IDAsCgkJCQlzZWxmICAgICAgID0gdGhpcywKCQkJCXN0YXJ0TnVtICAgPSBwYXJzZUZsb2F0KCAkc3RyaW5nLmRhdGEoICdzdGFydC1udW1iZXInICkgKSwKCQkJCWVuZE51bSAgICAgPSBwYXJzZUZsb2F0KCAkc3RyaW5nLmRhdGEoICdudW1iZXInICkgKSwKCQkJCWNvdW50VXAgICAgPSBzdGFydE51bSA8IGVuZE51bSwKCQkJCXN0YXJ0U3RlcCAgPSBjb3VudFVwID8gc3RhcnROdW0gOiBlbmROdW0sCgkJCQllbmRTdGVwICAgID0gY291bnRVcCA/IGVuZE51bSA6IHN0YXJ0TnVtLAoJCQkJc3RlcE51bSAgICA9IDAsCgkJCQljb3VudGVyTnVtID0gc3RhcnROdW07CgoJCQlpZiAoICEgdGhpcy5hbmltYXRlZCApIHsKCgkJCQkkc3RyaW5nLnByb3AoICdDb3VudGVyJywgc3RhcnRTdGVwICkuYW5pbWF0ZSh7CgkJCQkJQ291bnRlcjogZW5kU3RlcAoJCQkJfSwgewoJCQkJCWR1cmF0aW9uOiB0aGlzLnNwZWVkLAoJCQkJCWVhc2luZzogJ3N3aW5nJywKCQkJCQlzdGVwOiBmdW5jdGlvbiAobm93LCBmeCkgewoJCQkJCQljb3VudGVyTnVtID0gTWF0aC5jZWlsKHRoaXMuQ291bnRlcik7CgkJCQkJCWlmIChjb3VudFVwKSB7CgkJCQkJCQlzdGVwTnVtID0gY291bnRlck51bTsKCQkJCQkJfSBlbHNlIHsKCQkJCQkJCXN0ZXBOdW0gPSAoc3RhcnRTdGVwICsgZW5kU3RlcCAtIGNvdW50ZXJOdW0pOwoJCQkJCQl9CgkJCQkJCWxvY2FsZSAgPSBzZWxmLmxvY2FsZS5yZXBsYWNlKCdfJywgJy0nICk7CgkJCQkJCXN0ZXBOdW1UZXh0ID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KGxvY2FsZSkuZm9ybWF0KHN0ZXBOdW0pCgkJCQkJCWlmICggY291bnRVcCApIHsKCQkJCQkJCWlmICggc3RlcE51bSA8IGVuZFN0ZXAgKSB7CgkJCQkJCQkJJHN0cmluZy50ZXh0KCBzdGVwTnVtVGV4dCApOwoJCQkJCQkJfQoJCQkJCQl9IGVsc2UgewoJCQkJCQkJJHN0cmluZy50ZXh0KCBzdGVwTnVtVGV4dCApOwoJCQkJCQl9CgkJCQkJfSwKCQkJCQljb21wbGV0ZTogZnVuY3Rpb24oKSB7CgkJCQkJCWxvY2FsZSAgPSBzZWxmLmxvY2FsZS5yZXBsYWNlKCdfJywgJy0nICk7CgkJCQkJCWVuZE51bSA9IG5ldyBJbnRsLk51bWJlckZvcm1hdChsb2NhbGUpLmZvcm1hdChlbmROdW0pCgkJCQkJCSRzdHJpbmcudGV4dCggZW5kTnVtICk7CgkJCQkJCXNlbGYuYW5pbWF0ZWQgPSB0cnVlOwoJCQkJCX0KCQkJCX0pOwoKCQkJfQoKCQl9LAoKCQlfdHJpZ2dlckNpcmNsZTogZnVuY3Rpb24oKXsKCgkJCXZhciAkYmFyICAgPSAkKHRoaXMud3JhcHBlckNsYXNzKS5maW5kKCcuZmwtYmFyJyksCgkJCQlyIAkgICA9ICRiYXIuYXR0cigncicpLAoJCQkJY2lyY2xlID0gTWF0aC5QSSAqIChyICogMiksCgkJCQlzdGFydE51bWJlciA9IHBhcnNlSW50KCAkKHRoaXMud3JhcHBlckNsYXNzKS5maW5kKCcuZmwtbnVtYmVyLWludCcpLmRhdGEoJ3N0YXJ0LW51bWJlcicpICksCgkJCQludW1iZXIgPSBwYXJzZUludCggJCh0aGlzLndyYXBwZXJDbGFzcykuZmluZCgnLmZsLW51bWJlci1pbnQnKS5kYXRhKCdudW1iZXInKSApLAoJCQkJdG90YWwgID0gcGFyc2VJbnQoICQodGhpcy53cmFwcGVyQ2xhc3MpLmZpbmQoJy5mbC1udW1iZXItaW50JykuZGF0YSgndG90YWwnKSApLAoJCQkJdmFsICAgID0gcGFyc2VJbnQoIG51bWJlciApLAoJCQkJbWF4ICAgID0gcGFyc2VJbnQoIHRvdGFsICksCgkJCSAgICBzdGFydFBjdCA9IDAsCgkJCQllbmRQY3QgPSAgbWF4OwoKCQkJaWYgKCB0aGlzLmFuaW1hdGVkICkgewoJCQkJcmV0dXJuOwoJCQl9CgoJCQlpZiAodmFsIDwgMCkgeyB2YWwgPSAwO30KCQkJaWYgKHZhbCA+IG1heCkgeyB2YWwgPSBtYXg7fQoKCQkJaWYoIHRoaXMudHlwZSA9PSAncGVyY2VudCcgKXsKCQkJCXN0YXJ0UGN0ID0gKCAoIG1heCAtIHN0YXJ0TnVtYmVyICkgLyBtYXggKSAqIGNpcmNsZTsKCQkJCWVuZFBjdCA9ICggKCBtYXggLSB2YWwgKSAvIG1heCApICogY2lyY2xlOwoJCQl9IGVsc2UgewoJCQkJc3RhcnRQY3QgPSAoIDEgLSAoIHN0YXJ0TnVtYmVyIC8gbWF4ICkgKSAqIGNpcmNsZTsKCQkJCWVuZFBjdCA9ICggMSAtICggdmFsIC8gbWF4ICkgKSAqIGNpcmNsZTsKCQkJfQoKCQkJJGJhci5jc3MoJ3N0cm9rZS1kYXNob2Zmc2V0Jywgc3RhcnRQY3QpOwoJCQkkYmFyLmFuaW1hdGUoewoJCQkJc3Ryb2tlRGFzaG9mZnNldDogZW5kUGN0CgkJCX0sIHsKCQkJCWR1cmF0aW9uOiB0aGlzLnNwZWVkLAoJCQkJZWFzaW5nOiAnc3dpbmcnLAoJCQkJY29tcGxldGU6IGZ1bmN0aW9uKCkgewoJCQkJCXRoaXMuYW5pbWF0ZWQgPSB0cnVlOwoJCQkJfQoJCQl9KTsKCgkJfSwKCgkJX3RyaWdnZXJCYXI6IGZ1bmN0aW9uKCl7CgoJCQl2YXIgJGJhciAgICAgICA9ICQoIHRoaXMud3JhcHBlckNsYXNzICkuZmluZCggJy5mbC1udW1iZXItYmFyJyApLAoJCQkJc3RhcnROdW0gICA9IHBhcnNlSW50KCAkKHRoaXMud3JhcHBlckNsYXNzKS5maW5kKCcuZmwtbnVtYmVyLWludCcpLmRhdGEoJ3N0YXJ0LW51bWJlcicpICksCgkJCQludW1iZXIgICAgID0gcGFyc2VJbnQoICQodGhpcy53cmFwcGVyQ2xhc3MpLmZpbmQoJy5mbC1udW1iZXItaW50JykuZGF0YSgnbnVtYmVyJykgKSwKCQkJCXRvdGFsICAgICAgPSBwYXJzZUludCggJCh0aGlzLndyYXBwZXJDbGFzcykuZmluZCgnLmZsLW51bWJlci1pbnQnKS5kYXRhKCd0b3RhbCcpICksCgkJCQlpbml0V2lkdGggID0gMCwKCQkJCWZpbmFsV2lkdGggPSAwOwoKCQkJLy8gdG90YWwgaXMgYWxzbyBlcXVhbCB0byB0aGlzLm1heAoJCQlpZiAoIGlzTmFOKCB0b3RhbCApIHx8IHRvdGFsIDw9IDAgKSB7CgkJCQlyZXR1cm47CgkJCX0KCgkJCWlmICggdGhpcy5hbmltYXRlZCApIHsKCQkJCXJldHVybjsKCQkJfQoKCQkJaWYgKCBudW1iZXIgPiBzdGFydE51bSAmJiB0b3RhbCA8IG51bWJlciApIHsKCQkJCXRvdGFsID0gbnVtYmVyOwoJCQl9IGVsc2UgaWYgKCBzdGFydE51bSA+IG51bWJlciAmJiB0b3RhbCA8IHN0YXJ0TnVtICkgewoJCQkJdG90YWwgPSBzdGFydE51bTsKCQkJfQoKCQkJaW5pdFdpZHRoID0gTWF0aC5jZWlsKCAoc3RhcnROdW0gLyB0b3RhbCkgKiAxMDAgKTsKCQkJZmluYWxXaWR0aCA9IE1hdGguY2VpbCggKG51bWJlciAvIHRvdGFsKSAqIDEwMCApOwoKCQkJLy8gU2V0IHRoZSBpbml0aWFsIGluZGljYXRvciBiYXIgdmFsdWUuCgkJCSRiYXIuY3NzKCd3aWR0aCcsIGluaXRXaWR0aCArICclJyk7CgoJCQkkYmFyLmFuaW1hdGUoewoJCQkJd2lkdGg6IGZpbmFsV2lkdGggKyAnJScKCQkJfSwgewoJCQkJZHVyYXRpb246IHRoaXMuc3BlZWQsCgkJCQllYXNpbmc6ICdzd2luZycsCgkJCQljb21wbGV0ZTogZnVuY3Rpb24oKSB7CgkJCQkJdGhpcy5hbmltYXRlZCA9IHRydWU7CgkJCQl9CgkJCX0pOwoKCQl9Cgl9OwoKfSkoalF1ZXJ5KTsKCihmdW5jdGlvbigkKSB7CgoJJChmdW5jdGlvbigpIHsKCQl2YXIgbnVtTW9kdWxlID0gd2luZG93Lm51bWJlcl9tb2R1bGVfMWFtdG80MnpkZXhnOwoKCQluZXcgRkxCdWlsZGVyTnVtYmVyKHsKCQkJaWQ6ICcxYW10bzQyemRleGcnLAoJCQlsYXlvdXQ6ICdkZWZhdWx0JywKCQkJdHlwZTogJ3N0YW5kYXJkJywKCQkJc3RhcnRfbnVtYmVyOiBwYXJzZUZsb2F0KCAoICd1bmRlZmluZWQnICE9PSB0eXBlb2YgbnVtTW9kdWxlICkgPyBudW1Nb2R1bGUuc3RhcnRfbnVtYmVyIDogMCApLAoJCQludW1iZXI6IHBhcnNlRmxvYXQoICggJ3VuZGVmaW5lZCcgIT09IHR5cGVvZiBudW1Nb2R1bGUgKSA/IG51bU1vZHVsZS5udW1iZXIgOiAxMzk2NyApLAoJCQltYXg6IHBhcnNlRmxvYXQoICggJ3VuZGVmaW5lZCcgIT09IHR5cGVvZiBudW1Nb2R1bGUgKSA/IG51bU1vZHVsZS5tYXggOiAxMzk2NyApLAoJCQlzcGVlZDogMzAwMCwKCQkJZGVsYXk6IC4yLAoJCX0pOwoJfSk7Cn0pKGpRdWVyeSk7CmpRdWVyeShmdW5jdGlvbigkKSB7CgkKCQkkKGZ1bmN0aW9uKCkgewoJCSQoICcuZmwtbm9kZS01ZGExYzIyM2M0NmZjIC5mbC1waG90by1pbWcnICkKCQkJLm9uKCAnbW91c2VlbnRlcicsIGZ1bmN0aW9uKCBlICkgewoJCQkJJCggdGhpcyApLmRhdGEoICd0aXRsZScsICQoIHRoaXMgKS5hdHRyKCAndGl0bGUnICkgKS5yZW1vdmVBdHRyKCAndGl0bGUnICk7CgkJCX0gKQoJCQkub24oICdtb3VzZWxlYXZlJywgZnVuY3Rpb24oIGUgKXsKCQkJCSQoIHRoaXMgKS5hdHRyKCAndGl0bGUnLCAkKCB0aGlzICkuZGF0YSggJ3RpdGxlJyApICkuZGF0YSggJ3RpdGxlJywgbnVsbCApOwoJCQl9ICk7Cgl9KTsKCQl3aW5kb3cuX2ZsX3N0cmluZ190b19zbHVnX3JlZ2V4ID0gJ2EtekEtWjAtOSc7Cn0pOwpqUXVlcnkoZnVuY3Rpb24oJCkgewoJCgkJJChmdW5jdGlvbigpIHsKCQkkKCAnLmZsLW5vZGUtNWRhMWMyMjNjNDcwMiAuZmwtcGhvdG8taW1nJyApCgkJCS5vbiggJ21vdXNlZW50ZXInLCBmdW5jdGlvbiggZSApIHsKCQkJCSQoIHRoaXMgKS5kYXRhKCAndGl0bGUnLCAkKCB0aGlzICkuYXR0ciggJ3RpdGxlJyApICkucmVtb3ZlQXR0ciggJ3RpdGxlJyApOwoJCQl9ICkKCQkJLm9uKCAnbW91c2VsZWF2ZScsIGZ1bmN0aW9uKCBlICl7CgkJCQkkKCB0aGlzICkuYXR0ciggJ3RpdGxlJywgJCggdGhpcyApLmRhdGEoICd0aXRsZScgKSApLmRhdGEoICd0aXRsZScsIG51bGwgKTsKCQkJfSApOwoJfSk7CgkJd2luZG93Ll9mbF9zdHJpbmdfdG9fc2x1Z19yZWdleCA9ICdhLXpBLVowLTknOwp9KTsKalF1ZXJ5KGZ1bmN0aW9uKCQpIHsKCQoJCSQoZnVuY3Rpb24oKSB7CgkJJCggJy5mbC1ub2RlLTVkYTFjMjIzYzQ2ZmQgLmZsLXBob3RvLWltZycgKQoJCQkub24oICdtb3VzZWVudGVyJywgZnVuY3Rpb24oIGUgKSB7CgkJCQkkKCB0aGlzICkuZGF0YSggJ3RpdGxlJywgJCggdGhpcyApLmF0dHIoICd0aXRsZScgKSApLnJlbW92ZUF0dHIoICd0aXRsZScgKTsKCQkJfSApCgkJCS5vbiggJ21vdXNlbGVhdmUnLCBmdW5jdGlvbiggZSApewoJCQkJJCggdGhpcyApLmF0dHIoICd0aXRsZScsICQoIHRoaXMgKS5kYXRhKCAndGl0bGUnICkgKS5kYXRhKCAndGl0bGUnLCBudWxsICk7CgkJCX0gKTsKCX0pOwoJCXdpbmRvdy5fZmxfc3RyaW5nX3RvX3NsdWdfcmVnZXggPSAnYS16QS1aMC05JzsKfSk7CmpRdWVyeShmdW5jdGlvbigkKSB7CgkKCQkkKGZ1bmN0aW9uKCkgewoJCSQoICcuZmwtbm9kZS01ZGExYzIyM2M0NzAwIC5mbC1waG90by1pbWcnICkKCQkJLm9uKCAnbW91c2VlbnRlcicsIGZ1bmN0aW9uKCBlICkgewoJCQkJJCggdGhpcyApLmRhdGEoICd0aXRsZScsICQoIHRoaXMgKS5hdHRyKCAndGl0bGUnICkgKS5yZW1vdmVBdHRyKCAndGl0bGUnICk7CgkJCX0gKQoJCQkub24oICdtb3VzZWxlYXZlJywgZnVuY3Rpb24oIGUgKXsKCQkJCSQoIHRoaXMgKS5hdHRyKCAndGl0bGUnLCAkKCB0aGlzICkuZGF0YSggJ3RpdGxlJyApICkuZGF0YSggJ3RpdGxlJywgbnVsbCApOwoJCQl9ICk7Cgl9KTsKCQl3aW5kb3cuX2ZsX3N0cmluZ190b19zbHVnX3JlZ2V4ID0gJ2EtekEtWjAtOSc7Cn0pOwpqUXVlcnkoZnVuY3Rpb24oJCkgewoJCgkJJChmdW5jdGlvbigpIHsKCQkkKCAnLmZsLW5vZGUtNWU1ZmEyMjhiZGNmOSAuZmwtcGhvdG8taW1nJyApCgkJCS5vbiggJ21vdXNlZW50ZXInLCBmdW5jdGlvbiggZSApIHsKCQkJCSQoIHRoaXMgKS5kYXRhKCAndGl0bGUnLCAkKCB0aGlzICkuYXR0ciggJ3RpdGxlJyApICkucmVtb3ZlQXR0ciggJ3RpdGxlJyApOwoJCQl9ICkKCQkJLm9uKCAnbW91c2VsZWF2ZScsIGZ1bmN0aW9uKCBlICl7CgkJCQkkKCB0aGlzICkuYXR0ciggJ3RpdGxlJywgJCggdGhpcyApLmRhdGEoICd0aXRsZScgKSApLmRhdGEoICd0aXRsZScsIG51bGwgKTsKCQkJfSApOwoJfSk7CgkJd2luZG93Ll9mbF9zdHJpbmdfdG9fc2x1Z19yZWdleCA9ICdhLXpBLVowLTknOwp9KTsKalF1ZXJ5KGZ1bmN0aW9uKCQpIHsKCQoJCSQoZnVuY3Rpb24oKSB7CgkJJCggJy5mbC1ub2RlLTVkYTFjMjIzYzQ3MDQgLmZsLXBob3RvLWltZycgKQoJCQkub24oICdtb3VzZWVudGVyJywgZnVuY3Rpb24oIGUgKSB7CgkJCQkkKCB0aGlzICkuZGF0YSggJ3RpdGxlJywgJCggdGhpcyApLmF0dHIoICd0aXRsZScgKSApLnJlbW92ZUF0dHIoICd0aXRsZScgKTsKCQkJfSApCgkJCS5vbiggJ21vdXNlbGVhdmUnLCBmdW5jdGlvbiggZSApewoJCQkJJCggdGhpcyApLmF0dHIoICd0aXRsZScsICQoIHRoaXMgKS5kYXRhKCAndGl0bGUnICkgKS5kYXRhKCAndGl0bGUnLCBudWxsICk7CgkJCX0gKTsKCX0pOwoJCXdpbmRvdy5fZmxfc3RyaW5nX3RvX3NsdWdfcmVnZXggPSAnYS16QS1aMC05JzsKfSk7CmpRdWVyeShmdW5jdGlvbigkKSB7CgkKCQkkKGZ1bmN0aW9uKCkgewoJCSQoICcuZmwtbm9kZS01ZGExYzIzMTQ4NjE1IC5mbC1waG90by1pbWcnICkKCQkJLm9uKCAnbW91c2VlbnRlcicsIGZ1bmN0aW9uKCBlICkgewoJCQkJJCggdGhpcyApLmRhdGEoICd0aXRsZScsICQoIHRoaXMgKS5hdHRyKCAndGl0bGUnICkgKS5yZW1vdmVBdHRyKCAndGl0bGUnICk7CgkJCX0gKQoJCQkub24oICdtb3VzZWxlYXZlJywgZnVuY3Rpb24oIGUgKXsKCQkJCSQoIHRoaXMgKS5hdHRyKCAndGl0bGUnLCAkKCB0aGlzICkuZGF0YSggJ3RpdGxlJyApICkuZGF0YSggJ3RpdGxlJywgbnVsbCApOwoJCQl9ICk7Cgl9KTsKCQl3aW5kb3cuX2ZsX3N0cmluZ190b19zbHVnX3JlZ2V4ID0gJ2EtekEtWjAtOSc7Cn0pOwpqUXVlcnkoZnVuY3Rpb24oJCkgewoJCgkJJChmdW5jdGlvbigpIHsKCQkkKCAnLmZsLW5vZGUtNWU1ZjlmYzMwNmU1OCAuZmwtcGhvdG8taW1nJyApCgkJCS5vbiggJ21vdXNlZW50ZXInLCBmdW5jdGlvbiggZSApIHsKCQkJCSQoIHRoaXMgKS5kYXRhKCAndGl0bGUnLCAkKCB0aGlzICkuYXR0ciggJ3RpdGxlJyApICkucmVtb3ZlQXR0ciggJ3RpdGxlJyApOwoJCQl9ICkKCQkJLm9uKCAnbW91c2VsZWF2ZScsIGZ1bmN0aW9uKCBlICl7CgkJCQkkKCB0aGlzICkuYXR0ciggJ3RpdGxlJywgJCggdGhpcyApLmRhdGEoICd0aXRsZScgKSApLmRhdGEoICd0aXRsZScsIG51bGwgKTsKCQkJfSApOwoJfSk7CgkJd2luZG93Ll9mbF9zdHJpbmdfdG9fc2x1Z19yZWdleCA9ICdhLXpBLVowLTknOwp9KTsKalF1ZXJ5KGZ1bmN0aW9uKCQpIHsKCQoJCSQoZnVuY3Rpb24oKSB7CgkJJCggJy5mbC1ub2RlLTVkYTFjMjMxNDg2MTggLmZsLXBob3RvLWltZycgKQoJCQkub24oICdtb3VzZWVudGVyJywgZnVuY3Rpb24oIGUgKSB7CgkJCQkkKCB0aGlzICkuZGF0YSggJ3RpdGxlJywgJCggdGhpcyApLmF0dHIoICd0aXRsZScgKSApLnJlbW92ZUF0dHIoICd0aXRsZScgKTsKCQkJfSApCgkJCS5vbiggJ21vdXNlbGVhdmUnLCBmdW5jdGlvbiggZSApewoJCQkJJCggdGhpcyApLmF0dHIoICd0aXRsZScsICQoIHRoaXMgKS5kYXRhKCAndGl0bGUnICkgKS5kYXRhKCAndGl0bGUnLCBudWxsICk7CgkJCX0gKTsKCX0pOwoJCXdpbmRvdy5fZmxfc3RyaW5nX3RvX3NsdWdfcmVnZXggPSAnYS16QS1aMC05JzsKfSk7CmpRdWVyeShmdW5jdGlvbigkKSB7CgkKCQkkKGZ1bmN0aW9uKCkgewoJCSQoICcuZmwtbm9kZS01ZGExYzIzMTQ4NjFkIC5mbC1waG90by1pbWcnICkKCQkJLm9uKCAnbW91c2VlbnRlcicsIGZ1bmN0aW9uKCBlICkgewoJCQkJJCggdGhpcyApLmRhdGEoICd0aXRsZScsICQoIHRoaXMgKS5hdHRyKCAndGl0bGUnICkgKS5yZW1vdmVBdHRyKCAndGl0bGUnICk7CgkJCX0gKQoJCQkub24oICdtb3VzZWxlYXZlJywgZnVuY3Rpb24oIGUgKXsKCQkJCSQoIHRoaXMgKS5hdHRyKCAndGl0bGUnLCAkKCB0aGlzICkuZGF0YSggJ3RpdGxlJyApICkuZGF0YSggJ3RpdGxlJywgbnVsbCApOwoJCQl9ICk7Cgl9KTsKCQl3aW5kb3cuX2ZsX3N0cmluZ190b19zbHVnX3JlZ2V4ID0gJ2EtekEtWjAtOSc7Cn0pOwpqUXVlcnkoZnVuY3Rpb24oJCkgewoJCgkJJChmdW5jdGlvbigpIHsKCQkkKCAnLmZsLW5vZGUtNWRhMWMyMzE0ODYxZiAuZmwtcGhvdG8taW1nJyApCgkJCS5vbiggJ21vdXNlZW50ZXInLCBmdW5jdGlvbiggZSApIHsKCQkJCSQoIHRoaXMgKS5kYXRhKCAndGl0bGUnLCAkKCB0aGlzICkuYXR0ciggJ3RpdGxlJyApICkucmVtb3ZlQXR0ciggJ3RpdGxlJyApOwoJCQl9ICkKCQkJLm9uKCAnbW91c2VsZWF2ZScsIGZ1bmN0aW9uKCBlICl7CgkJCQkkKCB0aGlzICkuYXR0ciggJ3RpdGxlJywgJCggdGhpcyApLmRhdGEoICd0aXRsZScgKSApLmRhdGEoICd0aXRsZScsIG51bGwgKTsKCQkJfSApOwoJfSk7CgkJd2luZG93Ll9mbF9zdHJpbmdfdG9fc2x1Z19yZWdleCA9ICdhLXpBLVowLTknOwp9KTsKalF1ZXJ5KGZ1bmN0aW9uKCQpIHsKCQoJCSQoZnVuY3Rpb24oKSB7CgkJJCggJy5mbC1ub2RlLTVkYTFjMjMxNDg2MjIgLmZsLXBob3RvLWltZycgKQoJCQkub24oICdtb3VzZWVudGVyJywgZnVuY3Rpb24oIGUgKSB7CgkJCQkkKCB0aGlzICkuZGF0YSggJ3RpdGxlJywgJCggdGhpcyApLmF0dHIoICd0aXRsZScgKSApLnJlbW92ZUF0dHIoICd0aXRsZScgKTsKCQkJfSApCgkJCS5vbiggJ21vdXNlbGVhdmUnLCBmdW5jdGlvbiggZSApewoJCQkJJCggdGhpcyApLmF0dHIoICd0aXRsZScsICQoIHRoaXMgKS5kYXRhKCAndGl0bGUnICkgKS5kYXRhKCAndGl0bGUnLCBudWxsICk7CgkJCX0gKTsKCX0pOwoJCXdpbmRvdy5fZmxfc3RyaW5nX3RvX3NsdWdfcmVnZXggPSAnYS16QS1aMC05JzsKfSk7CmpRdWVyeShmdW5jdGlvbigkKSB7CgkKCQkkKGZ1bmN0aW9uKCkgewoJCSQoICcuZmwtbm9kZS01ZTVmYTMxNWRhMWQxIC5mbC1waG90by1pbWcnICkKCQkJLm9uKCAnbW91c2VlbnRlcicsIGZ1bmN0aW9uKCBlICkgewoJCQkJJCggdGhpcyApLmRhdGEoICd0aXRsZScsICQoIHRoaXMgKS5hdHRyKCAndGl0bGUnICkgKS5yZW1vdmVBdHRyKCAndGl0bGUnICk7CgkJCX0gKQoJCQkub24oICdtb3VzZWxlYXZlJywgZnVuY3Rpb24oIGUgKXsKCQkJCSQoIHRoaXMgKS5hdHRyKCAndGl0bGUnLCAkKCB0aGlzICkuZGF0YSggJ3RpdGxlJyApICkuZGF0YSggJ3RpdGxlJywgbnVsbCApOwoJCQl9ICk7Cgl9KTsKCQl3aW5kb3cuX2ZsX3N0cmluZ190b19zbHVnX3JlZ2V4ID0gJ2EtekEtWjAtOSc7Cn0pOwpqUXVlcnkoZnVuY3Rpb24oJCkgewoJCgkJJChmdW5jdGlvbigpIHsKCQkkKCAnLmZsLW5vZGUtNWU1ZmEzNmFjMTg1NyAuZmwtcGhvdG8taW1nJyApCgkJCS5vbiggJ21vdXNlZW50ZXInLCBmdW5jdGlvbiggZSApIHsKCQkJCSQoIHRoaXMgKS5kYXRhKCAndGl0bGUnLCAkKCB0aGlzICkuYXR0ciggJ3RpdGxlJyApICkucmVtb3ZlQXR0ciggJ3RpdGxlJyApOwoJCQl9ICkKCQkJLm9uKCAnbW91c2VsZWF2ZScsIGZ1bmN0aW9uKCBlICl7CgkJCQkkKCB0aGlzICkuYXR0ciggJ3RpdGxlJywgJCggdGhpcyApLmRhdGEoICd0aXRsZScgKSApLmRhdGEoICd0aXRsZScsIG51bGwgKTsKCQkJfSApOwoJfSk7CgkJd2luZG93Ll9mbF9zdHJpbmdfdG9fc2x1Z19yZWdleCA9ICdhLXpBLVowLTknOwp9KTsKalF1ZXJ5KGZ1bmN0aW9uKCQpIHsKCQoJCSQoZnVuY3Rpb24oKSB7CgkJJCggJy5mbC1ub2RlLTVkYTFjMjQyZWY5MWMgLmZsLXBob3RvLWltZycgKQoJCQkub24oICdtb3VzZWVudGVyJywgZnVuY3Rpb24oIGUgKSB7CgkJCQkkKCB0aGlzICkuZGF0YSggJ3RpdGxlJywgJCggdGhpcyApLmF0dHIoICd0aXRsZScgKSApLnJlbW92ZUF0dHIoICd0aXRsZScgKTsKCQkJfSApCgkJCS5vbiggJ21vdXNlbGVhdmUnLCBmdW5jdGlvbiggZSApewoJCQkJJCggdGhpcyApLmF0dHIoICd0aXRsZScsICQoIHRoaXMgKS5kYXRhKCAndGl0bGUnICkgKS5kYXRhKCAndGl0bGUnLCBudWxsICk7CgkJCX0gKTsKCX0pOwoJCXdpbmRvdy5fZmxfc3RyaW5nX3RvX3NsdWdfcmVnZXggPSAnYS16QS1aMC05JzsKfSk7CmpRdWVyeShmdW5jdGlvbigkKSB7CgkKCQkkKGZ1bmN0aW9uKCkgewoJCSQoICcuZmwtbm9kZS01ZTVmYTVjMzVkYjI2IC5mbC1waG90by1pbWcnICkKCQkJLm9uKCAnbW91c2VlbnRlcicsIGZ1bmN0aW9uKCBlICkgewoJCQkJJCggdGhpcyApLmRhdGEoICd0aXRsZScsICQoIHRoaXMgKS5hdHRyKCAndGl0bGUnICkgKS5yZW1vdmVBdHRyKCAndGl0bGUnICk7CgkJCX0gKQoJCQkub24oICdtb3VzZWxlYXZlJywgZnVuY3Rpb24oIGUgKXsKCQkJCSQoIHRoaXMgKS5hdHRyKCAndGl0bGUnLCAkKCB0aGlzICkuZGF0YSggJ3RpdGxlJyApICkuZGF0YSggJ3RpdGxlJywgbnVsbCApOwoJCQl9ICk7Cgl9KTsKCQl3aW5kb3cuX2ZsX3N0cmluZ190b19zbHVnX3JlZ2V4ID0gJ2EtekEtWjAtOSc7Cn0pOwpqUXVlcnkoZnVuY3Rpb24oJCkgewoJCgkJJChmdW5jdGlvbigpIHsKCQkkKCAnLmZsLW5vZGUtNWU1ZmE2MmNkOTdjOSAuZmwtcGhvdG8taW1nJyApCgkJCS5vbiggJ21vdXNlZW50ZXInLCBmdW5jdGlvbiggZSApIHsKCQkJCSQoIHRoaXMgKS5kYXRhKCAndGl0bGUnLCAkKCB0aGlzICkuYXR0ciggJ3RpdGxlJyApICkucmVtb3ZlQXR0ciggJ3RpdGxlJyApOwoJCQl9ICkKCQkJLm9uKCAnbW91c2VsZWF2ZScsIGZ1bmN0aW9uKCBlICl7CgkJCQkkKCB0aGlzICkuYXR0ciggJ3RpdGxlJywgJCggdGhpcyApLmRhdGEoICd0aXRsZScgKSApLmRhdGEoICd0aXRsZScsIG51bGwgKTsKCQkJfSApOwoJfSk7CgkJd2luZG93Ll9mbF9zdHJpbmdfdG9fc2x1Z19yZWdleCA9ICdhLXpBLVowLTknOwp9KTsKalF1ZXJ5KGZ1bmN0aW9uKCQpIHsKCQoJCSQoZnVuY3Rpb24oKSB7CgkJJCggJy5mbC1ub2RlLTVkYTFjMjQyZWY5MjAgLmZsLXBob3RvLWltZycgKQoJCQkub24oICdtb3VzZWVudGVyJywgZnVuY3Rpb24oIGUgKSB7CgkJCQkkKCB0aGlzICkuZGF0YSggJ3RpdGxlJywgJCggdGhpcyApLmF0dHIoICd0aXRsZScgKSApLnJlbW92ZUF0dHIoICd0aXRsZScgKTsKCQkJfSApCgkJCS5vbiggJ21vdXNlbGVhdmUnLCBmdW5jdGlvbiggZSApewoJCQkJJCggdGhpcyApLmF0dHIoICd0aXRsZScsICQoIHRoaXMgKS5kYXRhKCAndGl0bGUnICkgKS5kYXRhKCAndGl0bGUnLCBudWxsICk7CgkJCX0gKTsKCX0pOwoJCXdpbmRvdy5fZmxfc3RyaW5nX3RvX3NsdWdfcmVnZXggPSAnYS16QS1aMC05JzsKfSk7CmpRdWVyeShmdW5jdGlvbigkKSB7CgkKCQkkKGZ1bmN0aW9uKCkgewoJCSQoICcuZmwtbm9kZS02ZHhheWM5ZnJ2ODAgLmZsLXBob3RvLWltZycgKQoJCQkub24oICdtb3VzZWVudGVyJywgZnVuY3Rpb24oIGUgKSB7CgkJCQkkKCB0aGlzICkuZGF0YSggJ3RpdGxlJywgJCggdGhpcyApLmF0dHIoICd0aXRsZScgKSApLnJlbW92ZUF0dHIoICd0aXRsZScgKTsKCQkJfSApCgkJCS5vbiggJ21vdXNlbGVhdmUnLCBmdW5jdGlvbiggZSApewoJCQkJJCggdGhpcyApLmF0dHIoICd0aXRsZScsICQoIHRoaXMgKS5kYXRhKCAndGl0bGUnICkgKS5kYXRhKCAndGl0bGUnLCBudWxsICk7CgkJCX0gKTsKCX0pOwoJCXdpbmRvdy5fZmxfc3RyaW5nX3RvX3NsdWdfcmVnZXggPSAnYS16QS1aMC05JzsKfSk7CgooZnVuY3Rpb24oJCkgewoKCUZMQnVpbGRlclBvc3RHcmlkID0gZnVuY3Rpb24oc2V0dGluZ3MpCgl7CgkJdGhpcy5zZXR0aW5ncyAgICA9IHNldHRpbmdzOwoJCXRoaXMubm9kZUNsYXNzICAgPSAnLmZsLW5vZGUtJyArIHNldHRpbmdzLmlkOwoJCXRoaXMubWF0Y2hIZWlnaHQgPSBzZXR0aW5ncy5tYXRjaEhlaWdodDsKCgkJaWYgKCAnY29sdW1ucycgPT0gdGhpcy5zZXR0aW5ncy5sYXlvdXQgKSB7CgkJCXRoaXMud3JhcHBlckNsYXNzID0gdGhpcy5ub2RlQ2xhc3MgKyAnIC5mbC1wb3N0LWdyaWQnOwoJCQl0aGlzLnBvc3RDbGFzcyAgICA9IHRoaXMubm9kZUNsYXNzICsgJyAuZmwtcG9zdC1jb2x1bW4nOwoJCX0KCQllbHNlIHsKCQkJdGhpcy53cmFwcGVyQ2xhc3MgPSB0aGlzLm5vZGVDbGFzcyArICcgLmZsLXBvc3QtJyArIHRoaXMuc2V0dGluZ3MubGF5b3V0OwoJCQl0aGlzLnBvc3RDbGFzcyAgICA9IHRoaXMud3JhcHBlckNsYXNzICsgJy1wb3N0JzsKCQl9CgoJCWlmKHRoaXMuX2hhc1Bvc3RzKCkpIHsKCQkJdGhpcy5faW5pdExheW91dCgpOwoJCQl0aGlzLl9pbml0SW5maW5pdGVTY3JvbGwoKTsKCQl9Cgl9OwoKCUZMQnVpbGRlclBvc3RHcmlkLnByb3RvdHlwZSA9IHsKCgkJc2V0dGluZ3MgICAgICAgIDoge30sCgkJbm9kZUNsYXNzICAgICAgIDogJycsCgkJd3JhcHBlckNsYXNzICAgIDogJycsCgkJcG9zdENsYXNzICAgICAgIDogJycsCgkJZ2FsbGVyeSAgICAgICAgIDogbnVsbCwKCQljdXJyUGFnZQkJOiAxLAoJCXRvdGFsUGFnZXMJCTogMSwKCgkJX2hhc1Bvc3RzOiBmdW5jdGlvbigpCgkJewoJCQlyZXR1cm4gJCh0aGlzLnBvc3RDbGFzcykubGVuZ3RoID4gMDsKCQl9LAoKCQlfaW5pdExheW91dDogZnVuY3Rpb24oKQoJCXsKCQkJc3dpdGNoKHRoaXMuc2V0dGluZ3MubGF5b3V0KSB7CgoJCQkJY2FzZSAnY29sdW1ucyc6CgkJCQl0aGlzLl9jb2x1bW5zTGF5b3V0KCk7CgkJCQlicmVhazsKCgkJCQljYXNlICdncmlkJzoKCQkJCXRoaXMuX2dyaWRMYXlvdXQoKTsKCQkJCWJyZWFrOwoKCQkJCWNhc2UgJ2dhbGxlcnknOgoJCQkJdGhpcy5fZ2FsbGVyeUxheW91dCgpOwoJCQkJYnJlYWs7CgkJCX0KCgkJCSQodGhpcy5wb3N0Q2xhc3MpLmNzcygndmlzaWJpbGl0eScsICd2aXNpYmxlJyk7CgoJCQlGTEJ1aWxkZXJMYXlvdXQuX3Njcm9sbFRvRWxlbWVudCggJCggdGhpcy5ub2RlQ2xhc3MgKyAnIC5mbC1wYWdlZC1zY3JvbGwtdG8nICkgKTsKCQl9LAoKCQlfY29sdW1uc0xheW91dDogZnVuY3Rpb24oKQoJCXsKCQkJJCh0aGlzLndyYXBwZXJDbGFzcykuaW1hZ2VzTG9hZGVkKCAkLnByb3h5KCBmdW5jdGlvbigpIHsKCQkJCXRoaXMuX2dyaWRMYXlvdXRNYXRjaEhlaWdodCgpOwoJCQl9LCB0aGlzICkgKTsKCgkJCSQoIHdpbmRvdyApLm9uKCAncmVzaXplJywgJC5wcm94eSggZnVuY3Rpb24oKXsKCQkJCSQodGhpcy53cmFwcGVyQ2xhc3MpLmltYWdlc0xvYWRlZCggJC5wcm94eSggZnVuY3Rpb24oKSB7CgkJCQkJdGhpcy5fZ3JpZExheW91dE1hdGNoSGVpZ2h0KCk7CgkJCQl9LCB0aGlzICkgKTsKCQkJfSwgdGhpcyApICk7CgkJfSwKCgkJX2dyaWRMYXlvdXQ6IGZ1bmN0aW9uKCkKCQl7CgkJCXZhciB3cmFwID0gJCh0aGlzLndyYXBwZXJDbGFzcyk7CgoJCQl3cmFwLm1hc29ucnkoewoJCQkJY29sdW1uV2lkdGggICAgICAgICA6IHRoaXMubm9kZUNsYXNzICsgJyAuZmwtcG9zdC1ncmlkLXNpemVyJywKCQkJCWd1dHRlciAgICAgICAgICAgICAgOiBwYXJzZUludCh0aGlzLnNldHRpbmdzLnBvc3RTcGFjaW5nKSwKCQkJCWlzRml0V2lkdGggICAgICAgICAgOiB0cnVlLAoJCQkJaXRlbVNlbGVjdG9yICAgICAgICA6IHRoaXMucG9zdENsYXNzLAoJCQkJdHJhbnNpdGlvbkR1cmF0aW9uICA6IDAsCgkJCQlpc1JUTCAgICAgICAgICAgICAgIDogdGhpcy5zZXR0aW5ncy5pc1JUTAoJCQl9KTsKCgkJCXdyYXAuaW1hZ2VzTG9hZGVkKCAkLnByb3h5KCBmdW5jdGlvbigpIHsKCQkJCXRoaXMuX2dyaWRMYXlvdXRNYXRjaEhlaWdodCgpOwoJCQkJd3JhcC5tYXNvbnJ5KCk7CgkJCX0sIHRoaXMgKSApOwoKCQkJJCh3aW5kb3cpLnNjcm9sbCgkLmRlYm91bmNlKCAyNSwgZnVuY3Rpb24oKXsKCQkJCXdyYXAubWFzb25yeSgpCgkJCX0pKTsKCgkJfSwKCgkJX2dyaWRMYXlvdXRNYXRjaEhlaWdodDogZnVuY3Rpb24oKQoJCXsKCQkJdmFyIGhpZ2hlc3RCb3ggPSAwOwoKCQkJaWYgKCAhIHRoaXMuX2lzTWF0Y2hIZWlnaHQoKSApIHsKCQkJCSQodGhpcy5ub2RlQ2xhc3MgKyAnIC5mbC1wb3N0LWdyaWQtcG9zdCcpLmNzcygnaGVpZ2h0JywgJycpOwoJCQkJcmV0dXJuOwoJCQl9CgogICAgICAgICAgICAkKHRoaXMubm9kZUNsYXNzICsgJyAuZmwtcG9zdC1ncmlkLXBvc3QnKS5jc3MoJ2hlaWdodCcsICcnKS5lYWNoKGZ1bmN0aW9uKCl7CgogICAgICAgICAgICAgICAgaWYoJCh0aGlzKS5oZWlnaHQoKSA+IGhpZ2hlc3RCb3gpIHsKICAgICAgICAgICAgICAgIAloaWdoZXN0Qm94ID0gJCh0aGlzKS5oZWlnaHQoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAkKHRoaXMubm9kZUNsYXNzICsgJyAuZmwtcG9zdC1ncmlkLXBvc3QnKS5oZWlnaHQoaGlnaGVzdEJveCk7CgkJfSwKCgkJX2lzTWF0Y2hIZWlnaHQ6IGZ1bmN0aW9uKCl7CgkJCXZhciB3aWR0aCAJCT0gJCggd2luZG93ICkud2lkdGgoKSwKCQkJCWJyZWFrcG9pbnRzID0gRkxCdWlsZGVyTGF5b3V0Q29uZmlnLmJyZWFrcG9pbnRzLAoJCQkJbWF0Y2hMYXJnZSA9ICcnICE9IHRoaXMubWF0Y2hIZWlnaHQubGFyZ2UgPyB0aGlzLm1hdGNoSGVpZ2h0LmxhcmdlIDogdGhpcy5tYXRjaEhlaWdodC5kZWZhdWx0LAoJCQkJbWF0Y2hNZWRpdW0gPSAnJyAhPSB0aGlzLm1hdGNoSGVpZ2h0Lm1lZGl1bSA/IHRoaXMubWF0Y2hIZWlnaHQubWVkaXVtIDogdGhpcy5tYXRjaEhlaWdodC5kZWZhdWx0LAoJCQkJbWF0Y2hTbWFsbCAgPSAnJyAhPSB0aGlzLm1hdGNoSGVpZ2h0LnJlc3BvbnNpdmUgPyB0aGlzLm1hdGNoSGVpZ2h0LnJlc3BvbnNpdmUgOiB0aGlzLm1hdGNoSGVpZ2h0LmRlZmF1bHQ7CgoJCQlyZXR1cm4gKHdpZHRoID4gYnJlYWtwb2ludHMubWVkaXVtICYmIDEgPT0gdGhpcy5tYXRjaEhlaWdodC5kZWZhdWx0KSAvLyBNdXN0IGNoZWNrIG1lZGl1bSBoZXJlIGZvciBiYWNrd2FyZHMgY29tcGF0CgkJCQkgICB8fCAod2lkdGggPiBicmVha3BvaW50cy5tZWRpdW0gJiYgd2lkdGggPD0gYnJlYWtwb2ludHMubGFyZ2UgJiYgMSA9PSBtYXRjaExhcmdlKQoJCQkJICAgfHwgKHdpZHRoID4gYnJlYWtwb2ludHMuc21hbGwgJiYgd2lkdGggPD0gYnJlYWtwb2ludHMubWVkaXVtICYmIDEgPT0gbWF0Y2hNZWRpdW0pCgkJCQkgICB8fCAod2lkdGggPD0gYnJlYWtwb2ludHMuc21hbGwgJiYgMSA9PSBtYXRjaFNtYWxsKTsKCQl9LAoKCQlfZ2FsbGVyeUxheW91dDogZnVuY3Rpb24oKQoJCXsKCQkJdGhpcy5nYWxsZXJ5ID0gbmV3IEZMQnVpbGRlckdhbGxlcnlHcmlkKHsKCQkJCSd3cmFwU2VsZWN0b3InIDogdGhpcy53cmFwcGVyQ2xhc3MsCgkJCQknaXRlbVNlbGVjdG9yJyA6ICcuZmwtcG9zdC1nYWxsZXJ5LXBvc3QnLAoJCQkJJ2lzUlRMJyAgICAgICAgOiB0aGlzLnNldHRpbmdzLmlzUlRMCgkJCX0pOwoJCX0sCgoJCV9pbml0SW5maW5pdGVTY3JvbGw6IGZ1bmN0aW9uKCkKCQl7CgkJCXZhciBpc1Njcm9sbCA9ICdzY3JvbGwnID09IHRoaXMuc2V0dGluZ3MucGFnaW5hdGlvbiB8fCAnbG9hZF9tb3JlJyA9PSB0aGlzLnNldHRpbmdzLnBhZ2luYXRpb24sCgkJCQlwYWdlcwkgPSAkKCB0aGlzLm5vZGVDbGFzcyArICcgLmZsLWJ1aWxkZXItcGFnaW5hdGlvbicgKS5maW5kKCAnbGkgLnBhZ2UtbnVtYmVyczpub3QoLm5leHQpJyApOwoKCQkJaWYoIHBhZ2VzLmxlbmd0aCA+IDEpIHsKCQkJCXRvdGFsID0gcGFnZXMubGFzdCgpLnRleHQoKS5yZXBsYWNlKCAvXEQvZywgJycgKQoJCQkJdGhpcy50b3RhbFBhZ2VzID0gcGFyc2VJbnQoIHRvdGFsICk7CgkJCX0KCgkJCWlmKCBpc1Njcm9sbCAmJiB0aGlzLnRvdGFsUGFnZXMgPiAxICYmICd1bmRlZmluZWQnID09PSB0eXBlb2YgRkxCdWlsZGVyICkgewoJCQkJdGhpcy5faW5maW5pdGVTY3JvbGwoKTsKCgkJCQlpZiggJ2xvYWRfbW9yZScgPT0gdGhpcy5zZXR0aW5ncy5wYWdpbmF0aW9uICkgewoJCQkJCXRoaXMuX2luZmluaXRlU2Nyb2xsTG9hZE1vcmUoKTsKCQkJCX0KCQkJfQoJCX0sCgoJCV9pbmZpbml0ZVNjcm9sbDogZnVuY3Rpb24oc2V0dGluZ3MpCgkJewoJCQl2YXIgcGF0aCAJCT0gJCh0aGlzLm5vZGVDbGFzcyArICcgLmZsLWJ1aWxkZXItcGFnaW5hdGlvbiBhLm5leHQnKS5hdHRyKCdocmVmJyksCgkJCQlwYWdlUGF0dGVybiA9IC8oLio/KFwvfFwmfFw/KXBhZ2VkLVswLTldezEsfShcL3w9KSkoWzAtOV17MSx9KSsoLiopLywKCQkJCXdwUGF0dGVybiAgID0gL14oLio/XC8/cGFnZVwvPykoPzpcZCspKC4qPyQpLywKCQkJCXBhZ2VNYXRjaGVkID0gbnVsbCwKCQkJCXNjcm9sbERhdGEJPSB7CgkJCQkJbmF2U2VsZWN0b3IgICAgIDogdGhpcy5ub2RlQ2xhc3MgKyAnIC5mbC1idWlsZGVyLXBhZ2luYXRpb24nLAoJCQkJCW5leHRTZWxlY3RvciAgICA6IHRoaXMubm9kZUNsYXNzICsgJyAuZmwtYnVpbGRlci1wYWdpbmF0aW9uIGEubmV4dCcsCgkJCQkJaXRlbVNlbGVjdG9yICAgIDogdGhpcy5wb3N0Q2xhc3MsCgkJCQkJcHJlZmlsbCAgICAgICAgIDogdHJ1ZSwKCQkJCQlidWZmZXJQeCAgICAgICAgOiAyMDAsCgkJCQkJbG9hZGluZyAgICAgICAgIDogewoJCQkJCQltc2dUZXh0ICAgICAgICAgOiAnTG9hZGluZycsCgkJCQkJCWZpbmlzaGVkTXNnICAgICA6ICcnLAoJCQkJCQlpbWcgICAgICAgICAgICAgOiBGTEJ1aWxkZXJMYXlvdXRDb25maWcucGF0aHMucGx1Z2luVXJsICsgJ2ltZy9hamF4LWxvYWRlci1ncmV5LmdpZicsCgkJCQkJCXNwZWVkICAgICAgICAgICA6IDEKCQkJCQl9CgkJCQl9OwoKCQkJLy8gRGVmaW5lIHBhdGggc2luY2UgSW5maW5pdGVzY3JvbGwgaW5jcmVtZW50ZWQgb3VyIGN1c3RvbSBwYWdpbmF0aW9uICcvcGFnZWQtMi8yLycgdG8gJy9wYWdlZC0zLzIvJy4KCQkJaWYgKCBwYWdlUGF0dGVybi50ZXN0KCBwYXRoICkgKSB7CgkJCQlzY3JvbGxEYXRhLnBhdGggPSBmdW5jdGlvbiggY3VyclBhZ2UgKXsKCQkJCQlwYWdlTWF0Y2hlZCA9IHBhdGgubWF0Y2goIHBhZ2VQYXR0ZXJuICk7CgkJCQkJcGF0aCA9IHBhZ2VNYXRjaGVkWzFdICsgY3VyclBhZ2UgKyBwYWdlTWF0Y2hlZFs1XTsKCQkJCQlyZXR1cm4gcGF0aDsKCQkJCX0KCQkJfQoJCQllbHNlIGlmICggd3BQYXR0ZXJuLnRlc3QoIHBhdGggKSApIHsKCQkJCXNjcm9sbERhdGEucGF0aCA9IHBhdGgubWF0Y2goIHdwUGF0dGVybiApLnNsaWNlKCAxICk7CgkJCX0KCgkJCSQodGhpcy53cmFwcGVyQ2xhc3MpLmluZmluaXRlc2Nyb2xsKCBzY3JvbGxEYXRhLCAkLnByb3h5KHRoaXMuX2luZmluaXRlU2Nyb2xsQ29tcGxldGUsIHRoaXMpICk7CgoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7CgkJCQkkKHdpbmRvdykudHJpZ2dlcigncmVzaXplJyk7CgkJCX0sIDEwMCk7CgkJfSwKCgkJX2luZmluaXRlU2Nyb2xsQ29tcGxldGU6IGZ1bmN0aW9uKGVsZW1lbnRzKQoJCXsKCQkJdmFyIHdyYXAgPSAkKHRoaXMud3JhcHBlckNsYXNzKTsKCgkJCWVsZW1lbnRzID0gJChlbGVtZW50cyk7CgoJCQlpZih0aGlzLnNldHRpbmdzLmxheW91dCA9PSAnY29sdW1ucycpIHsKCQkJCXdyYXAuaW1hZ2VzTG9hZGVkKCAkLnByb3h5KCBmdW5jdGlvbigpIHsKCQkJCQl0aGlzLl9ncmlkTGF5b3V0TWF0Y2hIZWlnaHQoKTsKCQkJCQllbGVtZW50cy5jc3MoJ3Zpc2liaWxpdHknLCAndmlzaWJsZScpOwoJCQkJfSwgdGhpcyApICk7CgkJCX0KCQkJZWxzZSBpZih0aGlzLnNldHRpbmdzLmxheW91dCA9PSAnZ3JpZCcpIHsKCQkJCXdyYXAuaW1hZ2VzTG9hZGVkKCAkLnByb3h5KCBmdW5jdGlvbigpIHsKCQkJCQl0aGlzLl9ncmlkTGF5b3V0TWF0Y2hIZWlnaHQoKTsKCQkJCQl3cmFwLm1hc29ucnkoJ2FwcGVuZGVkJywgZWxlbWVudHMpOwoJCQkJCXdyYXAubWFzb25yeSgpOwoJCQkJCWVsZW1lbnRzLmNzcygndmlzaWJpbGl0eScsICd2aXNpYmxlJyk7CgkJCQl9LCB0aGlzICkgKTsKCQkJfQoJCQllbHNlIGlmKHRoaXMuc2V0dGluZ3MubGF5b3V0ID09ICdnYWxsZXJ5JykgewoJCQkJdGhpcy5nYWxsZXJ5LnJlc2l6ZSgpOwoJCQkJZWxlbWVudHMuY3NzKCd2aXNpYmlsaXR5JywgJ3Zpc2libGUnKTsKCQkJfQoKCQkJaWYoICdsb2FkX21vcmUnID09IHRoaXMuc2V0dGluZ3MucGFnaW5hdGlvbiApIHsKCQkJCSQoIHRoaXMud3JhcHBlckNsYXNzICsgJyAuZmwtcG9zdC1ncmlkLXNpemVyLm1hc29ucnktYnJpY2snICkuYXBwZW5kVG8oIHRoaXMud3JhcHBlckNsYXNzICk7CgkJCQkkKCAnI2luZnNjci1sb2FkaW5nJyApLmFwcGVuZFRvKCB0aGlzLndyYXBwZXJDbGFzcyApOwoJCQl9CgoJCQllbGVtZW50cy5maW5kKCAnaW1nW3NyY3NldF0nICkuZWFjaCggZnVuY3Rpb24oIGluZGV4LCBpbWcgKSB7CgkJCQlpbWcub3V0ZXJIVE1MID0gaW1nLm91dGVySFRNTDsKCQkJfSk7CgoJCQl0aGlzLmN1cnJQYWdlKys7CgoJCQl0aGlzLl9yZW1vdmVMb2FkTW9yZUJ1dHRvbigpOwoJCX0sCgoJCV9pbmZpbml0ZVNjcm9sbExvYWRNb3JlOiBmdW5jdGlvbigpCgkJewoJCQl2YXIgd3JhcCA9ICQoIHRoaXMud3JhcHBlckNsYXNzICk7CgoJCQkkKCB3aW5kb3cgKS51bmJpbmQoICcuaW5mc2NyJyApOwoKCQkJJCh0aGlzLm5vZGVDbGFzcyArICcgLmZsLWJ1aWxkZXItcGFnaW5hdGlvbi1sb2FkLW1vcmUgLmZsLWJ1dHRvbicpLm9uKCAnY2xpY2snLCBmdW5jdGlvbigpewoJCQkJaWYoICQoICcjaW5mc2NyLWxvYWRpbmcnICkubGVuZ3RoICkgewoJCQkJCSQoICcjaW5mc2NyLWxvYWRpbmcnICkucmVtb3ZlKCk7CgkJCQl9CgoJCQkJd3JhcC5pbmZpbml0ZXNjcm9sbCggJ3JldHJpZXZlJyApOwoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9KTsKCQl9LAoKCQlfcmVtb3ZlTG9hZE1vcmVCdXR0b246IGZ1bmN0aW9uKCkKCQl7CgkJCWlmICggJ2xvYWRfbW9yZScgPT0gdGhpcy5zZXR0aW5ncy5wYWdpbmF0aW9uICYmIHRoaXMudG90YWxQYWdlcyA9PSB0aGlzLmN1cnJQYWdlICkgewoJCQkJJCggdGhpcy5ub2RlQ2xhc3MgKyAnIC5mbC1idWlsZGVyLXBhZ2luYXRpb24tbG9hZC1tb3JlJyApLnJlbW92ZSgpOwoJCQl9CgkJfQoJfTsKCn0pKGpRdWVyeSk7CihmdW5jdGlvbigkKSB7CgoJJChmdW5jdGlvbigpIHsKCgkJbmV3IEZMQnVpbGRlclBvc3RHcmlkKHsKCQkJaWQ6ICdzMG1oMXo1dGVhcHEnLAoJCQlsYXlvdXQ6ICdncmlkJywKCQkJcGFnaW5hdGlvbjogJ25vbmUnLAoJCQlwb3N0U3BhY2luZzogJzYwJywKCQkJcG9zdFdpZHRoOiAnMzQwJywKCQkJbWF0Y2hIZWlnaHQ6IHsKCQkJCWRlZmF1bHQJICAgOiAnMScsCgkJCQlsYXJnZSAJICAgOiAnJywKCQkJCW1lZGl1bSAJICAgOiAnJywKCQkJCXJlc3BvbnNpdmUgOiAnJwoJCQl9LAoJCQlpc1JUTDogZmFsc2UJCX0pOwoKCQkJCQkkKCcuZmwtbm9kZS1zMG1oMXo1dGVhcHEgLmZsLXBvc3QtZ3JpZCcpLm1hc29ucnkoJ3JlbG9hZEl0ZW1zJyk7CgkJCX0pOwoKfSkoalF1ZXJ5KTsKalF1ZXJ5KGZ1bmN0aW9uKCQpIHsKCQoJCSQoZnVuY3Rpb24oKSB7CgkJJCggJy5mbC1ub2RlLWFna3kxcHE4enhmaSAuZmwtcGhvdG8taW1nJyApCgkJCS5vbiggJ21vdXNlZW50ZXInLCBmdW5jdGlvbiggZSApIHsKCQkJCSQoIHRoaXMgKS5kYXRhKCAndGl0bGUnLCAkKCB0aGlzICkuYXR0ciggJ3RpdGxlJyApICkucmVtb3ZlQXR0ciggJ3RpdGxlJyApOwoJCQl9ICkKCQkJLm9uKCAnbW91c2VsZWF2ZScsIGZ1bmN0aW9uKCBlICl7CgkJCQkkKCB0aGlzICkuYXR0ciggJ3RpdGxlJywgJCggdGhpcyApLmRhdGEoICd0aXRsZScgKSApLmRhdGEoICd0aXRsZScsIG51bGwgKTsKCQkJfSApOwoJfSk7CgkJd2luZG93Ll9mbF9zdHJpbmdfdG9fc2x1Z19yZWdleCA9ICdhLXpBLVowLTknOwp9KTsKCi8qIFN0YXJ0IEdsb2JhbCBOb2RlIEN1c3RvbSBKUyAqLwoKLyogRW5kIEdsb2JhbCBOb2RlIEN1c3RvbSBKUyAqLwoKCi8qIFN0YXJ0IExheW91dCBDdXN0b20gSlMgKi8KCi8qIEVuZCBMYXlvdXQgQ3VzdG9tIEpTICovCgoKICAgICAgICAgICAgOyhmdW5jdGlvbigkKSB7CiAgICAgICAgICAgIAkkKCcucHAtZG93bi1hcnJvdycpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAJCXZhciBjdXJyZW50Um93ID0gJCgnLmZsLW5vZGUtJyArICQodGhpcykuZGF0YSgncm93LWlkJykpOwogICAgICAgICAgICAJCXZhciB0b3BPZmZzZXQJPSAoICcnID09PSAkKHRoaXMpLmRhdGEoJ3RvcC1vZmZzZXQnKSApID8gMCA6ICQodGhpcykuZGF0YSgndG9wLW9mZnNldCcpOwogICAgICAgICAgICAgICAgICAgIHZhciBhZG1pbkJhciAgICA9ICQoJ2JvZHknKS5oYXNDbGFzcygnYWRtaW4tYmFyJykgPyAzMiA6IDA7CiAgICAgICAgICAgIAkJdmFyIHRyU3BlZWQJCT0gJCh0aGlzKS5kYXRhKCd0cmFuc2l0aW9uLXNwZWVkJyk7CiAgICAgICAgICAgIAkJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewogICAgICAgICAgICAJCQlzY3JvbGxUb3A6ICggY3VycmVudFJvdy5vZmZzZXQoKS50b3AgKyBjdXJyZW50Um93Lm91dGVySGVpZ2h0KCkgKSAtICggdG9wT2Zmc2V0ICsgYWRtaW5CYXIgKQogICAgICAgICAgICAJCX0sIHRyU3BlZWQpOwogICAgICAgICAgICAJfSk7CiAgICAgICAgICAgIH0pKGpRdWVyeSk7CgogICAgICAgICAgICAvKiEKICogQm93c2VyIC0gYSBicm93c2VyIGRldGVjdG9yCiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9kZWQvYm93c2VyCiAqIE1JVCBMaWNlbnNlIHwgKGMpIER1c3RpbiBEaWF6IDIwMTUKICovCgohZnVuY3Rpb24gKG5hbWUsIGRlZmluaXRpb24pIHsKICBpZiAodHlwZW9mIG1vZHVsZSAhPSAndW5kZWZpbmVkJyAmJiBtb2R1bGUuZXhwb3J0cykgbW9kdWxlLmV4cG9ydHMgPSBkZWZpbml0aW9uKCkKICBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkgZGVmaW5lKG5hbWUsIGRlZmluaXRpb24pCiAgZWxzZSB0aGlzW25hbWVdID0gZGVmaW5pdGlvbigpCn0oJ2Jvd3NlcicsIGZ1bmN0aW9uICgpIHsKICAvKioKICAgICogU2VlIHVzZXJhZ2VudHMuanMgZm9yIGV4YW1wbGVzIG9mIG5hdmlnYXRvci51c2VyQWdlbnQKICAgICovCgogIHZhciB0ID0gdHJ1ZQoKICBmdW5jdGlvbiBkZXRlY3QodWEpIHsKCiAgICBmdW5jdGlvbiBnZXRGaXJzdE1hdGNoKHJlZ2V4KSB7CiAgICAgIHZhciBtYXRjaCA9IHVhLm1hdGNoKHJlZ2V4KTsKICAgICAgcmV0dXJuIChtYXRjaCAmJiBtYXRjaC5sZW5ndGggPiAxICYmIG1hdGNoWzFdKSB8fCAnJzsKICAgIH0KCiAgICBmdW5jdGlvbiBnZXRTZWNvbmRNYXRjaChyZWdleCkgewogICAgICB2YXIgbWF0Y2ggPSB1YS5tYXRjaChyZWdleCk7CiAgICAgIHJldHVybiAobWF0Y2ggJiYgbWF0Y2gubGVuZ3RoID4gMSAmJiBtYXRjaFsyXSkgfHwgJyc7CiAgICB9CgogICAgdmFyIGlvc2RldmljZSA9IGdldEZpcnN0TWF0Y2goLyhpcG9kfGlwaG9uZXxpcGFkKS9pKS50b0xvd2VyQ2FzZSgpCiAgICAgICwgbGlrZUFuZHJvaWQgPSAvbGlrZSBhbmRyb2lkL2kudGVzdCh1YSkKICAgICAgLCBhbmRyb2lkID0gIWxpa2VBbmRyb2lkICYmIC9hbmRyb2lkL2kudGVzdCh1YSkKICAgICAgLCBuZXh1c01vYmlsZSA9IC9uZXh1c1xzKlswLTZdXHMqL2kudGVzdCh1YSkKICAgICAgLCBuZXh1c1RhYmxldCA9ICFuZXh1c01vYmlsZSAmJiAvbmV4dXNccypbMC05XSsvaS50ZXN0KHVhKQogICAgICAsIGNocm9tZW9zID0gL0NyT1MvLnRlc3QodWEpCiAgICAgICwgc2lsayA9IC9zaWxrL2kudGVzdCh1YSkKICAgICAgLCBzYWlsZmlzaCA9IC9zYWlsZmlzaC9pLnRlc3QodWEpCiAgICAgICwgdGl6ZW4gPSAvdGl6ZW4vaS50ZXN0KHVhKQogICAgICAsIHdlYm9zID0gLyh3ZWJ8aHB3KW9zL2kudGVzdCh1YSkKICAgICAgLCB3aW5kb3dzcGhvbmUgPSAvd2luZG93cyBwaG9uZS9pLnRlc3QodWEpCiAgICAgICwgd2luZG93cyA9ICF3aW5kb3dzcGhvbmUgJiYgL3dpbmRvd3MvaS50ZXN0KHVhKQogICAgICAsIG1hYyA9ICFpb3NkZXZpY2UgJiYgIXNpbGsgJiYgL21hY2ludG9zaC9pLnRlc3QodWEpCiAgICAgICwgbGludXggPSAhYW5kcm9pZCAmJiAhc2FpbGZpc2ggJiYgIXRpemVuICYmICF3ZWJvcyAmJiAvbGludXgvaS50ZXN0KHVhKQogICAgICAsIGVkZ2VWZXJzaW9uID0gZ2V0Rmlyc3RNYXRjaCgvZWRnZVwvKFxkKyhcLlxkKyk/KS9pKQogICAgICAsIHZlcnNpb25JZGVudGlmaWVyID0gZ2V0Rmlyc3RNYXRjaCgvdmVyc2lvblwvKFxkKyhcLlxkKyk/KS9pKQogICAgICAsIHRhYmxldCA9IC90YWJsZXQvaS50ZXN0KHVhKQogICAgICAsIG1vYmlsZSA9ICF0YWJsZXQgJiYgL1teLV1tb2JpL2kudGVzdCh1YSkKICAgICAgLCB4Ym94ID0gL3hib3gvaS50ZXN0KHVhKQogICAgICAsIHJlc3VsdAoKICAgIGlmICgvb3BlcmF8b3ByfG9waW9zL2kudGVzdCh1YSkpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdPcGVyYScKICAgICAgLCBvcGVyYTogdAogICAgICAsIHZlcnNpb246IHZlcnNpb25JZGVudGlmaWVyIHx8IGdldEZpcnN0TWF0Y2goLyg/Om9wZXJhfG9wcnxvcGlvcylbXHNcL10oXGQrKFwuXGQrKT8pL2kpCiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKC9jb2FzdC9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnT3BlcmEgQ29hc3QnCiAgICAgICAgLCBjb2FzdDogdAogICAgICAgICwgdmVyc2lvbjogdmVyc2lvbklkZW50aWZpZXIgfHwgZ2V0Rmlyc3RNYXRjaCgvKD86Y29hc3QpW1xzXC9dKFxkKyhcLlxkKyk/KS9pKQogICAgICB9CiAgICB9CiAgICBlbHNlIGlmICgveWFicm93c2VyL2kudGVzdCh1YSkpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdZYW5kZXggQnJvd3NlcicKICAgICAgLCB5YW5kZXhicm93c2VyOiB0CiAgICAgICwgdmVyc2lvbjogdmVyc2lvbklkZW50aWZpZXIgfHwgZ2V0Rmlyc3RNYXRjaCgvKD86eWFicm93c2VyKVtcc1wvXShcZCsoXC5cZCspPykvaSkKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoL3VjYnJvd3Nlci9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICAgIG5hbWU6ICdVQyBCcm93c2VyJwogICAgICAgICwgdWNicm93c2VyOiB0CiAgICAgICAgLCB2ZXJzaW9uOiBnZXRGaXJzdE1hdGNoKC8oPzp1Y2Jyb3dzZXIpW1xzXC9dKFxkKyg/OlwuXGQrKSspL2kpCiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKC9teGlvcy9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnTWF4dGhvbicKICAgICAgICAsIG1heHRob246IHQKICAgICAgICAsIHZlcnNpb246IGdldEZpcnN0TWF0Y2goLyg/Om14aW9zKVtcc1wvXShcZCsoPzpcLlxkKykrKS9pKQogICAgICB9CiAgICB9CiAgICBlbHNlIGlmICgvZXBpcGhhbnkvaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ0VwaXBoYW55JwogICAgICAgICwgZXBpcGhhbnk6IHQKICAgICAgICAsIHZlcnNpb246IGdldEZpcnN0TWF0Y2goLyg/OmVwaXBoYW55KVtcc1wvXShcZCsoPzpcLlxkKykrKS9pKQogICAgICB9CiAgICB9CiAgICBlbHNlIGlmICgvcHVmZmluL2kudGVzdCh1YSkpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdQdWZmaW4nCiAgICAgICAgLCBwdWZmaW46IHQKICAgICAgICAsIHZlcnNpb246IGdldEZpcnN0TWF0Y2goLyg/OnB1ZmZpbilbXHNcL10oXGQrKD86XC5cZCspPykvaSkKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoL3NsZWlwbmlyL2kudGVzdCh1YSkpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdTbGVpcG5pcicKICAgICAgICAsIHNsZWlwbmlyOiB0CiAgICAgICAgLCB2ZXJzaW9uOiBnZXRGaXJzdE1hdGNoKC8oPzpzbGVpcG5pcilbXHNcL10oXGQrKD86XC5cZCspKykvaSkKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoL2stbWVsZW9uL2kudGVzdCh1YSkpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdLLU1lbGVvbicKICAgICAgICAsIGtNZWxlb246IHQKICAgICAgICAsIHZlcnNpb246IGdldEZpcnN0TWF0Y2goLyg/OmstbWVsZW9uKVtcc1wvXShcZCsoPzpcLlxkKykrKS9pKQogICAgICB9CiAgICB9CiAgICBlbHNlIGlmICh3aW5kb3dzcGhvbmUpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdXaW5kb3dzIFBob25lJwogICAgICAsIHdpbmRvd3NwaG9uZTogdAogICAgICB9CiAgICAgIGlmIChlZGdlVmVyc2lvbikgewogICAgICAgIHJlc3VsdC5tc2VkZ2UgPSB0CiAgICAgICAgcmVzdWx0LnZlcnNpb24gPSBlZGdlVmVyc2lvbgogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgIHJlc3VsdC5tc2llID0gdAogICAgICAgIHJlc3VsdC52ZXJzaW9uID0gZ2V0Rmlyc3RNYXRjaCgvaWVtb2JpbGVcLyhcZCsoXC5cZCspPykvaSkKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoL21zaWV8dHJpZGVudC9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnSW50ZXJuZXQgRXhwbG9yZXInCiAgICAgICwgbXNpZTogdAogICAgICAsIHZlcnNpb246IGdldEZpcnN0TWF0Y2goLyg/Om1zaWUgfHJ2OikoXGQrKFwuXGQrKT8pL2kpCiAgICAgIH0KICAgIH0gZWxzZSBpZiAoY2hyb21lb3MpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdDaHJvbWUnCiAgICAgICwgY2hyb21lb3M6IHQKICAgICAgLCBjaHJvbWVCb29rOiB0CiAgICAgICwgY2hyb21lOiB0CiAgICAgICwgdmVyc2lvbjogZ2V0Rmlyc3RNYXRjaCgvKD86Y2hyb21lfGNyaW9zfGNybW8pXC8oXGQrKFwuXGQrKT8pL2kpCiAgICAgIH0KICAgIH0gZWxzZSBpZiAoL2Nocm9tZS4rPyBlZGdlL2kudGVzdCh1YSkpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdNaWNyb3NvZnQgRWRnZScKICAgICAgLCBtc2VkZ2U6IHQKICAgICAgLCB2ZXJzaW9uOiBlZGdlVmVyc2lvbgogICAgICB9CiAgICB9CiAgICBlbHNlIGlmICgvdml2YWxkaS9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnVml2YWxkaScKICAgICAgICAsIHZpdmFsZGk6IHQKICAgICAgICAsIHZlcnNpb246IGdldEZpcnN0TWF0Y2goL3ZpdmFsZGlcLyhcZCsoXC5cZCspPykvaSkgfHwgdmVyc2lvbklkZW50aWZpZXIKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoc2FpbGZpc2gpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdTYWlsZmlzaCcKICAgICAgLCBzYWlsZmlzaDogdAogICAgICAsIHZlcnNpb246IGdldEZpcnN0TWF0Y2goL3NhaWxmaXNoXHM/YnJvd3NlclwvKFxkKyhcLlxkKyk/KS9pKQogICAgICB9CiAgICB9CiAgICBlbHNlIGlmICgvc2VhbW9ua2V5XC8vaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ1NlYU1vbmtleScKICAgICAgLCBzZWFtb25rZXk6IHQKICAgICAgLCB2ZXJzaW9uOiBnZXRGaXJzdE1hdGNoKC9zZWFtb25rZXlcLyhcZCsoXC5cZCspPykvaSkKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoL2ZpcmVmb3h8aWNld2Vhc2VsfGZ4aW9zL2kudGVzdCh1YSkpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdGaXJlZm94JwogICAgICAsIGZpcmVmb3g6IHQKICAgICAgLCB2ZXJzaW9uOiBnZXRGaXJzdE1hdGNoKC8oPzpmaXJlZm94fGljZXdlYXNlbHxmeGlvcylbIFwvXShcZCsoXC5cZCspPykvaSkKICAgICAgfQogICAgICBpZiAoL1woKG1vYmlsZXx0YWJsZXQpO1teXCldKnJ2OltcZFwuXStcKS9pLnRlc3QodWEpKSB7CiAgICAgICAgcmVzdWx0LmZpcmVmb3hvcyA9IHQKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoc2lsaykgewogICAgICByZXN1bHQgPSAgewogICAgICAgIG5hbWU6ICdBbWF6b24gU2lsaycKICAgICAgLCBzaWxrOiB0CiAgICAgICwgdmVyc2lvbiA6IGdldEZpcnN0TWF0Y2goL3NpbGtcLyhcZCsoXC5cZCspPykvaSkKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoL3BoYW50b20vaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ1BoYW50b21KUycKICAgICAgLCBwaGFudG9tOiB0CiAgICAgICwgdmVyc2lvbjogZ2V0Rmlyc3RNYXRjaCgvcGhhbnRvbWpzXC8oXGQrKFwuXGQrKT8pL2kpCiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKC9zbGltZXJqcy9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnU2xpbWVySlMnCiAgICAgICAgLCBzbGltZXI6IHQKICAgICAgICAsIHZlcnNpb246IGdldEZpcnN0TWF0Y2goL3NsaW1lcmpzXC8oXGQrKFwuXGQrKT8pL2kpCiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKC9ibGFja2JlcnJ5fFxiYmJcZCsvaS50ZXN0KHVhKSB8fCAvcmltXHN0YWJsZXQvaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ0JsYWNrQmVycnknCiAgICAgICwgYmxhY2tiZXJyeTogdAogICAgICAsIHZlcnNpb246IHZlcnNpb25JZGVudGlmaWVyIHx8IGdldEZpcnN0TWF0Y2goL2JsYWNrYmVycnlbXGRdK1wvKFxkKyhcLlxkKyk/KS9pKQogICAgICB9CiAgICB9CiAgICBlbHNlIGlmICh3ZWJvcykgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ1dlYk9TJwogICAgICAsIHdlYm9zOiB0CiAgICAgICwgdmVyc2lvbjogdmVyc2lvbklkZW50aWZpZXIgfHwgZ2V0Rmlyc3RNYXRjaCgvdyg/OmViKT9vc2Jyb3dzZXJcLyhcZCsoXC5cZCspPykvaSkKICAgICAgfTsKICAgICAgaWYoIC90b3VjaHBhZFwvL2kudGVzdCh1YSkgKXsKICAgICAgICByZXN1bHQudG91Y2hwYWQgPSB0OwogICAgICB9CiAgICB9CiAgICBlbHNlIGlmICgvYmFkYS9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnQmFkYScKICAgICAgLCBiYWRhOiB0CiAgICAgICwgdmVyc2lvbjogZ2V0Rmlyc3RNYXRjaCgvZG9sZmluXC8oXGQrKFwuXGQrKT8pL2kpCiAgICAgIH07CiAgICB9CiAgICBlbHNlIGlmICh0aXplbikgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ1RpemVuJwogICAgICAsIHRpemVuOiB0CiAgICAgICwgdmVyc2lvbjogZ2V0Rmlyc3RNYXRjaCgvKD86dGl6ZW5ccz8pP2Jyb3dzZXJcLyhcZCsoXC5cZCspPykvaSkgfHwgdmVyc2lvbklkZW50aWZpZXIKICAgICAgfTsKICAgIH0KICAgIGVsc2UgaWYgKC9xdXB6aWxsYS9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnUXVwWmlsbGEnCiAgICAgICAgLCBxdXB6aWxsYTogdAogICAgICAgICwgdmVyc2lvbjogZ2V0Rmlyc3RNYXRjaCgvKD86cXVwemlsbGEpW1xzXC9dKFxkKyg/OlwuXGQrKSspL2kpIHx8IHZlcnNpb25JZGVudGlmaWVyCiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKC9jaHJvbWl1bS9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnQ2hyb21pdW0nCiAgICAgICAgLCBjaHJvbWl1bTogdAogICAgICAgICwgdmVyc2lvbjogZ2V0Rmlyc3RNYXRjaCgvKD86Y2hyb21pdW0pW1xzXC9dKFxkKyg/OlwuXGQrKT8pL2kpIHx8IHZlcnNpb25JZGVudGlmaWVyCiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKC9jaHJvbWV8Y3Jpb3N8Y3Jtby9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnQ2hyb21lJwogICAgICAgICwgY2hyb21lOiB0CiAgICAgICAgLCB2ZXJzaW9uOiBnZXRGaXJzdE1hdGNoKC8oPzpjaHJvbWV8Y3Jpb3N8Y3JtbylcLyhcZCsoXC5cZCspPykvaSkKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoYW5kcm9pZCkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ0FuZHJvaWQnCiAgICAgICAgLCB2ZXJzaW9uOiB2ZXJzaW9uSWRlbnRpZmllcgogICAgICB9CiAgICB9CiAgICBlbHNlIGlmICgvc2FmYXJpfGFwcGxld2Via2l0L2kudGVzdCh1YSkpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdTYWZhcmknCiAgICAgICwgc2FmYXJpOiB0CiAgICAgIH0KICAgICAgaWYgKHZlcnNpb25JZGVudGlmaWVyKSB7CiAgICAgICAgcmVzdWx0LnZlcnNpb24gPSB2ZXJzaW9uSWRlbnRpZmllcgogICAgICB9CiAgICB9CiAgICBlbHNlIGlmIChpb3NkZXZpY2UpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWUgOiBpb3NkZXZpY2UgPT0gJ2lwaG9uZScgPyAnaVBob25lJyA6IGlvc2RldmljZSA9PSAnaXBhZCcgPyAnaVBhZCcgOiAnaVBvZCcKICAgICAgfQogICAgICAvLyBXVEY6IHZlcnNpb24gaXMgbm90IHBhcnQgb2YgdXNlciBhZ2VudCBpbiB3ZWIgYXBwcwogICAgICBpZiAodmVyc2lvbklkZW50aWZpZXIpIHsKICAgICAgICByZXN1bHQudmVyc2lvbiA9IHZlcnNpb25JZGVudGlmaWVyCiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYoL2dvb2dsZWJvdC9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnR29vZ2xlYm90JwogICAgICAsIGdvb2dsZWJvdDogdAogICAgICAsIHZlcnNpb246IGdldEZpcnN0TWF0Y2goL2dvb2dsZWJvdFwvKFxkKyhcLlxkKykpL2kpIHx8IHZlcnNpb25JZGVudGlmaWVyCiAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogZ2V0Rmlyc3RNYXRjaCgvXiguKilcLyguKikgLyksCiAgICAgICAgdmVyc2lvbjogZ2V0U2Vjb25kTWF0Y2goL14oLiopXC8oLiopIC8pCiAgICAgfTsKICAgfQoKICAgIC8vIHNldCB3ZWJraXQgb3IgZ2Vja28gZmxhZyBmb3IgYnJvd3NlcnMgYmFzZWQgb24gdGhlc2UgZW5naW5lcwogICAgaWYgKCFyZXN1bHQubXNlZGdlICYmIC8oYXBwbGUpP3dlYmtpdC9pLnRlc3QodWEpKSB7CiAgICAgIGlmICgvKGFwcGxlKT93ZWJraXRcLzUzN1wuMzYvaS50ZXN0KHVhKSkgewogICAgICAgIHJlc3VsdC5uYW1lID0gcmVzdWx0Lm5hbWUgfHwgIkJsaW5rIgogICAgICAgIHJlc3VsdC5ibGluayA9IHQKICAgICAgfSBlbHNlIHsKICAgICAgICByZXN1bHQubmFtZSA9IHJlc3VsdC5uYW1lIHx8ICJXZWJraXQiCiAgICAgICAgcmVzdWx0LndlYmtpdCA9IHQKICAgICAgfQogICAgICBpZiAoIXJlc3VsdC52ZXJzaW9uICYmIHZlcnNpb25JZGVudGlmaWVyKSB7CiAgICAgICAgcmVzdWx0LnZlcnNpb24gPSB2ZXJzaW9uSWRlbnRpZmllcgogICAgICB9CiAgICB9IGVsc2UgaWYgKCFyZXN1bHQub3BlcmEgJiYgL2dlY2tvXC8vaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQubmFtZSA9IHJlc3VsdC5uYW1lIHx8ICJHZWNrbyIKICAgICAgcmVzdWx0LmdlY2tvID0gdAogICAgICByZXN1bHQudmVyc2lvbiA9IHJlc3VsdC52ZXJzaW9uIHx8IGdldEZpcnN0TWF0Y2goL2dlY2tvXC8oXGQrKFwuXGQrKT8pL2kpCiAgICB9CgogICAgLy8gc2V0IE9TIGZsYWdzIGZvciBwbGF0Zm9ybXMgdGhhdCBoYXZlIG11bHRpcGxlIGJyb3dzZXJzCiAgICBpZiAoIXJlc3VsdC5tc2VkZ2UgJiYgKGFuZHJvaWQgfHwgcmVzdWx0LnNpbGspKSB7CiAgICAgIHJlc3VsdC5hbmRyb2lkID0gdAogICAgfSBlbHNlIGlmIChpb3NkZXZpY2UpIHsKICAgICAgcmVzdWx0W2lvc2RldmljZV0gPSB0CiAgICAgIHJlc3VsdC5pb3MgPSB0CiAgICB9IGVsc2UgaWYgKG1hYykgewogICAgICByZXN1bHQubWFjID0gdAogICAgfSBlbHNlIGlmICh4Ym94KSB7CiAgICAgIHJlc3VsdC54Ym94ID0gdAogICAgfSBlbHNlIGlmICh3aW5kb3dzKSB7CiAgICAgIHJlc3VsdC53aW5kb3dzID0gdAogICAgfSBlbHNlIGlmIChsaW51eCkgewogICAgICByZXN1bHQubGludXggPSB0CiAgICB9CgogICAgLy8gT1MgdmVyc2lvbiBleHRyYWN0aW9uCiAgICB2YXIgb3NWZXJzaW9uID0gJyc7CiAgICBpZiAocmVzdWx0LndpbmRvd3NwaG9uZSkgewogICAgICBvc1ZlcnNpb24gPSBnZXRGaXJzdE1hdGNoKC93aW5kb3dzIHBob25lICg/Om9zKT9ccz8oXGQrKFwuXGQrKSopL2kpOwogICAgfSBlbHNlIGlmIChpb3NkZXZpY2UpIHsKICAgICAgb3NWZXJzaW9uID0gZ2V0Rmlyc3RNYXRjaCgvb3MgKFxkKyhbX1xzXVxkKykqKSBsaWtlIG1hYyBvcyB4L2kpOwogICAgICBvc1ZlcnNpb24gPSBvc1ZlcnNpb24ucmVwbGFjZSgvW19cc10vZywgJy4nKTsKICAgIH0gZWxzZSBpZiAoYW5kcm9pZCkgewogICAgICBvc1ZlcnNpb24gPSBnZXRGaXJzdE1hdGNoKC9hbmRyb2lkWyBcLy1dKFxkKyhcLlxkKykqKS9pKTsKICAgIH0gZWxzZSBpZiAocmVzdWx0LndlYm9zKSB7CiAgICAgIG9zVmVyc2lvbiA9IGdldEZpcnN0TWF0Y2goLyg/OndlYnxocHcpb3NcLyhcZCsoXC5cZCspKikvaSk7CiAgICB9IGVsc2UgaWYgKHJlc3VsdC5ibGFja2JlcnJ5KSB7CiAgICAgIG9zVmVyc2lvbiA9IGdldEZpcnN0TWF0Y2goL3JpbVxzdGFibGV0XHNvc1xzKFxkKyhcLlxkKykqKS9pKTsKICAgIH0gZWxzZSBpZiAocmVzdWx0LmJhZGEpIHsKICAgICAgb3NWZXJzaW9uID0gZ2V0Rmlyc3RNYXRjaCgvYmFkYVwvKFxkKyhcLlxkKykqKS9pKTsKICAgIH0gZWxzZSBpZiAocmVzdWx0LnRpemVuKSB7CiAgICAgIG9zVmVyc2lvbiA9IGdldEZpcnN0TWF0Y2goL3RpemVuW1wvXHNdKFxkKyhcLlxkKykqKS9pKTsKICAgIH0KICAgIGlmIChvc1ZlcnNpb24pIHsKICAgICAgcmVzdWx0Lm9zdmVyc2lvbiA9IG9zVmVyc2lvbjsKICAgIH0KCiAgICAvLyBkZXZpY2UgdHlwZSBleHRyYWN0aW9uCiAgICB2YXIgb3NNYWpvclZlcnNpb24gPSBvc1ZlcnNpb24uc3BsaXQoJy4nKVswXTsKICAgIGlmICgKICAgICAgICAgdGFibGV0CiAgICAgIHx8IG5leHVzVGFibGV0CiAgICAgIHx8IGlvc2RldmljZSA9PSAnaXBhZCcKICAgICAgfHwgKGFuZHJvaWQgJiYgKG9zTWFqb3JWZXJzaW9uID09IDMgfHwgKG9zTWFqb3JWZXJzaW9uID49IDQgJiYgIW1vYmlsZSkpKQogICAgICB8fCByZXN1bHQuc2lsawogICAgKSB7CiAgICAgIHJlc3VsdC50YWJsZXQgPSB0CiAgICB9IGVsc2UgaWYgKAogICAgICAgICBtb2JpbGUKICAgICAgfHwgaW9zZGV2aWNlID09ICdpcGhvbmUnCiAgICAgIHx8IGlvc2RldmljZSA9PSAnaXBvZCcKICAgICAgfHwgYW5kcm9pZAogICAgICB8fCBuZXh1c01vYmlsZQogICAgICB8fCByZXN1bHQuYmxhY2tiZXJyeQogICAgICB8fCByZXN1bHQud2Vib3MKICAgICAgfHwgcmVzdWx0LmJhZGEKICAgICkgewogICAgICByZXN1bHQubW9iaWxlID0gdAogICAgfQoKICAgIC8vIEdyYWRlZCBCcm93c2VyIFN1cHBvcnQKICAgIC8vIGh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3l1aS9hcnRpY2xlcy9nYnMKICAgIGlmIChyZXN1bHQubXNlZGdlIHx8CiAgICAgICAgKHJlc3VsdC5tc2llICYmIHJlc3VsdC52ZXJzaW9uID49IDEwKSB8fAogICAgICAgIChyZXN1bHQueWFuZGV4YnJvd3NlciAmJiByZXN1bHQudmVyc2lvbiA+PSAxNSkgfHwKCQkgICAgKHJlc3VsdC52aXZhbGRpICYmIHJlc3VsdC52ZXJzaW9uID49IDEuMCkgfHwKICAgICAgICAocmVzdWx0LmNocm9tZSAmJiByZXN1bHQudmVyc2lvbiA+PSAyMCkgfHwKICAgICAgICAocmVzdWx0LmZpcmVmb3ggJiYgcmVzdWx0LnZlcnNpb24gPj0gMjAuMCkgfHwKICAgICAgICAocmVzdWx0LnNhZmFyaSAmJiByZXN1bHQudmVyc2lvbiA+PSA2KSB8fAogICAgICAgIChyZXN1bHQub3BlcmEgJiYgcmVzdWx0LnZlcnNpb24gPj0gMTAuMCkgfHwKICAgICAgICAocmVzdWx0LmlvcyAmJiByZXN1bHQub3N2ZXJzaW9uICYmIHJlc3VsdC5vc3ZlcnNpb24uc3BsaXQoIi4iKVswXSA+PSA2KSB8fAogICAgICAgIChyZXN1bHQuYmxhY2tiZXJyeSAmJiByZXN1bHQudmVyc2lvbiA+PSAxMC4xKQogICAgICAgIHx8IChyZXN1bHQuY2hyb21pdW0gJiYgcmVzdWx0LnZlcnNpb24gPj0gMjApCiAgICAgICAgKSB7CiAgICAgIHJlc3VsdC5hID0gdDsKICAgIH0KICAgIGVsc2UgaWYgKChyZXN1bHQubXNpZSAmJiByZXN1bHQudmVyc2lvbiA8IDEwKSB8fAogICAgICAgIChyZXN1bHQuY2hyb21lICYmIHJlc3VsdC52ZXJzaW9uIDwgMjApIHx8CiAgICAgICAgKHJlc3VsdC5maXJlZm94ICYmIHJlc3VsdC52ZXJzaW9uIDwgMjAuMCkgfHwKICAgICAgICAocmVzdWx0LnNhZmFyaSAmJiByZXN1bHQudmVyc2lvbiA8IDYpIHx8CiAgICAgICAgKHJlc3VsdC5vcGVyYSAmJiByZXN1bHQudmVyc2lvbiA8IDEwLjApIHx8CiAgICAgICAgKHJlc3VsdC5pb3MgJiYgcmVzdWx0Lm9zdmVyc2lvbiAmJiByZXN1bHQub3N2ZXJzaW9uLnNwbGl0KCIuIilbMF0gPCA2KQogICAgICAgIHx8IChyZXN1bHQuY2hyb21pdW0gJiYgcmVzdWx0LnZlcnNpb24gPCAyMCkKICAgICAgICApIHsKICAgICAgcmVzdWx0LmMgPSB0CiAgICB9IGVsc2UgcmVzdWx0LnggPSB0CgogICAgcmV0dXJuIHJlc3VsdAogIH0KCiAgdmFyIGJvd3NlciA9IGRldGVjdCh0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyA/IG5hdmlnYXRvci51c2VyQWdlbnQgOiAnJykKCiAgYm93c2VyLnRlc3QgPSBmdW5jdGlvbiAoYnJvd3Nlckxpc3QpIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnJvd3Nlckxpc3QubGVuZ3RoOyArK2kpIHsKICAgICAgdmFyIGJyb3dzZXJJdGVtID0gYnJvd3Nlckxpc3RbaV07CiAgICAgIGlmICh0eXBlb2YgYnJvd3Nlckl0ZW09PT0gJ3N0cmluZycpIHsKICAgICAgICBpZiAoYnJvd3Nlckl0ZW0gaW4gYm93c2VyKSB7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBmYWxzZTsKICB9CgogIC8qKgogICAqIEdldCB2ZXJzaW9uIHByZWNpc2lvbnMgY291bnQKICAgKgogICAqIEBleGFtcGxlCiAgICogICBnZXRWZXJzaW9uUHJlY2lzaW9uKCIxLjEwLjMiKSAvLyAzCiAgICoKICAgKiBAcGFyYW0gIHtzdHJpbmd9IHZlcnNpb24KICAgKiBAcmV0dXJuIHtudW1iZXJ9CiAgICovCiAgZnVuY3Rpb24gZ2V0VmVyc2lvblByZWNpc2lvbih2ZXJzaW9uKSB7CiAgICByZXR1cm4gdmVyc2lvbi5zcGxpdCgiLiIpLmxlbmd0aDsKICB9CgogIC8qKgogICAqIEFycmF5OjptYXAgcG9seWZpbGwKICAgKgogICAqIEBwYXJhbSAge0FycmF5fSBhcnIKICAgKiBAcGFyYW0gIHtGdW5jdGlvbn0gaXRlcmF0b3IKICAgKiBAcmV0dXJuIHtBcnJheX0KICAgKi8KICBmdW5jdGlvbiBtYXAoYXJyLCBpdGVyYXRvcikgewogICAgdmFyIHJlc3VsdCA9IFtdLCBpOwogICAgaWYgKEFycmF5LnByb3RvdHlwZS5tYXApIHsKICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChhcnIsIGl0ZXJhdG9yKTsKICAgIH0KICAgIGZvciAoaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHsKICAgICAgcmVzdWx0LnB1c2goaXRlcmF0b3IoYXJyW2ldKSk7CiAgICB9CiAgICByZXR1cm4gcmVzdWx0OwogIH0KCiAgLyoqCiAgICogQ2FsY3VsYXRlIGJyb3dzZXIgdmVyc2lvbiB3ZWlnaHQKICAgKgogICAqIEBleGFtcGxlCiAgICogICBjb21wYXJlVmVyc2lvbnMoWycxLjEwLjIuMScsICAnMS44LjIuMS45MCddKSAgICAvLyAxCiAgICogICBjb21wYXJlVmVyc2lvbnMoWycxLjAxMC4yLjEnLCAnMS4wOS4yLjEuOTAnXSk7ICAvLyAxCiAgICogICBjb21wYXJlVmVyc2lvbnMoWycxLjEwLjIuMScsICAnMS4xMC4yLjEnXSk7ICAgICAvLyAwCiAgICogICBjb21wYXJlVmVyc2lvbnMoWycxLjEwLjIuMScsICAnMS4wODAwLjInXSk7ICAgICAvLyAtMQogICAqCiAgICogQHBhcmFtICB7QXJyYXk8U3RyaW5nPn0gdmVyc2lvbnMgdmVyc2lvbnMgdG8gY29tcGFyZQogICAqIEByZXR1cm4ge051bWJlcn0gY29tcGFyaXNvbiByZXN1bHQKICAgKi8KICBmdW5jdGlvbiBjb21wYXJlVmVyc2lvbnModmVyc2lvbnMpIHsKICAgIC8vIDEpIGdldCBjb21tb24gcHJlY2lzaW9uIGZvciBib3RoIHZlcnNpb25zLCBmb3IgZXhhbXBsZSBmb3IgIjEwLjAiIGFuZCAiOSIgaXQgc2hvdWxkIGJlIDIKICAgIHZhciBwcmVjaXNpb24gPSBNYXRoLm1heChnZXRWZXJzaW9uUHJlY2lzaW9uKHZlcnNpb25zWzBdKSwgZ2V0VmVyc2lvblByZWNpc2lvbih2ZXJzaW9uc1sxXSkpOwogICAgdmFyIGNodW5rcyA9IG1hcCh2ZXJzaW9ucywgZnVuY3Rpb24gKHZlcnNpb24pIHsKICAgICAgdmFyIGRlbHRhID0gcHJlY2lzaW9uIC0gZ2V0VmVyc2lvblByZWNpc2lvbih2ZXJzaW9uKTsKCiAgICAgIC8vIDIpICI5IiAtPiAiOS4wIiAoZm9yIHByZWNpc2lvbiA9IDIpCiAgICAgIHZlcnNpb24gPSB2ZXJzaW9uICsgbmV3IEFycmF5KGRlbHRhICsgMSkuam9pbigiLjAiKTsKCiAgICAgIC8vIDMpICI5LjAiIC0+IFsiMDAwMDAwMDAwIiIsICIwMDAwMDAwMDkiXQogICAgICByZXR1cm4gbWFwKHZlcnNpb24uc3BsaXQoIi4iKSwgZnVuY3Rpb24gKGNodW5rKSB7CiAgICAgICAgcmV0dXJuIG5ldyBBcnJheSgyMCAtIGNodW5rLmxlbmd0aCkuam9pbigiMCIpICsgY2h1bms7CiAgICAgIH0pLnJldmVyc2UoKTsKICAgIH0pOwoKICAgIC8vIGl0ZXJhdGUgaW4gcmV2ZXJzZSBvcmRlciBieSByZXZlcnNlZCBjaHVua3MgYXJyYXkKICAgIHdoaWxlICgtLXByZWNpc2lvbiA+PSAwKSB7CiAgICAgIC8vIDQpIGNvbXBhcmU6ICIwMDAwMDAwMDkiID4gIjAwMDAwMDAxMCIgPSBmYWxzZSAoYnV0ICI5IiA+ICIxMCIgPSB0cnVlKQogICAgICBpZiAoY2h1bmtzWzBdW3ByZWNpc2lvbl0gPiBjaHVua3NbMV1bcHJlY2lzaW9uXSkgewogICAgICAgIHJldHVybiAxOwogICAgICB9CiAgICAgIGVsc2UgaWYgKGNodW5rc1swXVtwcmVjaXNpb25dID09PSBjaHVua3NbMV1bcHJlY2lzaW9uXSkgewogICAgICAgIGlmIChwcmVjaXNpb24gPT09IDApIHsKICAgICAgICAgIC8vIGFsbCB2ZXJzaW9uIGNodW5rcyBhcmUgc2FtZQogICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfQogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgIHJldHVybiAtMTsKICAgICAgfQogICAgfQogIH0KCiAgLyoqCiAgICogQ2hlY2sgaWYgYnJvd3NlciBpcyB1bnN1cHBvcnRlZAogICAqCiAgICogQGV4YW1wbGUKICAgKiAgIGJvd3Nlci5pc1Vuc3VwcG9ydGVkQnJvd3Nlcih7CiAgICogICAgIG1zaWU6ICIxMCIsCiAgICogICAgIGZpcmVmb3g6ICIyMyIsCiAgICogICAgIGNocm9tZTogIjI5IiwKICAgKiAgICAgc2FmYXJpOiAiNS4xIiwKICAgKiAgICAgb3BlcmE6ICIxNiIsCiAgICogICAgIHBoYW50b206ICI1MzQiCiAgICogICB9KTsKICAgKgogICAqIEBwYXJhbSAge09iamVjdH0gIG1pblZlcnNpb25zIG1hcCBvZiBtaW5pbWFsIHZlcnNpb24gdG8gYnJvd3NlcgogICAqIEBwYXJhbSAge0Jvb2xlYW59IFtzdHJpY3RNb2RlID0gZmFsc2VdIGZsYWcgdG8gcmV0dXJuIGZhbHNlIGlmIGJyb3dzZXIgd2Fzbid0IGZvdW5kIGluIG1hcAogICAqIEBwYXJhbSAge1N0cmluZ30gIFt1YV0gdXNlciBhZ2VudCBzdHJpbmcKICAgKiBAcmV0dXJuIHtCb29sZWFufQogICAqLwogIGZ1bmN0aW9uIGlzVW5zdXBwb3J0ZWRCcm93c2VyKG1pblZlcnNpb25zLCBzdHJpY3RNb2RlLCB1YSkgewogICAgdmFyIF9ib3dzZXIgPSBib3dzZXI7CgogICAgLy8gbWFrZSBzdHJpY3RNb2RlIHBhcmFtIG9wdGlvbmFsIHdpdGggdWEgcGFyYW0gdXNhZ2UKICAgIGlmICh0eXBlb2Ygc3RyaWN0TW9kZSA9PT0gJ3N0cmluZycpIHsKICAgICAgdWEgPSBzdHJpY3RNb2RlOwogICAgICBzdHJpY3RNb2RlID0gdm9pZCgwKTsKICAgIH0KCiAgICBpZiAoc3RyaWN0TW9kZSA9PT0gdm9pZCgwKSkgewogICAgICBzdHJpY3RNb2RlID0gZmFsc2U7CiAgICB9CiAgICBpZiAodWEpIHsKICAgICAgX2Jvd3NlciA9IGRldGVjdCh1YSk7CiAgICB9CgogICAgdmFyIHZlcnNpb24gPSAiIiArIF9ib3dzZXIudmVyc2lvbjsKICAgIGZvciAodmFyIGJyb3dzZXIgaW4gbWluVmVyc2lvbnMpIHsKICAgICAgaWYgKG1pblZlcnNpb25zLmhhc093blByb3BlcnR5KGJyb3dzZXIpKSB7CiAgICAgICAgaWYgKF9ib3dzZXJbYnJvd3Nlcl0pIHsKICAgICAgICAgIC8vIGJyb3dzZXIgdmVyc2lvbiBhbmQgbWluIHN1cHBvcnRlZCB2ZXJzaW9uLgogICAgICAgICAgcmV0dXJuIGNvbXBhcmVWZXJzaW9ucyhbdmVyc2lvbiwgbWluVmVyc2lvbnNbYnJvd3Nlcl1dKSA8IDA7CiAgICAgICAgfQogICAgICB9CiAgICB9CgogICAgcmV0dXJuIHN0cmljdE1vZGU7IC8vIG5vdCBmb3VuZAogIH0KCiAgLyoqCiAgICogQ2hlY2sgaWYgYnJvd3NlciBpcyBzdXBwb3J0ZWQKICAgKgogICAqIEBwYXJhbSAge09iamVjdH0gbWluVmVyc2lvbnMgbWFwIG9mIG1pbmltYWwgdmVyc2lvbiB0byBicm93c2VyCiAgICogQHBhcmFtICB7Qm9vbGVhbn0gW3N0cmljdE1vZGUgPSBmYWxzZV0gZmxhZyB0byByZXR1cm4gZmFsc2UgaWYgYnJvd3NlciB3YXNuJ3QgZm91bmQgaW4gbWFwCiAgICogQHBhcmFtICB7U3RyaW5nfSAgW3VhXSB1c2VyIGFnZW50IHN0cmluZwogICAqIEByZXR1cm4ge0Jvb2xlYW59CiAgICovCiAgZnVuY3Rpb24gY2hlY2sobWluVmVyc2lvbnMsIHN0cmljdE1vZGUsIHVhKSB7CiAgICByZXR1cm4gIWlzVW5zdXBwb3J0ZWRCcm93c2VyKG1pblZlcnNpb25zLCBzdHJpY3RNb2RlLCB1YSk7CiAgfQoKICBib3dzZXIuaXNVbnN1cHBvcnRlZEJyb3dzZXIgPSBpc1Vuc3VwcG9ydGVkQnJvd3NlcjsKICBib3dzZXIuY29tcGFyZVZlcnNpb25zID0gY29tcGFyZVZlcnNpb25zOwogIGJvd3Nlci5jaGVjayA9IGNoZWNrOwoKICAvKgogICAqIFNldCBvdXIgZGV0ZWN0IG1ldGhvZCB0byB0aGUgbWFpbiBib3dzZXIgb2JqZWN0IHNvIHdlIGNhbgogICAqIHJldXNlIGl0IHRvIHRlc3Qgb3RoZXIgdXNlciBhZ2VudHMuCiAgICogVGhpcyBpcyBuZWVkZWQgdG8gaW1wbGVtZW50IGZ1dHVyZSB0ZXN0cy4KICAgKi8KICBib3dzZXIuX2RldGVjdCA9IGRldGVjdDsKCiAgcmV0dXJuIGJvd3Nlcgp9KTsKCihmdW5jdGlvbigkKXsKICBVQUJCVHJpZ2dlciA9IHsKCiAgICAgIC8qKgogICAgICAgKiBUcmlnZ2VyIGEgaG9vay4KICAgICAgICoKICAgICAgICogQHNpbmNlIDEuMS4wLjMKICAgICAgICogQG1ldGhvZCB0cmlnZ2VySG9vawogICAgICAgKiBAcGFyYW0ge1N0cmluZ30gaG9vayBUaGUgaG9vayB0byB0cmlnZ2VyLgogICAgICAgKiBAcGFyYW0ge0FycmF5fSBhcmdzIEFuIGFycmF5IG9mIGFyZ3MgdG8gcGFzcyB0byB0aGUgaG9vay4KICAgICAgICovCiAgICAgIHRyaWdnZXJIb29rOiBmdW5jdGlvbiggaG9vaywgYXJncyApCiAgICAgIHsKICAgICAgICAkKCAnYm9keScgKS50cmlnZ2VyKCAndWFiYi10cmlnZ2VyLicgKyBob29rLCBhcmdzICk7CiAgICAgIH0sCiAgICAKICAgICAgLyoqCiAgICAgICAqIEFkZCBhIGhvb2suCiAgICAgICAqCiAgICAgICAqIEBzaW5jZSAxLjEuMC4zCiAgICAgICAqIEBtZXRob2QgYWRkSG9vawogICAgICAgKiBAcGFyYW0ge1N0cmluZ30gaG9vayBUaGUgaG9vayB0byBhZGQuCiAgICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIEEgZnVuY3Rpb24gdG8gY2FsbCB3aGVuIHRoZSBob29rIGlzIHRyaWdnZXJlZC4KICAgICAgICovCiAgICAgIGFkZEhvb2s6IGZ1bmN0aW9uKCBob29rLCBjYWxsYmFjayApCiAgICAgIHsKICAgICAgICAkKCAnYm9keScgKS5vbiggJ3VhYmItdHJpZ2dlci4nICsgaG9vaywgY2FsbGJhY2sgKTsKICAgICAgfSwKICAgIAogICAgICAvKioKICAgICAgICogUmVtb3ZlIGEgaG9vay4KICAgICAgICoKICAgICAgICogQHNpbmNlIDEuMS4wLjMKICAgICAgICogQG1ldGhvZCByZW1vdmVIb29rCiAgICAgICAqIEBwYXJhbSB7U3RyaW5nfSBob29rIFRoZSBob29rIHRvIHJlbW92ZS4KICAgICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIHJlbW92ZS4KICAgICAgICovCiAgICAgIHJlbW92ZUhvb2s6IGZ1bmN0aW9uKCBob29rLCBjYWxsYmFjayApCiAgICAgIHsKICAgICAgICAkKCAnYm9keScgKS5vZmYoICd1YWJiLXRyaWdnZXIuJyArIGhvb2ssIGNhbGxiYWNrICk7CiAgICAgIH0sCiAgfTsKfSkoalF1ZXJ5KTsKCmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oICQgKSB7CgogICAgaWYoIHR5cGVvZiBib3dzZXIgIT09ICd1bmRlZmluZWQnICYmIGJvd3NlciAhPT0gbnVsbCApIHsKCiAgICAgIHZhciB1YWJiX2Jyb3dzZXIgICA9IGJvd3Nlci5uYW1lLAogICAgICAgICAgdWFiYl9icm93c2VyX3YgPSBib3dzZXIudmVyc2lvbiwKICAgICAgICAgIHVhYmJfYnJvd3Nlcl9jbGFzcyA9IHVhYmJfYnJvd3Nlci5yZXBsYWNlKC9ccysvZywgJy0nKS50b0xvd2VyQ2FzZSgpLAogICAgICAgICAgdWFiYl9icm93c2VyX3ZfY2xhc3MgPSB1YWJiX2Jyb3dzZXJfY2xhc3MgKyBwYXJzZUludCggdWFiYl9icm93c2VyX3YgKTsKICAgICAgCiAgICAgICQoJ2h0bWwnKS5hZGRDbGFzcyh1YWJiX2Jyb3dzZXJfY2xhc3MpLmFkZENsYXNzKHVhYmJfYnJvd3Nlcl92X2NsYXNzKTsKICAgICAgCiAgICB9CgogICAgJCgnLnVhYmItcm93LXNlcGFyYXRvcicpLnBhcmVudHMoJ2h0bWwnKS5jc3MoJ292ZXJmbG93LXgnLCAnaGlkZGVuJyk7Cn0pOwpqUXVlcnkoZnVuY3Rpb24oJCkgewoJCgkJJChmdW5jdGlvbigpIHsKCQkkKCAnLmZsLW5vZGUteHBmaW1zNGJ6OHI1IC5mbC1waG90by1pbWcnICkKCQkJLm9uKCAnbW91c2VlbnRlcicsIGZ1bmN0aW9uKCBlICkgewoJCQkJJCggdGhpcyApLmRhdGEoICd0aXRsZScsICQoIHRoaXMgKS5hdHRyKCAndGl0bGUnICkgKS5yZW1vdmVBdHRyKCAndGl0bGUnICk7CgkJCX0gKQoJCQkub24oICdtb3VzZWxlYXZlJywgZnVuY3Rpb24oIGUgKXsKCQkJCSQoIHRoaXMgKS5hdHRyKCAndGl0bGUnLCAkKCB0aGlzICkuZGF0YSggJ3RpdGxlJyApICkuZGF0YSggJ3RpdGxlJywgbnVsbCApOwoJCQl9ICk7Cgl9KTsKCQl3aW5kb3cuX2ZsX3N0cmluZ190b19zbHVnX3JlZ2V4ID0gJ2EtekEtWjAtOSc7Cn0pOwoKKGZ1bmN0aW9uKCQpIHsKCgkkKGZ1bmN0aW9uKCkgewoKCQluZXcgRkxCdWlsZGVyTWVudSh7CgkJCWlkOiAnYm1vajZ1eGUzMjVjJywKCQkJdHlwZTogJ2hvcml6b250YWwnLAoJCQltb2JpbGU6ICdoYW1idXJnZXInLAoJCQltb2JpbGVCZWxvd1JvdzogZmFsc2UsCgkJCW1vYmlsZUZseW91dDogZmFsc2UsCgkJCWJyZWFrUG9pbnRzOiB7CgkJCQlsYXJnZTogMTIwMCwKCQkJCW1lZGl1bTogOTkyLAoJCQkJc21hbGw6IDc2OAkJCX0sCgkJCW1vYmlsZUJyZWFrcG9pbnQ6ICdtb2JpbGUnLAoJCQlwb3N0SWQgOiAnNTU2NTMnLAoJCQltb2JpbGVTdGFja2VkOiB0cnVlLAoJCX0pOwoKCX0pOwoKfSkoalF1ZXJ5KTsKKGZ1bmN0aW9uKCQpIHsKCgkkKGZ1bmN0aW9uKCkgewoJCW5ldyBGTEJ1aWxkZXJTZWFyY2hGb3JtKHsKCQkJaWQ6ICdqcDNpbHExYmc1MG0nLAoJCQlsYXlvdXQ6ICdidXR0b24nLAoJCQlidG5BY3Rpb246ICdmdWxsc2NyZWVuJywKCQkJcmVzdWx0OiAnYWpheCcsCgkJCXNob3dDbG9zZUJ0bjogdHJ1ZSwKCQl9KTsKCX0pOwoKfSkoalF1ZXJ5KTsKCi8qIFN0YXJ0IExheW91dCBDdXN0b20gSlMgKi8KCi8qIEVuZCBMYXlvdXQgQ3VzdG9tIEpTICovCgooZnVuY3Rpb24oJCl7CgoJLyoqCgkgKiBIZWxwZXIgY2xhc3MgZm9yIGhlYWRlciBsYXlvdXQgbG9naWMuCgkgKgoJICogQHNpbmNlIDEuMAoJICogQGNsYXNzIEZMVGhlbWVCdWlsZGVySGVhZGVyTGF5b3V0CgkgKi8KCUZMVGhlbWVCdWlsZGVySGVhZGVyTGF5b3V0ID0gewoKCQkvKioKCQkgKiBBIHJlZmVyZW5jZSB0byB0aGUgd2luZG93IG9iamVjdCBmb3IgdGhpcyBwYWdlLgoJCSAqCgkJICogQHNpbmNlIDEuMAoJCSAqIEBwcm9wZXJ0eSB7T2JqZWN0fSB3aW4KCQkgKi8KCQl3aW4gOiBudWxsLAoKCQkvKioKCQkgKiBBIHJlZmVyZW5jZSB0byB0aGUgYm9keSBvYmplY3QgZm9yIHRoaXMgcGFnZS4KCQkgKgoJCSAqIEBzaW5jZSAxLjAKCQkgKiBAcHJvcGVydHkge09iamVjdH0gYm9keQoJCSAqLwoJCWJvZHkgOiBudWxsLAoKCQkvKioKCQkgKiBBIHJlZmVyZW5jZSB0byB0aGUgaGVhZGVyIG9iamVjdCBmb3IgdGhpcyBwYWdlLgoJCSAqCgkJICogQHNpbmNlIDEuMAoJCSAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBoZWFkZXIKCQkgKi8KCQloZWFkZXIgOiBudWxsLAoKCQkvKioKCQkgKiBXaGV0aGVyIHRoaXMgaGVhZGVyIG92ZXJsYXlzIHRoZSBjb250ZW50IG9yIG5vdC4KCQkgKgoJCSAqIEBzaW5jZSAxLjAKCQkgKiBAcHJvcGVydHkge0Jvb2xlYW59IG92ZXJsYXkKCQkgKi8KCQlvdmVybGF5IDogZmFsc2UsCgoJCS8qKgoJCSAqIFdoZXRoZXIgdGhlIHBhZ2UgaGFzIHRoZSBXUCBhZG1pbiBiYXIgb3Igbm90LgoJCSAqCgkJICogQHNpbmNlIDEuMAoJCSAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn0gaGFzQWRtaW5CYXIKCQkgKi8KCQloYXNBZG1pbkJhciA6IGZhbHNlLAoKCQkvKioKCQkgKiBCcmVha3BvaW50IGZvciB3aGVuIHRoZSBzdGlja3kgaGVhZGVyIHNob3VsZCBhcHBseS4KCQkgKgoJCSAqIEBzaW5jZSAxLjQKCQkgKiBAcHJvcGVydHkge1N0cmluZ30gc3RpY2t5T24KCQkgKi8KCQlzdGlja3lPbjogJycsCgoJCS8qKgoJCSAqIEEgcmVmZXJlbmNlIG9mIHRoZSBzdGlja3kgYW5kIHNocmluayBoZWFkZXIgYnJlYWtwb2ludC4KCQkgKgoJCSAqIEBzaW5jZSAxLjIuNQoJCSAqIEBwcm9wZXJ0eSB7TnVtYmVyfSBicmVha3BvaW50V2lkdGgKCQkgKi8KCQlicmVha3BvaW50V2lkdGg6IDAsCgoJCS8qKgoJCSAqIEluaXRpYWxpemVzIGhlYWRlciBsYXlvdXQgbG9naWMuCgkJICoKCQkgKiBAc2luY2UgMS4wCgkJICogQG1ldGhvZCBpbml0CgkJICovCgkJaW5pdDogZnVuY3Rpb24oKQoJCXsKCQkJdmFyIGVkaXRpbmcgICAgICAgICAgPSAkKCAnaHRtbC5mbC1idWlsZGVyLWVkaXQnICkubGVuZ3RoLAoJCQkJaGVhZGVyICAgICAgICAgICA9ICQoICcuZmwtYnVpbGRlci1jb250ZW50W2RhdGEtdHlwZT1oZWFkZXJdJyApLAoJCQkJbWVudU1vZHVsZSAgICAgICA9IGhlYWRlci5maW5kKCAnLmZsLW1vZHVsZS1tZW51JyApLAoJCQkJYnJlYWtwb2ludCAgICAgICA9IG51bGw7CgoJCQlpZiAoICEgZWRpdGluZyAmJiBoZWFkZXIubGVuZ3RoICkgewoKCQkJCWhlYWRlci5pbWFnZXNMb2FkZWQoICQucHJveHkoIGZ1bmN0aW9uKCkgewoKCQkJCQl0aGlzLndpbiAgICAgICAgID0gJCggd2luZG93ICk7CgkJCQkJdGhpcy5ib2R5ICAgICAgICA9ICQoICdib2R5JyApOwoJCQkJCXRoaXMuaGVhZGVyICAgICAgPSBoZWFkZXIuZXEoIDAgKTsKCQkJCQl0aGlzLm92ZXJsYXkgICAgID0gISEgTnVtYmVyKCBoZWFkZXIuYXR0ciggJ2RhdGEtb3ZlcmxheScgKSApOwoJCQkJCXRoaXMuaGFzQWRtaW5CYXIgPSAhISAkKCAnYm9keS5hZG1pbi1iYXInICkubGVuZ3RoOwoJCQkJCXRoaXMuc3RpY2t5T24gICAgPSB0aGlzLmhlYWRlci5kYXRhKCAnc3RpY2t5LW9uJyApOwoJCQkJCWJyZWFrcG9pbnQgICAgICAgPSB0aGlzLmhlYWRlci5kYXRhKCAnc3RpY2t5LWJyZWFrcG9pbnQnICk7CgoJCQkJCWlmICggJycgPT0gdGhpcy5zdGlja3lPbiApIHsKCQkJCQkJaWYgKCB0eXBlb2YgRkxCdWlsZGVyTGF5b3V0Q29uZmlnLmJyZWFrcG9pbnRzWyBicmVha3BvaW50IF0gIT09IHVuZGVmaW5lZCApIHsKCQkJCQkJCXRoaXMuYnJlYWtwb2ludFdpZHRoID0gRkxCdWlsZGVyTGF5b3V0Q29uZmlnLmJyZWFrcG9pbnRzWyBicmVha3BvaW50IF07CgkJCQkJCX0KCQkJCQkJZWxzZSB7CgkJCQkJCQl0aGlzLmJyZWFrcG9pbnRXaWR0aCA9IEZMQnVpbGRlckxheW91dENvbmZpZy5icmVha3BvaW50cy5tZWRpdW07CgkJCQkJCX0KCQkJCQl9CgoJCQkJCWlmICggTnVtYmVyKCBoZWFkZXIuYXR0ciggJ2RhdGEtc3RpY2t5JyApICkgKSB7CgoJCQkJCQl0aGlzLmhlYWRlci5kYXRhKCAnb3JpZ2luYWwtdG9wJywgdGhpcy5oZWFkZXIub2Zmc2V0KCkudG9wICk7CgkJCQkJCXRoaXMud2luLm9uKCAncmVzaXplJywgJC50aHJvdHRsZSggNTAwLCAkLnByb3h5KCB0aGlzLl9pbml0U3RpY2t5LCB0aGlzICkgKSApOwoJCQkJCQl0aGlzLl9pbml0U3RpY2t5KCk7CgoJCQkJCX0KCgkJCQl9LCB0aGlzICkgKTsKCQkJfQoJCX0sCgoJCS8qKgoJCSAqIEluaXRpYWxpemVzIHN0aWNreSBsb2dpYyBmb3IgYSBoZWFkZXIuCgkJICoKCQkgKiBAc2luY2UgMS4wCgkJICogQGFjY2VzcyBwcml2YXRlCgkJICogQG1ldGhvZCBfaW5pdFN0aWNreQoJCSAqLwoJCV9pbml0U3RpY2t5OiBmdW5jdGlvbiggZSApCgkJewoJCQl2YXIgaGVhZGVyICAgICA9ICQoJy5mbC1idWlsZGVyLWNvbnRlbnRbZGF0YS10eXBlPWhlYWRlcl0nKSwKCQkJCXdpbmRvd1NpemUgPSB0aGlzLndpbi53aWR0aCgpLAoJCQkJbWFrZVN0aWNreSA9IGZhbHNlOwoKCQkJbWFrZVN0aWNreSA9IHRoaXMuX21ha2VXaW5kb3dTdGlja3koIHdpbmRvd1NpemUgKTsKCQkJaWYgKCBtYWtlU3RpY2t5IHx8ICggdGhpcy5icmVha3BvaW50V2lkdGggPiAwICYmIHdpbmRvd1NpemUgPj0gdGhpcy5icmVha3BvaW50V2lkdGggKSApIHsKCQkJCXRoaXMud2luLm9uKCAnc2Nyb2xsLmZsLXRoZW1lLWJ1aWxkZXItaGVhZGVyLXN0aWNreScsICQucHJveHkoIHRoaXMuX2RvU3RpY2t5LCB0aGlzICkgKTsKCQkJCS8vCgkJCQkvLyBDaGVjayBpZiBFdmVudCBUeXBlIGlzICdyZXNpemUnIHRoZW4gaW52b2tlIHRoaXMuX2RvU3RpY2t5KCkKCQkJCS8vIG9ubHkgaWYgdGhlICdmbC10aGVtZS1idWlsZGVyLWhlYWRlci1zdGlja3knIGNsYXNzIGlzIGFscmVhZHkgcHJlc2VudC4KCQkJCS8vCgkJCQlpZiAoIGUgJiYgJ3Jlc2l6ZScgPT09IGUudHlwZSApIHsKCQkJCQlpZiAoIHRoaXMuaGVhZGVyLmhhc0NsYXNzKCAnZmwtdGhlbWUtYnVpbGRlci1oZWFkZXItc3RpY2t5JyApICkgewoJCQkJCQl0aGlzLl9kb1N0aWNreSggZSApOwoJCQkJCX0KCQkJCQl0aGlzLl9hZGp1c3RTdGlja3lIZWFkZXJXaWR0aCgpOwoJCQkJfQoKCQkJCWlmICggTnVtYmVyKCBoZWFkZXIuYXR0ciggJ2RhdGEtc2hyaW5rJyApICkgKSB7CgkJCQkJdGhpcy5oZWFkZXIuZGF0YSggJ29yaWdpbmFsLWhlaWdodCcsIHRoaXMuaGVhZGVyLm91dGVySGVpZ2h0KCkgKTsKCQkJCQl0aGlzLndpbi5vbiggJ3Jlc2l6ZScsICQudGhyb3R0bGUoIDUwMCwgJC5wcm94eSggdGhpcy5faW5pdFNocmluaywgdGhpcyApICkgKTsKCQkJCQl0aGlzLl9pbml0U2hyaW5rKCk7CgkJCQl9CgoJCQkJdGhpcy5faW5pdEZseW91dE1lbnVGaXgoIGUgKTsKCQkJfSBlbHNlIHsKCQkJCXRoaXMud2luLm9mZiggJ3Njcm9sbC5mbC10aGVtZS1idWlsZGVyLWhlYWRlci1zdGlja3knICk7CgkJCQl0aGlzLndpbi5vZmYoICdyZXNpemUuZmwtdGhlbWUtYnVpbGRlci1oZWFkZXItc3RpY2t5JyApOwoKCQkJCXRoaXMuaGVhZGVyLnJlbW92ZUNsYXNzKCAnZmwtdGhlbWUtYnVpbGRlci1oZWFkZXItc3RpY2t5JyApOwoJCQkJdGhpcy5oZWFkZXIucmVtb3ZlQXR0ciggJ3N0eWxlJyApOwoJCQkJdGhpcy5oZWFkZXIucGFyZW50KCkuY3NzKCAncGFkZGluZy10b3AnLCAnMCcgKTsKCQkJfQoJCX0sCgoJCS8qKgoJCSAqIENoZWNrIGlmIEhlYWRlciBzaG91bGQgYmUgc3RpY2t5IGF0IGEgcGFydGljdWxhciBXaW5kb3cgc2l6ZS4KCQkgKgoJCSAqIEBzaW5jZSAxLjQKCQkgKiBAYWNjZXNzIHByaXZhdGUKCQkgKiBAcGFyYW0gIHdpZG93U2l6ZQoJCSAqIEBtZXRob2QgX21ha2VXaW5kb3dTdGlja3kKCQkgKi8KCQlfbWFrZVdpbmRvd1N0aWNreTogZnVuY3Rpb24gKCB3aW5kb3dTaXplICkKCQl7CgkJCXZhciBtYWtlU3RpY2t5ID0gZmFsc2U7CgoJCQlzd2l0Y2ggKHRoaXMuc3RpY2t5T24pIHsKCQkJCWNhc2UgJ3hsJzoKCQkJCQltYWtlU3RpY2t5ID0gd2luZG93U2l6ZSA+IEZMQnVpbGRlckxheW91dENvbmZpZy5icmVha3BvaW50c1snbGFyZ2UnXTsKCQkJCQlicmVhazsKCQkJCWNhc2UgJyc6IC8vIERlZmF1bHQKCQkJCWNhc2UgJ2Rlc2t0b3AnOgoJCQkJCW1ha2VTdGlja3kgPSB3aW5kb3dTaXplID49IEZMQnVpbGRlckxheW91dENvbmZpZy5icmVha3BvaW50c1snbWVkaXVtJ107CgkJCQkJYnJlYWs7CgkJCQljYXNlICdkZXNrdG9wLW1lZGl1bSc6CgkJCQkJbWFrZVN0aWNreSA9IHdpbmRvd1NpemUgPiBGTEJ1aWxkZXJMYXlvdXRDb25maWcuYnJlYWtwb2ludHNbJ3NtYWxsJ107CgkJCQkJYnJlYWs7CgkJCQljYXNlICdsYXJnZSc6CgkJCQkJbWFrZVN0aWNreSA9IHdpbmRvd1NpemUgPiBGTEJ1aWxkZXJMYXlvdXRDb25maWcuYnJlYWtwb2ludHNbJ21lZGl1bSddICYmIHdpbmRvd1NpemUgPD0gRkxCdWlsZGVyTGF5b3V0Q29uZmlnLmJyZWFrcG9pbnRzWydsYXJnZSddOwoJCQkJCWJyZWFrOwoJCQkJY2FzZSAnbGFyZ2UtbWVkaXVtJzoKCQkJCQltYWtlU3RpY2t5ID0gd2luZG93U2l6ZSA+IEZMQnVpbGRlckxheW91dENvbmZpZy5icmVha3BvaW50c1snc21hbGwnXSAmJiB3aW5kb3dTaXplIDw9IEZMQnVpbGRlckxheW91dENvbmZpZy5icmVha3BvaW50c1snbGFyZ2UnXTsKCQkJCQlicmVhazsKCQkJCWNhc2UgJ21lZGl1bSc6CgkJCQkJbWFrZVN0aWNreSA9ICggd2luZG93U2l6ZSA8PSBGTEJ1aWxkZXJMYXlvdXRDb25maWcuYnJlYWtwb2ludHNbJ21lZGl1bSddICYmIHdpbmRvd1NpemUgPiBGTEJ1aWxkZXJMYXlvdXRDb25maWcuYnJlYWtwb2ludHNbJ3NtYWxsJ10gKTsKCQkJCQlicmVhazsKCQkJCWNhc2UgJ21lZGl1bS1tb2JpbGUnOgoJCQkJCW1ha2VTdGlja3kgPSAod2luZG93U2l6ZSA8PSBGTEJ1aWxkZXJMYXlvdXRDb25maWcuYnJlYWtwb2ludHNbJ21lZGl1bSddKTsKCQkJCQlicmVhazsKCQkJCWNhc2UgJ21vYmlsZSc6CgkJCQkJbWFrZVN0aWNreSA9ICh3aW5kb3dTaXplIDw9IEZMQnVpbGRlckxheW91dENvbmZpZy5icmVha3BvaW50c1snc21hbGwnXSk7CgkJCQkJYnJlYWs7CgkJCQljYXNlICdhbGwnOgoJCQkJCW1ha2VTdGlja3kgPSB0cnVlOwoJCQkJCWJyZWFrOwoJCQl9CgoJCQlyZXR1cm4gbWFrZVN0aWNreTsKCQl9LAoKCQkvKioKCQkgKiBTdGlja3MgdGhlIGhlYWRlciB3aGVuIHRoZSBwYWdlIGlzIHNjcm9sbGVkLgoJCSAqCgkJICogQHNpbmNlIDEuMAoJCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJCSAqIEBtZXRob2QgX2RvU3RpY2t5CgkJICovCgkJX2RvU3RpY2t5OiBmdW5jdGlvbiggZSApCgkJewoJCQl2YXIgd2luVG9wICAgIAkJICA9IE1hdGguZmxvb3IoIHRoaXMud2luLnNjcm9sbFRvcCgpICksCgkJCQloZWFkZXJUb3AgCQkgID0gTWF0aC5mbG9vciggdGhpcy5oZWFkZXIuZGF0YSggJ29yaWdpbmFsLXRvcCcgKSApLAoJCQkJaGFzU3RpY2t5Q2xhc3MgICAgPSB0aGlzLmhlYWRlci5oYXNDbGFzcyggJ2ZsLXRoZW1lLWJ1aWxkZXItaGVhZGVyLXN0aWNreScgKSwKCQkJCWhhc1Njcm9sbGVkQ2xhc3MgID0gdGhpcy5oZWFkZXIuaGFzQ2xhc3MoICdmbC10aGVtZS1idWlsZGVyLWhlYWRlci1zY3JvbGxlZCcgKSwKCQkJCWJlZm9yZUhlYWRlciAgICAgID0gdGhpcy5oZWFkZXIucHJldkFsbCggJy5mbC1idWlsZGVyLWNvbnRlbnQnICksCgkJCQlib2R5VG9wUGFkZGluZyAgICA9IHBhcnNlSW50KCBqUXVlcnkoJ2JvZHknKS5jc3MoJ3BhZGRpbmctdG9wJykgKSwKCQkJCXdpbkJhckhlaWdodCAgICAgID0gJCgnI3dwYWRtaW5iYXInKS5sZW5ndGggPyAkKCcjd3BhZG1pbmJhcicpLm91dGVySGVpZ2h0KCkgOiAwLAoJCQkJaGVhZGVySGVpZ2h0ICAgICAgPSAwOwoKCQkJaWYgKCBpc05hTiggYm9keVRvcFBhZGRpbmcgKSApIHsKCQkJCWJvZHlUb3BQYWRkaW5nID0gMDsKCQkJfQoKCQkJaWYgKCB0aGlzLmhhc0FkbWluQmFyICYmIHRoaXMud2luLndpZHRoKCkgPiA2MDAgKSB7CgkJCQl3aW5Ub3AgKz0gTWF0aC5mbG9vciggd2luQmFySGVpZ2h0ICk7CgkJCX0KCgkJCWlmICggd2luVG9wID4gaGVhZGVyVG9wICkgewoJCQkJaWYgKCAhIGhhc1N0aWNreUNsYXNzICkgewoJCQkJCWlmICggZSAmJiAoICdzY3JvbGwnID09PSBlLnR5cGUgfHwgJ3NtYXJ0c2Nyb2xsJyA9PT0gZS50eXBlICkgKSB7CgkJCQkJIAl0aGlzLmhlYWRlci5hZGRDbGFzcyggJ2ZsLXRoZW1lLWJ1aWxkZXItaGVhZGVyLXN0aWNreScgKTsKCQkJCQkJaWYgKCB0aGlzLm92ZXJsYXkgJiYgYmVmb3JlSGVhZGVyLmxlbmd0aCApIHsKCQkJCQkJCXRoaXMuaGVhZGVyLmNzcyggJ3RvcCcsIHdpbkJhckhlaWdodCk7CgkJCQkJCX0KCQkJCQl9CgoJCQkJCWlmICggISB0aGlzLm92ZXJsYXkgKSB7CgkJCQkJCXRoaXMuX2FkanVzdEhlYWRlckhlaWdodCgpOwoJCQkJCX0KCQkJCX0KCQkJfQoJCQllbHNlIGlmICggaGFzU3RpY2t5Q2xhc3MgKSB7CgkJCQl0aGlzLmhlYWRlci5yZW1vdmVDbGFzcyggJ2ZsLXRoZW1lLWJ1aWxkZXItaGVhZGVyLXN0aWNreScgKTsKCQkJCXRoaXMuaGVhZGVyLnJlbW92ZUF0dHIoICdzdHlsZScgKTsKCQkJCXRoaXMuaGVhZGVyLnBhcmVudCgpLmNzcyggJ3BhZGRpbmctdG9wJywgJzAnICk7CgkJCX0KCgkJCXRoaXMuX2FkanVzdFN0aWNreUhlYWRlcldpZHRoKCk7CgoJCQlpZiAoIHdpblRvcCA+IGhlYWRlclRvcCApIHsKCQkJCWlmICggISBoYXNTY3JvbGxlZENsYXNzICkgewoJCQkJCXRoaXMuaGVhZGVyLmFkZENsYXNzKCAnZmwtdGhlbWUtYnVpbGRlci1oZWFkZXItc2Nyb2xsZWQnICk7CgkJCQl9CgkJCX0gZWxzZSBpZiAoIGhhc1Njcm9sbGVkQ2xhc3MgKSB7CgkJCQl0aGlzLmhlYWRlci5yZW1vdmVDbGFzcyggJ2ZsLXRoZW1lLWJ1aWxkZXItaGVhZGVyLXNjcm9sbGVkJyApOwoJCQl9CgoJCQl0aGlzLl9mbHlvdXRNZW51Rml4KCBlICk7CgkJfSwKCgkJLyoqCgkJICogSW5pdGlhbGl6ZXMgZmx5b3V0IG1lbnUgZml4ZXMgb24gc3RpY2t5IGhlYWRlci4KCQkgKgoJCSAqIEBzaW5jZSAxLjQuMQoJCSAqIEBtZXRob2QgX2luaXRGbHlvdXRNZW51Rml4CgkJICovCgkJX2luaXRGbHlvdXRNZW51Rml4OiBmdW5jdGlvbiggZSApIHsKCQkJdmFyIGhlYWRlciAgICAgICA9IHRoaXMuaGVhZGVyLAoJCQkgICAgbWVudU1vZHVsZSAgID0gaGVhZGVyLmZpbmQoICcuZmwtbWVudScgKSwKCQkJCWZseW91dE1lbnUgICA9IG1lbnVNb2R1bGUuZmluZCggJy5mbC1tZW51LW1vYmlsZS1mbHlvdXQnICksCgkJCQlpc1B1c2hNZW51ICAgPSBtZW51TW9kdWxlLmhhc0NsYXNzKCAnZmwtbWVudS1yZXNwb25zaXZlLWZseW91dC1wdXNoJyApIHx8IG1lbnVNb2R1bGUuaGFzQ2xhc3MoICdmbC1tZW51LXJlc3BvbnNpdmUtZmx5b3V0LXB1c2gtb3BhY2l0eScgKSwKCQkJCWlzU3RpY2t5ICAgICA9IGhlYWRlci5oYXNDbGFzcyggJ2ZsLXRoZW1lLWJ1aWxkZXItaGVhZGVyLXN0aWNreScgKSwKCQkJCWlzT3ZlcmxheSAgICA9IG1lbnVNb2R1bGUuaGFzQ2xhc3MoICdmbC1tZW51LXJlc3BvbnNpdmUtZmx5b3V0LW92ZXJsYXknICksCgkJCQlmbHlvdXRQb3MgICAgPSBtZW51TW9kdWxlLmhhc0NsYXNzKCAnZmwtZmx5b3V0LXJpZ2h0JyApID8gJ3JpZ2h0JyA6ICdsZWZ0JywKCQkJCWZseW91dFBhcmVudCA9IGhlYWRlci5wYXJlbnQoKS5pcyggJ2hlYWRlcicgKSA/IGhlYWRlci5wYXJlbnQoKS5wYXJlbnQoKSA6IGhlYWRlci5wYXJlbnQoKTsKCQkJCWlzRnVsbFdpZHRoICA9IHRoaXMud2luLndpZHRoKCkgPT09IGhlYWRlci53aWR0aCgpLAoJCQkJZmx5b3V0TGF5b3V0ID0gJycsCgkJCQlhY3RpdmVQb3MgICAgPSAyNTAsCgkJCQloZWFkZXJQb3MgICAgPSAwOwoKCQkJaWYgKCAhIGZseW91dE1lbnUubGVuZ3RoICkgewoJCQkJcmV0dXJuOwoJCQl9CgoJCQlpZiAoIHRoaXMud2luLndpZHRoKCkgPiBoZWFkZXIucGFyZW50KCkud2lkdGgoKSApIHsKCQkJCWhlYWRlclBvcyA9ICggdGhpcy53aW4ud2lkdGgoKSAtIGhlYWRlci53aWR0aCgpICkgLyAyOwoJCQl9CgoJCQlpZiAoIGlzT3ZlcmxheSApIHsKCQkJCWFjdGl2ZVBvcyA9IGhlYWRlclBvczsKCQkJfQoJCQllbHNlIGlmICggaXNQdXNoTWVudSApIHsKCQkJCWFjdGl2ZVBvcyA9IGFjdGl2ZVBvcyArIGhlYWRlclBvczsKCQkJfQoJCQlmbHlvdXRNZW51LmRhdGEoICdhY3RpdmVQb3MnLCBhY3RpdmVQb3MgKTsKCgkJCWlmICggaXNQdXNoTWVudSApIHsKCQkJCWZseW91dExheW91dCA9ICdwdXNoLScgKyBmbHlvdXRQb3M7CgkJCX0KCQkJZWxzZSBpZiAoIGlzT3ZlcmxheSApIHsKCQkJCWZseW91dExheW91dCA9ICdvdmVybGF5LScgKyBmbHlvdXRQb3M7CgkJCX0KCgkJCWlmICggaXNQdXNoTWVudSAmJiAhICQoICdodG1sJyApLmhhc0NsYXNzKCAnZmwtdGhlbWUtYnVpbGRlci1oYXMtZmx5b3V0LW1lbnUnICkgKSB7CgkJCQkkKCAnaHRtbCcgKS5hZGRDbGFzcyggJ2ZsLXRoZW1lLWJ1aWxkZXItaGFzLWZseW91dC1tZW51JyApOwoJCQl9CgoJCQlpZiAoICEgZmx5b3V0UGFyZW50Lmhhc0NsYXNzKCAnZmwtdGhlbWUtYnVpbGRlci1mbHlvdXQtbWVudS0nICsgZmx5b3V0TGF5b3V0ICkgKSB7CgkJCQlmbHlvdXRQYXJlbnQuYWRkQ2xhc3MoICdmbC10aGVtZS1idWlsZGVyLWZseW91dC1tZW51LScgKyBmbHlvdXRMYXlvdXQgKTsKCQkJfQoKCQkJaWYgKCAhIGhlYWRlci5oYXNDbGFzcyggJ2ZsLXRoZW1lLWJ1aWxkZXItZmx5b3V0LW1lbnUtb3ZlcmxheScgKSAmJiBpc092ZXJsYXkgKSB7CgkJCQloZWFkZXIuYWRkQ2xhc3MoICdmbC10aGVtZS1idWlsZGVyLWZseW91dC1tZW51LW92ZXJsYXknICk7CgkJCX0KCgkJCWlmICggISBoZWFkZXIuaGFzQ2xhc3MoICdmbC10aGVtZS1idWlsZGVyLWhlYWRlci1mdWxsLXdpZHRoJyApICYmIGlzRnVsbFdpZHRoICkgewoJCQkgICBoZWFkZXIuYWRkQ2xhc3MoICdmbC10aGVtZS1idWlsZGVyLWhlYWRlci1mdWxsLXdpZHRoJyApOwoJCSAgICB9CgkJCWVsc2UgaWYgKCAhIGlzRnVsbFdpZHRoICkgewoJCQkJaGVhZGVyLnJlbW92ZUNsYXNzKCAnZmwtdGhlbWUtYnVpbGRlci1oZWFkZXItZnVsbC13aWR0aCcgKTsKCQkJfQoKCQkJbWVudU1vZHVsZS5vbiggJ2NsaWNrJywgJy5mbC1tZW51LW1vYmlsZS10b2dnbGUnLCAkLnByb3h5KCBmdW5jdGlvbiggZXZlbnQgKXsKCQkJCWlmICggbWVudU1vZHVsZS5maW5kKCAnLmZsLW1lbnUtbW9iaWxlLXRvZ2dsZS5mbC1hY3RpdmUnICkubGVuZ3RoICkgewoJCQkJCSQoICdodG1sJyApLmFkZENsYXNzKCAnZmwtdGhlbWUtYnVpbGRlci1mbHlvdXQtbWVudS1hY3RpdmUnICk7CgkJCQkJZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7CgkJCQl9CgkJCQllbHNlIHsKCQkJCQkkKCAnaHRtbCcgKS5yZW1vdmVDbGFzcyggJ2ZsLXRoZW1lLWJ1aWxkZXItZmx5b3V0LW1lbnUtYWN0aXZlJyApOwoJCQkJfQoKCQkJCXRoaXMuX2ZseW91dE1lbnVGaXgoIGV2ZW50ICk7CgkJCX0sIHRoaXMgKSApOwoJCX0sCgoJCS8qKgoJCSAqIEZpeCBmbHlvdXQgbWVudSBpbnNpZGUgdGhlIHN0aWNreSBoZWFkZXIuCgkJICoKCQkgKiBAc2luY2UgMS40LjEKCQkgKiBAbWV0aG9kIF9mbHlvdXRNZW51Rml4CgkJICovCgkJX2ZseW91dE1lbnVGaXg6IGZ1bmN0aW9uKCBlICl7CgkJCXZhciBoZWFkZXIgICAgICA9IHRoaXMuaGVhZGVyLAoJCQkgICAgbWVudU1vZHVsZSAgPSBoZWFkZXIuZmluZCggJy5mbC1tZW51JyApLAoJCQkJZmx5b3V0TWVudSAgPSBtZW51TW9kdWxlLmZpbmQoICcuZmwtbWVudS1tb2JpbGUtZmx5b3V0JyApLAoJCQkJaXNQdXNoTWVudSAgPSBtZW51TW9kdWxlLmhhc0NsYXNzKCAnZmwtbWVudS1yZXNwb25zaXZlLWZseW91dC1wdXNoJyApIHx8IG1lbnVNb2R1bGUuaGFzQ2xhc3MoICdmbC1tZW51LXJlc3BvbnNpdmUtZmx5b3V0LXB1c2gtb3BhY2l0eScgKSwKCQkJCWZseW91dFBvcyAgID0gbWVudU1vZHVsZS5oYXNDbGFzcyggJ2ZsLWZseW91dC1yaWdodCcgKSA/ICdyaWdodCcgOiAnbGVmdCcsCgkJCQltZW51T3BhY2l0eSA9IG1lbnVNb2R1bGUuZmluZCggJy5mbC1tZW51LW1vYmlsZS1vcGFjaXR5JyApLAoJCQkJaXNTY3JvbGwgICAgPSAndW5kZWZpbmVkJyAhPT0gdHlwZW9mIGUgJiYgJ3Njcm9sbCcgPT09IGUuaGFuZGxlT2JqLnR5cGUsCgkJCQlhY3RpdmVQb3MgICA9ICd1bmRlZmluZWQnICE9PSB0eXBlb2YgZmx5b3V0TWVudS5kYXRhKCAnYWN0aXZlUG9zJyApID8gZmx5b3V0TWVudS5kYXRhKCAnYWN0aXZlUG9zJyApIDogMCwKCQkJCWhlYWRlclBvcyAgID0gKCB0aGlzLndpbi53aWR0aCgpIC0gaGVhZGVyLndpZHRoKCkgKSAvIDIsCgkJCQlpbmFjdGl2ZVBvcyA9IGhlYWRlclBvcyA+IDAgPyBhY3RpdmVQb3MgKyA0IDogMjU0OwoKCQkJaWYgKCAhIGZseW91dE1lbnUubGVuZ3RoICkgewoJCQkJcmV0dXJuOwoJCQl9CgoJCQlpZiAoIHRoaXMub3ZlcmxheSApIHsKCQkJCXJldHVybjsKCQkJfQoKCQkJaWYoICQoICcuZmwtdGhlbWUtYnVpbGRlci1mbHlvdXQtbWVudS1hY3RpdmUnICkubGVuZ3RoICkgewoKCQkJCWlmICggaXNTY3JvbGwgJiYgISBmbHlvdXRNZW51Lmhhc0NsYXNzKCAnZmwtbWVudS1kaXNhYmxlLXRyYW5zaXRpb24nICkgKSB7CgkJCQkJZmx5b3V0TWVudS5hZGRDbGFzcyggJ2ZsLW1lbnUtZGlzYWJsZS10cmFuc2l0aW9uJyApOwoJCQkJfQoKCQkJCWlmICggaGVhZGVyLmhhc0NsYXNzKCAnZmwtdGhlbWUtYnVpbGRlci1oZWFkZXItc3RpY2t5JyApICkgewoJCQkJCWlmICggISBpc1Njcm9sbCApIHsKCQkJCQkJc2V0VGltZW91dCggJC5wcm94eSggZnVuY3Rpb24oKXsKCQkJCQkJCWZseW91dE1lbnUuY3NzKCBmbHlvdXRQb3MsICctJyArIGFjdGl2ZVBvcyArICdweCcgKTsKCQkJCQkJfSwgdGhpcyApLCAxICk7CgkJCQkJfQoJCQkJCWVsc2UgewoJCQkJCQlmbHlvdXRNZW51LmNzcyggZmx5b3V0UG9zLCAnLScgKyBhY3RpdmVQb3MgKyAncHgnICk7CgkJCQkJfQoJCQkJfQoJCQkJZWxzZSB7CgkJCQkJZmx5b3V0TWVudS5jc3MoIGZseW91dFBvcywgJzBweCcgKTsKCQkJCX0KCQkJfQoJCQllbHNlIHsKCQkJCWlmICggZmx5b3V0TWVudS5oYXNDbGFzcyggJ2ZsLW1lbnUtZGlzYWJsZS10cmFuc2l0aW9uJyApICkgewoJCQkJCWZseW91dE1lbnUucmVtb3ZlQ2xhc3MoICdmbC1tZW51LWRpc2FibGUtdHJhbnNpdGlvbicgKTsKCQkJCX0KCgkJCQlpZiAoIGhlYWRlci5oYXNDbGFzcyggJ2ZsLXRoZW1lLWJ1aWxkZXItZmx5b3V0LW1lbnUtb3ZlcmxheScgKSAmJiBoZWFkZXJQb3MgPiAwICYmIGhlYWRlclBvcyA8IDI1MCApIHsKCQkJCQlpZiAoIGhlYWRlci5oYXNDbGFzcyggJ2ZsLXRoZW1lLWJ1aWxkZXItaGVhZGVyLXN0aWNreScgKSApIHsKCQkJCQkJaW5hY3RpdmVQb3MgPSBoZWFkZXJQb3MgKyAyNTQ7CgkJCQkJfQoJCQkJCWVsc2UgewoJCQkJCQlpbmFjdGl2ZVBvcyA9IDI1NDsKCQkJCQl9CgkJCQl9CgoJCQkJaWYgKCBlICYmIGUudHlwZSA9PT0gJ3Jlc2l6ZScgKSB7CgkJCQkJaW5hY3RpdmVQb3MgPSBoZWFkZXJQb3MgKyAyNTQ7CgkJCQl9CgoJCQkJZmx5b3V0TWVudS5jc3MoIGZseW91dFBvcywgJy0nICsgaW5hY3RpdmVQb3MgKyAncHgnICk7CgkJCX0KCgkJCWlmICggZSAmJiBtZW51TW9kdWxlLmlzKCcuZmwtbWVudS1yZXNwb25zaXZlLWZseW91dC1vdmVybGF5JykgJiYgJC5pbmZpbml0ZXNjcm9sbCApIHsKCQkJCWUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7CgkJCX0KCgkJCWlmKCBtZW51T3BhY2l0eS5sZW5ndGggKSB7CgkJCQlpZiAoIGhlYWRlci5oYXNDbGFzcyggJ2ZsLXRoZW1lLWJ1aWxkZXItaGVhZGVyLXN0aWNreScgKSApIHsKCQkJCQlpZiAoICcwcHgnID09PSBtZW51T3BhY2l0eS5jc3MoICdsZWZ0JyApICkgewoJCQkJCQltZW51T3BhY2l0eS5jc3MoICdsZWZ0JywgJy0nICsgaGVhZGVyUG9zICsgJ3B4JyApOwoJCQkJCX0KCQkJCX0KCQkJCWVsc2UgewoJCQkJCW1lbnVPcGFjaXR5LmNzcyggJ2xlZnQnLCAnJyApOwoJCQkJfQoJCQl9CgkJfSwKCgkJLyoqCgkJICogQWRqdXN0IHN0aWNreSBoZWFkZXIgd2lkdGggaWYgQkIgVGhlbWUgQm94ZWQgTGF5b3V0IGlzIHVzZWQuCgkJICoKCQkgKiBAc2luY2UgMS40CgkJICogQGFjY2VzcyBwcml2YXRlCgkJICogQG1ldGhvZCBfYWRqdXN0U3RpY2t5SGVhZGVyV2lkdGgKCQkgKi8KCQlfYWRqdXN0U3RpY2t5SGVhZGVyV2lkdGg6IGZ1bmN0aW9uICgpIHsKCQkJaWYgKCAkKCdib2R5JykuaGFzQ2xhc3MoICdmbC1maXhlZC13aWR0aCcgKSApIHsKCQkJCXZhciBwYXJlbnRXaWR0aCA9IHRoaXMuaGVhZGVyLnBhcmVudCgpLndpZHRoKCk7CgoJCQkJLy8gQmV0dGVyIGlmIHRoaXMgaXMgc2V0IGluIHRoZSBzdHlsZXNoZWV0IGZpbGUuCgkJCQlpZiAoIHRoaXMud2luLndpZHRoKCkgPj0gOTkyICkgewoJCQkJCXRoaXMuaGVhZGVyLmNzcyh7CgkJCQkJCSdtYXJnaW4nOiAnMCBhdXRvJywKCQkJCQkJJ21heC13aWR0aCc6IHBhcmVudFdpZHRoLAoJCQkJCX0pOwoJCQkJfQoJCQkJZWxzZSB7CgkJCQkJdGhpcy5oZWFkZXIuY3NzKHsKCQkJCQkJJ21hcmdpbic6ICcnLAoJCQkJCQknbWF4LXdpZHRoJzogJycsCgkJCQkJfSk7CgkJCQl9CgkJCX0KCQl9LAoKCQkvKioKCQkgKiBBZGp1c3QgU3RpY2t5IEhlYWRlciBIZWlnaHQKCQkgKgoJCSAqIEBzaW5jZSAxLjQKCQkgKiBAYWNjZXNzIHByaXZhdGUKCQkgKiBAbWV0aG9kIF9hZGp1c3RIZWFkZXJIZWlnaHQKCQkgKi8KCQlfYWRqdXN0SGVhZGVySGVpZ2h0OiBmdW5jdGlvbiAoKSB7CgkJCXZhciBiZWZvcmVIZWFkZXIgPSB0aGlzLmhlYWRlci5wcmV2QWxsKCcuZmwtYnVpbGRlci1jb250ZW50JyksCgkJCQliZWZvcmVIZWFkZXJIZWlnaHQgPSAwLAoJCQkJYmVmb3JlSGVhZGVyRml4ID0gMCwKCQkJCWhlYWRlckhlaWdodCA9IE1hdGguZmxvb3IoIHRoaXMuaGVhZGVyLm91dGVySGVpZ2h0KCkgKSwKCQkJCWJvZHlUb3BQYWRkaW5nID0gcGFyc2VJbnQoICQoICdib2R5JyApLmNzcyggJ3BhZGRpbmctdG9wJyApICksCgkJCQl3cEFkbWluQmFySGVpZ2h0ID0gMCwKCQkJCXRvdGFsSGVhZGVySGVpZ2h0ID0gMDsKCgkJCWlmICggaXNOYU4oIGJvZHlUb3BQYWRkaW5nICkgKSB7CgkJCQlib2R5VG9wUGFkZGluZyA9IDA7CgkJCX0KCgkJCWlmICggYmVmb3JlSGVhZGVyLmxlbmd0aCApIHsKCQkJCSQuZWFjaCggYmVmb3JlSGVhZGVyLCBmdW5jdGlvbigpIHsKCQkJCQliZWZvcmVIZWFkZXJIZWlnaHQgKz0gTWF0aC5mbG9vciggJCh0aGlzKS5vdXRlckhlaWdodCgpICk7CgkJCQl9KTsKCQkJCS8vIFN1YnRyYWN0IHRoaXMgdmFsdWUgZnJvbSB0aGUgaGVhZGVyIHBhcmVudCdzIHRvcCBwYWRkaW5nLgoJCQkJYmVmb3JlSGVhZGVyRml4ID0gMjsKCQkJfQoKCQkJaWYgKCB0aGlzLmhhc0FkbWluQmFyICYmIHRoaXMud2luLndpZHRoKCkgPD0gNjAwICkgewoJCQkJd3BBZG1pbkJhckhlaWdodCA9IE1hdGguZmxvb3IoICQoJyN3cGFkbWluYmFyJykub3V0ZXJIZWlnaHQoKSApOwoJCQl9CgoJCQl0b3RhbEhlYWRlckhlaWdodCA9IE1hdGguZmxvb3IoIGJlZm9yZUhlYWRlckhlaWdodCArIGhlYWRlckhlaWdodCk7CgoJCQlpZiAoIGhlYWRlckhlaWdodCA+IDAgKSB7CgkJCQl2YXIgaGVhZGVyUGFyZW50ID0gdGhpcy5oZWFkZXIucGFyZW50KCksCgkJCQkJaGVhZGVyUGFyZW50VG9wUGFkZGluZyA9IDA7CgoJCQkJLy8gSWYgdGhlIGhlYWRlcidzIHBhcmVudCBjb250YWluZXIgaXMgdGhlIEJPRFkgdGFnIGlnbm9yZSBpdHMgdG9wIHBhZGRpbmcuCgkJCQlpZiAoICQoIGhlYWRlclBhcmVudCApLmlzKCdib2R5JykgKSB7CgkJCQkJaGVhZGVyUGFyZW50VG9wUGFkZGluZyA9IE1hdGguZmxvb3IoIGhlYWRlckhlaWdodCAtIHdwQWRtaW5CYXJIZWlnaHQgKTsKCQkJCX0gZWxzZSB7CgkJCQkJaGVhZGVyUGFyZW50VG9wUGFkZGluZyA9IE1hdGguZmxvb3IoIGhlYWRlckhlaWdodCAtIGJvZHlUb3BQYWRkaW5nIC0gd3BBZG1pbkJhckhlaWdodCApOwoJCQkJfQoKCQkJCSQoIGhlYWRlclBhcmVudCApLmNzcyggJ3BhZGRpbmctdG9wJywgICggaGVhZGVyUGFyZW50VG9wUGFkZGluZyAtIGJlZm9yZUhlYWRlckZpeCApICsgJ3B4JyApOwoKCQkJCXRoaXMuaGVhZGVyLmNzcyh7CgkJCQkJJy13ZWJraXQtdHJhbnNmb3JtJzogJ3RyYW5zbGF0ZSgwcHgsIC0nICsgdG90YWxIZWFkZXJIZWlnaHQgKyAncHgpJywKCQkJCQknLW1zLXRyYW5zZm9ybSc6ICd0cmFuc2xhdGUoMHB4LCAtJyArIHRvdGFsSGVhZGVySGVpZ2h0ICsgJ3B4KScsCgkJCQkJJ3RyYW5zZm9ybSc6ICd0cmFuc2xhdGUoMHB4LCAtJyArIHRvdGFsSGVhZGVySGVpZ2h0ICsgJ3B4KScKCQkJCX0pOwoKCQkJfQoKCQl9LAoKCQkvKioKCQkgKiBJbml0aWFsaXplcyBzaHJpbmsgbG9naWMgZm9yIGEgaGVhZGVyLgoJCSAqCgkJICogQHNpbmNlIDEuMAoJCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJCSAqIEBtZXRob2QgX2luaXRTaHJpbmsKCQkgKi8KCQlfaW5pdFNocmluazogZnVuY3Rpb24oIGUgKQoJCXsKCQkJaWYgKCB0aGlzLndpbi53aWR0aCgpID49IHRoaXMuYnJlYWtwb2ludFdpZHRoICkgewoJCQkJdGhpcy53aW4ub24oICdzY3JvbGwuZmwtdGhlbWUtYnVpbGRlci1oZWFkZXItc2hyaW5rJywgJC5wcm94eSggdGhpcy5fZG9TaHJpbmssIHRoaXMgKSApOwoJCQkJdGhpcy5fc2V0SW1hZ2VNYXhIZWlnaHQoKTsKCgkJCQlpZiAoIHRoaXMud2luLnNjcm9sbFRvcCgpID4gMCApewoJCQkJCXRoaXMuX2RvU2hyaW5rKCk7CgkJCQl9CgoJCQl9IGVsc2UgewoJCQkJdGhpcy5oZWFkZXIucGFyZW50KCkuY3NzKCAncGFkZGluZy10b3AnLCAnMCcgKTsKCQkJCXRoaXMud2luLm9mZiggJ3Njcm9sbC5mbC10aGVtZS1idWlsZGVyLWhlYWRlci1zaHJpbmsnICk7CgkJCQl0aGlzLl9yZW1vdmVTaHJpbmsoKTsKCQkJCXRoaXMuX3JlbW92ZUltYWdlTWF4SGVpZ2h0KCk7CgkJCX0KCQl9LAoKCQkvKioKCQkgKiBTaHJpbmtzIHRoZSBoZWFkZXIgd2hlbiB0aGUgcGFnZSBpcyBzY3JvbGxlZC4KCQkgKgoJCSAqIEBzaW5jZSAxLjAKCQkgKiBAYWNjZXNzIHByaXZhdGUKCQkgKiBAbWV0aG9kIF9kb1NocmluawoJCSAqLwoJCV9kb1NocmluazogZnVuY3Rpb24oIGUgKQoJCXsKCQkJdmFyIHdpblRvcCAJCQkgID0gdGhpcy53aW4uc2Nyb2xsVG9wKCksCgkJCQloZWFkZXJUb3AgCQkgID0gdGhpcy5oZWFkZXIuZGF0YSgnb3JpZ2luYWwtdG9wJyksCgkJCQloZWFkZXJIZWlnaHQgCSAgPSB0aGlzLmhlYWRlci5kYXRhKCdvcmlnaW5hbC1oZWlnaHQnKSwKCQkJCXNocmlua0ltYWdlSGVpZ2h0ID0gdGhpcy5oZWFkZXIuZGF0YSgnc2hyaW5rLWltYWdlLWhlaWdodCcpLAoJCQkJd2luZG93U2l6ZSAgIAkgID0gdGhpcy53aW4ud2lkdGgoKSwKCQkJCW1ha2VTdGlja3kgICAJICA9IHRoaXMuX21ha2VXaW5kb3dTdGlja3koIHdpbmRvd1NpemUgKSwKCQkJCWhhc0NsYXNzICAgICAJICA9IHRoaXMuaGVhZGVyLmhhc0NsYXNzKCAnZmwtdGhlbWUtYnVpbGRlci1oZWFkZXItc2hyaW5rJyApOwoKCgkJCWlmICggdGhpcy5oYXNBZG1pbkJhciApIHsKCQkJCXdpblRvcCArPSAzMjsKCQkJfQoKCQkJaWYgKCBtYWtlU3RpY2t5ICYmICggd2luVG9wID4gaGVhZGVyVG9wICsgaGVhZGVySGVpZ2h0ICkgKSB7CgkJCQlpZiAoICEgaGFzQ2xhc3MgKSB7CgoJCQkJCXRoaXMuaGVhZGVyLmFkZENsYXNzKCAnZmwtdGhlbWUtYnVpbGRlci1oZWFkZXItc2hyaW5rJyApOwoKCQkJCQkvLyBTaHJpbmsgaW1hZ2VzIGJ1dCBkb24ndCBpbmNsdWRlIGxpZ2h0Ym94IGFuZCBtZW51IGltYWdlcy4KCQkJCQl0aGlzLmhlYWRlci5maW5kKCdpbWcnKS5lYWNoKCBmdW5jdGlvbiggaSApIHsKCQkJCQkJdmFyIGltYWdlICAgICAgICAgICA9ICQoIHRoaXMgKSwKCQkJCQkJCW1heE1lZ2FNZW51ICAgICA9IGltYWdlLmNsb3Nlc3QoICcubWF4LW1lZ2EtbWVudScgKS5sZW5ndGgsCgkJCQkJCQlpbWFnZUluTGlnaHRib3ggPSBpbWFnZS5jbG9zZXN0KCAnLmZsLWJ1dHRvbi1saWdodGJveC1jb250ZW50JyApLmxlbmd0aCwKCQkJCQkJCWltYWdlSW5OYXZNZW51ICA9IGltYWdlLmNsb3Nlc3QoICdsaS5tZW51LWl0ZW0nICkubGVuZ3RoOwoKCQkJCQkJaWYgKCAhICggaW1hZ2VJbkxpZ2h0Ym94IHx8IGltYWdlSW5OYXZNZW51IHx8IG1heE1lZ2FNZW51ICkgKSB7CgkJCQkJCQlpbWFnZS5jc3MoICdtYXgtaGVpZ2h0Jywgc2hyaW5rSW1hZ2VIZWlnaHQgKTsKCQkJCQkJfQoKCQkJCQl9KTsKCgkJCQkJdGhpcy5oZWFkZXIuZmluZCggJy5mbC1yb3ctY29udGVudC13cmFwJyApLmVhY2goIGZ1bmN0aW9uKCkgewoKCQkJCQkJdmFyIHJvdyA9ICQoIHRoaXMgKTsKCgkJCQkJCWlmICggcGFyc2VJbnQoIHJvdy5jc3MoICdwYWRkaW5nLWJvdHRvbScgKSApID4gNSApIHsKCQkJCQkJCXJvdy5hZGRDbGFzcyggJ2ZsLXRoZW1lLWJ1aWxkZXItaGVhZGVyLXNocmluay1yb3ctYm90dG9tJyApOwoJCQkJCQl9CgoJCQkJCQlpZiAoIHBhcnNlSW50KCByb3cuY3NzKCAncGFkZGluZy10b3AnICkgKSA+IDUgKSB7CgkJCQkJCQlyb3cuYWRkQ2xhc3MoICdmbC10aGVtZS1idWlsZGVyLWhlYWRlci1zaHJpbmstcm93LXRvcCcgKTsKCQkJCQkJfQoJCQkJCX0gKTsKCgkJCQkJdGhpcy5oZWFkZXIuZmluZCggJy5mbC1tb2R1bGUtY29udGVudCcgKS5lYWNoKCBmdW5jdGlvbigpIHsKCgkJCQkJCXZhciBtb2R1bGUgPSAkKCB0aGlzICk7CgoJCQkJCQlpZiAoIHBhcnNlSW50KCBtb2R1bGUuY3NzKCAnbWFyZ2luLWJvdHRvbScgKSApID4gNSApIHsKCQkJCQkJCW1vZHVsZS5hZGRDbGFzcyggJ2ZsLXRoZW1lLWJ1aWxkZXItaGVhZGVyLXNocmluay1tb2R1bGUtYm90dG9tJyApOwoJCQkJCQl9CgoJCQkJCQlpZiAoIHBhcnNlSW50KCBtb2R1bGUuY3NzKCAnbWFyZ2luLXRvcCcgKSApID4gNSApIHsKCQkJCQkJCW1vZHVsZS5hZGRDbGFzcyggJ2ZsLXRoZW1lLWJ1aWxkZXItaGVhZGVyLXNocmluay1tb2R1bGUtdG9wJyApOwoJCQkJCQl9CgkJCQkJfSApOwoJCQkJfQoJCQl9IGVsc2UgaWYgKGhhc0NsYXNzKSB7CgkJCQl0aGlzLmhlYWRlci5maW5kKCAnaW1nJyApLmNzcyggJ21heC1oZWlnaHQnLCAnJyApOwoJCQkJdGhpcy5fcmVtb3ZlU2hyaW5rKCk7CgkJCX0KCgkJCS8vIEZpeGVzIFNocmluayBoZWFkZXIgaXNzdWUgd2l0aCBCQiBUaGVtZSB3aGVuIHdpbmRvdyBpcyBzY3JvbGxlZCB0aGVuIHJlc2l6ZWQgYW5kIGJhY2suCgkJCWlmICggJ3VuZGVmaW5lZCcgPT09IHR5cGVvZiggZSApICYmICQoJ2JvZHknKS5oYXNDbGFzcyggJ2ZsLWZpeGVkLXdpZHRoJyApICkgewoJCQkJaWYgKCAhIHRoaXMub3ZlcmxheSApIHsKCQkJCQl0aGlzLl9hZGp1c3RIZWFkZXJIZWlnaHQoKTsKCQkJCX0KCQkJfQoKCQl9LAoKCQkvKioKCQkgKiBSZW1vdmVzIHRoZSBoZWFkZXIgc2hyaW5rIGVmZmVjdC4KCQkgKgoJCSAqIEBzaW5jZSAxLjAKCQkgKiBAYWNjZXNzIHByaXZhdGUKCQkgKiBAbWV0aG9kIF9yZW1vdmVTaHJpbmsKCQkgKi8KCQlfcmVtb3ZlU2hyaW5rOiBmdW5jdGlvbigpCgkJewoJCQl2YXIgcm93cyAgICA9IHRoaXMuaGVhZGVyLmZpbmQoICcuZmwtcm93LWNvbnRlbnQtd3JhcCcgKSwKCQkJCW1vZHVsZXMgPSB0aGlzLmhlYWRlci5maW5kKCAnLmZsLW1vZHVsZS1jb250ZW50JyApOwoKCQkJcm93cy5yZW1vdmVDbGFzcyggJ2ZsLXRoZW1lLWJ1aWxkZXItaGVhZGVyLXNocmluay1yb3ctYm90dG9tJyApOwoJCQlyb3dzLnJlbW92ZUNsYXNzKCAnZmwtdGhlbWUtYnVpbGRlci1oZWFkZXItc2hyaW5rLXJvdy10b3AnICk7CgkJCW1vZHVsZXMucmVtb3ZlQ2xhc3MoICdmbC10aGVtZS1idWlsZGVyLWhlYWRlci1zaHJpbmstbW9kdWxlLWJvdHRvbScgKTsKCQkJbW9kdWxlcy5yZW1vdmVDbGFzcyggJ2ZsLXRoZW1lLWJ1aWxkZXItaGVhZGVyLXNocmluay1tb2R1bGUtdG9wJyApOwoJCQl0aGlzLmhlYWRlci5yZW1vdmVDbGFzcyggJ2ZsLXRoZW1lLWJ1aWxkZXItaGVhZGVyLXNocmluaycgKTsKCQl9LAoKCQkvKioKCQkgKiBBZGRzIG1heCBoZWlnaHQgdG8gaW1hZ2VzIGluIG1vZHVsZXMgZm9yIHNtb290aCBzY3JvbGxpbmcuCgkJICoKCQkgKiBAc2luY2UgMS4xLjEKCQkgKiBAYWNjZXNzIHByaXZhdGUKCQkgKiBAbWV0aG9kIF9zZXRJbWFnZU1heEhlaWdodAoJCSAqLwoJCV9zZXRJbWFnZU1heEhlaWdodDogZnVuY3Rpb24oKQoJCXsKCQkJdmFyIGhlYWQgPSAkKCAnaGVhZCcgKSwKCQkJCXN0eWxlc0lkID0gJ2ZsLWhlYWRlci1zdHlsZXMtJyArIHRoaXMuaGVhZGVyLmRhdGEoICdwb3N0LWlkJyApLAoJCQkJc3R5bGVzID0gJycsCgkJCQlpbWFnZXMgPSB0aGlzLmhlYWRlci5maW5kKCAnLmZsLW1vZHVsZS1jb250ZW50IGltZycgKTsKCgkJCWlmICggJCggJyMnICsgc3R5bGVzSWQgKS5sZW5ndGggKSB7CgkJCQlyZXR1cm47CgkJCX0KCgkJCWltYWdlcy5lYWNoKCBmdW5jdGlvbiggaSApIHsKCQkJCXZhciBpbWFnZSAgICAgICAgICAgPSAkKCB0aGlzICksCgkJCQkJaGVpZ2h0ICAgICAgICAgID0gaW1hZ2UuaGVpZ2h0KCksCgkJCQkJbm9kZSAgICAgICAgICAgID0gaW1hZ2UuY2xvc2VzdCggJy5mbC1tb2R1bGUnICkuZGF0YSggJ25vZGUnICksCgkJCQkJY2xhc3NOYW1lICAgICAgID0gJ2ZsLW5vZGUtJyArIG5vZGUgKyAnLWltZy0nICsgaSwKCQkJCQltYXhNZWdhTWVudSAgICAgPSBpbWFnZS5jbG9zZXN0KCAnLm1heC1tZWdhLW1lbnUnICkubGVuZ3RoLAoJCQkJCWltYWdlSW5MaWdodGJveCA9IGltYWdlLmNsb3Nlc3QoICcuZmwtYnV0dG9uLWxpZ2h0Ym94LWNvbnRlbnQnICkubGVuZ3RoLAoJCQkJCWltYWdlSW5OYXZNZW51ICA9IGltYWdlLmNsb3Nlc3QoICdsaS5tZW51LWl0ZW0nICkubGVuZ3RoOwoKCQkJCWlmICggISAoIGltYWdlSW5MaWdodGJveCB8fCBpbWFnZUluTmF2TWVudSB8fCBtYXhNZWdhTWVudSAgKSApIHsKCQkJCQlpbWFnZS5hZGRDbGFzcyggY2xhc3NOYW1lICk7CgkJCQkJc3R5bGVzICs9ICcuJyArIGNsYXNzTmFtZSArICcgeyBtYXgtaGVpZ2h0OiAnICsgKCBoZWlnaHQgPyBoZWlnaHQgOiBpbWFnZVswXS5oZWlnaHQgKSAgKyAncHggfSc7CgkJCQl9CgoJCQl9ICk7CgoJCQlpZiAoICcnICE9PSBzdHlsZXMgKSB7CgkJCQloZWFkLmFwcGVuZCggJzxzdHlsZSBpZD0iJyArIHN0eWxlc0lkICsgJyI+JyArIHN0eWxlcyArICc8L3N0eWxlPicgKTsKCQkJfQoJCX0sCgoJCS8qKgoJCSAqIFJlbW92ZXMgbWF4IGhlaWdodCBvbiBpbWFnZXMgaW4gbW9kdWxlcyBmb3Igc21vb3RoIHNjcm9sbGluZy4KCQkgKgoJCSAqIEBzaW5jZSAxLjEuMQoJCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJCSAqIEBtZXRob2QgX3JlbW92ZUltYWdlTWF4SGVpZ2h0CgkJICovCgkJX3JlbW92ZUltYWdlTWF4SGVpZ2h0OiBmdW5jdGlvbigpCgkJewoJCQkkKCAnI2ZsLWhlYWRlci1zdHlsZXMtJyArIHRoaXMuaGVhZGVyLmRhdGEoICdwb3N0LWlkJyApICkucmVtb3ZlKCk7CgkJfSwKCX07CgoJJCggZnVuY3Rpb24oKSB7IEZMVGhlbWVCdWlsZGVySGVhZGVyTGF5b3V0LmluaXQoKTsgfSApOwoKfSkoalF1ZXJ5KTsKLyohCiAqIEJvd3NlciAtIGEgYnJvd3NlciBkZXRlY3RvcgogKiBodHRwczovL2dpdGh1Yi5jb20vZGVkL2Jvd3NlcgogKiBNSVQgTGljZW5zZSB8IChjKSBEdXN0aW4gRGlheiAyMDE1CiAqLwoKIWZ1bmN0aW9uIChuYW1lLCBkZWZpbml0aW9uKSB7CiAgaWYgKHR5cGVvZiBtb2R1bGUgIT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlLmV4cG9ydHMpIG1vZHVsZS5leHBvcnRzID0gZGVmaW5pdGlvbigpCiAgZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIGRlZmluZShuYW1lLCBkZWZpbml0aW9uKQogIGVsc2UgdGhpc1tuYW1lXSA9IGRlZmluaXRpb24oKQp9KCdib3dzZXInLCBmdW5jdGlvbiAoKSB7CiAgLyoqCiAgICAqIFNlZSB1c2VyYWdlbnRzLmpzIGZvciBleGFtcGxlcyBvZiBuYXZpZ2F0b3IudXNlckFnZW50CiAgICAqLwoKICB2YXIgdCA9IHRydWUKCiAgZnVuY3Rpb24gZGV0ZWN0KHVhKSB7CgogICAgZnVuY3Rpb24gZ2V0Rmlyc3RNYXRjaChyZWdleCkgewogICAgICB2YXIgbWF0Y2ggPSB1YS5tYXRjaChyZWdleCk7CiAgICAgIHJldHVybiAobWF0Y2ggJiYgbWF0Y2gubGVuZ3RoID4gMSAmJiBtYXRjaFsxXSkgfHwgJyc7CiAgICB9CgogICAgZnVuY3Rpb24gZ2V0U2Vjb25kTWF0Y2gocmVnZXgpIHsKICAgICAgdmFyIG1hdGNoID0gdWEubWF0Y2gocmVnZXgpOwogICAgICByZXR1cm4gKG1hdGNoICYmIG1hdGNoLmxlbmd0aCA+IDEgJiYgbWF0Y2hbMl0pIHx8ICcnOwogICAgfQoKICAgIHZhciBpb3NkZXZpY2UgPSBnZXRGaXJzdE1hdGNoKC8oaXBvZHxpcGhvbmV8aXBhZCkvaSkudG9Mb3dlckNhc2UoKQogICAgICAsIGxpa2VBbmRyb2lkID0gL2xpa2UgYW5kcm9pZC9pLnRlc3QodWEpCiAgICAgICwgYW5kcm9pZCA9ICFsaWtlQW5kcm9pZCAmJiAvYW5kcm9pZC9pLnRlc3QodWEpCiAgICAgICwgbmV4dXNNb2JpbGUgPSAvbmV4dXNccypbMC02XVxzKi9pLnRlc3QodWEpCiAgICAgICwgbmV4dXNUYWJsZXQgPSAhbmV4dXNNb2JpbGUgJiYgL25leHVzXHMqWzAtOV0rL2kudGVzdCh1YSkKICAgICAgLCBjaHJvbWVvcyA9IC9Dck9TLy50ZXN0KHVhKQogICAgICAsIHNpbGsgPSAvc2lsay9pLnRlc3QodWEpCiAgICAgICwgc2FpbGZpc2ggPSAvc2FpbGZpc2gvaS50ZXN0KHVhKQogICAgICAsIHRpemVuID0gL3RpemVuL2kudGVzdCh1YSkKICAgICAgLCB3ZWJvcyA9IC8od2VifGhwdylvcy9pLnRlc3QodWEpCiAgICAgICwgd2luZG93c3Bob25lID0gL3dpbmRvd3MgcGhvbmUvaS50ZXN0KHVhKQogICAgICAsIHdpbmRvd3MgPSAhd2luZG93c3Bob25lICYmIC93aW5kb3dzL2kudGVzdCh1YSkKICAgICAgLCBtYWMgPSAhaW9zZGV2aWNlICYmICFzaWxrICYmIC9tYWNpbnRvc2gvaS50ZXN0KHVhKQogICAgICAsIGxpbnV4ID0gIWFuZHJvaWQgJiYgIXNhaWxmaXNoICYmICF0aXplbiAmJiAhd2Vib3MgJiYgL2xpbnV4L2kudGVzdCh1YSkKICAgICAgLCBlZGdlVmVyc2lvbiA9IGdldEZpcnN0TWF0Y2goL2VkZ2VcLyhcZCsoXC5cZCspPykvaSkKICAgICAgLCB2ZXJzaW9uSWRlbnRpZmllciA9IGdldEZpcnN0TWF0Y2goL3ZlcnNpb25cLyhcZCsoXC5cZCspPykvaSkKICAgICAgLCB0YWJsZXQgPSAvdGFibGV0L2kudGVzdCh1YSkKICAgICAgLCBtb2JpbGUgPSAhdGFibGV0ICYmIC9bXi1dbW9iaS9pLnRlc3QodWEpCiAgICAgICwgeGJveCA9IC94Ym94L2kudGVzdCh1YSkKICAgICAgLCByZXN1bHQKCiAgICBpZiAoL29wZXJhfG9wcnxvcGlvcy9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnT3BlcmEnCiAgICAgICwgb3BlcmE6IHQKICAgICAgLCB2ZXJzaW9uOiB2ZXJzaW9uSWRlbnRpZmllciB8fCBnZXRGaXJzdE1hdGNoKC8oPzpvcGVyYXxvcHJ8b3Bpb3MpW1xzXC9dKFxkKyhcLlxkKyk/KS9pKQogICAgICB9CiAgICB9CiAgICBlbHNlIGlmICgvY29hc3QvaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ09wZXJhIENvYXN0JwogICAgICAgICwgY29hc3Q6IHQKICAgICAgICAsIHZlcnNpb246IHZlcnNpb25JZGVudGlmaWVyIHx8IGdldEZpcnN0TWF0Y2goLyg/OmNvYXN0KVtcc1wvXShcZCsoXC5cZCspPykvaSkKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoL3lhYnJvd3Nlci9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnWWFuZGV4IEJyb3dzZXInCiAgICAgICwgeWFuZGV4YnJvd3NlcjogdAogICAgICAsIHZlcnNpb246IHZlcnNpb25JZGVudGlmaWVyIHx8IGdldEZpcnN0TWF0Y2goLyg/OnlhYnJvd3NlcilbXHNcL10oXGQrKFwuXGQrKT8pL2kpCiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKC91Y2Jyb3dzZXIvaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgICBuYW1lOiAnVUMgQnJvd3NlcicKICAgICAgICAsIHVjYnJvd3NlcjogdAogICAgICAgICwgdmVyc2lvbjogZ2V0Rmlyc3RNYXRjaCgvKD86dWNicm93c2VyKVtcc1wvXShcZCsoPzpcLlxkKykrKS9pKQogICAgICB9CiAgICB9CiAgICBlbHNlIGlmICgvbXhpb3MvaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ01heHRob24nCiAgICAgICAgLCBtYXh0aG9uOiB0CiAgICAgICAgLCB2ZXJzaW9uOiBnZXRGaXJzdE1hdGNoKC8oPzpteGlvcylbXHNcL10oXGQrKD86XC5cZCspKykvaSkKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoL2VwaXBoYW55L2kudGVzdCh1YSkpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdFcGlwaGFueScKICAgICAgICAsIGVwaXBoYW55OiB0CiAgICAgICAgLCB2ZXJzaW9uOiBnZXRGaXJzdE1hdGNoKC8oPzplcGlwaGFueSlbXHNcL10oXGQrKD86XC5cZCspKykvaSkKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoL3B1ZmZpbi9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnUHVmZmluJwogICAgICAgICwgcHVmZmluOiB0CiAgICAgICAgLCB2ZXJzaW9uOiBnZXRGaXJzdE1hdGNoKC8oPzpwdWZmaW4pW1xzXC9dKFxkKyg/OlwuXGQrKT8pL2kpCiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKC9zbGVpcG5pci9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnU2xlaXBuaXInCiAgICAgICAgLCBzbGVpcG5pcjogdAogICAgICAgICwgdmVyc2lvbjogZ2V0Rmlyc3RNYXRjaCgvKD86c2xlaXBuaXIpW1xzXC9dKFxkKyg/OlwuXGQrKSspL2kpCiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKC9rLW1lbGVvbi9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnSy1NZWxlb24nCiAgICAgICAgLCBrTWVsZW9uOiB0CiAgICAgICAgLCB2ZXJzaW9uOiBnZXRGaXJzdE1hdGNoKC8oPzprLW1lbGVvbilbXHNcL10oXGQrKD86XC5cZCspKykvaSkKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAod2luZG93c3Bob25lKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnV2luZG93cyBQaG9uZScKICAgICAgLCB3aW5kb3dzcGhvbmU6IHQKICAgICAgfQogICAgICBpZiAoZWRnZVZlcnNpb24pIHsKICAgICAgICByZXN1bHQubXNlZGdlID0gdAogICAgICAgIHJlc3VsdC52ZXJzaW9uID0gZWRnZVZlcnNpb24KICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICByZXN1bHQubXNpZSA9IHQKICAgICAgICByZXN1bHQudmVyc2lvbiA9IGdldEZpcnN0TWF0Y2goL2llbW9iaWxlXC8oXGQrKFwuXGQrKT8pL2kpCiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKC9tc2llfHRyaWRlbnQvaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ0ludGVybmV0IEV4cGxvcmVyJwogICAgICAsIG1zaWU6IHQKICAgICAgLCB2ZXJzaW9uOiBnZXRGaXJzdE1hdGNoKC8oPzptc2llIHxydjopKFxkKyhcLlxkKyk/KS9pKQogICAgICB9CiAgICB9IGVsc2UgaWYgKGNocm9tZW9zKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnQ2hyb21lJwogICAgICAsIGNocm9tZW9zOiB0CiAgICAgICwgY2hyb21lQm9vazogdAogICAgICAsIGNocm9tZTogdAogICAgICAsIHZlcnNpb246IGdldEZpcnN0TWF0Y2goLyg/OmNocm9tZXxjcmlvc3xjcm1vKVwvKFxkKyhcLlxkKyk/KS9pKQogICAgICB9CiAgICB9IGVsc2UgaWYgKC9jaHJvbWUuKz8gZWRnZS9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnTWljcm9zb2Z0IEVkZ2UnCiAgICAgICwgbXNlZGdlOiB0CiAgICAgICwgdmVyc2lvbjogZWRnZVZlcnNpb24KICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoL3ZpdmFsZGkvaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ1ZpdmFsZGknCiAgICAgICAgLCB2aXZhbGRpOiB0CiAgICAgICAgLCB2ZXJzaW9uOiBnZXRGaXJzdE1hdGNoKC92aXZhbGRpXC8oXGQrKFwuXGQrKT8pL2kpIHx8IHZlcnNpb25JZGVudGlmaWVyCiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKHNhaWxmaXNoKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnU2FpbGZpc2gnCiAgICAgICwgc2FpbGZpc2g6IHQKICAgICAgLCB2ZXJzaW9uOiBnZXRGaXJzdE1hdGNoKC9zYWlsZmlzaFxzP2Jyb3dzZXJcLyhcZCsoXC5cZCspPykvaSkKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoL3NlYW1vbmtleVwvL2kudGVzdCh1YSkpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdTZWFNb25rZXknCiAgICAgICwgc2VhbW9ua2V5OiB0CiAgICAgICwgdmVyc2lvbjogZ2V0Rmlyc3RNYXRjaCgvc2VhbW9ua2V5XC8oXGQrKFwuXGQrKT8pL2kpCiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKC9maXJlZm94fGljZXdlYXNlbHxmeGlvcy9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnRmlyZWZveCcKICAgICAgLCBmaXJlZm94OiB0CiAgICAgICwgdmVyc2lvbjogZ2V0Rmlyc3RNYXRjaCgvKD86ZmlyZWZveHxpY2V3ZWFzZWx8Znhpb3MpWyBcL10oXGQrKFwuXGQrKT8pL2kpCiAgICAgIH0KICAgICAgaWYgKC9cKChtb2JpbGV8dGFibGV0KTtbXlwpXSpydjpbXGRcLl0rXCkvaS50ZXN0KHVhKSkgewogICAgICAgIHJlc3VsdC5maXJlZm94b3MgPSB0CiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKHNpbGspIHsKICAgICAgcmVzdWx0ID0gIHsKICAgICAgICBuYW1lOiAnQW1hem9uIFNpbGsnCiAgICAgICwgc2lsazogdAogICAgICAsIHZlcnNpb24gOiBnZXRGaXJzdE1hdGNoKC9zaWxrXC8oXGQrKFwuXGQrKT8pL2kpCiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKC9waGFudG9tL2kudGVzdCh1YSkpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdQaGFudG9tSlMnCiAgICAgICwgcGhhbnRvbTogdAogICAgICAsIHZlcnNpb246IGdldEZpcnN0TWF0Y2goL3BoYW50b21qc1wvKFxkKyhcLlxkKyk/KS9pKQogICAgICB9CiAgICB9CiAgICBlbHNlIGlmICgvc2xpbWVyanMvaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ1NsaW1lckpTJwogICAgICAgICwgc2xpbWVyOiB0CiAgICAgICAgLCB2ZXJzaW9uOiBnZXRGaXJzdE1hdGNoKC9zbGltZXJqc1wvKFxkKyhcLlxkKyk/KS9pKQogICAgICB9CiAgICB9CiAgICBlbHNlIGlmICgvYmxhY2tiZXJyeXxcYmJiXGQrL2kudGVzdCh1YSkgfHwgL3JpbVxzdGFibGV0L2kudGVzdCh1YSkpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdCbGFja0JlcnJ5JwogICAgICAsIGJsYWNrYmVycnk6IHQKICAgICAgLCB2ZXJzaW9uOiB2ZXJzaW9uSWRlbnRpZmllciB8fCBnZXRGaXJzdE1hdGNoKC9ibGFja2JlcnJ5W1xkXStcLyhcZCsoXC5cZCspPykvaSkKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAod2Vib3MpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdXZWJPUycKICAgICAgLCB3ZWJvczogdAogICAgICAsIHZlcnNpb246IHZlcnNpb25JZGVudGlmaWVyIHx8IGdldEZpcnN0TWF0Y2goL3coPzplYik/b3Nicm93c2VyXC8oXGQrKFwuXGQrKT8pL2kpCiAgICAgIH07CiAgICAgIGlmKCAvdG91Y2hwYWRcLy9pLnRlc3QodWEpICl7CiAgICAgICAgcmVzdWx0LnRvdWNocGFkID0gdDsKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoL2JhZGEvaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ0JhZGEnCiAgICAgICwgYmFkYTogdAogICAgICAsIHZlcnNpb246IGdldEZpcnN0TWF0Y2goL2RvbGZpblwvKFxkKyhcLlxkKyk/KS9pKQogICAgICB9OwogICAgfQogICAgZWxzZSBpZiAodGl6ZW4pIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdUaXplbicKICAgICAgLCB0aXplbjogdAogICAgICAsIHZlcnNpb246IGdldEZpcnN0TWF0Y2goLyg/OnRpemVuXHM/KT9icm93c2VyXC8oXGQrKFwuXGQrKT8pL2kpIHx8IHZlcnNpb25JZGVudGlmaWVyCiAgICAgIH07CiAgICB9CiAgICBlbHNlIGlmICgvcXVwemlsbGEvaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ1F1cFppbGxhJwogICAgICAgICwgcXVwemlsbGE6IHQKICAgICAgICAsIHZlcnNpb246IGdldEZpcnN0TWF0Y2goLyg/OnF1cHppbGxhKVtcc1wvXShcZCsoPzpcLlxkKykrKS9pKSB8fCB2ZXJzaW9uSWRlbnRpZmllcgogICAgICB9CiAgICB9CiAgICBlbHNlIGlmICgvY2hyb21pdW0vaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ0Nocm9taXVtJwogICAgICAgICwgY2hyb21pdW06IHQKICAgICAgICAsIHZlcnNpb246IGdldEZpcnN0TWF0Y2goLyg/OmNocm9taXVtKVtcc1wvXShcZCsoPzpcLlxkKyk/KS9pKSB8fCB2ZXJzaW9uSWRlbnRpZmllcgogICAgICB9CiAgICB9CiAgICBlbHNlIGlmICgvY2hyb21lfGNyaW9zfGNybW8vaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ0Nocm9tZScKICAgICAgICAsIGNocm9tZTogdAogICAgICAgICwgdmVyc2lvbjogZ2V0Rmlyc3RNYXRjaCgvKD86Y2hyb21lfGNyaW9zfGNybW8pXC8oXGQrKFwuXGQrKT8pL2kpCiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKGFuZHJvaWQpIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6ICdBbmRyb2lkJwogICAgICAgICwgdmVyc2lvbjogdmVyc2lvbklkZW50aWZpZXIKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoL3NhZmFyaXxhcHBsZXdlYmtpdC9pLnRlc3QodWEpKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lOiAnU2FmYXJpJwogICAgICAsIHNhZmFyaTogdAogICAgICB9CiAgICAgIGlmICh2ZXJzaW9uSWRlbnRpZmllcikgewogICAgICAgIHJlc3VsdC52ZXJzaW9uID0gdmVyc2lvbklkZW50aWZpZXIKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoaW9zZGV2aWNlKSB7CiAgICAgIHJlc3VsdCA9IHsKICAgICAgICBuYW1lIDogaW9zZGV2aWNlID09ICdpcGhvbmUnID8gJ2lQaG9uZScgOiBpb3NkZXZpY2UgPT0gJ2lwYWQnID8gJ2lQYWQnIDogJ2lQb2QnCiAgICAgIH0KICAgICAgLy8gV1RGOiB2ZXJzaW9uIGlzIG5vdCBwYXJ0IG9mIHVzZXIgYWdlbnQgaW4gd2ViIGFwcHMKICAgICAgaWYgKHZlcnNpb25JZGVudGlmaWVyKSB7CiAgICAgICAgcmVzdWx0LnZlcnNpb24gPSB2ZXJzaW9uSWRlbnRpZmllcgogICAgICB9CiAgICB9CiAgICBlbHNlIGlmKC9nb29nbGVib3QvaS50ZXN0KHVhKSkgewogICAgICByZXN1bHQgPSB7CiAgICAgICAgbmFtZTogJ0dvb2dsZWJvdCcKICAgICAgLCBnb29nbGVib3Q6IHQKICAgICAgLCB2ZXJzaW9uOiBnZXRGaXJzdE1hdGNoKC9nb29nbGVib3RcLyhcZCsoXC5cZCspKS9pKSB8fCB2ZXJzaW9uSWRlbnRpZmllcgogICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgcmVzdWx0ID0gewogICAgICAgIG5hbWU6IGdldEZpcnN0TWF0Y2goL14oLiopXC8oLiopIC8pLAogICAgICAgIHZlcnNpb246IGdldFNlY29uZE1hdGNoKC9eKC4qKVwvKC4qKSAvKQogICAgIH07CiAgIH0KCiAgICAvLyBzZXQgd2Via2l0IG9yIGdlY2tvIGZsYWcgZm9yIGJyb3dzZXJzIGJhc2VkIG9uIHRoZXNlIGVuZ2luZXMKICAgIGlmICghcmVzdWx0Lm1zZWRnZSAmJiAvKGFwcGxlKT93ZWJraXQvaS50ZXN0KHVhKSkgewogICAgICBpZiAoLyhhcHBsZSk/d2Via2l0XC81MzdcLjM2L2kudGVzdCh1YSkpIHsKICAgICAgICByZXN1bHQubmFtZSA9IHJlc3VsdC5uYW1lIHx8ICJCbGluayIKICAgICAgICByZXN1bHQuYmxpbmsgPSB0CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmVzdWx0Lm5hbWUgPSByZXN1bHQubmFtZSB8fCAiV2Via2l0IgogICAgICAgIHJlc3VsdC53ZWJraXQgPSB0CiAgICAgIH0KICAgICAgaWYgKCFyZXN1bHQudmVyc2lvbiAmJiB2ZXJzaW9uSWRlbnRpZmllcikgewogICAgICAgIHJlc3VsdC52ZXJzaW9uID0gdmVyc2lvbklkZW50aWZpZXIKICAgICAgfQogICAgfSBlbHNlIGlmICghcmVzdWx0Lm9wZXJhICYmIC9nZWNrb1wvL2kudGVzdCh1YSkpIHsKICAgICAgcmVzdWx0Lm5hbWUgPSByZXN1bHQubmFtZSB8fCAiR2Vja28iCiAgICAgIHJlc3VsdC5nZWNrbyA9IHQKICAgICAgcmVzdWx0LnZlcnNpb24gPSByZXN1bHQudmVyc2lvbiB8fCBnZXRGaXJzdE1hdGNoKC9nZWNrb1wvKFxkKyhcLlxkKyk/KS9pKQogICAgfQoKICAgIC8vIHNldCBPUyBmbGFncyBmb3IgcGxhdGZvcm1zIHRoYXQgaGF2ZSBtdWx0aXBsZSBicm93c2VycwogICAgaWYgKCFyZXN1bHQubXNlZGdlICYmIChhbmRyb2lkIHx8IHJlc3VsdC5zaWxrKSkgewogICAgICByZXN1bHQuYW5kcm9pZCA9IHQKICAgIH0gZWxzZSBpZiAoaW9zZGV2aWNlKSB7CiAgICAgIHJlc3VsdFtpb3NkZXZpY2VdID0gdAogICAgICByZXN1bHQuaW9zID0gdAogICAgfSBlbHNlIGlmIChtYWMpIHsKICAgICAgcmVzdWx0Lm1hYyA9IHQKICAgIH0gZWxzZSBpZiAoeGJveCkgewogICAgICByZXN1bHQueGJveCA9IHQKICAgIH0gZWxzZSBpZiAod2luZG93cykgewogICAgICByZXN1bHQud2luZG93cyA9IHQKICAgIH0gZWxzZSBpZiAobGludXgpIHsKICAgICAgcmVzdWx0LmxpbnV4ID0gdAogICAgfQoKICAgIC8vIE9TIHZlcnNpb24gZXh0cmFjdGlvbgogICAgdmFyIG9zVmVyc2lvbiA9ICcnOwogICAgaWYgKHJlc3VsdC53aW5kb3dzcGhvbmUpIHsKICAgICAgb3NWZXJzaW9uID0gZ2V0Rmlyc3RNYXRjaCgvd2luZG93cyBwaG9uZSAoPzpvcyk/XHM/KFxkKyhcLlxkKykqKS9pKTsKICAgIH0gZWxzZSBpZiAoaW9zZGV2aWNlKSB7CiAgICAgIG9zVmVyc2lvbiA9IGdldEZpcnN0TWF0Y2goL29zIChcZCsoW19cc11cZCspKikgbGlrZSBtYWMgb3MgeC9pKTsKICAgICAgb3NWZXJzaW9uID0gb3NWZXJzaW9uLnJlcGxhY2UoL1tfXHNdL2csICcuJyk7CiAgICB9IGVsc2UgaWYgKGFuZHJvaWQpIHsKICAgICAgb3NWZXJzaW9uID0gZ2V0Rmlyc3RNYXRjaCgvYW5kcm9pZFsgXC8tXShcZCsoXC5cZCspKikvaSk7CiAgICB9IGVsc2UgaWYgKHJlc3VsdC53ZWJvcykgewogICAgICBvc1ZlcnNpb24gPSBnZXRGaXJzdE1hdGNoKC8oPzp3ZWJ8aHB3KW9zXC8oXGQrKFwuXGQrKSopL2kpOwogICAgfSBlbHNlIGlmIChyZXN1bHQuYmxhY2tiZXJyeSkgewogICAgICBvc1ZlcnNpb24gPSBnZXRGaXJzdE1hdGNoKC9yaW1cc3RhYmxldFxzb3NccyhcZCsoXC5cZCspKikvaSk7CiAgICB9IGVsc2UgaWYgKHJlc3VsdC5iYWRhKSB7CiAgICAgIG9zVmVyc2lvbiA9IGdldEZpcnN0TWF0Y2goL2JhZGFcLyhcZCsoXC5cZCspKikvaSk7CiAgICB9IGVsc2UgaWYgKHJlc3VsdC50aXplbikgewogICAgICBvc1ZlcnNpb24gPSBnZXRGaXJzdE1hdGNoKC90aXplbltcL1xzXShcZCsoXC5cZCspKikvaSk7CiAgICB9CiAgICBpZiAob3NWZXJzaW9uKSB7CiAgICAgIHJlc3VsdC5vc3ZlcnNpb24gPSBvc1ZlcnNpb247CiAgICB9CgogICAgLy8gZGV2aWNlIHR5cGUgZXh0cmFjdGlvbgogICAgdmFyIG9zTWFqb3JWZXJzaW9uID0gb3NWZXJzaW9uLnNwbGl0KCcuJylbMF07CiAgICBpZiAoCiAgICAgICAgIHRhYmxldAogICAgICB8fCBuZXh1c1RhYmxldAogICAgICB8fCBpb3NkZXZpY2UgPT0gJ2lwYWQnCiAgICAgIHx8IChhbmRyb2lkICYmIChvc01ham9yVmVyc2lvbiA9PSAzIHx8IChvc01ham9yVmVyc2lvbiA+PSA0ICYmICFtb2JpbGUpKSkKICAgICAgfHwgcmVzdWx0LnNpbGsKICAgICkgewogICAgICByZXN1bHQudGFibGV0ID0gdAogICAgfSBlbHNlIGlmICgKICAgICAgICAgbW9iaWxlCiAgICAgIHx8IGlvc2RldmljZSA9PSAnaXBob25lJwogICAgICB8fCBpb3NkZXZpY2UgPT0gJ2lwb2QnCiAgICAgIHx8IGFuZHJvaWQKICAgICAgfHwgbmV4dXNNb2JpbGUKICAgICAgfHwgcmVzdWx0LmJsYWNrYmVycnkKICAgICAgfHwgcmVzdWx0LndlYm9zCiAgICAgIHx8IHJlc3VsdC5iYWRhCiAgICApIHsKICAgICAgcmVzdWx0Lm1vYmlsZSA9IHQKICAgIH0KCiAgICAvLyBHcmFkZWQgQnJvd3NlciBTdXBwb3J0CiAgICAvLyBodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS95dWkvYXJ0aWNsZXMvZ2JzCiAgICBpZiAocmVzdWx0Lm1zZWRnZSB8fAogICAgICAgIChyZXN1bHQubXNpZSAmJiByZXN1bHQudmVyc2lvbiA+PSAxMCkgfHwKICAgICAgICAocmVzdWx0LnlhbmRleGJyb3dzZXIgJiYgcmVzdWx0LnZlcnNpb24gPj0gMTUpIHx8CgkJICAgIChyZXN1bHQudml2YWxkaSAmJiByZXN1bHQudmVyc2lvbiA+PSAxLjApIHx8CiAgICAgICAgKHJlc3VsdC5jaHJvbWUgJiYgcmVzdWx0LnZlcnNpb24gPj0gMjApIHx8CiAgICAgICAgKHJlc3VsdC5maXJlZm94ICYmIHJlc3VsdC52ZXJzaW9uID49IDIwLjApIHx8CiAgICAgICAgKHJlc3VsdC5zYWZhcmkgJiYgcmVzdWx0LnZlcnNpb24gPj0gNikgfHwKICAgICAgICAocmVzdWx0Lm9wZXJhICYmIHJlc3VsdC52ZXJzaW9uID49IDEwLjApIHx8CiAgICAgICAgKHJlc3VsdC5pb3MgJiYgcmVzdWx0Lm9zdmVyc2lvbiAmJiByZXN1bHQub3N2ZXJzaW9uLnNwbGl0KCIuIilbMF0gPj0gNikgfHwKICAgICAgICAocmVzdWx0LmJsYWNrYmVycnkgJiYgcmVzdWx0LnZlcnNpb24gPj0gMTAuMSkKICAgICAgICB8fCAocmVzdWx0LmNocm9taXVtICYmIHJlc3VsdC52ZXJzaW9uID49IDIwKQogICAgICAgICkgewogICAgICByZXN1bHQuYSA9IHQ7CiAgICB9CiAgICBlbHNlIGlmICgocmVzdWx0Lm1zaWUgJiYgcmVzdWx0LnZlcnNpb24gPCAxMCkgfHwKICAgICAgICAocmVzdWx0LmNocm9tZSAmJiByZXN1bHQudmVyc2lvbiA8IDIwKSB8fAogICAgICAgIChyZXN1bHQuZmlyZWZveCAmJiByZXN1bHQudmVyc2lvbiA8IDIwLjApIHx8CiAgICAgICAgKHJlc3VsdC5zYWZhcmkgJiYgcmVzdWx0LnZlcnNpb24gPCA2KSB8fAogICAgICAgIChyZXN1bHQub3BlcmEgJiYgcmVzdWx0LnZlcnNpb24gPCAxMC4wKSB8fAogICAgICAgIChyZXN1bHQuaW9zICYmIHJlc3VsdC5vc3ZlcnNpb24gJiYgcmVzdWx0Lm9zdmVyc2lvbi5zcGxpdCgiLiIpWzBdIDwgNikKICAgICAgICB8fCAocmVzdWx0LmNocm9taXVtICYmIHJlc3VsdC52ZXJzaW9uIDwgMjApCiAgICAgICAgKSB7CiAgICAgIHJlc3VsdC5jID0gdAogICAgfSBlbHNlIHJlc3VsdC54ID0gdAoKICAgIHJldHVybiByZXN1bHQKICB9CgogIHZhciBib3dzZXIgPSBkZXRlY3QodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgPyBuYXZpZ2F0b3IudXNlckFnZW50IDogJycpCgogIGJvd3Nlci50ZXN0ID0gZnVuY3Rpb24gKGJyb3dzZXJMaXN0KSB7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJyb3dzZXJMaXN0Lmxlbmd0aDsgKytpKSB7CiAgICAgIHZhciBicm93c2VySXRlbSA9IGJyb3dzZXJMaXN0W2ldOwogICAgICBpZiAodHlwZW9mIGJyb3dzZXJJdGVtPT09ICdzdHJpbmcnKSB7CiAgICAgICAgaWYgKGJyb3dzZXJJdGVtIGluIGJvd3NlcikgewogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICAvKioKICAgKiBHZXQgdmVyc2lvbiBwcmVjaXNpb25zIGNvdW50CiAgICoKICAgKiBAZXhhbXBsZQogICAqICAgZ2V0VmVyc2lvblByZWNpc2lvbigiMS4xMC4zIikgLy8gMwogICAqCiAgICogQHBhcmFtICB7c3RyaW5nfSB2ZXJzaW9uCiAgICogQHJldHVybiB7bnVtYmVyfQogICAqLwogIGZ1bmN0aW9uIGdldFZlcnNpb25QcmVjaXNpb24odmVyc2lvbikgewogICAgcmV0dXJuIHZlcnNpb24uc3BsaXQoIi4iKS5sZW5ndGg7CiAgfQoKICAvKioKICAgKiBBcnJheTo6bWFwIHBvbHlmaWxsCiAgICoKICAgKiBAcGFyYW0gIHtBcnJheX0gYXJyCiAgICogQHBhcmFtICB7RnVuY3Rpb259IGl0ZXJhdG9yCiAgICogQHJldHVybiB7QXJyYXl9CiAgICovCiAgZnVuY3Rpb24gbWFwKGFyciwgaXRlcmF0b3IpIHsKICAgIHZhciByZXN1bHQgPSBbXSwgaTsKICAgIGlmIChBcnJheS5wcm90b3R5cGUubWFwKSB7CiAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwoYXJyLCBpdGVyYXRvcik7CiAgICB9CiAgICBmb3IgKGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7CiAgICAgIHJlc3VsdC5wdXNoKGl0ZXJhdG9yKGFycltpXSkpOwogICAgfQogICAgcmV0dXJuIHJlc3VsdDsKICB9CgogIC8qKgogICAqIENhbGN1bGF0ZSBicm93c2VyIHZlcnNpb24gd2VpZ2h0CiAgICoKICAgKiBAZXhhbXBsZQogICAqICAgY29tcGFyZVZlcnNpb25zKFsnMS4xMC4yLjEnLCAgJzEuOC4yLjEuOTAnXSkgICAgLy8gMQogICAqICAgY29tcGFyZVZlcnNpb25zKFsnMS4wMTAuMi4xJywgJzEuMDkuMi4xLjkwJ10pOyAgLy8gMQogICAqICAgY29tcGFyZVZlcnNpb25zKFsnMS4xMC4yLjEnLCAgJzEuMTAuMi4xJ10pOyAgICAgLy8gMAogICAqICAgY29tcGFyZVZlcnNpb25zKFsnMS4xMC4yLjEnLCAgJzEuMDgwMC4yJ10pOyAgICAgLy8gLTEKICAgKgogICAqIEBwYXJhbSAge0FycmF5PFN0cmluZz59IHZlcnNpb25zIHZlcnNpb25zIHRvIGNvbXBhcmUKICAgKiBAcmV0dXJuIHtOdW1iZXJ9IGNvbXBhcmlzb24gcmVzdWx0CiAgICovCiAgZnVuY3Rpb24gY29tcGFyZVZlcnNpb25zKHZlcnNpb25zKSB7CiAgICAvLyAxKSBnZXQgY29tbW9uIHByZWNpc2lvbiBmb3IgYm90aCB2ZXJzaW9ucywgZm9yIGV4YW1wbGUgZm9yICIxMC4wIiBhbmQgIjkiIGl0IHNob3VsZCBiZSAyCiAgICB2YXIgcHJlY2lzaW9uID0gTWF0aC5tYXgoZ2V0VmVyc2lvblByZWNpc2lvbih2ZXJzaW9uc1swXSksIGdldFZlcnNpb25QcmVjaXNpb24odmVyc2lvbnNbMV0pKTsKICAgIHZhciBjaHVua3MgPSBtYXAodmVyc2lvbnMsIGZ1bmN0aW9uICh2ZXJzaW9uKSB7CiAgICAgIHZhciBkZWx0YSA9IHByZWNpc2lvbiAtIGdldFZlcnNpb25QcmVjaXNpb24odmVyc2lvbik7CgogICAgICAvLyAyKSAiOSIgLT4gIjkuMCIgKGZvciBwcmVjaXNpb24gPSAyKQogICAgICB2ZXJzaW9uID0gdmVyc2lvbiArIG5ldyBBcnJheShkZWx0YSArIDEpLmpvaW4oIi4wIik7CgogICAgICAvLyAzKSAiOS4wIiAtPiBbIjAwMDAwMDAwMCIiLCAiMDAwMDAwMDA5Il0KICAgICAgcmV0dXJuIG1hcCh2ZXJzaW9uLnNwbGl0KCIuIiksIGZ1bmN0aW9uIChjaHVuaykgewogICAgICAgIHJldHVybiBuZXcgQXJyYXkoMjAgLSBjaHVuay5sZW5ndGgpLmpvaW4oIjAiKSArIGNodW5rOwogICAgICB9KS5yZXZlcnNlKCk7CiAgICB9KTsKCiAgICAvLyBpdGVyYXRlIGluIHJldmVyc2Ugb3JkZXIgYnkgcmV2ZXJzZWQgY2h1bmtzIGFycmF5CiAgICB3aGlsZSAoLS1wcmVjaXNpb24gPj0gMCkgewogICAgICAvLyA0KSBjb21wYXJlOiAiMDAwMDAwMDA5IiA+ICIwMDAwMDAwMTAiID0gZmFsc2UgKGJ1dCAiOSIgPiAiMTAiID0gdHJ1ZSkKICAgICAgaWYgKGNodW5rc1swXVtwcmVjaXNpb25dID4gY2h1bmtzWzFdW3ByZWNpc2lvbl0pIHsKICAgICAgICByZXR1cm4gMTsKICAgICAgfQogICAgICBlbHNlIGlmIChjaHVua3NbMF1bcHJlY2lzaW9uXSA9PT0gY2h1bmtzWzFdW3ByZWNpc2lvbl0pIHsKICAgICAgICBpZiAocHJlY2lzaW9uID09PSAwKSB7CiAgICAgICAgICAvLyBhbGwgdmVyc2lvbiBjaHVua3MgYXJlIHNhbWUKICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0KICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICByZXR1cm4gLTE7CiAgICAgIH0KICAgIH0KICB9CgogIC8qKgogICAqIENoZWNrIGlmIGJyb3dzZXIgaXMgdW5zdXBwb3J0ZWQKICAgKgogICAqIEBleGFtcGxlCiAgICogICBib3dzZXIuaXNVbnN1cHBvcnRlZEJyb3dzZXIoewogICAqICAgICBtc2llOiAiMTAiLAogICAqICAgICBmaXJlZm94OiAiMjMiLAogICAqICAgICBjaHJvbWU6ICIyOSIsCiAgICogICAgIHNhZmFyaTogIjUuMSIsCiAgICogICAgIG9wZXJhOiAiMTYiLAogICAqICAgICBwaGFudG9tOiAiNTM0IgogICAqICAgfSk7CiAgICoKICAgKiBAcGFyYW0gIHtPYmplY3R9ICBtaW5WZXJzaW9ucyBtYXAgb2YgbWluaW1hbCB2ZXJzaW9uIHRvIGJyb3dzZXIKICAgKiBAcGFyYW0gIHtCb29sZWFufSBbc3RyaWN0TW9kZSA9IGZhbHNlXSBmbGFnIHRvIHJldHVybiBmYWxzZSBpZiBicm93c2VyIHdhc24ndCBmb3VuZCBpbiBtYXAKICAgKiBAcGFyYW0gIHtTdHJpbmd9ICBbdWFdIHVzZXIgYWdlbnQgc3RyaW5nCiAgICogQHJldHVybiB7Qm9vbGVhbn0KICAgKi8KICBmdW5jdGlvbiBpc1Vuc3VwcG9ydGVkQnJvd3NlcihtaW5WZXJzaW9ucywgc3RyaWN0TW9kZSwgdWEpIHsKICAgIHZhciBfYm93c2VyID0gYm93c2VyOwoKICAgIC8vIG1ha2Ugc3RyaWN0TW9kZSBwYXJhbSBvcHRpb25hbCB3aXRoIHVhIHBhcmFtIHVzYWdlCiAgICBpZiAodHlwZW9mIHN0cmljdE1vZGUgPT09ICdzdHJpbmcnKSB7CiAgICAgIHVhID0gc3RyaWN0TW9kZTsKICAgICAgc3RyaWN0TW9kZSA9IHZvaWQoMCk7CiAgICB9CgogICAgaWYgKHN0cmljdE1vZGUgPT09IHZvaWQoMCkpIHsKICAgICAgc3RyaWN0TW9kZSA9IGZhbHNlOwogICAgfQogICAgaWYgKHVhKSB7CiAgICAgIF9ib3dzZXIgPSBkZXRlY3QodWEpOwogICAgfQoKICAgIHZhciB2ZXJzaW9uID0gIiIgKyBfYm93c2VyLnZlcnNpb247CiAgICBmb3IgKHZhciBicm93c2VyIGluIG1pblZlcnNpb25zKSB7CiAgICAgIGlmIChtaW5WZXJzaW9ucy5oYXNPd25Qcm9wZXJ0eShicm93c2VyKSkgewogICAgICAgIGlmIChfYm93c2VyW2Jyb3dzZXJdKSB7CiAgICAgICAgICAvLyBicm93c2VyIHZlcnNpb24gYW5kIG1pbiBzdXBwb3J0ZWQgdmVyc2lvbi4KICAgICAgICAgIHJldHVybiBjb21wYXJlVmVyc2lvbnMoW3ZlcnNpb24sIG1pblZlcnNpb25zW2Jyb3dzZXJdXSkgPCAwOwogICAgICAgIH0KICAgICAgfQogICAgfQoKICAgIHJldHVybiBzdHJpY3RNb2RlOyAvLyBub3QgZm91bmQKICB9CgogIC8qKgogICAqIENoZWNrIGlmIGJyb3dzZXIgaXMgc3VwcG9ydGVkCiAgICoKICAgKiBAcGFyYW0gIHtPYmplY3R9IG1pblZlcnNpb25zIG1hcCBvZiBtaW5pbWFsIHZlcnNpb24gdG8gYnJvd3NlcgogICAqIEBwYXJhbSAge0Jvb2xlYW59IFtzdHJpY3RNb2RlID0gZmFsc2VdIGZsYWcgdG8gcmV0dXJuIGZhbHNlIGlmIGJyb3dzZXIgd2Fzbid0IGZvdW5kIGluIG1hcAogICAqIEBwYXJhbSAge1N0cmluZ30gIFt1YV0gdXNlciBhZ2VudCBzdHJpbmcKICAgKiBAcmV0dXJuIHtCb29sZWFufQogICAqLwogIGZ1bmN0aW9uIGNoZWNrKG1pblZlcnNpb25zLCBzdHJpY3RNb2RlLCB1YSkgewogICAgcmV0dXJuICFpc1Vuc3VwcG9ydGVkQnJvd3NlcihtaW5WZXJzaW9ucywgc3RyaWN0TW9kZSwgdWEpOwogIH0KCiAgYm93c2VyLmlzVW5zdXBwb3J0ZWRCcm93c2VyID0gaXNVbnN1cHBvcnRlZEJyb3dzZXI7CiAgYm93c2VyLmNvbXBhcmVWZXJzaW9ucyA9IGNvbXBhcmVWZXJzaW9uczsKICBib3dzZXIuY2hlY2sgPSBjaGVjazsKCiAgLyoKICAgKiBTZXQgb3VyIGRldGVjdCBtZXRob2QgdG8gdGhlIG1haW4gYm93c2VyIG9iamVjdCBzbyB3ZSBjYW4KICAgKiByZXVzZSBpdCB0byB0ZXN0IG90aGVyIHVzZXIgYWdlbnRzLgogICAqIFRoaXMgaXMgbmVlZGVkIHRvIGltcGxlbWVudCBmdXR1cmUgdGVzdHMuCiAgICovCiAgYm93c2VyLl9kZXRlY3QgPSBkZXRlY3Q7CgogIHJldHVybiBib3dzZXIKfSk7CgooZnVuY3Rpb24oJCl7CiAgVUFCQlRyaWdnZXIgPSB7CgogICAgICAvKioKICAgICAgICogVHJpZ2dlciBhIGhvb2suCiAgICAgICAqCiAgICAgICAqIEBzaW5jZSAxLjEuMC4zCiAgICAgICAqIEBtZXRob2QgdHJpZ2dlckhvb2sKICAgICAgICogQHBhcmFtIHtTdHJpbmd9IGhvb2sgVGhlIGhvb2sgdG8gdHJpZ2dlci4KICAgICAgICogQHBhcmFtIHtBcnJheX0gYXJncyBBbiBhcnJheSBvZiBhcmdzIHRvIHBhc3MgdG8gdGhlIGhvb2suCiAgICAgICAqLwogICAgICB0cmlnZ2VySG9vazogZnVuY3Rpb24oIGhvb2ssIGFyZ3MgKQogICAgICB7CiAgICAgICAgJCggJ2JvZHknICkudHJpZ2dlciggJ3VhYmItdHJpZ2dlci4nICsgaG9vaywgYXJncyApOwogICAgICB9LAogICAgCiAgICAgIC8qKgogICAgICAgKiBBZGQgYSBob29rLgogICAgICAgKgogICAgICAgKiBAc2luY2UgMS4xLjAuMwogICAgICAgKiBAbWV0aG9kIGFkZEhvb2sKICAgICAgICogQHBhcmFtIHtTdHJpbmd9IGhvb2sgVGhlIGhvb2sgdG8gYWRkLgogICAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayBBIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiB0aGUgaG9vayBpcyB0cmlnZ2VyZWQuCiAgICAgICAqLwogICAgICBhZGRIb29rOiBmdW5jdGlvbiggaG9vaywgY2FsbGJhY2sgKQogICAgICB7CiAgICAgICAgJCggJ2JvZHknICkub24oICd1YWJiLXRyaWdnZXIuJyArIGhvb2ssIGNhbGxiYWNrICk7CiAgICAgIH0sCiAgICAKICAgICAgLyoqCiAgICAgICAqIFJlbW92ZSBhIGhvb2suCiAgICAgICAqCiAgICAgICAqIEBzaW5jZSAxLjEuMC4zCiAgICAgICAqIEBtZXRob2QgcmVtb3ZlSG9vawogICAgICAgKiBAcGFyYW0ge1N0cmluZ30gaG9vayBUaGUgaG9vayB0byByZW1vdmUuCiAgICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbiB0byByZW1vdmUuCiAgICAgICAqLwogICAgICByZW1vdmVIb29rOiBmdW5jdGlvbiggaG9vaywgY2FsbGJhY2sgKQogICAgICB7CiAgICAgICAgJCggJ2JvZHknICkub2ZmKCAndWFiYi10cmlnZ2VyLicgKyBob29rLCBjYWxsYmFjayApOwogICAgICB9LAogIH07Cn0pKGpRdWVyeSk7CgpqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCAkICkgewoKICAgIGlmKCB0eXBlb2YgYm93c2VyICE9PSAndW5kZWZpbmVkJyAmJiBib3dzZXIgIT09IG51bGwgKSB7CgogICAgICB2YXIgdWFiYl9icm93c2VyICAgPSBib3dzZXIubmFtZSwKICAgICAgICAgIHVhYmJfYnJvd3Nlcl92ID0gYm93c2VyLnZlcnNpb24sCiAgICAgICAgICB1YWJiX2Jyb3dzZXJfY2xhc3MgPSB1YWJiX2Jyb3dzZXIucmVwbGFjZSgvXHMrL2csICctJykudG9Mb3dlckNhc2UoKSwKICAgICAgICAgIHVhYmJfYnJvd3Nlcl92X2NsYXNzID0gdWFiYl9icm93c2VyX2NsYXNzICsgcGFyc2VJbnQoIHVhYmJfYnJvd3Nlcl92ICk7CiAgICAgIAogICAgICAkKCdodG1sJykuYWRkQ2xhc3ModWFiYl9icm93c2VyX2NsYXNzKS5hZGRDbGFzcyh1YWJiX2Jyb3dzZXJfdl9jbGFzcyk7CiAgICAgIAogICAgfQoKICAgICQoJy51YWJiLXJvdy1zZXBhcmF0b3InKS5wYXJlbnRzKCdodG1sJykuY3NzKCdvdmVyZmxvdy14JywgJ2hpZGRlbicpOwp9KTsKCiAgICAgICAgICAgIDsoZnVuY3Rpb24oJCkgewogICAgICAgICAgICAJJCgnLnBwLWRvd24tYXJyb3cnKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgCQl2YXIgY3VycmVudFJvdyA9ICQoJy5mbC1ub2RlLScgKyAkKHRoaXMpLmRhdGEoJ3Jvdy1pZCcpKTsKICAgICAgICAgICAgCQl2YXIgdG9wT2Zmc2V0CT0gKCAnJyA9PT0gJCh0aGlzKS5kYXRhKCd0b3Atb2Zmc2V0JykgKSA/IDAgOiAkKHRoaXMpLmRhdGEoJ3RvcC1vZmZzZXQnKTsKICAgICAgICAgICAgICAgICAgICB2YXIgYWRtaW5CYXIgICAgPSAkKCdib2R5JykuaGFzQ2xhc3MoJ2FkbWluLWJhcicpID8gMzIgOiAwOwogICAgICAgICAgICAJCXZhciB0clNwZWVkCQk9ICQodGhpcykuZGF0YSgndHJhbnNpdGlvbi1zcGVlZCcpOwogICAgICAgICAgICAJCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKICAgICAgICAgICAgCQkJc2Nyb2xsVG9wOiAoIGN1cnJlbnRSb3cub2Zmc2V0KCkudG9wICsgY3VycmVudFJvdy5vdXRlckhlaWdodCgpICkgLSAoIHRvcE9mZnNldCArIGFkbWluQmFyICkKICAgICAgICAgICAgCQl9LCB0clNwZWVkKTsKICAgICAgICAgICAgCX0pOwogICAgICAgICAgICB9KShqUXVlcnkpOwoKICAgICAgICAgICAg"></script><div id="tt" role="tooltip" aria-label="Tooltip content" class="cmtt"></div><script>
  13555. function init() {
  13556. var vidDefer = document.getElementsByTagName('iframe');
  13557. for (var i=0; i<vidDefer.length; i++) {
  13558. if(vidDefer[i].getAttribute('data-src')) {
  13559. vidDefer[i].setAttribute('src',vidDefer[i].getAttribute('data-src'));
  13560. } } }
  13561. window.onload = init;
  13562. </script>
  13563. <script>
  13564.    var index = window.location.href.indexOf('?')
  13565.    if(index != -1){
  13566.        var querystring = window.location.href.slice(index + 1)
  13567.        var tagA = document.getElementsByTagName('a');
  13568.  
  13569.        for(var i = 0; i < tagA.length; i++){
  13570.            var href = tagA[i].getAttribute('href');
  13571. if (href !== null && href.indexOf("#") !== 0){
  13572.            href += (href.indexOf('?') != -1)? '&' : '?';
  13573.            href += querystring;
  13574.  
  13575.            tagA[i].setAttribute('href', href);
  13576. }
  13577.        }
  13578.    }
  13579. </script>
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda