Skip to content

Instantly share code, notes, and snippets.

@makkinga
Last active December 27, 2021 20:47
Show Gist options
  • Save makkinga/f0d5e4b6489d7a1b8c0165a44b22bfb0 to your computer and use it in GitHub Desktop.
Save makkinga/f0d5e4b6489d7a1b8c0165a44b22bfb0 to your computer and use it in GitHub Desktop.

Example

This code adds tickers for BTC, ETH, ONE, XYA, and JEWEL to your MacBook's Touch Bar

image

Usage

Download and install BetterTouchTool

Head over to the "Touch Bar" section and copy paste the JSON below

[
  {
    "BTTWidgetName" : "BTC",
    "BTTTriggerType" : 642,
    "BTTTriggerTypeDescription" : "Shell Script \/ Task Widget",
    "BTTTriggerClass" : "BTTTriggerTypeTouchBar",
    "BTTPredefinedActionType" : -1,
    "BTTPredefinedActionName" : "No Action",
    "BTTShellScriptWidgetGestureConfig" : "\/usr\/bin\/python:::-c:::-:::",
    "BTTEnabled2" : 1,
    "BTTRepeatDelay" : 0,
    "BTTUUID" : "8348F3AF-0947-4065-BB22-B0E8A9ED96DF",
    "BTTNotesInsteadOfDescription" : 0,
    "BTTEnabled" : 1,
    "BTTModifierMode" : 0,
    "BTTOrder" : 0,
    "BTTDisplayOrder" : 0,
    "BTTMergeIntoTouchBarGroups" : 0,
    "BTTIconData" : "iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAK22lDQ1BJQ0MgUHJvZmlsZQAASImVlwdUk9kSgO__pzcIJERASqihCNIJICX0AEKkg6iEJJBQYkwIKnZlcQXXgooIqCu6KKLg6lLEhliwLYIN+4IsCspzsYAFlfcDj7C777z3zpucyXxn_rkzc+_5b84EAEoYXybLhKkAZEmz5ZFBvsz4hEQmrheQgQ6idsCML1DIODxeGEBk0v5Vhu8BaMzethnL9e_P_6toCkUKAQBQEsIpQoUgC+FmRF8LZPJsAFDHEL_J4mzZGN9BmC5HGkS4b4zTJvjLGKeMM5o6HhMd6YewKQB4Mp8vTwOAbIf4mTmCNCQPmYewnVQokSK8GmEvgZgvRBipC2ZkZS0c4wGELZB4GQAUOsLslD_lTPtL_hRVfj4_TcUT+xoXvL9EIcvkL_0_j+Z_S1amcrKGOaJksTw4ErEM5PzuZywMVbE0JTxikiXC8fhxFiuDYyZZoPBLnGQh3z9UtTYzPGySUyWBXFWebG70JIsUAVGTLF8YqaqVKvfjTDJfPlVXmRGj8otFXFX+XHF03CTnSGLDJ1mRERU6FeOn8suVkar+RdIg36m6gaq9Zyn+tF8JV7U2WxwdrNo7f6p_kZQzlVMRr+pNKPIPmIqJUcXLsn1VtWSZPFW8KDNI5VfkRKnWZiMv59RanuoM0_khvEkG_iAAhCEfJuABB+AE7IEbQLrNFi3JHtuM30LZUrkkTZzN5CA3TsTkSgW2M5gOdg72AIzd34lX4t398XsJMfBTPmEvAI5jd8xiypeO3JlTwwBo1E35WN0AUHcD0MwTKOU5Ez702BcGEIE6oCO_DgbABFgAG6Q_F+ABfJCOQ0AEiAYJYD4QADHIAnKwGCwHa0A+KARbwA5QCvaC_eAQOAqOgwZwGpwHl8F10A7ugkegC_SCV2AQDIMRCIJwEAWiQTqQIWQGWUMOEBvyggKgMCgSSoCSoTRICimh5dA6qBAqgkqhfVAV9DN0EjoPXYU6oAdQN9QPvYU+wyiYDNNhfdgcngmzYQ4cCkfD8+A0eBGcC+fBm+ASuAI+AtfD5+Hr8F24C34FD6EAioRioIxQNig2yg8VgUpEpaLkqJWoAlQxqgJVg2pCtaJuo7pQA6hPaCyahmaibdAe6GB0DFqAXoReid6ILkUfQtejL6Jvo7vRg+hvGApGD2ONccdwMfGYNMxiTD6mGFOJqcNcwtzF9GKGsVgsA8vCumKDsQnYdOwy7Ebsbmwtthnbge3BDuFwOB2cNc4TF4Hj47Jx+bhduCO4c7hbuF7cRzwJb4h3wAfiE_FS_Fp8Mf4w_iz+Fv4FfoRAJZgR3AkRBCFhKWEz4QChiXCT0EsYIWoQWURPYjQxnbiGWEKsIV4iPia+I5FIxiQ30hyShLSaVEI6RrpC6iZ9ImuSrch+5CSykryJfJDcTH5AfkehUMwpPpRESjZlE6WKcoHylPJRjaZmq8ZVE6qtUitTq1e7pfZanaBups5Rn6+eq16sfkL9pvoAlUA1p_pR+dSV1DLqSWondUiDpmGvEaGRpbFR47DGVY0+TZymuWaAplAzT3O_5gXNHhqKZkLzowlo62gHaJdovXQsnUXn0tPphfSj9Db6oJamlpNWrNYSrTKtM1pdDBTDnMFlZDI2M44z7jE+T9OfxpkmmrZhWs20W9M+aE_X9tEWaRdo12rf1f6sw9QJ0MnQ2arToPNEF61rpTtHd7HuHt1LugPT6dM9pgumF0w_Pv2hHqxnpRept0xvv94NvSF9A_0gfZn+Lv0L+gMGDAMfg3SD7QZnDfoNaYZehhLD7YbnDF8ytZgcZiazhHmROWikZxRspDTaZ9RmNGLMMo4xXmtca_zEhGjCNkk12W7SYjJoamg623S5abXpQzOCGdtMbLbTrNXsgznLPM58vXmDeR9Lm8Vl5bKqWY8tKBbeFossKizuWGIt2ZYZlrst261gK2crsVWZ1U1r2NrFWmK927pjBmaG2wzpjIoZnTZkG45Njk21TbctwzbMdq1tg+3rmaYzE2dundk685uds12m3QG7R_aa9iH2a+2b7N86WDkIHMoc7jhSHAMdVzk2Or5xsnYSOe1xuu9Mc57tvN65xfmri6uL3KXGpd_V1DXZtdy1k01n89gb2VfcMG6+bqvcTrt9cndxz3Y_7v6Hh41Hhsdhj75ZrFmiWQdm9Xgae_I993l2eTG9kr1+9OryNvLme1d4P_Mx8RH6VPq84Fhy0jlHOK997XzlvnW+H_zc_Vb4Nfuj_IP8C_zbAjQDYgJKA54GGgemBVYHDgY5By0Lag7GBIcGbw3u5OpzBdwq7mCIa8iKkIuh5NCo0NLQZ2FWYfKwptnw7JDZ22Y_DjcLl4Y3RIAIbsS2iCc8Fm8R79Qc7BzenLI5zyPtI5dHtkbRohZEHY4ajvaN3hz9KMYiRhnTEqsemxRbFfshzj+uKK4rfmb8ivjrCboJkoTGRFxibGJl4tDcgLk75vYmOSflJ92bx5q3ZN7V+brzM+efWaC+gL_gRDImOS75cPIXfgS_gj+Uwk0pTxkU+Al2Cl4JfYTbhf0iT1GR6EWqZ2pRal+aZ9q2tH6xt7hYPCDxk5RK3qQHp+9N_5ARkXEwYzQzLrM2C5+VnHVSqinNkF5caLBwycIOmbUsX9a1yH3RjkWD8lB5pQJSzFM0ZtORQemG0kL5nbI7xyunLOfj4tjFJ5ZoLJEuubHUaumGpS9yA3N_WoZeJljWstxo+Zrl3Ss4K_athFamrGxZZbIqb1Xv6qDVh9YQ12Ss+XWt3dqite_Xxa1rytPPW53X813Qd9X5avny_M71Huv3fo_+XvJ92wbHDbs2fCsQFlwrtCssLvyyUbDx2g_2P5T8MLopdVPbZpfNe7Zgt0i33NvqvfVQkUZRblHPttnb6rcztxdsf79jwY6rxU7Fe3cSdyp3dpWElTTuMt21ZdeXUnHp3TLfstpyvfIN5R92C3ff2uOzp2av_t7CvZ9_lPx4f1_QvvoK84ri_dj9OfufH4g90PoT+6eqSt3KwsqvB6UHuw5FHrpY5VpVdVjv8OZquFpZ3X8k6Uj7Uf+jjTU2NftqGbWFx8Ax5bGXPyf_fO946PGWE+wTNb+Y_VJeR6srqIfql9YPNogbuhoTGjtOhpxsafJoqjtle+rgaaPTZWe0zmw+Szybd3b0XO65oWZZ88D5tPM9LQtaHl2Iv3Dn4pyLbZdCL125HHj5Qiun9dwVzyunr7pfPXmNfa3husv1+hvON+p+df61rs2lrf6m683Gdrf2po5ZHWdved86f9v_9uU73DvX74bf7bgXc+9+Z1Jn133h_b4HmQ_ePMx5OPJo9WPM44In1CfFT_WeVvxm+Vttl0vXmW7_7hvPop496hH0vPpd8fuX3rznlOfFLwxfVPU59J3uD+xvfzn3Ze8r2auRgfx_aPyj_LXF61_+8PnjxmD8YO8b+ZvRtxvf6bw7+N7pfcsQb+jpcNbwyIeCjzofD31if2r9HPf5xcjiL7gvJV8tvzZ9C_32eDRrdFTGl_PHRwEUonBqKgBvDyLzcQIAtHYAiHMn5utxgSb+E4wT+E88MYOPiwsASCoQi2ikDwDliLIQVV8NAA+x0T4AdnRU6b9EkeroMJGL1ICMJsWjo++Q+RFnCcDXztHRkYbR0a+VSLMPkTlmeGKuHxPqEQDaHzrEhPs+fBedB_4mEzP_n_b4dwtUHfzF_hN00RrKoWz5TAAAAGxlWElmTU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAACQAAAAAQAAAJAAAAABAAKgAgAEAAAAAQAAAMigAwAEAAAAAQAAAMgAAAAA8XHUkwAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAIiNJREFUeAHtnQm0HFW1hkEEgswyo0gSwqwggjLIFEEBlaeiDI4oKigoKM+nKC4GXSq6nqICMi0ZniAi+ngqIqiYhCEghlEGUSAJY5jCoECiYN73Xaovfft2d1V1V3XXcPZa_63uqlP77LPP_uuM1XfxxYJk7oFFixYtg9JlI6zAcRJ4FVgzwloc1wArgglN8D7lWbCgCU_y+SHwIJgX4R6Os8FT4Gmx+OKLe1+QDD2weIa6aqkKMixPwTcEG0dHybA2WD3CqhzzlEdR_nCEBzhKmjvA7R4hzd85BunRA4EgKRwHGWwVVgOTwbZgezAF2BKsBJYERZB_YcQTwJbnTnAluBrcDR6BNLY4QRJ4IBAkxkmQwm7RVPBGsBmwpci7VSCLXMTWxpblZnAVmAZZ7LIF6eCBQJAWx0AIW4GJYCfwNrAFkCRLgyrJQgojOW4AvwYzwBwIY+sTJPJAIEjkCIixCR_3BDsDWwvHFnUSxyq2KtPBryDKbRxrL7UmCKRYgwjYDhwAtgK2FEFeaFlm4YgzwEzI4gxaLaWWBIEYthD7gN2AM1BBOnvAGbFLwU8hii1MraQ2BIEUzkBJjE+AncHKIEhyDzxO0ungFHAVZKnFTFjlCQIxXKj7INgPOC0bpH8POG18HjgHorhQWVmpLEEghi3EO8FhYPPK1uBwC3YT2X8P_B9EsYWpnFSOIBBjGWrpI8CB95aVq7FiFug6zHJAfyZEqdR2l8oQBGK8lAraAxwBXOWuTNkoSxlkEUZeDY4Dv4Eoz5XB6DgbKxFEkMOp2s+Dt4Ml4godrufqgefRfhH4FiSZmWtOA1BeaoJADDcEfhYcBBxzBCmOBxyTnAqOhyhupiyllJYgkGNfPH4UcAU8SHE94Ir8VyDJ+cU1sbNlpSMIxFiX4kiM94OlOxctXCmQBxZiy7lAoswtkF2xppSKIJBjf0okOSbHliwkKKIH7sYoSXJ2EY1rZ1MpCAIx3F4uMVwFd7dtkPJ64F+Y7mq8RHH7faGl8ASBHLvgwe8A38UIUh0P+E7K4ZDksiIX6SVFNQ5iLAFcBf8ZCOQoakX1bpd1+jPr2LruXU2+dxayBcFhvtbqgpOr4UGq74EzKOIRtCaPFK2ohSMI5HDa9mSwY9GcFezJ1QOXo_2TkMRp4cJIobpYkMNXXC8GgRyFCZGBGWKdXxzFwMAyjcuoMC0Ijnkfxp4E_HWQIPX1gL_GcggtyY+L4IKhtyAQ4yXgyzjjhyCQowhRMVwbjIEfGhPGxnBNGfKOVxzgSvjRwB24hWnNhl0pIf8RD7g72ImaY2lNXIkfigwtKCGH7234ss3Hh1LykGlZPHA6hh4GSYbynslQmjDIsRyFDuQoS4gO104foN+LYmbglgy8BaGg_t6U4429B17akGGZPXABxn+UlmSgvzU80BYk6lZ9m4IGcpQ5VIdjuzHz7SiGBmbBwFoQCuaA_AQQxhwDq95KZuSY5NODGrgPpAWBHL4v7mxVIEclY3aghTKGjo5iKveMB0IQSvFF8IXcSxMyqIsHjCVjKnfJvYsF099LKc4GS+ZempBBnTzgeyX709U6L89C50oQyOHeqnNAWCHPsxbrq9ttKR+AJL_OywW5EQRyuCvXjYfr5mV80Bs8gAfmgrdCklx2AecyBoEcq2G0r1UGcuCEILl6wBg7JYq5zDPKnCAY6tth3wQ7ZG5tUBg80N4Dxto3o9hrn6LHs5kTBDsOAfv3aE+4LXigVw8Yc8ZeppLpGAQG+wMLPwUvz9TKaiq7l2IdDl4BpoINwDrAfWpBevPAfG7bh_HIZb3dPv6uzAgCOVZH_e_Ba8ZnE8608cB0zu1CZf7ba_jPh4oTGxuDrcEbgaTJo5VHbWXlz5RsV_z6cBYlzIQgVK56vg8+lYVRNdHxHSrxP9uVFX9KCqfGXwX8pz92H_wfikGSeeBEkh2KfxclS945VVZPpw+RxYGdswlXWjxgqzGj5dzoV1sVMB_cCKzsG0cvhg9JPGAsGpN9S98E4Wk3ESuOAUuBIMk88BTJ_pgkKf5dgXRx_yFrAWluAZX8L09J_NSSxlg8JorNlkvpvvZNELI7GkxMl23tU8_CA48l9MJ6pBPd5AouOmZ5C_DJaXf3euB2jLrKRApubPYl7rLtWWDovty8X88K6nvj5XSdkv4Hpo1wkwP4bqI+WyWJJ35E3azIcU3gPxfaGTh54iyZurJ4MKKm8LIffrgE35zfq6U9O4qMnbU6FkzoNfOa3vc85f5TkrLjYyc_HKR3E8cz17YmICieBHcA_2+gg_xtwW7gD61pK_zd2Dw2itWeitkzQcjN_+y0YU+51vum+yn+3xK6wJfMdohJex_X74xJsxgkWUiam0DdNo4ao8ZqT9ITQWDkNuR2UE85hpvuwgX3JHTDJNKtH5P2r1x30TGJbEAifzS6bnJQFLOpy52aIGTkuOUIsHLq3MINeuA6nuZJB8+2HrYi3eSGFPrsrtVxttFYPSKK3W6+HHctNUHQsDt46zhN1TphADtWyFocL0xPodSAdhzSSZ7jwoxOF9uc36nNubqcMmaN3VSSiiAw8GVoPxJU_e3A0yjja8HB4CfgZvAE6FeeRMG1SZTga2ehNolJq7406ylx+mKyK_VlY_bIKIYTFyTtNO+H0VyHLQ9Om7rwJk7GqctzdI+UeD3wyb4pSOs_yZF0MW8KaUU3uY6LbtBLIo4_JiZJWOE0xu6HwQ+SljFxBUdPtI+jOPE9SY0oWLpHsOcvzTZBFn+szOAWZ+MLV7fXBo4RdgSvBuuAVUA3SbP+IRltRbrJDGyz25ZE1Ff3caOx+3Hq71z8ZusbK2mCfS+02e2ousylgM4MdRSc66KckEin4_BlOTqduBGQMBLH70uAZvGJHyvoc9xhK9VNHCMlXU+xK+06SJAXYthYPjOJMxIRJHpifiaJwgqkuQkCLEhTDtI_TXq3dlyPr87j2GhhDEoD3VVsA7or8bjeEGeuJFk3cWr3zm4Jmq5N4HOcvqbklf_4Gerp59GDrmthExEEDR8E9rnrINP7KSROX8T9Nt_idnAGlWHAu_PgQZBEppBovZiEkk2SJJGJJNowScKapDGWjemT4sobO4tF5b4MJe8Frd2FON1lvG7LMTNrwyHNQnAveC6h7reQTlJ1k+tT6LPbV_WZx26+ar1mLL83iu3Wa2O+xxKE1G8EvuFWB7mJQs4rQEHtrp0OnEVzTaZVHJhf3nqyy_fQvRrvnMZbm+OvNJ3p2sWCYRLoYNA1XZO+sn+8gqfyM8MuBDZMx_cuADq9vBZwLOODyrHMOsAnYNIB+kqk3QQEGesBY_pg_HwZ_u44ExgX+NugZOpYvZX+dnVRSkelOZZpzJbdweezqEzra33wcjAfJBHTT0qSsIZpjG1jvGO3Oo4g+3Fz3Fx8VfxqwN1X5MJAGscwDvzTiK1HXeowjV9Mq1_2BekJwtPKX0fcHdRFlqOg36fct3L0paNrwG0E5UKOpRTKYhe5zvuvktTb7vhpVer50XaJF2930nPc9E4OF3a6XoPzrp4_BHy6TAcOnCVMu0Ezl4onEUEOx7IPAVf7O9Z38awfqEV7Ua9tY72jw3DurzDx7QM1s9iZua7hwPgc4FaFpFO2Qy8VdbkyRmwPfOgJxzBBXvTARdTnni9+ffFTW4LgUPut04CLW0HGesAZj3PBp3Cqg+jSSNSivBKD9wfvAxuVxvh8DX0Y9VOpz9tas+m0DiKbVm1NHL6PeECfuQr7jbL5gwDw97buAV_F9qngk8C1n7qLsd62BRlHEJ4yS5FY5427VncvtpTfX8xwXaKUAknmgVMwfkdwKJhbyoJkY7SxPjWK_TEa25FgXVK4MBWkuwfsx7vGUGqBJE+BEyjELuA0UJqxVcaON+aN_THSjiA7kWKFManCl04eWL7ThbKdhyR3YfMnwDvAn8tmfwb2GvO2pmOkHUHeNiZF+NLJAw7W53e6mPY8zfsGYEsQt0kxrerE6SHJInAxN+wBnIiom4yL_TEr6VTOmnhki7p5pcfyPsh9bgHpW_C7s4muV3wAPMR3p5Ndf3EAPZegncNxYEJ+92PDR8jQ2Z3DQLsH6cDsGWBGr5MDlH9eI88xBOGk3StJEiTeA3eTZHZ8skQpbDWcGFkWTI7gFgjlLirN7SVXgkvBLVRg7uME8vgX+f4X+blgehSogxj7cuD8RmFbnwxuix5aE98wqiTHNL9vFVekDUiwbodE63HeBdvjgCSZReB+EWzO51wFkjxPBseCU3PNqDjKjX05MCqjBMHhL+Ns7k4fzbncHxZh_vQMi+BTa6kE+mxhrKOvA7fE_xJ8IKq7BLenTwJJHGt93vzS313KOzZv9ucoQSiKmxPDymqyOrXbcW2ypIlSbUcqxyFpxPc8XNw6C0yjUvcFSUhG8nQCSdwx8DnweLo7S5laDsiFEWkmiE15WD2PHBNzmMX1x2LSJLpMULue0s+DaQnufwP4CTgffZtyzFwgyXUoPTNzxcVTKAfkwog0E8SnWJBkHvD3rf6ZLGlsKitjtEJiU3dP4EbEX0GS3bsn6_nqidz5RM93l+fGUS40E8RXOoPEe8A+uU_TrMRt6MtnpQw9k8B5kOQdGepsqJrLh582vlT4OMqFEYLgTCtoSoULnGXR7kfZX7JQiN8dd2yfha4WHY5PTkT_Zi3n+_oaDdgvQYkPiSrLlIgTowtAG1LaFatc4gzLNhtdczLSNwE9O2akq1XNKzlxFBXd3EtoTdPLd9dk5vVyY4nukQtyYpQgG_PZp06QeA_M4kma1ULdRmS3TnyWPafYkzu36fnu9jfey2lX2KssckFOjBJEtizpiSBdPTCs9Y+uRnW56LSvJMlMeDg8jbLHMlNYTEVy4YUWJOoHO7ALEu+BJ0niPqmsxC3WjkPylA1yUC5Jqi6T5Ib9U_vBa1e9tBmVT3JksoMX56+CLrtYecuy0UMwy3xK88MVfRRaTkyQIG5fWL0PRXW6Ncv1D2cNJw_Aec_QLbJrmKUYM1UXObFsgyBrVL20GZTPjXvXZ6CnocL1j+UaX3I8unaRmdAaGTN1mPGUEyMEWYEPbncI0t0Drn9k+f5HXtO7zaVwvcIdwFmKXcM6zHjKiRV8GtjM5z1QJIvSi+sfWT2Nl0FXHguErU7W5t+2nuzz+yTuX6tPHWW4XU5MkiCvKoO1BbDxxgzXPzalPC7k5SmOO07EZnceZykSpA4tiD5bV4L4FlWQ7h4w2C7tniTV1amkzmVrepMV2nt60_esPm6VlaIS6FkzECRZLT1BsuuSJU2UyrHML8Bt4J+J7kiXyP1SB0SLeunu7JKaAbotRx6bILvkOtRLa76U7EMLEl8H15BEkmQiBK7k+AUBp+9dyHst2A5sC5w9sXWxD5xWHuKG48Gp5JGZvU1G7MTn9Zu+V_1jIEjCGvY_T2X+pEfnPPIXl0MW37Vw8D4RSJjNgfuBnDVaHjjb6HFpoGjPP8CjYA64DPifWx_kmLlgn9svPpy54mIrHCFIHea0+6kGNybe0I+CJPcS2E7JuoXj1gjneh+BKWkkRwPNBHEA_gj3zueYt9h67JZ3JgXTv6JdrAkFM6po5tyHQY4ZhiIE_7NkLOw+DUUgqSvnXwCStU4ystUkEKR7ld_N5Xu6J6n81SMp4a6VL+X4AgaCjPfJuDPX8hR3m0kthdbjgxT88FoWPtqsGFqQzrXv+sf0zperfQVyHEgJTwCNcU+1Czy+dBMcgwTp7AFfDLq+8+VqXoEYzpwdCr4InL2qrUiQBaAO25d7qeRruCmP9YRebMn9HoghGd4MjgJb555h8TNYIEGcIQkEaV9ZVzL+yOTlIILPaVr_3bCD_kIJtvm7XK8HHwNO54aeBU5Anm20IC98DX+bPeBCXJbrH_ug70sE450c_wxsnf4IHoY0tuIDF2zx95iPBu8DeW+eHHj5MshwpAVZmIGiKqq4n0Jlsv5BILptZFcwKYLdGBcGbb1v5_oVHCXMLX6HME4ODELM_yRg1+pDwLFHkBc9sGBxKmcW37d88Vz4FHnArRu7Eax9T_HiY7uwt4N1It2dDg9w4S9gJrgE3ED+z3DMXbDxdWRyHJC8QV7wwHXu5h3aCm3Ba+GaLMgRldG9VWskKO_apHkT+DKYBq4mcI+Igpev+Qlldbbu3cA9YX0_FPKzdKCaH5Ig8waaZTkys4szPUNTd0TXUin12e3ZDHwD_A6SXAwOALntnYMkfyevw8AhwO5X3WWeBHmw7l5oU_5HOJfJAJ2A1sdbt8kjzSnfj94D_BDMROeBIJfxAiT5NziVfFw9d6KizvKglRe6WOND4GpOPTX+dE9n7Fpt0NOd7W_ahNMG8CWQZM_2STI5expavp6JpvIqGWlB5pbX_twsz2z9AwtdY5icg6VbofNCSPI9sFLW+m1J0ClBzslad4n03WMLMhsMalqxDL5x2vvGDA3dAl157WVaAt1uCbkAkrwqQ5tHVEESF0mPBfdmrbsE+uTEbAliV2J+CQwelIn3k1GW6x8O0PMW11jOgST+GmCmAklc2Dw7U6XlUCYnnpIgvsUWxiEvVpoBIUmyENc_ts1CUQIdO5Dm+5DEViVr8ddRHs9aacH1yYmnGwSp+v97SFMXrn_Y_85CXoeS1bJQlFDHe0j3_oRp0yTzgXFRmhsqkFZOjBDEfUAPVKBAWRQh6_WPnTBqqSwMS6jD1uMgWhF_3CEz4YHhwuEfMlNYDkVyYsFLKPzIYKQcNudupU+Nm7PIhSC1dXaH7KBlczL0h7Gzlr+h8B9ZKy2wvtlyw0pUHJQ6Y1F3mYED_Cc5WchaKNkgC0UpdTjumZLyniTJ7ZPXZTJHLrgnbnTf_+189sWgQfaXzT9PMdCPB6sCxwIbgZeDTuJkxSk8NZ7rlCDl+cmkn5TynqySS86s5SkU6qM6iFwYQxBbEAOqSgS5mmB3Dt_flvL_cKwHJMn2wKlXg9f1icWBW0uOJP00jlmJpBzk+CMruzvpcdtJVg+PTnkU5bxckBMvtCAExt8JIqc382iazWcY4laJEaF89p1vinA+ZXUj4CuAhHkpuJ40DsoyEfRLOgfow5LZOWTsBECjS56D+kKpvFNOaJHB0ZCr+LB740vJj3_C_t93KgOFt485J0KnZP2cdxZpm34U9HGvs5L39nF_p1tfxoUJnS5W7LxcGJHmJ8LMxsmSH52VO6PxBBhSWexe5bLbNkF5bCkdU2Ytjt8ynT7O2sAM9Y1yoZkgd5GBP4RcdplDAYa9qGX3aljjj1_wcLAPnbWsicJhkT7rsnTTJwfkwog0E8SB6sjIPbpW1oMBct+wjGf8Ybd1WN2ra8j7BzmVfTJ6HYdUXeSAXBiRUYIQVL77bPNcZnEacnRwPqSCLEu+zwKnRe3uDUrmktGn82g9IL3E2HpQBRlyPjdFXBgxY5QgkVFXcFw4ZAP7yf4Cbv5rPwoyuFdi7AO2BAeCM8EfgXPrecn1KN6bip2VUwYroNfNkFUXY18OjIrTkaPCk8J+ps30uqMny_PBp_aeBMllRTMZv66ITZPA+sAn8VZgI+Cgdxkwph74nkRck3gAnAyclMhtwyn2v5k8fguqLrbC2+DLeY2CNk_zLuYFnHEDF8tIEJ+eVzYKVqQjfnXQ7EtYwpebbLntim0CXgteDVyXcaF2JSBxlgPWj2klg11g5+bvB3PA78Cl6H6CY96yV94ZFES_62Gj5NCmMQSJjPw1x3dGn8t0+BGFK0X3EDvdTm+w2_USIwJxJI3k8GjLYv3YupjeFtIxlr_E6DrOQASb1iKjXQeS2fAzMfbHSDuCzCCF_Wj7nWWSvanMl2PwzeAOgujuMhmvrdgsAUSR5E0YM6VIBuVkizF_eavucX1fgsz5+1+C3VoTl+S7M0f2JeeAPwELbffrCQJwAccgCT1ALCxNUteU6tCCXEo5_4MY+Weze8a1ICbAMdNI5MDM_m_ZRNJPjLAzx88BxwB_olzOUDjGcqbrb5RVMgXp7IG3cWmXzpcrc8Uu7LRWcli6cS2IJwkkB4+SZHW_V1DupUy2Mk6P_gHY0szHQaGFwREKMeAkgRMB2_i94uIM4FTq_7bWcrYliIlw0K84vL31hop+dyZIkkwHNwJ_YX02x9oK9f8pCn9CTRxwEfW9Z7uydiPIu7jhf9vdVPFzdrtsXSTKYTjunoqXd1zxIMeWnHTdw0mPOshe1POF7QrabYxhf92+et3Eh8ZEsDFwKrZWAjlWo8AngrqQwxg31ttKR4LAqEe545K2d9XjpP+b4_EkRSWoOvoxyf1FSUM5XIM5DdRh3NFw+yVRrDe+jznGVez5pHYGqI7S8anSxhkfI7i+BfYCm4A4v7ZRMdxT2LwqFkiOMi4S9+o8Y9sY7yjjpnlbUrovy9msOjlNF7i1Y4Yf4oTAWpI0bk7cJUrr_qi5nHfQ35ghe5ynlCvhhRRsdV_YSeBNhTQwP6OMbWO8o9jf7io4z_WQi0EcmbrqKdlFp_u2Jqj_EWc3_plEGokwsUNaV2jPBYeiT+IVRrBdcu8HvgbWKYxhgzHEungrdeJUdkdJ0hW4irv_2FFDNS9cTrGSbvlYj7TdgsstO65IuxhVCIEYy4A9MOY34CzQzX4uV1KMaWO7q8S2CjDsGZx5Hlq2BrHpu+ZWnov+Pq_TvUnkDSRaIibhDPQlIgi+dpF2JXAfeJD7MtmYiF4fhpuC7YBdwqkgtgdBmiqKrcd5+PaZuMIlDfgfoehAsFmcwgpcf4Iy3JqkHASdAWagdZM0+iTaf4PtwSPgMfJwTHNHhDkcHwTzgZX8fIRmMqvDep0A1gUbAtc1XgcmgzVA3cUutDEdK4kIAtOeoqK+i7YzYjWWP8FciuDceBJZhURbxCSczfU7Y9I0Lq_MB1tqp1uFAd0qtkTPAqegXadxnGQrI1klx3JAPa5jLAU8H2SsB75rTI891f5bIoJEt7qqfih4bXtVlTl7a1LnUWK7KyvElFx9TicmEdcfVoxJaFdp2QgxScPlNh64kXPGciLR2YkkquTTSWzTXmW5PEXh7Aot2SW9XZ8ru1xvvbQDJ2wFguTjAWP39BQPrNTb2c8ig1n52F4IrTowEUHoctp9iete_TOFPltzxwlB8vOAsXtWGvWJWxCVwjxH_V8DmcysqLNgcjv23JvQpleSbv2YtH_j+pyYNI3LDqjj9DXShmN6DxizX4tiOPHdqQgSaXV_1sWJcyhXwiswN6v1D0s+AyzwQwKZQpo6rkckcE0mSYxZYzeVpCYIDLQbchxItJEvlTXDT5xm_cPZpjj_zcRfjkOSyOtJFKcviZ6QZrwHjNXjotgdf7XLmZ4qhIzcv3JqF71lvPQYRl+fxPBo_eNNMWmtFLtssYI+B+Y7xyYMCXr1wKlRzKa+vyeCRLkcz9EFrKqI46t1CFbXEOJkNRJsHpPobq7fGZOmcTnJekojbTim84Axaqz2JD0TBEb6Hu_RIGkfuycDB3iT_X+3Pl8JSS4Eh4MtwSqgdeo1yfrHLfjIhbwksi2JVkySMKRJ5QFj8+goVlPd2EicZqGwcc_okYz9b027c+LDoyfL_cFFP_dCiXdGRbEVkDTXcnQLys1ge9DNd447HPAnlbD+kdRT6dL9xBhNd8vY1H1vQyBwJqJyGvBYdXGGaw5YC7iVo5Ms5MJrqBynebsK_luSBM6uxI1puuoJF8d5YA5nplIHHnuWnrtYjRwjA47hu4tiVRe3eLgjths59MGfwV1+SCDrksYp3iDZecBYPKZfcmhO3wSJyvQ_HE+LPofDCz9C_WVahx3A6sBV907i4uArO10M53vygLFoTPYtfXexGhYYCHz+PXhN41w4jnjgfv5eBXxB5xZwG0+2+ziOCH47ig_HRl_DoX8P2Hrvio+dROpbMiOIllDZu3D4KYjrgpi8jmLTLzlmg6uBA_kvAwfpQfr3wHxU7AM5Lutf1QsaMiWIKiHJoRycd86q+6baIMEDcR7wPZnPQo7vxyVMcz2PID4JA85OY0RIGzyQgQeMOWMvU8m8BdE6WpHVOPwchK6DDgmStwfsqr6b1sPXlDOVXAiihZDExTZ3UDqNGSR4IC8PzEWxP99zWx4Z5NHFGrEzMvgQvjyRh+FBZ_BAFFuH5EUOPZwbQVSO4b_mcDCo6gtWFjPIcDxgTB0cxVhuFuRKEK2mAOdx+CpwliFI8EAWHjCWvhrFVhb6OurInSBRzt_g+M2OVoQLwQPpPGAsGVO5S26D9FbLGbQvzbkTwMdbr4XvwQMpPHA6aT9N6+GG0NxlUC2IXS0LdBiwgEGCB3rxgLHjf_0aCDk0cGAtSMMbtCT+YuAPwd6Nc+EYPJDAAxeQ5qOQI+lLaAlUxicZWAvSMCUq4AF8Dy1JwynhGOcBY+WAQZNDowbegjQ8QUuyDJ+_B8KYpOGUcGzngUa3yt8jHrgMvAVplJCngQX+NHA2YlHjfDgGD0QeMCaMDQfkQyGHdgytBTFzhZZEkn4JHAn8yf4gwQP+2MLXwNchx1DXz4ZOkEYsQJT38dndmCs1zoVjLT3g1iS3j_y4CKUvDEF0BiR5GwdJEjY46pD6yVyKLDncolQIKRRB9AgkcRfwyWBHvwepjQcup6SfhBy57Mrt1YtDG6R3Mjhy0Hu4fkanNOF85TxgXb+naOTQy4UjiEbhKF98ORB8BoTt8jihomLdWscHRnVeuGIWrovV6iG6XP4QxHfAZq3XwvdSe+BmrD8cYmT2Awt5eKOQLUhzQSMHShI3Ov6r+Vr4XEoPWIfW5S5FJ4feLXwLopENoTXZn89HgcmNc+FYKg_cjbVfgRhnl8XqUhFEp0ISp4AlyfuBW+iDFN8D7r49F0iOucU390ULS0eQhukQZV8+SxSnhYMU1wNO20qM84trYmfLSksQiwRJVufwWXAQSPKPb0gWZEAeeJx8TgXHQ46HB5Rn5tmUmiANb0CU7fj8efB2sETjfDgOxQPPk+tF4FsQY+ZQLMgw00oQRH9AEv+hzR7gCLAtqEzZKEsZxN23VwP_wetvIMdzZTA6zsbKBRFE8T2Tj4ADwJZxDgjXM_HAdWg5A5wJMYa2NT2TkrQoqRxBGuWDKI5J3gX8Me3NG+fDMVMP3IQ2fyz6QojhmKNyUlmCNGoKoqzA5w+C_cD2jfPh2JcHruTun4AfQYyn+tJU8JsrT5CG_yHKsnx+I_gE2BmEWS+ckEJsIaaDU8BVEONpjpWX2hCkuSYhiy3J3mA3sGHztfB5nAfu4Myl4AJIYctRK6klQRo1DFHW4LNTxA7otwJrgiCLLTYPJ8wCDrxnQoyH6uqUWhOkudIhy6Z8dx1lZ2BXzN_vqpP4e1NXgengIkhxK8faSyBISwhAlCU5NRHsBHwFeAtgy7I0qJIspDC2FDcAX3GdAeZADHfbBok8EAgSEwoQRnJMBbYqvpOyMVgVlFEexejbge9i2FpMgxCSJEgHDwSCdHBMu9OQxZmw1cBk4Gq9g_0pYEWwErD1KYLYCvi23pPgTuDg2lXuu8EjkOJpjkESeCAQJIGTuiWBNI5VNmrCRD6vDdxI6STAKiBPeQzlDqLdEPgAmAP+0gBkcGwRpEcPBIL06Lhut0Eat7vY2iwHJNAk4HssdteaYcszATi+8eh9its1FgDHCR5tCewKNWMu32cDCfAP8DRk8L4gGXrg_wF2ORzDdPkr0AAAAABJRU5ErkJggg==",
    "BTTTriggerConfig" : {
      "BTTTouchBarFreeSpaceAfterButton" : "5.000000",
      "BTTTouchBarButtonColor" : "243, 130, 8, 255",
      "BTTTouchBarItemPlacement" : 0,
      "BTTTouchBarAppleScriptStringRunOnInit" : false,
      "BTTTouchBarAlwaysShowButton" : false,
      "BTTTouchBarButtonWidth" : 100,
      "BTTTouchBarScriptUpdateInterval" : 60,
      "BTTTouchBarItemIconHeight" : 22,
      "BTTTouchBarButtonTextAlignment" : 0,
      "BTTTouchBarAlternateBackgroundColor" : "109.650002, 109.650002, 109.650002, 255.000000",
      "BTTTouchBarAppleScriptUsePath" : 0,
      "BTTTBWidgetWidth" : 400,
      "BTTTouchBarColorRegex" : "CACHED",
      "BTTTouchBarItemIconWidth" : 22,
      "BTTTouchBarShellScriptString" : "#!\/usr\/bin\/python\n# -*- coding: utf-8 -*-\nimport urllib2,json,sys\n\ncoin_ticker = \"BTC\" if \"BTC\"[0] != \"{\" else \"BTC\"\nfiat_ticker = \"USD\" if \"USD\"[0] != \"{\" else \"USD\"\nfiat_symbol = \"$\" if \"$\"[0] != \"{\" else  \"$\"\nnum_format = \"{:,.0f}\"\nmod_percent = float(\"0\") if \"0\"[0] != \"{\" else float(0)\noutput_type = \"no\" if \"no\"[0] != \"{\" else  \"mktcap\"\napi_type = \"live\" if \"live\"[0] != \"{\" else  \"live\"\nextraOptions = \"False\" if \"False\"[0] != \"{\" else  \"&limit=1&aggregate=1&toTs=1514376000\"\noffline_cache = \"true\" if \"true\"[0] != \"{\" else \"false\"\npercentageRound = int(\"0\") if \"0\"[0] != \"{\" else int(0)\nliteralRound = int(\"0\") if \"0\"[0] != \"{\" else int(0)\n\ntry:\n    if (api_type == \"live\"):\n\n        url = \"https:\/\/min-api.cryptocompare.com\/data\/pricemultifull?fsyms={}&tsyms={}\".format(coin_ticker, fiat_ticker)\n\n        data = urllib2.urlopen(url)\n        obj=json.load(data)\n\n        raw_current = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"PRICE\"])\n        raw_opening = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"OPEN24HOUR\"])\n        raw_high = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"HIGHDAY\"])\n        raw_low = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"LOWDAY\"])\n        raw_mktcap = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"MKTCAP\"])\n        current = num_format.format(raw_current)\n        opening = num_format.format(raw_opening)\n        high = num_format.format(raw_high)\n        low = num_format.format(raw_low)\n\n        if (raw_mktcap > 1000000):\n            mktcap = str(\"{:,.\"+str(literalRound)+\"f}\").format(raw_mktcap \/ 1000000) + \" M\"\n        else:\n            mktcap = str(\"{:,.\"+str(literalRound)+\"f}\").format(raw_mktcap)\n\n        if (raw_current > raw_opening):\n            trend = \"▲\"\n        else:\n            trend = \"▼\"\n\n        if (output_type is \"no\"):\n            output = fiat_symbol + current\n        elif (output_type is \"simple\"):\n            output = fiat_symbol + current + \" \" + trend\n        elif (output_type is \"mktcap\"):\n            output = fiat_symbol + current + \" (\" + fiat_symbol + mktcap + \")\"\n        elif (output_type is \"absolute\"):\n            output = fiat_symbol + current + \" (L: \" + fiat_symbol + low + \" H: \" + fiat_symbol + high + \")\"\n        elif (output_type is \"relative\"):\n            output = fiat_symbol + current + \" (L: -\" + fiat_symbol + str(round(raw_current - raw_low, literalRound)) + \" H: +\" + fiat_symbol + str(round(raw_high - raw_current,literalRound)) + \")\"\n        elif (output_type is \"current-percentage\"):\n            output = fiat_symbol + current + \" (\" + str(round(((raw_current - raw_opening) \/ raw_current) * 100, percentageRound)) + \"%)\"\n        elif (output_type is \"range-percentage\"):\n            output = fiat_symbol + current + \" (L: -\" + str(round (((raw_current - raw_low) \/ raw_current) * 100, percentageRound)) + \"% H: +\" + str(round (((raw_high - raw_current) \/ raw_current) * 100, percentageRound)) + \"%)\"\n        elif (output_type is \"user-percentage\"):\n            output = fiat_symbol + current + \" (L: \" + fiat_symbol + str(round(raw_current - (raw_current * mod_percent), literalRound)) + \" H: \" + fiat_symbol + str(round(raw_current + (raw_current * mod_percent), literalRound)) + \")\"\n\n        if (offline_cache is \"true\"):\n            tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"w\")\n            tmp_file.write(output)\n            tmp_file.close()\n\n        print(output)\n\n    elif (api_type == \"historical\"):\n        url = \"https:\/\/min-api.cryptocompare.com\/data\/histohour?fsym={}&tsym={}\" + extraOptions\n        url = url.format(coin_ticker, fiat_ticker)\n\n        data = urllib2.urlopen(url)\n        obj=json.load(data)\n\n        raw_high = float(obj[\"Data\"][1][\"high\"])\n        high = num_format.format(raw_high)\n\n        output = fiat_symbol + high\n\n        if (offline_cache is \"true\"):\n            tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"w\")\n            tmp_file.write(output)\n            tmp_file.close() \n\n        print(output)\nexcept urllib2.URLError, e:\n    try:\n        tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"r\")\n        print 'CACHED ' + tmp_file.read() \n    except IOError, e:\n        print('Unable to get data from API & no cache available')\nexcept ValueError, e:\n    print('There was an error formatting the output: %s' % e)\n# Please submit any issues https:\/\/github.com\/chrislennon\/Crypto-Touchbar-App\/issues with the above script",
      "BTTTouchBarButtonFontSize" : 15,
      "BTTTouchBarIconTextOffset" : 5,
      "BTTTouchBarButtonName" : "BTC",
      "BTTTouchBarOnlyShowIcon" : false,
      "BTTTouchBarAppleScriptString" : "#!\/usr\/bin\/python\n# -*- coding: utf-8 -*-\nimport urllib2,json,sys\n\ncoin_ticker = \"BTC\" if \"BTC\"[0] != \"{\" else \"BTC\"\nfiat_ticker = \"USD\" if \"USD\"[0] != \"{\" else \"USD\"\nfiat_symbol = \"$\" if \"$\"[0] != \"{\" else  \"$\"\nnum_format = \"{:0,.3f}\" if \"{:0,.3f}\"[2:8] != \"format\" else  \"{}\"\nmod_percent = float(\"0\") if \"0\"[0] != \"{\" else float(0)\noutput_type = \"no\" if \"no\"[0] != \"{\" else  \"mktcap\"\napi_type = \"live\" if \"live\"[0] != \"{\" else  \"live\"\nextraOptions = \"False\" if \"False\"[0] != \"{\" else  \"&limit=1&aggregate=1&toTs=1514376000\"\noffline_cache = \"true\" if \"true\"[0] != \"{\" else \"false\"\npercentageRound = int(\"0\") if \"0\"[0] != \"{\" else int(0)\nliteralRound = int(\"0\") if \"0\"[0] != \"{\" else int(0)\n\ntry:\n    if (api_type == \"live\"):\n\n        url = \"https:\/\/min-api.cryptocompare.com\/data\/pricemultifull?fsyms={}&tsyms={}\".format(coin_ticker, fiat_ticker)\n\n        data = urllib2.urlopen(url)\n        obj=json.load(data)\n\n        raw_current = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"PRICE\"])\n        raw_opening = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"OPEN24HOUR\"])\n        raw_high = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"HIGHDAY\"])\n        raw_low = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"LOWDAY\"])\n        raw_mktcap = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"MKTCAP\"])\n        current = num_format.format(raw_current)\n        opening = num_format.format(raw_opening)\n        high = num_format.format(raw_high)\n        low = num_format.format(raw_low)\n\n        if (raw_mktcap > 1000000):\n            mktcap = str(\"{:,.\"+str(literalRound)+\"f}\").format(raw_mktcap \/ 1000000) + \" M\"\n        else:\n            mktcap = str(\"{:,.\"+str(literalRound)+\"f}\").format(raw_mktcap)\n\n        if (raw_current > raw_opening):\n            trend = \"▲\"\n        else:\n            trend = \"▼\"\n\n        if (output_type is \"no\"):\n            output = fiat_symbol + current\n        elif (output_type is \"simple\"):\n            output = fiat_symbol + current + \" \" + trend\n        elif (output_type is \"mktcap\"):\n            output = fiat_symbol + current + \" (\" + fiat_symbol + mktcap + \")\"\n        elif (output_type is \"absolute\"):\n            output = fiat_symbol + current + \" (L: \" + fiat_symbol + low + \" H: \" + fiat_symbol + high + \")\"\n        elif (output_type is \"relative\"):\n            output = fiat_symbol + current + \" (L: -\" + fiat_symbol + str(round(raw_current - raw_low, literalRound)) + \" H: +\" + fiat_symbol + str(round(raw_high - raw_current,literalRound)) + \")\"\n        elif (output_type is \"current-percentage\"):\n            output = fiat_symbol + current + \" (\" + str(round(((raw_current - raw_opening) \/ raw_current) * 100, percentageRound)) + \"%)\"\n        elif (output_type is \"range-percentage\"):\n            output = fiat_symbol + current + \" (L: -\" + str(round (((raw_current - raw_low) \/ raw_current) * 100, percentageRound)) + \"% H: +\" + str(round (((raw_high - raw_current) \/ raw_current) * 100, percentageRound)) + \"%)\"\n        elif (output_type is \"user-percentage\"):\n            output = fiat_symbol + current + \" (L: \" + fiat_symbol + str(round(raw_current - (raw_current * mod_percent), literalRound)) + \" H: \" + fiat_symbol + str(round(raw_current + (raw_current * mod_percent), literalRound)) + \")\"\n\n        if (offline_cache is \"true\"):\n            tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"w\")\n            tmp_file.write(output)\n            tmp_file.close()\n\n        print(output)\n\n    elif (api_type == \"historical\"):\n        url = \"https:\/\/min-api.cryptocompare.com\/data\/histohour?fsym={}&tsym={}\" + extraOptions\n        url = url.format(coin_ticker, fiat_ticker)\n\n        data = urllib2.urlopen(url)\n        obj=json.load(data)\n\n        raw_high = float(obj[\"Data\"][1][\"high\"])\n        high = num_format.format(raw_high)\n\n        output = fiat_symbol + high\n\n        if (offline_cache is \"true\"):\n            tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"w\")\n            tmp_file.write(output)\n            tmp_file.close() \n\n        print(output)\nexcept urllib2.URLError, e:\n    try:\n        tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"r\")\n        print 'CACHED ' + tmp_file.read() \n    except IOError, e:\n        print('Unable to get data from API & no cache available')\nexcept ValueError, e:\n    print('There was an error formatting the output: %s' % e)\n# Please submit any issues https:\/\/github.com\/chrislennon\/Crypto-Touchbar-App\/issues with the above script",
      "BTTTouchBarItemPadding" : 0
    }
  },
  {
    "BTTWidgetName" : "ETH",
    "BTTTriggerType" : 642,
    "BTTTriggerTypeDescription" : "Shell Script \/ Task Widget",
    "BTTTriggerClass" : "BTTTriggerTypeTouchBar",
    "BTTPredefinedActionType" : -1,
    "BTTPredefinedActionName" : "No Action",
    "BTTShellScriptWidgetGestureConfig" : "\/usr\/bin\/python:::-c:::-:::",
    "BTTEnabled2" : 1,
    "BTTRepeatDelay" : 0,
    "BTTUUID" : "32BF6CE0-CB75-4094-8DCD-78E30FFCC5A2",
    "BTTNotesInsteadOfDescription" : 0,
    "BTTEnabled" : 1,
    "BTTModifierMode" : 0,
    "BTTOrder" : 1,
    "BTTDisplayOrder" : 0,
    "BTTMergeIntoTouchBarGroups" : 0,
    "BTTIconData" : "iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAK22lDQ1BJQ0MgUHJvZmlsZQAASImVlwdUk9kSgO__pzcIJERASqihCNIJICX0AEKkg6iEJJBQYkwIKnZlcQXXgooIqCu6KKLg6lLEhliwLYIN+4IsCspzsYAFlfcDj7C777z3zpucyXxn_rkzc+_5b84EAEoYXybLhKkAZEmz5ZFBvsz4hEQmrheQgQ6idsCML1DIODxeGEBk0v5Vhu8BaMzethnL9e_P_6toCkUKAQBQEsIpQoUgC+FmRF8LZPJsAFDHEL_J4mzZGN9BmC5HGkS4b4zTJvjLGKeMM5o6HhMd6YewKQB4Mp8vTwOAbIf4mTmCNCQPmYewnVQokSK8GmEvgZgvRBipC2ZkZS0c4wGELZB4GQAUOsLslD_lTPtL_hRVfj4_TcUT+xoXvL9EIcvkL_0_j+Z_S1amcrKGOaJksTw4ErEM5PzuZywMVbE0JTxikiXC8fhxFiuDYyZZoPBLnGQh3z9UtTYzPGySUyWBXFWebG70JIsUAVGTLF8YqaqVKvfjTDJfPlVXmRGj8otFXFX+XHF03CTnSGLDJ1mRERU6FeOn8suVkar+RdIg36m6gaq9Zyn+tF8JV7U2WxwdrNo7f6p_kZQzlVMRr+pNKPIPmIqJUcXLsn1VtWSZPFW8KDNI5VfkRKnWZiMv59RanuoM0_khvEkG_iAAhCEfJuABB+AE7IEbQLrNFi3JHtuM30LZUrkkTZzN5CA3TsTkSgW2M5gOdg72AIzd34lX4t398XsJMfBTPmEvAI5jd8xiypeO3JlTwwBo1E35WN0AUHcD0MwTKOU5Ez702BcGEIE6oCO_DgbABFgAG6Q_F+ABfJCOQ0AEiAYJYD4QADHIAnKwGCwHa0A+KARbwA5QCvaC_eAQOAqOgwZwGpwHl8F10A7ugkegC_SCV2AQDIMRCIJwEAWiQTqQIWQGWUMOEBvyggKgMCgSSoCSoTRICimh5dA6qBAqgkqhfVAV9DN0EjoPXYU6oAdQN9QPvYU+wyiYDNNhfdgcngmzYQ4cCkfD8+A0eBGcC+fBm+ASuAI+AtfD5+Hr8F24C34FD6EAioRioIxQNig2yg8VgUpEpaLkqJWoAlQxqgJVg2pCtaJuo7pQA6hPaCyahmaibdAe6GB0DFqAXoReid6ILkUfQtejL6Jvo7vRg+hvGApGD2ONccdwMfGYNMxiTD6mGFOJqcNcwtzF9GKGsVgsA8vCumKDsQnYdOwy7Ebsbmwtthnbge3BDuFwOB2cNc4TF4Hj47Jx+bhduCO4c7hbuF7cRzwJb4h3wAfiE_FS_Fp8Mf4w_iz+Fv4FfoRAJZgR3AkRBCFhKWEz4QChiXCT0EsYIWoQWURPYjQxnbiGWEKsIV4iPia+I5FIxiQ30hyShLSaVEI6RrpC6iZ9ImuSrch+5CSykryJfJDcTH5AfkehUMwpPpRESjZlE6WKcoHylPJRjaZmq8ZVE6qtUitTq1e7pfZanaBups5Rn6+eq16sfkL9pvoAlUA1p_pR+dSV1DLqSWondUiDpmGvEaGRpbFR47DGVY0+TZymuWaAplAzT3O_5gXNHhqKZkLzowlo62gHaJdovXQsnUXn0tPphfSj9Db6oJamlpNWrNYSrTKtM1pdDBTDnMFlZDI2M44z7jE+T9OfxpkmmrZhWs20W9M+aE_X9tEWaRdo12rf1f6sw9QJ0MnQ2arToPNEF61rpTtHd7HuHt1LugPT6dM9pgumF0w_Pv2hHqxnpRept0xvv94NvSF9A_0gfZn+Lv0L+gMGDAMfg3SD7QZnDfoNaYZehhLD7YbnDF8ytZgcZiazhHmROWikZxRspDTaZ9RmNGLMMo4xXmtca_zEhGjCNkk12W7SYjJoamg623S5abXpQzOCGdtMbLbTrNXsgznLPM58vXmDeR9Lm8Vl5bKqWY8tKBbeFossKizuWGIt2ZYZlrst261gK2crsVWZ1U1r2NrFWmK927pjBmaG2wzpjIoZnTZkG45Njk21TbctwzbMdq1tg+3rmaYzE2dundk685uds12m3QG7R_aa9iH2a+2b7N86WDkIHMoc7jhSHAMdVzk2Or5xsnYSOe1xuu9Mc57tvN65xfmri6uL3KXGpd_V1DXZtdy1k01n89gb2VfcMG6+bqvcTrt9cndxz3Y_7v6Hh41Hhsdhj75ZrFmiWQdm9Xgae_I993l2eTG9kr1+9OryNvLme1d4P_Mx8RH6VPq84Fhy0jlHOK997XzlvnW+H_zc_Vb4Nfuj_IP8C_zbAjQDYgJKA54GGgemBVYHDgY5By0Lag7GBIcGbw3u5OpzBdwq7mCIa8iKkIuh5NCo0NLQZ2FWYfKwptnw7JDZ22Y_DjcLl4Y3RIAIbsS2iCc8Fm8R79Qc7BzenLI5zyPtI5dHtkbRohZEHY4ajvaN3hz9KMYiRhnTEqsemxRbFfshzj+uKK4rfmb8ivjrCboJkoTGRFxibGJl4tDcgLk75vYmOSflJ92bx5q3ZN7V+brzM+efWaC+gL_gRDImOS75cPIXfgS_gj+Uwk0pTxkU+Al2Cl4JfYTbhf0iT1GR6EWqZ2pRal+aZ9q2tH6xt7hYPCDxk5RK3qQHp+9N_5ARkXEwYzQzLrM2C5+VnHVSqinNkF5caLBwycIOmbUsX9a1yH3RjkWD8lB5pQJSzFM0ZtORQemG0kL5nbI7xyunLOfj4tjFJ5ZoLJEuubHUaumGpS9yA3N_WoZeJljWstxo+Zrl3Ss4K_athFamrGxZZbIqb1Xv6qDVh9YQ12Ss+XWt3dqite_Xxa1rytPPW53X813Qd9X5avny_M71Huv3fo_+XvJ92wbHDbs2fCsQFlwrtCssLvyyUbDx2g_2P5T8MLopdVPbZpfNe7Zgt0i33NvqvfVQkUZRblHPttnb6rcztxdsf79jwY6rxU7Fe3cSdyp3dpWElTTuMt21ZdeXUnHp3TLfstpyvfIN5R92C3ff2uOzp2av_t7CvZ9_lPx4f1_QvvoK84ri_dj9OfufH4g90PoT+6eqSt3KwsqvB6UHuw5FHrpY5VpVdVjv8OZquFpZ3X8k6Uj7Uf+jjTU2NftqGbWFx8Ax5bGXPyf_fO946PGWE+wTNb+Y_VJeR6srqIfql9YPNogbuhoTGjtOhpxsafJoqjtle+rgaaPTZWe0zmw+Szybd3b0XO65oWZZ88D5tPM9LQtaHl2Iv3Dn4pyLbZdCL125HHj5Qiun9dwVzyunr7pfPXmNfa3husv1+hvON+p+df61rs2lrf6m683Gdrf2po5ZHWdved86f9v_9uU73DvX74bf7bgXc+9+Z1Jn133h_b4HmQ_ePMx5OPJo9WPM44In1CfFT_WeVvxm+Vttl0vXmW7_7hvPop496hH0vPpd8fuX3rznlOfFLwxfVPU59J3uD+xvfzn3Ze8r2auRgfx_aPyj_LXF61_+8PnjxmD8YO8b+ZvRtxvf6bw7+N7pfcsQb+jpcNbwyIeCjzofD31if2r9HPf5xcjiL7gvJV8tvzZ9C_32eDRrdFTGl_PHRwEUonBqKgBvDyLzcQIAtHYAiHMn5utxgSb+E4wT+E88MYOPiwsASCoQi2ikDwDliLIQVV8NAA+x0T4AdnRU6b9EkeroMJGL1ICMJsWjo++Q+RFnCcDXztHRkYbR0a+VSLMPkTlmeGKuHxPqEQDaHzrEhPs+fBedB_4mEzP_n_b4dwtUHfzF_hN00RrKoWz5TAAAAGxlWElmTU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAACQAAAAAQAAAJAAAAABAAKgAgAEAAAAAQAAAMigAwAEAAAAAQAAAMgAAAAA8XHUkwAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAHdRJREFUeAHtnQncHeO9x6VokiKxhXDvlQi3KYq20hYhpPSq9WrtVKNR+1X03o8ba2KJndhaIhISNLbSInZii3ThuriWaC9iJ2rfIiL9_t7MnJzzntnPzDmz_P+fz++dmWeb5_nN_3eeeZ55Zt4ei5mlzsCCBQt6U+hSDvqwXR2sBvo7WIXtyqAv6FUH5ZN9Cj6rw_vsvwleB284eIntC+AD8LHQo0cP5TNLkYEeKZZVyaIQwzI0fDBYy9lKDKuClRysyDZLe5vC33LwGluJZhZ4RltE8yFbs4QMmEBiEIcY1Cv0A4PARmATsCZQT7AsWBLkweZRifeAep6_gYfATPA8mINo1OOYRWDABBJCEqLQbdFwMBSsB9RTZN0rcIpMTL2NepYnwAwwHbHols3MhwETSDdiEIR6gYFgM7At+DaQSHqCMtlcGiNxPAamgfvBiwhGvY+Zw4AJxCECYazN7vZgc6DeQmOLKpnGKupV7gM3I5Sn2VbeKi0QRLEyHrAxGAmGAPUUZgt7lkcgYhJ4GLFoBq2SVkmBIAz1ELuCrYBmoMz8GdCM2B3gWoSiHqZSVhmBIArNQEkYB4LNwXLALDoD75L0PnAxmIFYKjETVnqBIAw9qNsb7A40LWvWOgOaNp4KrkQoelBZWiutQBCGeogdwWFg_dJewc427HFOfx74PUJRD1M6K51AEEZvrtLPgQbeG5TuiuWzQY9SLQ3oL0MopVruUhqBIIwluEBbg1FAT7lL0zbaUgRbQCVngtPAbQjliyJUOqyOpXAixKGp2iPBdmDxsEZbfKYMzKf0W8AZiOThTM_UhsILLRCEoQWBR4ADgMYcZvlhQGOS8WAcQtFiykJaYQWCOHaD8eOBnoCb5ZcBPZE_EZFck98q+tescAJBGANojoSxF+jp3zSLyREDc6nLVUBCmZ2jeoVWpVACQRwjaJHEMSi0ZZYgjww8T6Ukksl5rJxXnQohEISh5eUShp6Ca7WtWXEZmEfV9TReQtHy+1xb7gWCOLaAwXOA3sUwKw8DeiflV4jknjw36St5rRzCWBzoKfj1wMSR1wuVvF66ptfrGutaJy8m25y57EEgTK+16oGTnoablZ+BSTRxFL3JnLw1NXcCQRyatr0IDMsbWVafTBl4gNIPQiSaFs6N5eoWC3HoFddbgYkjNy7Storomt_q+EDbThp2otz0IBCzJ5X9NdDXQcyqy4C+xnIIPclv80BBx3sQhPEVcCxkTAQmjjx4RWfrIB+YKJ+Qb3S2Kh1e8QoBehI+GmgFbm56s05fFDt_FwNaHayJmhPoTfQkviPWMadEHHpvQy_b7NeRlttJi8LABCp6GCLpyHsmHenCEMfSNNrEURQX7Ww99QN6nuMzba9J23sQGqrvTWm8sUvbW2snLDID11H5felJ2vqt4bb2IM5t1dk01MRRZFftTN3lM2c7PtS2GrStB6FhGpBfAGzM0bbLW8oTaUxyaLsG7m3pQRCH3hfXbJWJo5Q+29ZGyYdGOz6V+YnbIhBacRT478xbYyeoCgPyJflU5pb5LRZK34NWTAZLZt4aO0GVGNB7JSO41ZqaZaMzFQji0NqqK4E9Ic_yKla3bC1L+SkimZYVBZkJBHFoVa4WHg7IqvJWrjEAA7PBNogkk1XAmYxBEEc_Kq3XKk0ckGCWKQPysYsdn0v9RKkLhIrq7bDTwaap19YKNAa8GZCvne74nneKhKGpC4R6HAJGJKyPZTMGkjIgn5PvpWqpCgQF6wMLo0Gq5aba4vwWtoCqXQhezm8Vc10z+dxoxwdTq2hqg3QqthK1uhusm1rtqlXQn2juvwG9OKZXjs2SMfAk2bZk0J7K505T+aVHHBLaccDEkeyiak7_JC6q_hmN5vX_mKwYywUD8sHjHJ9smZBUBEItfgb2b7k21S3gCpquKfHFEMn7bMYAicYsGQPyRflky9byLRZKHUgtpgNtzeIz8ApZtkAYz7lZnV+_Szke6YbZNjYDL5JjOLxqm9jS6EE0KB+YuAaWUf8eoCYO0cGxBuyaKn9Vx2aJGBhILvlmS9aSQPil242z795SDaqdeSbN1wPVJnNEo1kts+QM7O74aOISEt9icWLNWj0ABic+e7UzfkTzd0QI9_jRAMfLEHcX+L5fGgsPZWAWKYbBc6JZrVZ6kCM4sYkj9Pr4JriWmHt9Y4ngour10hPA3KB0FhfIgHxUvprIEvUg_LJtyNk067JcorNaJg3MhyKAl8KogOslSHM52CssrcX7MqB_B6cFjbGnz2P3IM4FG8UJTRy+1yMwYj6xp0QRh0ohnf5b7Mlgjo7NEjEgXx3l+G6sAmILhNJ_BLaJdRZLXM_AgxzouUdkQyTPklizWmbJGZDPyndjWaxbLBT4NUrXoFK3WGbxGfiULFvj8PfHzQr3y5PnTrBB3LyWvsaAbrH0zOmTWkjITtweZB_KGxJSpkX7M3BJEnGoOPK9w+YkoFs0s2QMyHf3iZM1skD4BetLwfqihAaNZvEZ+H+yjIufrSHHzRxd0xBiB3EYkO_u5_hypHyRBUJpPwHfilSqJfJi4HR6gdleEVHDyP8laU8Bb0TNY+maGJAPy5cjWSSBoLg+lHZ4pBItkRcDetg3xSsibhgieYo84+Pms_QNDBzu+HRDoNdBJIGQcW+wjlcBFhbKgObgx+DYaT7sO48yHws9syXwY0C+LJ8OtVCBoDTNXO0BFg8tzRJ4MXAF4njYKyJpGOVJdBqwf560jIrnky_v4fh2IBWhAiH3UGBrgQJp9I3UKt1TfWNbi9BKhptaK6LSueXT8u1ACxQIClP8wcBmrgJp9IzUE3C9JZjJgNq5ZVMvot7ELD4D8umDHR_3zR0oEHLpgeBw39wWEcSAHur9LihBq3GI5AnKOLvVciqcX74d+NA7TCC7UUDfChOYtOkfkFEDcz05z9r05qGEYhafAfm2fNzXfAVC17MiuWKvXfE9U7UizkMcf2lHkznPm5xnLNBbiGbxGfiR4+ueOX0FQupNwdc9c1lgEAN6TnFRUIIM4m6gTMEsPgPycfm6pwUJZKRnDgsMYkC_4mP5VX89KFHacZxPEwLqRWxJfDJyfX3dUyB0OWtznu8lO1elc+lX_PpOMIBIHuO8kzpx7hKc83uOzzc1xVMgpNoeaAxiFp0B_Xqr95gXPUvqKc+iRN3imcVjQL4un2+yJoGgpK+SStNfTXFNuS2gngEtZdeveMeM87_NyfVspJMi7Vj7WzixfH244_sNxXiJYAApNmpIZQdhDDxOgnPCErUp_g+c5442natMp5HPy_cbzEsgm5GiT0MqOwhiQOuhTuDX+52gRO2Kox6fqT5Az2LMojMgnx_WPbmXQLbtnsiOAxnQL_a0wBRtjkQkj3DKC9p82jKcrsn3GwTCPVh_WvntMrS0TW34O+dR75HHVbW_oW7PtImHspzmO44Gau1pEAihur2SSMyiMXAG4sjlrBH1eo0m2JdQol1HN5V8XxqoWXeB6Iliz1qs7QQx8CiRE4MS5CBuKnW4JQf1KEoV5PsNT9VrAqFr0YtR6xelJR2u53zOr1sr3WLl1qifbv1OBrmYQMgtUY0VW9_RQldoTSAc9QPfaExrRz4MXEl4rgbmPvXU54L+RNwUv3gLb2JAGpAWuqxeIGsQYk_PHWICNrq3Pw3H0xdGimJnUNG_FqWyHa6nNCAtdFm9QDZ2A20byMD5iOPZwBQ5i6S+WjypxYxa1GgWzkBNC_UCCX0_N7zc0qeYSQs1fVpEu45K31vEinegzjUtdAmEQckyVGLNDlSkSKf8jMrqLUH9z47CGfX+hErrCfvHhat8+yu8pqOJ2oLEwdRBrx+a+TNwNVH3+EfnPwaRPEwtL85_TTteQ2lBmqgJZC32l1WAmScDGpjrCyWa3i26nU8D_lb0RmRcf2lBmqgJRGpZUgFmngycjDie94wpWCDteIkqn1mware7utLCwh6Ee60eHKze7hoU6HwzqKuee5TJptCYu8vUoAzasrq0oUF6L7BqBicoQ5FzacRx_OoWcmDudwFojyYcTgTv+6Wx8C5N9JJAlgIrGSGeDEzAmaZ7xhQ8kHY9SBOmFrwZWVZfmljKFcjKWZ6poGXPpt56x7vMdgqNUzvNmhmQJroEojeplm+Or3yIlrKX2nlo38tcZYmkDLNzaTusNNFHPcgg0CPt0gtengawlxW8DVGrfxUJNRFh1siANLG6BLJaY3jlj_TEWU_MP60CE7RTT9bHAA3czRoZGCCB9G8Mq_zRRBjQE+cq2X009tIqNThiW_ubQBqZ0sPAU_lVXdAYXO4jp73jaGWpx1wJrqIJpBtpJ+Asr3cLq8Qh7daPwzmVaGz0RppA6ri6i_1r6o6ruKvbLD0fMVvIQJdAbBXvwiXgemKuJ+eVNdrvLon_qLIkNDa8r8YgWmpSdbsA59C725U3eNCS_usrT8RCAnr1YEGWPni8QoUJmUXbN8Mx3qwwBw1NxycGEaBbraqv0ft71XsQzVadYuJo0Mdi8KEB+2ngy8aYyh119SBf0OzFK9f0hQ3+PZtdcAhxYFbHAL2IXsO+E2xYF1y13fnqQapqc2i4BuYmDg8PgBct8T8SVPpzQRJIVZcYLEHbN+KXUm+PmXkzoPVIVZ7Z+0wCqcSaI4_rvxxhl4BpiGQzj_jKBsHHGuBCCLgDfLOyRKANzWJpyfM_V5gENV3z_vpqif7H4ItsK2n4Qm8avj84HAwEVbdXqnyLVX_xl+bgF+BBnOQwULmHp7R5S9p_OzgXDARmDD8kEHsveZErqCeVg9yBw+wAdA9eaqONup26nEb+AQwrdWPjN+59CcQekDUT932CbgCTcZ5S3oPTrr7gCNr4ABgB9O8vzBoZeFMCeaMxrDJHYQ_B9Gxob3A3jjQGlOK1ZNqhcef2tEsDcK3eDXtaPo80VbU3qiyQD7jq14LZIVdfL++PBvfhWLuCwk4LU_e1aMckoN5RvWSQ6QfkJvBkUKKSx71eZYEsy8XVQs0fA71FGPZLuS5p9JmcG3C077ItjFHfPuBoKnw32AfoGVCQ_S+R4mUaWDsoYcnjunqQsF_QMnOwA43blqldzWBp_6GQxuoHZTtwLw53BlgtJH1Ho6mfezt1LxUZC8Jup3S7fSIYBv4PHAv0I1JVe2kxSFwXfAmqah_R8B_IA9jql_YgMBtEsedIdADInRNRp2+Ca8HnIMzmkWAKWMfhoTf7t4dlKnm8NLGunGIAeBtU2Z6k8au4P5PsDwAXgg9BFLuTRJu7+Tu5pR79wLEg6jWdSdrtQW1Km_3RoOom_gZIICuCp6rOBu2_HNScRE7O8VCgpShRelj1RBPAGp0QCOddHOwOHgdR7BUSHQo0FqsZx8OB2lJ1kyZWlBOoO50Oqm5fQMDPap7i7BC2JBgJngZR7FUS_RIs172srI4517eAbqeiCnk8aQd1rw9h_UFUgZG01Dad1vWWQDSQuwqYLVjwOiR03Yd7OM8_EXcyeC8iUX8m3b8DDewzMcpW7z8WzAFRTLeCvgsziZsYpZCKpJEmenyFGZwFXL0XMrmCxStUH9EbBzFam9Vg8PQq0KzOcHAjmN+QoPlAU8F63jCZ8jRFnJpR3lfB7hR4P9D07Yohhc8i_gCwPW1QniajvL0IbOpBmxJWJ+AFacP9dROBYc8BqkKNFu0d7tdYSHuMuF3BTkD7QSZ+fwruwgFPBGGOHFRWVxxluML7LQFhzyj00tPp4IfU+xIwt6uQbn8oUw8QzwBhz0e65SztobTwbK11EDQEvAXMFjKgQeoWNYJ8dkij9UzHAI07opju7zWQjv00njy6xTsVfADCTGORm0DoA03SLA1uB2aLGJAWhtQuOwfLgL8uirc9GJAzhz1Y6+KQdIOB7t_ngjCT894CNqpdgIAd0i0JNEnwLIhiT5BoZ_DVgGJrUaQ7GkQZ3JOsMiYt6J38RUbAbZVpfvSGXkxS9zZ0EVk+e6TdBjwUsXg9YzkTDPApThMoeiVYYopimmAYAyLPnpHWpnS9mb3NvSb1F3+GG2jbGgNagjKidhSywz3+rSTZGhwCZock10TAf4F7uEZ6et_TTc++bqfO41gvMG3rhvtsdb88BWzB+fVvG971SdcQTPmrEHAOWKohwg7EQE0LPVw+IOwH7N_jHtu2xsAr7GmQu2jQVovy34HP1Yg9CuwJ+vinrMXcy54Gyrqt02zZIBBmfySBvkavVbeRjbrpuv8aHBQ5U7US6sdG12PRf5aCNHX1j4CWZ1pUcMlMv+Q_gbRP47YLXoeS5xjwI1D7QfIp5wvCo8wkSbRngsnU6X2fsnyDqZN6Ra1g1jsvZo0MvM3hEHjtugOov8WaQ0SsX8nGckt9JOfW7VBsg2h111oprNu1p0MKCBPHR+S_FAyj3PMTimMw+U8CJg5I8DBpQFrosppAIPsTQh53wm3TzMCR_PJu1hwcHgK3X4BJpPwhGAsijRPqSl7A_t1AS_P3Ay_UxUXepf69Saxxx79EzlS9hI_Dr7TQZTWBOMcPsvV8mOTEV3mjQfW5ONlKSUmA+NeAxhcSyg3gywhlzSLNgWAb8j4QIX1QkiNUTlCCisfJ96WBmjXcE3Px+xOjgd+AWgrb6c7ARBxVt0stGVzrFke3XhqfbOBRmF4JvghcyPk05mjJON8wCpgGJHQzbwY07tgQvt9woxt6ECcibPmEm7eq2xE4m2amWjK4ng9upJAtwPHgVadA3U5pVmor4keBNMTRj_LGARMHJATY_8B3TRxK19CDKICLr1_HCdo382VAzrwlZKY2qQHvWle1L_gLuJ6yNaOVilH2eArSFxPNghn4Bbxrdq9mXgL5V2IfAX1qqWzHiwE9bdW_TvjYKzIvYYhjN+oyBURaepKXenegHrql1fTuX+vP3XCL5UToPmxmfSLb92RgK0L_wzMmJ4GI4+tURc9LTBzh10Q+L99vsCaBoKDPSTEdRJlhaSisYgfi7hicUIPf3Bn1WopK2ZRutCsjX5_u+H5DjiaBOLE3s327IaUdeDGgFZ96wUqzf3mzg6mQ1oWZhTMgX5fPN5mnQFCSnvj+uSm1BXgx8B0C1ZM0jee8ErcjjLpsynmOA57Xtx11KNg5_uz4fFO1gwic1JTaAvwY0IO8vfwi2xmOOPQgU7dWje8ztLMSxTuXr68HCURPFJ8rXls7UuMlOKs+6KAZwI6Z04vpweOQjlWieCeWj8vXPc1XIHQ5ui+73TOXBXoxoNUH5+Ckvbwi2xS2B+fR2MMsOgO3O77umcNXIE7qa9jGXk7teaZqBG5HMw_rRFMR5pqcdyxQb2YWjQH5tnzc18IE8kdyasrXLDoDGrBvEj156ymdXutsShrYemmVKkG+LR_3tUCB0PVofvg3ILVlD741KU+EBse61VqhjU06lHNp4aNZdAbk079xfNw3V6BAnFwz2P7JtwSL8GLguwSe7BWRdhhC3Jgyj0273AqUJ5+WbwdaqEBQ2CeUMBVYLxJIZVOkPtWzS1NoigGUvzzFaUq3T4rFVqEo+fJUx7cD2xvp4RYXQhdAU2HrBZZmkd0ZeJkAfQCgYQFc90RJj7kuvyavzVrFJ_AJsmzKddECxUAL7UGU2yno3MCSLNKLAb3aehaOrHVRqRpl7kSBI1MttDqFnRtFHKIjkkAc3m5gq_9dZxaPAU396kl7aoY41qAwzVp18plLau1pc0HyYflyJIssEBSnOeMJwMYikaitJRLHx+HUGky3bJTzNQo5C+jBpFk8BuS7ExxfjpQzskCc0i5n+0ikki1RPQN9OdAHH_rVBybcP4B8OyTMW_Vs8t3L45AQSyAoTzNaelo7L85JLG0XA5r6PQqRRJoY8eKMvBsSfjyIdd28yqpgmHx2rOPDkZufhGitz7o18hksYT0DeqCnV2BjG+LQFy_PA8vGzmwZxIB8NvbawtgCQYG6jzsNvAvM4jGgdVKn4Oyrx8vWlXoUf7+XIJ9lWeirpzm+G4uP2AJR6ZxI61f0pQyz+AxIHFqK0jNqVtLqgeMvo6a3dE0MjHd8tikiLKCV++GVKPwBMDjsJBbvycB_ctHO8YypC0QcAzm8BwyqC7bd6AzMIqm+ZfxW9CyLUibqQZTdOeFodj9bVJztxWDgeJx_w6D0xOtrJHreYeIIIso_Tr45Oqk4VGxigSgzJ9Za+qu1bxabAU396lYraNCtZSQ_iV2yZXAZuNrxUfc49jbxLZZ7JucWQOvqB7phto3FwIWk_iUXckF9LnjVgPx2sFx9uO1HZuBFUg6HV20TW0s9iM7qVGAMu5_r2Cw2A_uSY8f6XIijq3chzMRRT0z0ffnimFbFodO1LBCnzlPYXuLs2yYeA71JrlstzW7p28jq1U8EQ3VslogB+aJ8smVr+RbLrQEXVrNad4N13TDbxmLgd6TeC_wQXAskHLP4DDxJFn1YPNGsVffTpSYQFYxItmCji6sXecziMTCf5FqEqNstmzqPx52b+h12dkUcmhZPxVIViGqESPRAaxxI6_ZNxZoZA2EM6PsJRyCO88MSxonPwon1ltvkOJWwtMZACgzI5+R7qVrqPYhqRy_Sj43uqTfVsZkxkDEDD1L+TvQec9I+TyYCUSURydpsbgX2Yo8IMcuKgdkUrH9w+nQWJ8jiFqurnk6FD+HgvSwqbmUaA45vHZKVOMRwZgJR4VR8GpuDgb1gJULM0mRAPnWw42NplttQVqYC0ZlowFQ2JwHNMpgZA2kwIF86yfGtNMrzLSNzgThnPpXt6b61sAhjIB4D8iX5VOaW2SC9e80ZtPck7AKwX_c4OzYGYjAwgbSH0nvMjZEncdJ29SC61VKDDgNqoJkxkIQB+c5h7RKHKti2HsRlg55kGfYngl3cMNsaAxEYuI40+yKODyOkTS1J23oQt8ZOA0dybD2JS4ptwxiQr4xstzhUqbb3IC4T9CRararP2NiYxCXFtl4MuLdVn3pFZh3W9h7EbRC_BmrwoUCzEQ1v07lpbFtpBuQT8g0NyDsiDrHfsR5EJ5fRk0ikR4NjgH2MGRLMuj4Eoi94noI4Ovr8rOMCcZ0BoezJvlZjBn3EwE1u2_IyoKVJWj7y2zw0MTcCERmIZFs2EoktcBQh1bPZNFni0BKlXFiuBCJGEIlWAV8EhunYrDIMPEBLD0IcmazKTcpixwbpfhV2CNqZ+El+aSy8dAzoWu+cN3GI5dwJRJWCKL34sj84HNhyeUgoqena6hrv71zz3DUzd7dY3RnilksfgtA3bNfrHmfHhWbgCWr_K4SR2gcWsmAjlz1IfUMdAiUSLXScVx9n+4VkQNdQ11L__TfX4hC7ue9BVEnX6E1GsH88GOSG2bZQDDxPbU9EGJOLUutCCUSkIhJNAUskewEtoTfLPwNayX0VkDhm57+6i2pYOIG4VUcou7EvoWha2Cy_DGjaVsK4Jr9V9K9ZYQWiJiGSldgcAQ4A9qFnSMiRvUtdxoNxiOOtHNUrVlUKLRC3pQhlY_aPBNuBxd1w23aEgfmc9RZwBsJ4uCM1SPGkpRCI+EAk+geZW4NRYCNQmrbRliKYVt_OBPoHr7chDv2z18Jb6ZwIoeg9k5+DkWCDwl+hYjTgUao5CVyGMDq2ND0LqkonEJckhKIxyY+BPqa9vhtu21QZeJzS9LHoGxGGxhyls9IKxL1SCKUP+3uD3cEmbrhtW2LgIXLrf1NegTA+aKmknGcuvUBc_hHKUuwPBQeCzYHNekFCDFMPcR+4GMxAGB+zLb1VRiD1VxKxqCfZBWwFBtfH2X4TA7MIuQNchyjUc1TKKikQ9wojlJXZ1xSxBvRDQH9gtthib0DCI0AD74cRxptVJaXSAqm_6IhlHY71HGVzoFsxfb+rSqbvTc0A94FbEMVTbCtvJpBuLoBQliRoINgM6BXgbwP1LD1BmWwujVFP8RjQK673gxcRhlbbmjkMmEBCXAHBSBzDgXoVvZOyFlgRFNHeptLPAL2Lod5iOoKQSMx8GDCB+BDjFYxYNBPWDwwCelqvwf6aoC9YFqj3yYOpF9Dbeu+DvwENrvWU+3kwB1F8zNYsAgMmkAgkBSVBNBqrfKMOA9lfFWghpSYBVgBZ2t8pXINoLQh8DbwInnWBGDS2MEvIgAkkIXFB2RCNlruot1kaSECrA73Hotu1eqjn6QU0vtFW+WRarvEZ0DhBW_UEuhWqx2yOXwASwEfgY8SgfGYpMvAPPQnafoOAODMAAAAASUVORK5CYII=",
    "BTTTriggerConfig" : {
      "BTTTouchBarFreeSpaceAfterButton" : "5.000000",
      "BTTTouchBarButtonColor" : "139, 146, 175, 255",
      "BTTTouchBarItemPlacement" : 0,
      "BTTTouchBarAppleScriptStringRunOnInit" : false,
      "BTTTouchBarAlwaysShowButton" : false,
      "BTTTouchBarButtonWidth" : 100,
      "BTTTouchBarScriptUpdateInterval" : 60,
      "BTTTouchBarItemIconHeight" : 22,
      "BTTTouchBarButtonTextAlignment" : 0,
      "BTTTouchBarAlternateBackgroundColor" : "109.650002, 109.650002, 109.650002, 255.000000",
      "BTTTouchBarAppleScriptUsePath" : 0,
      "BTTTBWidgetWidth" : 400,
      "BTTTouchBarColorRegex" : "CACHED",
      "BTTTouchBarItemIconWidth" : 22,
      "BTTTouchBarShellScriptString" : "#!\/usr\/bin\/python\n# -*- coding: utf-8 -*-\nimport urllib2,json,sys\n\ncoin_ticker = \"ETH\" if \"ETH\"[0] != \"{\" else \"BTC\"\nfiat_ticker = \"USD\" if \"USD\"[0] != \"{\" else \"USD\"\nfiat_symbol = \"$\" if \"$\"[0] != \"{\" else  \"$\"\nnum_format = \"{:,.0f}\"\nmod_percent = float(\"0\") if \"0\"[0] != \"{\" else float(0)\noutput_type = \"no\" if \"no\"[0] != \"{\" else  \"mktcap\"\napi_type = \"live\" if \"live\"[0] != \"{\" else  \"live\"\nextraOptions = \"False\" if \"False\"[0] != \"{\" else  \"&limit=1&aggregate=1&toTs=1514376000\"\noffline_cache = \"true\" if \"true\"[0] != \"{\" else \"false\"\npercentageRound = int(\"0\") if \"0\"[0] != \"{\" else int(0) \nliteralRound = int(\"0\") if \"0\"[0] != \"{\" else int(0)\n\ntry:\n    if (api_type == \"live\"):\n\n        url = \"https:\/\/min-api.cryptocompare.com\/data\/pricemultifull?fsyms={}&tsyms={}\".format(coin_ticker, fiat_ticker)\n\n        data = urllib2.urlopen(url)\n        obj=json.load(data)\n\n        raw_current = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"PRICE\"])\n        raw_opening = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"OPEN24HOUR\"])\n        raw_high = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"HIGHDAY\"])\n        raw_low = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"LOWDAY\"])\n        raw_mktcap = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"MKTCAP\"])\n        current = num_format.format(raw_current)\n        opening = num_format.format(raw_opening)\n        high = num_format.format(raw_high)\n        low = num_format.format(raw_low)\n\n        if (raw_mktcap > 1000000):\n            mktcap = str(\"{:,.\"+str(literalRound)+\"f}\").format(raw_mktcap \/ 1000000) + \" M\"\n        else:\n            mktcap = str(\"{:,.\"+str(literalRound)+\"f}\").format(raw_mktcap)\n\n        if (raw_current > raw_opening):\n            trend = \"▲\"\n        else:\n            trend = \"▼\"\n\n        if (output_type is \"no\"):\n            output = fiat_symbol + current\n        elif (output_type is \"simple\"):\n            output = fiat_symbol + current + \" \" + trend\n        elif (output_type is \"mktcap\"):\n            output = fiat_symbol + current + \" (\" + fiat_symbol + mktcap + \")\"\n        elif (output_type is \"absolute\"):\n            output = fiat_symbol + current + \" (L: \" + fiat_symbol + low + \" H: \" + fiat_symbol + high + \")\"\n        elif (output_type is \"relative\"):\n            output = fiat_symbol + current + \" (L: -\" + fiat_symbol + str(round(raw_current - raw_low, literalRound)) + \" H: +\" + fiat_symbol + str(round(raw_high - raw_current,literalRound)) + \")\"\n        elif (output_type is \"current-percentage\"):\n            output = fiat_symbol + current + \" (\" + str(round(((raw_current - raw_opening) \/ raw_current) * 100, percentageRound)) + \"%)\"\n        elif (output_type is \"range-percentage\"):\n            output = fiat_symbol + current + \" (L: -\" + str(round (((raw_current - raw_low) \/ raw_current) * 100, percentageRound)) + \"% H: +\" + str(round (((raw_high - raw_current) \/ raw_current) * 100, percentageRound)) + \"%)\"\n        elif (output_type is \"user-percentage\"):\n            output = fiat_symbol + current + \" (L: \" + fiat_symbol + str(round(raw_current - (raw_current * mod_percent), literalRound)) + \" H: \" + fiat_symbol + str(round(raw_current + (raw_current * mod_percent), literalRound)) + \")\"\n\n        if (offline_cache is \"true\"):\n            tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"w\")\n            tmp_file.write(output)\n            tmp_file.close()\n\n        print(output)\n\n    elif (api_type == \"historical\"):\n        url = \"https:\/\/min-api.cryptocompare.com\/data\/histohour?fsym={}&tsym={}\" + extraOptions\n        url = url.format(coin_ticker, fiat_ticker)\n\n        data = urllib2.urlopen(url)\n        obj=json.load(data)\n\n        raw_high = float(obj[\"Data\"][1][\"high\"])\n        high = num_format.format(raw_high)\n\n        output = fiat_symbol + high\n\n        if (offline_cache is \"true\"):\n            tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"w\")\n            tmp_file.write(output)\n            tmp_file.close() \n\n        print(output)\nexcept urllib2.URLError, e:\n    try:\n        tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"r\")\n        print 'CACHED ' + tmp_file.read() \n    except IOError, e:\n        print('Unable to get data from API & no cache available')\nexcept ValueError, e:\n    print('There was an error formatting the output: %s' % e)\n# Please submit any issues https:\/\/github.com\/chrislennon\/Crypto-Touchbar-App\/issues with the above script",
      "BTTTouchBarButtonFontSize" : 15,
      "BTTTouchBarIconTextOffset" : 5,
      "BTTTouchBarButtonName" : "ETH",
      "BTTTouchBarOnlyShowIcon" : false,
      "BTTTouchBarAppleScriptString" : "#!\/usr\/bin\/python\n# -*- coding: utf-8 -*-\nimport urllib2,json,sys\n\ncoin_ticker = \"ETH\" if \"ETH\"[0] != \"{\" else \"BTC\"\nfiat_ticker = \"USD\" if \"USD\"[0] != \"{\" else \"USD\"\nfiat_symbol = \"$\" if \"$\"[0] != \"{\" else  \"$\"\nnum_format = \"{:0,.3f}\" if \"{:0,.3f}\"[2:8] != \"format\" else  \"{}\"\nmod_percent = float(\"0\") if \"0\"[0] != \"{\" else float(0)\noutput_type = \"no\" if \"no\"[0] != \"{\" else  \"mktcap\"\napi_type = \"live\" if \"live\"[0] != \"{\" else  \"live\"\nextraOptions = \"False\" if \"False\"[0] != \"{\" else  \"&limit=1&aggregate=1&toTs=1514376000\"\noffline_cache = \"true\" if \"true\"[0] != \"{\" else \"false\"\npercentageRound = int(\"0\") if \"0\"[0] != \"{\" else int(0)\nliteralRound = int(\"0\") if \"0\"[0] != \"{\" else int(0)\n\ntry:\n    if (api_type == \"live\"):\n\n        url = \"https:\/\/min-api.cryptocompare.com\/data\/pricemultifull?fsyms={}&tsyms={}\".format(coin_ticker, fiat_ticker)\n\n        data = urllib2.urlopen(url)\n        obj=json.load(data)\n\n        raw_current = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"PRICE\"])\n        raw_opening = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"OPEN24HOUR\"])\n        raw_high = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"HIGHDAY\"])\n        raw_low = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"LOWDAY\"])\n        raw_mktcap = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"MKTCAP\"])\n        current = num_format.format(raw_current)\n        opening = num_format.format(raw_opening)\n        high = num_format.format(raw_high)\n        low = num_format.format(raw_low)\n\n        if (raw_mktcap > 1000000):\n            mktcap = str(\"{:,.\"+str(literalRound)+\"f}\").format(raw_mktcap \/ 1000000) + \" M\"\n        else:\n            mktcap = str(\"{:,.\"+str(literalRound)+\"f}\").format(raw_mktcap)\n\n        if (raw_current > raw_opening):\n            trend = \"▲\"\n        else:\n            trend = \"▼\"\n\n        if (output_type is \"no\"):\n            output = fiat_symbol + current\n        elif (output_type is \"simple\"):\n            output = fiat_symbol + current + \" \" + trend\n        elif (output_type is \"mktcap\"):\n            output = fiat_symbol + current + \" (\" + fiat_symbol + mktcap + \")\"\n        elif (output_type is \"absolute\"):\n            output = fiat_symbol + current + \" (L: \" + fiat_symbol + low + \" H: \" + fiat_symbol + high + \")\"\n        elif (output_type is \"relative\"):\n            output = fiat_symbol + current + \" (L: -\" + fiat_symbol + str(round(raw_current - raw_low, literalRound)) + \" H: +\" + fiat_symbol + str(round(raw_high - raw_current,literalRound)) + \")\"\n        elif (output_type is \"current-percentage\"):\n            output = fiat_symbol + current + \" (\" + str(round(((raw_current - raw_opening) \/ raw_current) * 100, percentageRound)) + \"%)\"\n        elif (output_type is \"range-percentage\"):\n            output = fiat_symbol + current + \" (L: -\" + str(round (((raw_current - raw_low) \/ raw_current) * 100, percentageRound)) + \"% H: +\" + str(round (((raw_high - raw_current) \/ raw_current) * 100, percentageRound)) + \"%)\"\n        elif (output_type is \"user-percentage\"):\n            output = fiat_symbol + current + \" (L: \" + fiat_symbol + str(round(raw_current - (raw_current * mod_percent), literalRound)) + \" H: \" + fiat_symbol + str(round(raw_current + (raw_current * mod_percent), literalRound)) + \")\"\n\n        if (offline_cache is \"true\"):\n            tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"w\")\n            tmp_file.write(output)\n            tmp_file.close()\n\n        print(output)\n\n    elif (api_type == \"historical\"):\n        url = \"https:\/\/min-api.cryptocompare.com\/data\/histohour?fsym={}&tsym={}\" + extraOptions\n        url = url.format(coin_ticker, fiat_ticker)\n\n        data = urllib2.urlopen(url)\n        obj=json.load(data)\n\n        raw_high = float(obj[\"Data\"][1][\"high\"])\n        high = num_format.format(raw_high)\n\n        output = fiat_symbol + high\n\n        if (offline_cache is \"true\"):\n            tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"w\")\n            tmp_file.write(output)\n            tmp_file.close() \n\n        print(output)\nexcept urllib2.URLError, e:\n    try:\n        tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"r\")\n        print 'CACHED ' + tmp_file.read() \n    except IOError, e:\n        print('Unable to get data from API & no cache available')\nexcept ValueError, e:\n    print('There was an error formatting the output: %s' % e)\n# Please submit any issues https:\/\/github.com\/chrislennon\/Crypto-Touchbar-App\/issues with the above script",
      "BTTTouchBarItemPadding" : 0
    }
  },
  {
    "BTTWidgetName" : "ONE",
    "BTTTriggerType" : 642,
    "BTTTriggerTypeDescription" : "Shell Script \/ Task Widget",
    "BTTTriggerClass" : "BTTTriggerTypeTouchBar",
    "BTTPredefinedActionType" : -1,
    "BTTPredefinedActionName" : "No Action",
    "BTTShellScriptWidgetGestureConfig" : "\/usr\/bin\/python:::-c",
    "BTTEnabled2" : 1,
    "BTTRepeatDelay" : 0,
    "BTTUUID" : "CB8CD7B3-8279-44FE-B325-285CBC896B73",
    "BTTNotesInsteadOfDescription" : 0,
    "BTTEnabled" : 1,
    "BTTModifierMode" : 0,
    "BTTOrder" : 2,
    "BTTDisplayOrder" : 0,
    "BTTMergeIntoTouchBarGroups" : 0,
    "BTTIconData" : "iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAK22lDQ1BJQ0MgUHJvZmlsZQAASImVlwdUk9kSgO__pzcIJERASqihCNIJICX0AEKkg6iEJJBQYkwIKnZlcQXXgooIqCu6KKLg6lLEhliwLYIN+4IsCspzsYAFlfcDj7C777z3zpucyXxn_rkzc+_5b84EAEoYXybLhKkAZEmz5ZFBvsz4hEQmrheQgQ6idsCML1DIODxeGEBk0v5Vhu8BaMzethnL9e_P_6toCkUKAQBQEsIpQoUgC+FmRF8LZPJsAFDHEL_J4mzZGN9BmC5HGkS4b4zTJvjLGKeMM5o6HhMd6YewKQB4Mp8vTwOAbIf4mTmCNCQPmYewnVQokSK8GmEvgZgvRBipC2ZkZS0c4wGELZB4GQAUOsLslD_lTPtL_hRVfj4_TcUT+xoXvL9EIcvkL_0_j+Z_S1amcrKGOaJksTw4ErEM5PzuZywMVbE0JTxikiXC8fhxFiuDYyZZoPBLnGQh3z9UtTYzPGySUyWBXFWebG70JIsUAVGTLF8YqaqVKvfjTDJfPlVXmRGj8otFXFX+XHF03CTnSGLDJ1mRERU6FeOn8suVkar+RdIg36m6gaq9Zyn+tF8JV7U2WxwdrNo7f6p_kZQzlVMRr+pNKPIPmIqJUcXLsn1VtWSZPFW8KDNI5VfkRKnWZiMv59RanuoM0_khvEkG_iAAhCEfJuABB+AE7IEbQLrNFi3JHtuM30LZUrkkTZzN5CA3TsTkSgW2M5gOdg72AIzd34lX4t398XsJMfBTPmEvAI5jd8xiypeO3JlTwwBo1E35WN0AUHcD0MwTKOU5Ez702BcGEIE6oCO_DgbABFgAG6Q_F+ABfJCOQ0AEiAYJYD4QADHIAnKwGCwHa0A+KARbwA5QCvaC_eAQOAqOgwZwGpwHl8F10A7ugkegC_SCV2AQDIMRCIJwEAWiQTqQIWQGWUMOEBvyggKgMCgSSoCSoTRICimh5dA6qBAqgkqhfVAV9DN0EjoPXYU6oAdQN9QPvYU+wyiYDNNhfdgcngmzYQ4cCkfD8+A0eBGcC+fBm+ASuAI+AtfD5+Hr8F24C34FD6EAioRioIxQNig2yg8VgUpEpaLkqJWoAlQxqgJVg2pCtaJuo7pQA6hPaCyahmaibdAe6GB0DFqAXoReid6ILkUfQtejL6Jvo7vRg+hvGApGD2ONccdwMfGYNMxiTD6mGFOJqcNcwtzF9GKGsVgsA8vCumKDsQnYdOwy7Ebsbmwtthnbge3BDuFwOB2cNc4TF4Hj47Jx+bhduCO4c7hbuF7cRzwJb4h3wAfiE_FS_Fp8Mf4w_iz+Fv4FfoRAJZgR3AkRBCFhKWEz4QChiXCT0EsYIWoQWURPYjQxnbiGWEKsIV4iPia+I5FIxiQ30hyShLSaVEI6RrpC6iZ9ImuSrch+5CSykryJfJDcTH5AfkehUMwpPpRESjZlE6WKcoHylPJRjaZmq8ZVE6qtUitTq1e7pfZanaBups5Rn6+eq16sfkL9pvoAlUA1p_pR+dSV1DLqSWondUiDpmGvEaGRpbFR47DGVY0+TZymuWaAplAzT3O_5gXNHhqKZkLzowlo62gHaJdovXQsnUXn0tPphfSj9Db6oJamlpNWrNYSrTKtM1pdDBTDnMFlZDI2M44z7jE+T9OfxpkmmrZhWs20W9M+aE_X9tEWaRdo12rf1f6sw9QJ0MnQ2arToPNEF61rpTtHd7HuHt1LugPT6dM9pgumF0w_Pv2hHqxnpRept0xvv94NvSF9A_0gfZn+Lv0L+gMGDAMfg3SD7QZnDfoNaYZehhLD7YbnDF8ytZgcZiazhHmROWikZxRspDTaZ9RmNGLMMo4xXmtca_zEhGjCNkk12W7SYjJoamg623S5abXpQzOCGdtMbLbTrNXsgznLPM58vXmDeR9Lm8Vl5bKqWY8tKBbeFossKizuWGIt2ZYZlrst261gK2crsVWZ1U1r2NrFWmK927pjBmaG2wzpjIoZnTZkG45Njk21TbctwzbMdq1tg+3rmaYzE2dundk685uds12m3QG7R_aa9iH2a+2b7N86WDkIHMoc7jhSHAMdVzk2Or5xsnYSOe1xuu9Mc57tvN65xfmri6uL3KXGpd_V1DXZtdy1k01n89gb2VfcMG6+bqvcTrt9cndxz3Y_7v6Hh41Hhsdhj75ZrFmiWQdm9Xgae_I993l2eTG9kr1+9OryNvLme1d4P_Mx8RH6VPq84Fhy0jlHOK997XzlvnW+H_zc_Vb4Nfuj_IP8C_zbAjQDYgJKA54GGgemBVYHDgY5By0Lag7GBIcGbw3u5OpzBdwq7mCIa8iKkIuh5NCo0NLQZ2FWYfKwptnw7JDZ22Y_DjcLl4Y3RIAIbsS2iCc8Fm8R79Qc7BzenLI5zyPtI5dHtkbRohZEHY4ajvaN3hz9KMYiRhnTEqsemxRbFfshzj+uKK4rfmb8ivjrCboJkoTGRFxibGJl4tDcgLk75vYmOSflJ92bx5q3ZN7V+brzM+efWaC+gL_gRDImOS75cPIXfgS_gj+Uwk0pTxkU+Al2Cl4JfYTbhf0iT1GR6EWqZ2pRal+aZ9q2tH6xt7hYPCDxk5RK3qQHp+9N_5ARkXEwYzQzLrM2C5+VnHVSqinNkF5caLBwycIOmbUsX9a1yH3RjkWD8lB5pQJSzFM0ZtORQemG0kL5nbI7xyunLOfj4tjFJ5ZoLJEuubHUaumGpS9yA3N_WoZeJljWstxo+Zrl3Ss4K_athFamrGxZZbIqb1Xv6qDVh9YQ12Ss+XWt3dqite_Xxa1rytPPW53X813Qd9X5avny_M71Huv3fo_+XvJ92wbHDbs2fCsQFlwrtCssLvyyUbDx2g_2P5T8MLopdVPbZpfNe7Zgt0i33NvqvfVQkUZRblHPttnb6rcztxdsf79jwY6rxU7Fe3cSdyp3dpWElTTuMt21ZdeXUnHp3TLfstpyvfIN5R92C3ff2uOzp2av_t7CvZ9_lPx4f1_QvvoK84ri_dj9OfufH4g90PoT+6eqSt3KwsqvB6UHuw5FHrpY5VpVdVjv8OZquFpZ3X8k6Uj7Uf+jjTU2NftqGbWFx8Ax5bGXPyf_fO946PGWE+wTNb+Y_VJeR6srqIfql9YPNogbuhoTGjtOhpxsafJoqjtle+rgaaPTZWe0zmw+Szybd3b0XO65oWZZ88D5tPM9LQtaHl2Iv3Dn4pyLbZdCL125HHj5Qiun9dwVzyunr7pfPXmNfa3husv1+hvON+p+df61rs2lrf6m683Gdrf2po5ZHWdved86f9v_9uU73DvX74bf7bgXc+9+Z1Jn133h_b4HmQ_ePMx5OPJo9WPM44In1CfFT_WeVvxm+Vttl0vXmW7_7hvPop496hH0vPpd8fuX3rznlOfFLwxfVPU59J3uD+xvfzn3Ze8r2auRgfx_aPyj_LXF61_+8PnjxmD8YO8b+ZvRtxvf6bw7+N7pfcsQb+jpcNbwyIeCjzofD31if2r9HPf5xcjiL7gvJV8tvzZ9C_32eDRrdFTGl_PHRwEUonBqKgBvDyLzcQIAtHYAiHMn5utxgSb+E4wT+E88MYOPiwsASCoQi2ikDwDliLIQVV8NAA+x0T4AdnRU6b9EkeroMJGL1ICMJsWjo++Q+RFnCcDXztHRkYbR0a+VSLMPkTlmeGKuHxPqEQDaHzrEhPs+fBedB_4mEzP_n_b4dwtUHfzF_hN00RrKoWz5TAAAAGxlWElmTU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAACQAAAAAQAAAJAAAAABAAKgAgAEAAAAAQAAAMigAwAEAAAAAQAAAMgAAAAA8XHUkwAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAHx9JREFUeAHtnQm4XeO5x0VKoiExxTwcqTaGosYSMl2KltY8VK+qmBNqqKvUrVBPDb0PipofQ25VzDNF6yZCElWkEZJGyWDISEgkkkjJ_f2PtbZ9ztlr2Guvtdf0vs_zP2vt9U3v+67vv75xrdNpBZPYPbB8+fJVyLSbg+4cNwObgPUcrM9xXdADdK2C0kkWgyVVmM_5bDATzHLwDsepYAFYJHTq1EnpTGL0QKcY8yplVpBhNQzvDbZ0jiLDBmAdB2tzTFI+IPM5DmZwFGkmg0k6QppPOJpE9IARpA7HQQa1Cj1BL7Ab2ANsDtQSrA5WAlmQZSjxMVDL8xZ4AYwFU8BcSKMWxySEB4wgAU6CFOoWDQS7g22BWoqkWwWKSETU2qhleQ2MBiMgi7psJh4eMIK0cwyEUCvQAvqD_cD2QCTpAookSzFG5BgHngDPgWkQRq2PieMBI4jjCIixFac_BAOAWguNLcokGquoVRkJHoMoEzmWXkpNEEixLjWgDxgEdgJqKUy+bFlexhG3gTGQRTNopZRSEgRiqIU4HOwDNANl4u0BzYg9De6FKGphSiWlIQik0AyUiHEyGADWACbhPfARUUeCG8FoyFKKmbDCEwRiaKHuaHAk0LSsSeMe0LTxcHAnRNFCZWGlsASBGGohDgSng+0KewfTNWw8xV8NHoYoamEKJ4UjCMRYhbt0LNDAe8fC3bFsGvQKamlAfztEKdR2l8IQBGJ8jRv0fXAu0Cp3YWzDljzIcpQcCy4Df4Yo_86D0kE6FqISQQ5N1Z4D9gedg4y28EQ98Dm5Pw5+B0nGJFpSEzLPNUEghjYEnglOAhpzmGTHAxqT3ASugijaTJlLyS1BIMcRePwCoBVwk+x6QCvyv4Ek92RXRW_NckcQiLEp5ogYPwFdvE2zkAx5YCm6_AmIKNMzpFegKrkiCOQ4BotEjl6BllmELHpgCkqJJMOyqFwtnXJBEIih7eUihlbBtdvWJL8eWIbqWo0XUbT9PtOSeYJAjj3x4JVA72KYFMcDeiflLEjybJZNWjGrykGMzkCr4PcDI0dWb1R0vXRP79c91r2Onk2yKTPZguAwvdaqBSethpsU3wO3YeK5tCZzs2Zq5ggCOTRtewPolzVnmT6JemAUuZ8CSTQtnBnJVBcLcugV1yeBkSMzVaRpiuieP+nUgaYVGlRQZloQHHMUyl4H9HUQk_J6QF9jGUJLclcWXJB6CwIxVgT_jTNuBUaOLNSKdHVQHbhVdUJ1I11VUt7xigO0Ej4UaAduZlqztG+Kld_qAe0O1kTNRbQmWolPRVKrlJBD723oZZsTUrHcCs2LB25B0dMhSSrvmaTShEGOVTHayJGXKpqunnqAXu3UmaZr0vQWBEP1vSmNNw5rurVWYJ49cB_KH0dL0tRvDTe1BXG6VVdgqJEjz1U1Hd1VZ65w6lDTNGhaC4JhGpBfC2zM0bTbW8iCNCY5rVkD96a0IJBD74trtsrIUcg621SjVIeGOnUq8YKbQhCsOA_8MnFrrICyeEB1SXUqcUm8iwXTf4wVw8BKiVtjBZTJA3qv5Bi6WsOTNDpRgkAO7a26E9gKeZJ3sbx5a1vKf0KSJ5JyQWIEgRzalauNh5smpbzlax7AA9PBDyBJIruAExmDQI6eKK3XKo0cOMEkUQ+ojt3o1LnYC4qdICiqt8MuB31j19YyNA_U9oDq2uVO3asdI+LV2AmCHkPAMRH1sWTmgageUJ1T3YtVYh2DwGB9YOFesGasWlpm5oFwHphHtMMZjzwbLnpwrNgIAjnWobi_gm2Ci7UY5oHEPDCBnPeCJHPiKCGWLhbkENF+DYwccdwVy6MRD6gO_tqpk43k05o2FoKQ00_BiQ1rYxmYB+LxgOqi6mTD0nAXC6a2oMUIoKOJeSArHpiGIgPpaukYWeJoQYZSektkDSyheSAZD7SQrepmQ9IQQWg9jqD0IxvSwBKbB5LzwJFOHY1cQuQuFgVr1moU6B25dEtoHkjeA5Mpol_UWa1GWhD9ZycjR_I32EpozAOqo6qrkSRSC0LrsSulaSPiGpFKtURZ8MBylBAkbj1wj19eLc5f_Ts4bWh8sV6T6nYI5NDbgfri+gH1Fpbh+J+j23TwHpgC3gbzwaegC1gNbAK+CTYCm4Kvg7zIUhT9F5gEXgbqdrwLFoDPgGzpAXqBLcDOQLZuDooij2DIoZCkrv++G4Ug+1PQg6AIL0CJDA+A_wNv4DxVGl_hAaF_5rMV2A3oQwJZ_l_sM9DvLvAUeAX79P5EKMHODYkoohwIDgXdQJ5FL1gdjA_0H3hDS10EwWl60mifi7pYeRZtR7gZ3IPD5kY1BH90J632n50G+oNGxnQkj01EjFvBLWFI71cqNnYmXKvTpwLNWq4K8irqYu2JT9QziF9w1mCwDORV5qD4L0GsmynJbyWgKcWJIG0ZhgLqJsUu5NsXPJu2gQ2Ur7o7OHbHKEMy7gHGNaBc2knHo4C6RYkJ+W8CHk7J0HmUezLQEz8xIf_u4CqwFORRVIc13opXyPTYPHrD0Vn_6mvjeD1SOzfK6Qb08s7noFkylYIG1NYomauUdyJYCPIox8bqFTygp4aewHmU61G6a6wOCciM8jqBU8BikLRMo4BdAlRKJJhyfwrySBLVZY0f4xEyGwL+DfImd6GwviKfilD2rxJ22Gzy75uKcU6hlK+WJG_dLdXlUG8fBs5ikZFmrp4Bu6d5IyKUrRmLA5mxmF1vWmxenzRa+5DtWidYCOaS12KOoYV8NB7QbNmg0InCR1xK1OPRSZ9VqkvQSw8NTVfLxpXBIrCQvGZyrFvI7xoSaSYvTzIaZffGZt8ZrTAE2ZuMngBaIMyLTEfR_TH+9bAKc5O1SHYI6Ac2A9oloGZ4CdD6wfvgJfAYeIG83VVofnoL+a5O6MNA08Bxyg1k9nP0CL3whS56yP0IfBdsAGSjFkI_AVpt1rrQc+AB8p3GMZSQrwa9WoiL28ZQ5UeMJL9pdf0vEdO3zlzp36M9BPIkmso7NqzRxN0QXAzUXQkji4h0D9AiWigh7i7gYxCXvE1GauVCCXF3AMNB2PHCLOJeCOopoz_x5Zs8iep29LUrEvcBcd7YZjhP8_Shxh3E2wtEXbuQX84GncLUUuL9FsQlobtsFHg60BRwFJlAolCtAvE0MXFblEJSTKN72CfM_asZh8TXpKh8lKI1tfrDmsa0u0g8Lex9GKWQqjRfcP4HEDhLRpxe4F3QqPyDDDR+8BXidAFXgkanm+eSx8G+hTmBxPsOyFsrcrWfbZ7NC4b2JOG+fokzGDYKnQL7lNj2PeKpD9_oirpaD82GnAd8hb6u+veP+kYKF3gveX0QIuoviHMG8LzHIfJQFJHxJnymsVmQTCDCg0GRMha+L7Z5PnD8nKcB3TczZoyfOho0D6fyaFDtKThDC4bXAg2e45LzyPfQEJlpxkmzT1FlPgnvCUqMLmpFLwChun9B+RGuCnQd+fqOSfD958R7CISeOCBu2vItFPCcKvcjyHFpa15n+XOI_3yINIOJo5do4pSVyEwk8XwSOYW9zFFP2agyloRqiTwFHUT884Fmp+KUb5PZSSEy1EzfuyHiZSnKIC9lahIEJ29FglRWZ70UDXH9LeK86RcPu_S0OMEvTgNhO5D2AL_0PGGXER7YBfTJ41nyUEvpJ2o9NI2bhGivV4tfxuj3HuG+98EvfUphmmVUne8gNQlCLDk56GnYIbOUL+h9BzXxfnIIgWv5RWgw7DAcHbRepAXMKCJijPdLSNlamDzcL06DYeuQPsyA_e8NltPs5KrrNSd3OhAEJ69M5IGgQ1izta6zPN+uC3apGxRmoFlnsW2i78EvjXH85H0CF_hF8Aibx_WgXQEaI3j2pz3yreeyxjQDQjwEJtWTaQbiqq4PdOp+G3VqkWBTYuzWJlY+fvwrQE09_VoC4jQa_HUy2CYgkw8Jj_KSlmauRBI_2Y7A1fwixBD2DfLQDKefTCUwqCvolz6NMNV51f02Uosg_YnRvU2s7P_QzVDF85NVCYxz5qpWWXrCaguHn3xK4CK_CB5hi7nuO0NHuMqudU89sox0WT4MIuHHkXJON5HqfIceRi1n7peunpFKF0E0Beonero3g_hqqfxEFV2oV5aSQPCTdf0CYwqTD+VLP_mEQN2TvEmHut+GIPTB1sOi7fNmlaNv0ABdtraxNyE7gwbpqjhRKk+YdBo_Ji2yT5MBfvKFX2CGw7RnTRyoSPsK05+QNhEqMe3EPFB8D6juiwMVaU8QzYDEvcBUKcxOzAMZ94DqfptZwApBaFrUr9QsiIl5oMwe2M7hQqsPKgThl6butiizZ8x284DDgco0djVBNL+dt9Vzu6PN94AmQ_I6CA_jLXFAXGiVaoL0cS_a0Tzg4wFN4Wotp8hS4UI1QXYvssVmW2wemEVOWtUvslS40EoQBiVaGd28yBabbbF54B9sCg3atRBbYSlltLnDicrCWW8U6ZGSMlZsfjyglfy786NuZE3FBXGiQpAtOU96n5LKM8m3B55G_WfybUIo7cUFcaJCELFF28FNzANeHtDY48IQL2x5pc_TdXHhyxaEvpZ2oG6WJ+1N16Z74DNKHAo5xjW95PQK3Ezc0CC9K9ggPT2s5Ix7QJskz4McN2dcz7jVEye6iiDdQNAW7bgLt_zy4QG9+XgW5LgyH+rGqqU40U1bl0WQZrxHEKv2llniHniTEvTtXw3MyyjiRDe1IHoBZs0yesBsrukBrZLfAP6jxOSQY8SJ7mpBegEN1E3K7YHPMP8hcB3EeL7crmi1vnXySgTZxJxRag9MxfqR4HYwBnIEvZlJtNLIpiKIvUFYmvtdMVTdqDFAq+IjIMWUSoidVHtgPSNItTuKff4e5k0C+rLjI2AqxFjG0cTbA0YQb9_kMsT9mIIqvlqJN8BI8DcwGUJM5tiwsIDWuSRdMSNIw7UlWgaaPaxXtKAbNJmibtN_gZeByLGAiqwNhrEIxNiYjM4Gd4AyrKq3EkQ7F03i80DQnjatTGtf0ztALx8tqcJi57z6qHNV8redMA61BTI8QYgQu0COg8j0MvAt8MfYC8hmhj00BtGTyaQxD6hLM9PBxICs1PU5EqgV0aurIox71Hnrbyq7jqkLxNB30gaDnwHVFxE6E7qhR9LS1QhSv4tVmVXJXwdaLxgPNACeAWZSsRdy9BSn4qtVyLRAjK1R8CxwAFgr08omp5wRJKRvVekngFeASDEWzKGyx9a_J7_UBVLoPYhdwWHgEFD27rcRhErgJYsIeAk8Cl4Er0EItRyFEkihMdM3wI+Bvk27AwiaDCBKKaSVIKWwNKSR6lu_CjTQHQ7ehhSFWyuAFPpI4LZArcWPwC5Am1ZN2nnAHXSV3Tnz8cuD4D4wFlLk8fP97W7tVz8hRBd+rQN2A33BjmAboH8JYeLtgSUiiAaMZSWIvs7xCLgSTIQYuZ+dgQyq9OsDvfCzEdgOiBTfBmo5oqzBkKyUsthtQcpmvf5N8R3gekgxLg_GU_FR1Z_AxDkaW4YAEUQIWpMhiomPB1pbkKU+EYoUpIGn1nz0ItC5VLaH0jCOStyZcr8DegKdqxKrCyTdVnGg82qohZ9O2v9Bb61DeMlWBHzXK9Cu1+2BVoKo_10G+RwjrwFXUMm0ih2LUGlVubuDrcFOYBL5a5DvJSKB9OjjFcHj+qtcv8ojzL1cuAkF17CUjvPVxZqVUuHNLlbTtKfHUSik2IJ8tOVCT+sBQORQ_16twSXAjyAEB_6HJsVpL3qhyaS5HphdGoJADrUgkQRCrEzCFnAA+B7QR8U0AK4lYcrJ_WRALcMLeG2WCDKzgIbFYhLE6EVGA8GRQF0itRIm5fHATBFkdnnsDbYUUmjgvDv4GRgANgMm5fRAawsyvZy2d7QacvTl6qngQKBulUm5PfCOWpCpQH3iTmX1BcTYENvPB8cA60aVtSK0tVucmCqCLADzQCm3NEOOfbD9atAbmJgHXA+IEwtW5M8iUMpxCOQ4A9vvBUYOnGDSxgPixCKXIHPaBJXgB+Q4CzOvBN1LYK6ZWL8HxIlWgmjrwoz60+c3BeQ4Ae0vBaUdd+X37jVNc3FiyYosoLUORppWbMoFQQ7tg7oI2CxVyvci48Xru2HL1cWSTAaF38cDOdRiXAi009XEPODlAXHhnwp0CTKJ8491oeCibSL7FtxGM69xD4gLbQiiFqQMu3q1ZaRL4_6zHAruAXFBnPiyBaGv9Qnnb+lCUYXuldZ5NP4wMQ8EeeAthxOVLpYSjA5KlfPwtdHfxh45v4lNUr_CBXcMonLHNKnwtIrRFpLV0ircys2VBypcqCbI25jwQa7MqE9Z2aqduibmAT8PiAPiQqtUE2QuV1pH7k6YHcwDZfSAOCAutEqFIAxK9NXA8c51O5gHyuqB8Q4XWu2vEMTxxvMcl5bVM2Z36T2gui8OVKQ9QZ4jpCwfcag4oUAntressZupui8OVKQNQWhaFGFcJTRfJ0GVQx9T0Afjkpagr49IzyBdo+rYDPv07x8EP0nKPr8y4wh71eFAJa82BHGuBn2yppI4Qye6IasG6KMxll4OS1qC3q3RJskoq_lKE5QuqOw4bJcP5Us_0b3II0k61P1aBHkO45pRkfwcHCVszYBE2i2Q9HYaPVlnBOixCuFCvaJ1nKB0Klu7s5MU7VPy_SdBhAfdiyT1i5q36vyo9olrEWQ6kca2j5jx33patQToqKm7yvx2QNyowao4rwUkVuWJ8nqz0gRVvAnECXq6B6gXGDyNGEEv2LUQR_ckT6I6r7rfRjoQhD6Y+tAjQFA_s01GGfihrxt6Cnapfz4SJPmE1RMoqAVZlzhRCaK0fvIugS_4RYghbBS+DHo1wvdexKBD3Fmoro9w6n6bvDsQxAl9jGPeVtX1XdwgeYAIQU+_oDz8wu_FyZoM8JPtCIzydFUapfUU5yFwn2eExgP07yLkwyAJcy+C8mhmuOq66nwHqUkQHD2RmC91iJ3tC73ZsbuRn4rYNY3wG_3iNBD2N9I+7pce_eTvvfziBITt5eThF+0RAl_1i9BA2C348E2_9M496O0XJ4NhLzl1voNqNQnixLqtQ+xsXxA5dgmh4k3EeT1EvHqiqFt6CU7+KCBRL8J3DYjjF6y0ysNT0EFPw8tA3FO+k8nzes+CvwrQPfB9UH0VNTNnnnXdjyBaUfR9WmTGvC8V0Te+DuYJ1tlPLyrQTMJPBeouxCEa01xEvo+GyOwI4vQIEc8ritIqD19BF3WzLvWNVF+gZq5OI1+NcTzF8f3BRNC9yIuojquu1xRPguAMPYmeqpkquxcPQrVtg9TDtueIcyKQjY2IyPF7cEVQJlSetYlzeFC8EOGHO3kFRb2ECNeBRicl5pHHyfjsL0EFEi7f6x7kSZ5y6nr9OnMj+oCPQZ7kDpQNNQgm3gDwekTj5pHujLBeJe5xEcupley4MOWSsBM4G0S9hxNJG2rM5JQ1jGOeRH7pE8aXNeOQeEXwUJ4sRtdFoH9Ng2pcJO764EIwC4SRhUQaDnaokV3NS8RVGW+DuER5rV+zsBoXibszuAfIN2FkNpEuBhvWyK7mJeL2B2HzJ2omRHXbsxclQwOftGSgL4E8CfLUr1Sf8gCazqBBM9G+FOxs4ewQIHJpILwG6A6WAPXB3weaqXqMfF_gGErIdyUi_gGoSxen3Exmp6JL0JpEa5nooXvdF+wPNJBW5V8ddAULgHw1FYwCD5DvFI6hhLzlq0eA8s+LaBLjB9jp23UMQxBtcXgG7J4Xyx09h3E8DgcErUt0MIsbrqfzakC2fwYWgrnktZhjXUJep5FAYxQRJU4RMX6BTtfWmyk6actKT7AqWBl8Cj4hL01g1CXk1ZkEt4Jj6kqYfuTRqLA3Nsv2xgQnDAHLQN7kvMYsbyw1ztofqEuWlChvtQipCeWfl5RxCearujwkNqeRWXcwPkGFk8p6CRkfH5sj6siIcjXBMSMpw6ryVRnRB5p12NQ+KuUeD+TjvInqsrrPgeI7QHFT0wypj6rpzLxJFxS+FmecA+Lu4nj6grI01am1iNADac_MggNUxn1OmcGxY4ghX4JzyErdO_k4b_J7p07HpzcO6QHGgbyKpn_Xis8jHXMi_6+Bc8GnoNmiGSSVnehkCvmvBeTLvIrqcCOLtR1vvHuFjAeDPI5F3Js5kpN+rj1xHsl3S3CnW1CKR+mwZZy2uXmRbz8gH+ZVVHcHu_aEOQbOYlVnQuaa1XkWNLKfqDrLNM41I3UvUPdgAk1t3bNc1Urjk435rSncQWCD6rAUz2dQtvYX3Yx97zaiB_ZplmoboNm4w4FmvvIqL6L4nvgk9MxVXQSRV3CYZk0eBE3r06vcBGQRed4PNH+v3Zzvhy0DH2j9YCewLzgKNGOsQTF1i6Zt7wLaMvQyNmo9J5Rgo9ZJdgEHgENBN5Bn0bT4wfjg8XqMiEIQ9XFVseS4oshbGCL8HUwCWiSbD_Sk0TqB+qxqKXqDHcFWYHOQlwHqUnSVfRPBK2AyeAdo8kXrPOoZyMZeQN2znYHsE4oiehAeCkG0QBha6iaIcubpoi7Wk2AN_S6gLHdsco_yUyRfZdg3sq3aPqlaNBtd93_EiVbN1cWqS0JN87bP0SnopvbXC_TbJYT8IxSx4simavuKaKNbJW+KQg4ljuwUWpF1SD8KqNthYh7IqgfUnewHQeZEUVBPkEjiFDiUxNrMZ2IeyKIHVDeHRiWHDIpMECWm4Hs43K1zE_NABj1wt1NHI6sWuYvllkhXq4XzEUBHE_NAVjwwDUUGQhAdI0tDLYhKdRS4kFNNF5qYB7LgAdXFCxslhwxpmCCON_6X483OuR3MA2l7QHVRdbJhabiL5WrgzGr9ld_almBiHkjLAxMoeC9aj0izVu2VjqsFUVdLCp0J5rUvxH6bB5rkAdW9M+Mih3SOjSDKDMW0kfEi8IV+m5gHmugB1bmLnDoYW7GxEsTRSt9iGhabhpaReSCcB1TnVPdildjGINVaMR7pye8HQN_q63ZuHkjIA_qKzSG0HnPjzj8RgkhJSLIVB21o3FS_TcwDCXlgOvlqI6J2KscuSXSxWpV0FB7Cj9DvIMRunWVYdA+obg1JihxyXmIEUeYo_gSHwUAvq5iYB+L0gOrUYKeOxZlvm7wSJYhKwoDhHC4GNrMlh5jE4QHVpYuduhVHfp55JE4Qp+RLOV7uqYUFmAfq84DqkupU4pLYIL295gzau3BNH0o4oX2Y_TYP1OGBW4ir_1Wi14gTl2a1IOpqyaDTgQw0MQ9E8YDqzunNIocUbFoL4nqDlmQ1zm8Fh7nX7GgeCOGB+4ijj5F_EiJubFGa1oK4GjsGDuK3tSSuU+wY5AHVlUHNJoeUanoL4nqClmQVzq8GNiZxnWLHWh5wu1V1_+uJWpnVe63pLYirIE8DGXwa0GyE+_kZN9iO5gHVCdUNDchTIYduQWotiAqX0JKIpL8C54OuwMQ8oI8t_BboX2unun6WOkHcugBRjuJcuzH1WU+T8nrA3T6iT6amLpkhiDwBSfbjIJLYBkc5pHwyHZO1t0pblDIhmSKIPAJJtAv4BtBPv01K44FRWHoK5EhkV25UL6Y2SPdS2HGQviZ+m1ccu144D+he68PSmSKHvJw5gkgpHKUXX04EZwD1SU2K6QHdW93jE517njkrM9fFau8hulx7cu1KsG37MPudaw+8hvZnQQx9xyCzkskWpNpbjgNFEm10XFYdZue59IDuoe6l_tNTpskh72a+BZGSrtCaHMP5BaCXe82OufLAFLT9DcQYlhetc0UQORWSaApYJPkJ0BZ6k+x7QDu5_wREjunZV_crDXNHEFd1iHIE5yKKpoVNsusBzUyJGPpPALmT3BJEnoYk63DQ1xxPAkX9d3CYlkvRvz27CVwFOebk0gKUzjVBXKdDlD6cnwP0H3g7u9ftmIoHPqdU_SfZ30GMMaloEGOhhSCI_AFJ9N93vw_OBbuBwtiGLXkQ7b4dCy4Df4Ycdf032awaWLhKBFH0nsmxYBDYMauOL5her2DPbeB2iJHa1vQkfFo4grhOgigakxwEfg62c6_bMVYPjCe3a8BDEENjjsJJYQni3imI0p3zo8GRYA_3uh0b8sALpNb_pvwjxFjQUE4ZT1x4grj+hyjdON8dnAwGAJv1wgl1iFqIkeBGMBpiLOJYeCkNQarvJGRRS3IY2Af0rg6z8w4emMyVp8F9kEItR6mklARx7zBEWZdzTRFrQL8TWA+YrLDCLJzwMtDAewzEmF1Wp5SaINU3HbJszW+towwA6orp+11lEn1vajQYCR6HFG9wLL0YQdpVAYiyEpdaQH+gV4C3B2pZuoAiyVKMUUsxDugV1+fANIih3bYmjgeMIAFVAcKIHAOBWhW9k7IlWBvkUT5A6UlA72KotRgBIUQSEw8PGEE8HFPrMmTRTFhP0AtotV6D_c1BD7A6UOuTBVEroLf15oO3gAbXWuWeAuZCikUcTUJ4wAgSwkl+USCNxipbVKGF8w2ANlJqEmAtkKR8SOYaRGtD4AwwDfzTBWTQ2MIkogeMIBEd55cM0mi7i1qbVYEItBnQeyzqrlVDLU9XoPGNjkon0XaNJUDjBB3VEqgrVI3p_J4KRICFYBFkUDqTGD3w_83pefZQ5uDcAAAAAElFTkSuQmCC",
    "BTTTriggerConfig" : {
      "BTTTouchBarAppleScriptString" : "#!\/usr\/bin\/python\n# -*- coding: utf-8 -*-\nimport urllib2,json,sys\n\ncoin_ticker = \"ONE\" if \"ONE\"[0] != \"{\" else \"BTC\"\nfiat_ticker = \"USD\" if \"USD\"[0] != \"{\" else \"USD\"\nfiat_symbol = \"$\" if \"$\"[0] != \"{\" else  \"$\"\nnum_format = \"{:0,.3f}\" if \"{:0,.3f}\"[2:8] != \"format\" else  \"{}\"\nmod_percent = float(\"0\") if \"0\"[0] != \"{\" else float(0)\noutput_type = \"no\" if \"no\"[0] != \"{\" else  \"mktcap\"\napi_type = \"live\" if \"live\"[0] != \"{\" else  \"live\"\nextraOptions = \"False\" if \"False\"[0] != \"{\" else  \"&limit=1&aggregate=1&toTs=1514376000\"\noffline_cache = \"true\" if \"true\"[0] != \"{\" else \"false\"\npercentageRound = int(\"0\") if \"0\"[0] != \"{\" else int(0)\nliteralRound = int(\"0\") if \"0\"[0] != \"{\" else int(0)\n\ntry:\n    if (api_type == \"live\"):\n\n        url = \"https:\/\/min-api.cryptocompare.com\/data\/pricemultifull?fsyms={}&tsyms={}\".format(coin_ticker, fiat_ticker)\n\n        data = urllib2.urlopen(url)\n        obj=json.load(data)\n\n        raw_current = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"PRICE\"])\n        raw_opening = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"OPEN24HOUR\"])\n        raw_high = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"HIGHDAY\"])\n        raw_low = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"LOWDAY\"])\n        raw_mktcap = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"MKTCAP\"])\n        current = num_format.format(raw_current)\n        opening = num_format.format(raw_opening)\n        high = num_format.format(raw_high)\n        low = num_format.format(raw_low)\n\n        if (raw_mktcap > 1000000):\n            mktcap = str(\"{:,.\"+str(literalRound)+\"f}\").format(raw_mktcap \/ 1000000) + \" M\"\n        else:\n            mktcap = str(\"{:,.\"+str(literalRound)+\"f}\").format(raw_mktcap)\n\n        if (raw_current > raw_opening):\n            trend = \"▲\"\n        else:\n            trend = \"▼\"\n\n        if (output_type is \"no\"):\n            output = fiat_symbol + current\n        elif (output_type is \"simple\"):\n            output = fiat_symbol + current + \" \" + trend\n        elif (output_type is \"mktcap\"):\n            output = fiat_symbol + current + \" (\" + fiat_symbol + mktcap + \")\"\n        elif (output_type is \"absolute\"):\n            output = fiat_symbol + current + \" (L: \" + fiat_symbol + low + \" H: \" + fiat_symbol + high + \")\"\n        elif (output_type is \"relative\"):\n            output = fiat_symbol + current + \" (L: -\" + fiat_symbol + str(round(raw_current - raw_low, literalRound)) + \" H: +\" + fiat_symbol + str(round(raw_high - raw_current,literalRound)) + \")\"\n        elif (output_type is \"current-percentage\"):\n            output = fiat_symbol + current + \" (\" + str(round(((raw_current - raw_opening) \/ raw_current) * 100, percentageRound)) + \"%)\"\n        elif (output_type is \"range-percentage\"):\n            output = fiat_symbol + current + \" (L: -\" + str(round (((raw_current - raw_low) \/ raw_current) * 100, percentageRound)) + \"% H: +\" + str(round (((raw_high - raw_current) \/ raw_current) * 100, percentageRound)) + \"%)\"\n        elif (output_type is \"user-percentage\"):\n            output = fiat_symbol + current + \" (L: \" + fiat_symbol + str(round(raw_current - (raw_current * mod_percent), literalRound)) + \" H: \" + fiat_symbol + str(round(raw_current + (raw_current * mod_percent), literalRound)) + \")\"\n\n        if (offline_cache is \"true\"):\n            tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"w\")\n            tmp_file.write(output)\n            tmp_file.close()\n\n        print(output)\n\n    elif (api_type == \"historical\"):\n        url = \"https:\/\/min-api.cryptocompare.com\/data\/histohour?fsym={}&tsym={}\" + extraOptions\n        url = url.format(coin_ticker, fiat_ticker)\n\n        data = urllib2.urlopen(url)\n        obj=json.load(data)\n\n        raw_high = float(obj[\"Data\"][1][\"high\"])\n        high = num_format.format(raw_high)\n\n        output = fiat_symbol + high\n\n        if (offline_cache is \"true\"):\n            tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"w\")\n            tmp_file.write(output)\n            tmp_file.close() \n\n        print(output)\nexcept urllib2.URLError, e:\n    try:\n        tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"r\")\n        print 'CACHED ' + tmp_file.read() \n    except IOError, e:\n        print('Unable to get data from API & no cache available')\nexcept ValueError, e:\n    print('There was an error formatting the output: %s' % e)\n# Please submit any issues https:\/\/github.com\/chrislennon\/Crypto-Touchbar-App\/issues with the above script",
      "BTTTouchBarFreeSpaceAfterButton" : "5.000000",
      "BTTTouchBarButtonColor" : "0.000000, 174.000000, 233.000000, 255.000000",
      "BTTTouchBarItemPlacement" : 0,
      "BTTTouchBarAppleScriptStringRunOnInit" : false,
      "BTTTouchBarAlwaysShowButton" : false,
      "BTTTouchBarFontColorAlternate" : "255.000000, 255.000000, 255.000000, 255.000000",
      "BTTTouchBarButtonWidth" : 100,
      "BTTTouchBarScriptUpdateInterval" : 60,
      "BTTTouchBarItemIconHeight" : 22,
      "BTTTouchBarItemSFSymbolDefaultIcon" : "",
      "BTTTouchBarButtonTextAlignment" : 0,
      "BTTTouchBarAlternateBackgroundColor" : "0.000000, 174.000000, 233.000000, 255.000000",
      "BTTTouchBarAppleScriptUsePath" : 0,
      "BTTTBWidgetWidth" : 400,
      "BTTTouchBarItemIconType" : 1,
      "BTTTouchBarColorRegex" : "CACHED",
      "BTTTouchBarItemIconWidth" : 22,
      "BTTTouchBarButtonName" : "ONE",
      "BTTTouchBarShellScriptString" : "#!\/usr\/bin\/python\n# -*- coding: utf-8 -*-\nimport urllib2,json,sys\n\ncoin_ticker = \"ONE\" if \"ONE\"[0] != \"{\" else \"BTC\"\nfiat_ticker = \"USD\" if \"USD\"[0] != \"{\" else \"USD\"\nfiat_symbol = \"$\" if \"$\"[0] != \"{\" else  \"$\"\nnum_format = \"{:0,.3f}\" if \"{:0,.3f}\"[2:8] != \"format\" else  \"{}\"\nmod_percent = float(\"0\") if \"0\"[0] != \"{\" else float(0)\noutput_type = \"no\" if \"no\"[0] != \"{\" else  \"mktcap\"\napi_type = \"live\" if \"live\"[0] != \"{\" else  \"live\"\nextraOptions = \"False\" if \"False\"[0] != \"{\" else  \"&limit=1&aggregate=1&toTs=1514376000\"\noffline_cache = \"true\" if \"true\"[0] != \"{\" else \"false\"\npercentageRound = int(\"0\") if \"0\"[0] != \"{\" else int(0)\nliteralRound = int(\"0\") if \"0\"[0] != \"{\" else int(0)\n\ntry:\n    if (api_type == \"live\"):\n\n        url = \"https:\/\/min-api.cryptocompare.com\/data\/pricemultifull?fsyms={}&tsyms={}\".format(coin_ticker, fiat_ticker)\n\n        data = urllib2.urlopen(url)\n        obj=json.load(data)\n\n        raw_current = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"PRICE\"])\n        raw_opening = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"OPEN24HOUR\"])\n        raw_high = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"HIGHDAY\"])\n        raw_low = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"LOWDAY\"])\n        raw_mktcap = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"MKTCAP\"])\n        current = num_format.format(raw_current)\n        opening = num_format.format(raw_opening)\n        high = num_format.format(raw_high)\n        low = num_format.format(raw_low)\n\n        if (raw_mktcap > 1000000):\n            mktcap = str(\"{:,.\"+str(literalRound)+\"f}\").format(raw_mktcap \/ 1000000) + \" M\"\n        else:\n            mktcap = str(\"{:,.\"+str(literalRound)+\"f}\").format(raw_mktcap)\n\n        if (raw_current > raw_opening):\n            trend = \"▲\"\n        else:\n            trend = \"▼\"\n\n        if (output_type is \"no\"):\n            output = fiat_symbol + current\n        elif (output_type is \"simple\"):\n            output = fiat_symbol + current + \" \" + trend\n        elif (output_type is \"mktcap\"):\n            output = fiat_symbol + current + \" (\" + fiat_symbol + mktcap + \")\"\n        elif (output_type is \"absolute\"):\n            output = fiat_symbol + current + \" (L: \" + fiat_symbol + low + \" H: \" + fiat_symbol + high + \")\"\n        elif (output_type is \"relative\"):\n            output = fiat_symbol + current + \" (L: -\" + fiat_symbol + str(round(raw_current - raw_low, literalRound)) + \" H: +\" + fiat_symbol + str(round(raw_high - raw_current,literalRound)) + \")\"\n        elif (output_type is \"current-percentage\"):\n            output = fiat_symbol + current + \" (\" + str(round(((raw_current - raw_opening) \/ raw_current) * 100, percentageRound)) + \"%)\"\n        elif (output_type is \"range-percentage\"):\n            output = fiat_symbol + current + \" (L: -\" + str(round (((raw_current - raw_low) \/ raw_current) * 100, percentageRound)) + \"% H: +\" + str(round (((raw_high - raw_current) \/ raw_current) * 100, percentageRound)) + \"%)\"\n        elif (output_type is \"user-percentage\"):\n            output = fiat_symbol + current + \" (L: \" + fiat_symbol + str(round(raw_current - (raw_current * mod_percent), literalRound)) + \" H: \" + fiat_symbol + str(round(raw_current + (raw_current * mod_percent), literalRound)) + \")\"\n\n        if (offline_cache is \"true\"):\n            tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"w\")\n            tmp_file.write(output)\n            tmp_file.close()\n\n        print(output)\n\n    elif (api_type == \"historical\"):\n        url = \"https:\/\/min-api.cryptocompare.com\/data\/histohour?fsym={}&tsym={}\" + extraOptions\n        url = url.format(coin_ticker, fiat_ticker)\n\n        data = urllib2.urlopen(url)\n        obj=json.load(data)\n\n        raw_high = float(obj[\"Data\"][1][\"high\"])\n        high = num_format.format(raw_high)\n\n        output = fiat_symbol + high\n\n        if (offline_cache is \"true\"):\n            tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"w\")\n            tmp_file.write(output)\n            tmp_file.close() \n\n        print(output)\nexcept urllib2.URLError, e:\n    try:\n        tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"r\")\n        print 'CACHED ' + tmp_file.read() \n    except IOError, e:\n        print('Unable to get data from API & no cache available')\nexcept ValueError, e:\n    print('There was an error formatting the output: %s' % e)\n# Please submit any issues https:\/\/github.com\/chrislennon\/Crypto-Touchbar-App\/issues with the above script",
      "BTTTouchBarButtonFontSize" : 15,
      "BTTTouchBarFontColor" : "255.000000, 255.000000, 255.000000, 255.000000",
      "BTTTouchBarIconTextOffset" : 5,
      "BTTTouchBarOnlyShowIcon" : false,
      "BTTTouchBarItemPadding" : 0
    }
  },
  {
    "BTTWidgetName" : "XYA",
    "BTTTriggerType" : 642,
    "BTTTriggerTypeDescription" : "Shell Script \/ Task Widget",
    "BTTTriggerClass" : "BTTTriggerTypeTouchBar",
    "BTTPredefinedActionType" : -1,
    "BTTPredefinedActionName" : "No Action",
    "BTTShellScriptWidgetGestureConfig" : "\/usr\/bin\/python:::-c:::-:::",
    "BTTEnabled2" : 1,
    "BTTRepeatDelay" : 0,
    "BTTUUID" : "69AA773B-1104-4D4E-8E0B-7E01EFAB0982",
    "BTTNotesInsteadOfDescription" : 0,
    "BTTEnabled" : 1,
    "BTTModifierMode" : 0,
    "BTTOrder" : 3,
    "BTTDisplayOrder" : 0,
    "BTTMergeIntoTouchBarGroups" : 0,
    "BTTIconData" : "iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAK22lDQ1BJQ0MgUHJvZmlsZQAASImVlwdUk9kSgO__pzcIJERASqihCNIJICX0AEKkg6iEJJBQYkwIKnZlcQXXgooIqCu6KKLg6lLEhliwLYIN+4IsCspzsYAFlfcDj7C777z3zpucyXxn_rkzc+_5b84EAEoYXybLhKkAZEmz5ZFBvsz4hEQmrheQgQ6idsCML1DIODxeGEBk0v5Vhu8BaMzethnL9e_P_6toCkUKAQBQEsIpQoUgC+FmRF8LZPJsAFDHEL_J4mzZGN9BmC5HGkS4b4zTJvjLGKeMM5o6HhMd6YewKQB4Mp8vTwOAbIf4mTmCNCQPmYewnVQokSK8GmEvgZgvRBipC2ZkZS0c4wGELZB4GQAUOsLslD_lTPtL_hRVfj4_TcUT+xoXvL9EIcvkL_0_j+Z_S1amcrKGOaJksTw4ErEM5PzuZywMVbE0JTxikiXC8fhxFiuDYyZZoPBLnGQh3z9UtTYzPGySUyWBXFWebG70JIsUAVGTLF8YqaqVKvfjTDJfPlVXmRGj8otFXFX+XHF03CTnSGLDJ1mRERU6FeOn8suVkar+RdIg36m6gaq9Zyn+tF8JV7U2WxwdrNo7f6p_kZQzlVMRr+pNKPIPmIqJUcXLsn1VtWSZPFW8KDNI5VfkRKnWZiMv59RanuoM0_khvEkG_iAAhCEfJuABB+AE7IEbQLrNFi3JHtuM30LZUrkkTZzN5CA3TsTkSgW2M5gOdg72AIzd34lX4t398XsJMfBTPmEvAI5jd8xiypeO3JlTwwBo1E35WN0AUHcD0MwTKOU5Ez702BcGEIE6oCO_DgbABFgAG6Q_F+ABfJCOQ0AEiAYJYD4QADHIAnKwGCwHa0A+KARbwA5QCvaC_eAQOAqOgwZwGpwHl8F10A7ugkegC_SCV2AQDIMRCIJwEAWiQTqQIWQGWUMOEBvyggKgMCgSSoCSoTRICimh5dA6qBAqgkqhfVAV9DN0EjoPXYU6oAdQN9QPvYU+wyiYDNNhfdgcngmzYQ4cCkfD8+A0eBGcC+fBm+ASuAI+AtfD5+Hr8F24C34FD6EAioRioIxQNig2yg8VgUpEpaLkqJWoAlQxqgJVg2pCtaJuo7pQA6hPaCyahmaibdAe6GB0DFqAXoReid6ILkUfQtejL6Jvo7vRg+hvGApGD2ONccdwMfGYNMxiTD6mGFOJqcNcwtzF9GKGsVgsA8vCumKDsQnYdOwy7Ebsbmwtthnbge3BDuFwOB2cNc4TF4Hj47Jx+bhduCO4c7hbuF7cRzwJb4h3wAfiE_FS_Fp8Mf4w_iz+Fv4FfoRAJZgR3AkRBCFhKWEz4QChiXCT0EsYIWoQWURPYjQxnbiGWEKsIV4iPia+I5FIxiQ30hyShLSaVEI6RrpC6iZ9ImuSrch+5CSykryJfJDcTH5AfkehUMwpPpRESjZlE6WKcoHylPJRjaZmq8ZVE6qtUitTq1e7pfZanaBups5Rn6+eq16sfkL9pvoAlUA1p_pR+dSV1DLqSWondUiDpmGvEaGRpbFR47DGVY0+TZymuWaAplAzT3O_5gXNHhqKZkLzowlo62gHaJdovXQsnUXn0tPphfSj9Db6oJamlpNWrNYSrTKtM1pdDBTDnMFlZDI2M44z7jE+T9OfxpkmmrZhWs20W9M+aE_X9tEWaRdo12rf1f6sw9QJ0MnQ2arToPNEF61rpTtHd7HuHt1LugPT6dM9pgumF0w_Pv2hHqxnpRept0xvv94NvSF9A_0gfZn+Lv0L+gMGDAMfg3SD7QZnDfoNaYZehhLD7YbnDF8ytZgcZiazhHmROWikZxRspDTaZ9RmNGLMMo4xXmtca_zEhGjCNkk12W7SYjJoamg623S5abXpQzOCGdtMbLbTrNXsgznLPM58vXmDeR9Lm8Vl5bKqWY8tKBbeFossKizuWGIt2ZYZlrst261gK2crsVWZ1U1r2NrFWmK927pjBmaG2wzpjIoZnTZkG45Njk21TbctwzbMdq1tg+3rmaYzE2dundk685uds12m3QG7R_aa9iH2a+2b7N86WDkIHMoc7jhSHAMdVzk2Or5xsnYSOe1xuu9Mc57tvN65xfmri6uL3KXGpd_V1DXZtdy1k01n89gb2VfcMG6+bqvcTrt9cndxz3Y_7v6Hh41Hhsdhj75ZrFmiWQdm9Xgae_I993l2eTG9kr1+9OryNvLme1d4P_Mx8RH6VPq84Fhy0jlHOK997XzlvnW+H_zc_Vb4Nfuj_IP8C_zbAjQDYgJKA54GGgemBVYHDgY5By0Lag7GBIcGbw3u5OpzBdwq7mCIa8iKkIuh5NCo0NLQZ2FWYfKwptnw7JDZ22Y_DjcLl4Y3RIAIbsS2iCc8Fm8R79Qc7BzenLI5zyPtI5dHtkbRohZEHY4ajvaN3hz9KMYiRhnTEqsemxRbFfshzj+uKK4rfmb8ivjrCboJkoTGRFxibGJl4tDcgLk75vYmOSflJ92bx5q3ZN7V+brzM+efWaC+gL_gRDImOS75cPIXfgS_gj+Uwk0pTxkU+Al2Cl4JfYTbhf0iT1GR6EWqZ2pRal+aZ9q2tH6xt7hYPCDxk5RK3qQHp+9N_5ARkXEwYzQzLrM2C5+VnHVSqinNkF5caLBwycIOmbUsX9a1yH3RjkWD8lB5pQJSzFM0ZtORQemG0kL5nbI7xyunLOfj4tjFJ5ZoLJEuubHUaumGpS9yA3N_WoZeJljWstxo+Zrl3Ss4K_athFamrGxZZbIqb1Xv6qDVh9YQ12Ss+XWt3dqite_Xxa1rytPPW53X813Qd9X5avny_M71Huv3fo_+XvJ92wbHDbs2fCsQFlwrtCssLvyyUbDx2g_2P5T8MLopdVPbZpfNe7Zgt0i33NvqvfVQkUZRblHPttnb6rcztxdsf79jwY6rxU7Fe3cSdyp3dpWElTTuMt21ZdeXUnHp3TLfstpyvfIN5R92C3ff2uOzp2av_t7CvZ9_lPx4f1_QvvoK84ri_dj9OfufH4g90PoT+6eqSt3KwsqvB6UHuw5FHrpY5VpVdVjv8OZquFpZ3X8k6Uj7Uf+jjTU2NftqGbWFx8Ax5bGXPyf_fO946PGWE+wTNb+Y_VJeR6srqIfql9YPNogbuhoTGjtOhpxsafJoqjtle+rgaaPTZWe0zmw+Szybd3b0XO65oWZZ88D5tPM9LQtaHl2Iv3Dn4pyLbZdCL125HHj5Qiun9dwVzyunr7pfPXmNfa3husv1+hvON+p+df61rs2lrf6m683Gdrf2po5ZHWdved86f9v_9uU73DvX74bf7bgXc+9+Z1Jn133h_b4HmQ_ePMx5OPJo9WPM44In1CfFT_WeVvxm+Vttl0vXmW7_7hvPop496hH0vPpd8fuX3rznlOfFLwxfVPU59J3uD+xvfzn3Ze8r2auRgfx_aPyj_LXF61_+8PnjxmD8YO8b+ZvRtxvf6bw7+N7pfcsQb+jpcNbwyIeCjzofD31if2r9HPf5xcjiL7gvJV8tvzZ9C_32eDRrdFTGl_PHRwEUonBqKgBvDyLzcQIAtHYAiHMn5utxgSb+E4wT+E88MYOPiwsASCoQi2ikDwDliLIQVV8NAA+x0T4AdnRU6b9EkeroMJGL1ICMJsWjo++Q+RFnCcDXztHRkYbR0a+VSLMPkTlmeGKuHxPqEQDaHzrEhPs+fBedB_4mEzP_n_b4dwtUHfzF_hN00RrKoWz5TAAAAGxlWElmTU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAACQAAAAAQAAAJAAAAABAAKgAgAEAAAAAQAAAMigAwAEAAAAAQAAAMgAAAAA8XHUkwAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAHPVJREFUeAHtnQm4FOWVhkVUUBQ0ihp9RhDJuGTUUTGuINdlEPdR3DVEiKIS18QlOopLXMBEJIqKKKJGQDCu4IoBUcBxXII+alBkMRlExQ0lgKjM+7VVPX3v7b5dXVvXcs7zfLeqq_7lnPOf7_5L_dXdajWT0D2watWqtSm0nYP2HLcEW4BNHfyY4yagA2hbAuWTLAPLS_Al5x+BD8EiBx9wnAeWgKVCq1atlM8kRA+0CrGsXBYFGdbD8K3Bts5RZNgMbOxgI45RymIK_9jBQo4izWzwjo6Q5iuOJj49YASpwXGQQb1CR9AF7AH2Bl2BeoL1wZogCbISJb4A6nnmgBfBTDAXfAJp1OOYePCAEaSKkyCFhkUNYC+wA1BPEXWvQBWRiHob9SxvgOlgCmTRkM2kggeMIE0cAyHUC3QG+4CDwU5AJGkDsiQrMEbkeB1MAs+D+RBGvY+J4wEjiOMIiLEdp4eCnkC9heYWeRLNVdSrTAWPQ5S3OeZeck0QSLEJEbAn6Ae6AfUUJj_0LK_giFFgBmTRClouJZcEgRjqIY4BvYBWoEwqe0ArYk+D8RBFPUyuJDcEgRRagRIxTgc9wQbAxLsHPifpVHA7mA5ZcrESlnmCQAw9qDsZHAe0LGsS3ANaNh4L_gRR9KAys5JZgkAM9RBHgHPAjpltwfoaNovqh4FHIIp6mMxJ5ggCMdamlU4BmnjvkrkWS6ZBr6KWJvR3Q5RMbXfJDEEgxho0UG9wMdBT7szYhi1pkFUoORNcD56EKN+mQelqOmYiiCCHlmovBIeA1tWMtvuReuA7Sp8IhkCSGZHWFEPhqSYIxNCGwPPAAKA5h0lyPKA5yQgwFKJoM2UqJbUEgRzH4vHLgZ6AmyTXA3oifxUkeSC5KlbWLHUEgRidMEfEOBG0qWya3UmQB1agy_1ARFmQIL2qqpIqgkCOvlgkcnSpapklSKIH5qKUSHJPEpUrp1MqCAIxtL1cxNBTcO22NUmvB1aiup7Giyjafp9oSTxBIMd+ePBGoHcxTLLjAb2Tcj4keS7JJq2eVOUgRmugp+APAiNHUhvKv15q0wfVxmpr_8VEmzORPQgO02uteuCkp+Em2ffAKEy8mN7kk6SZmjiCQA4t294GeiTNWaZPpB6YRulnQBItCydGEjXEghx6xfUJYORITIjEpoja_AknBmKrtFpFielBcMwJKDsc6NtBTPLrAX0by0B6kjFJcEHdexCIsTr4L5xxFzByJCEq6quDYuAuxYRio76q1HnHKw7Qk_BBQDtwE9Ob1btRrP6CB7Q7WAs1V9Kb6El8XaRuQQk59N6GXrY5tS6WW6Vp8cBIFD0HktTlPZO6dGGQY12MNnKkJUTrq6f+gQ5zYiZ2TWLvQTBU3zel+cbRsVtrFabZAxNQvj89SazfNRxrD+IMq_6AoUaONIdqfXRXzPzBiaHYNIitB8EwTchvBjbniK15M1mR5iRnxTVxj6UHgRx6X1yrVUaOTMZsrEYphgY5MRV5xbEQBCt+Cy6K3BqrIC8eUCwppiKXyIdYMP14rLgHrBm5NVZBnjyg90r6MtQaG6XRkRIEcmhv1Z+APSGPshXzW7a2pZwESSZF5YLICAI5tCtXGw87RaW8lWsewAMLwEGQJJJdwJHMQSBHR5TWa5VGDpxgEqkHFGO3OzEXekWhEwRF9XbYYNA9dG2tQPNAeQ8o1gY7sVc+hc+roRMEPQaCvj71sWzmAb8eUMwp9kKVUOcgMFhfsDAe_ChULa0w84A3D3xGsmOYjzznLXn1VKERBHJsTHWTwfbVq7UU5oHIPPAmJe8PST4Oo4ZQhliQQ0S7DBg5wmgVKyOIBxSDlzkxGaScQt5QCEJJPwenBdbGCjAPhOMBxaJiMrAEHmLB1M5oMQXoaGIeSIoH5qNIA0MtHX1LGD3IIGrv7FsDy2geiMYDnSlWsRlIAhGE3uNYaj8ukAaW2TwQnQeOc2LUdw2+h1hUrFWraWBr37VbRvNA9B6YTRU9_K5qBelB9MtORo7oG9hqCOYBxahi1Zf46kHoPXanNm1E3MBXrfnO9H1A89VmvtotYL1pzq6fg9OGxpdqNaJmR0MOvR2ob1w_vNbKLP1q+uqaXYEazK8MIOPlfjPnON+j2N4HktT067sK9lrlQDIcVGsmS1_wwCr+_i+NpPcYfAn_oIKQy1edGcmkmFXs6hd4PUtNcxAaZx1KvhTY24GeXdwsYdDfwqipzZrVnt8LitlLnRj27IVanf0LSu7muXRLaB5IlgcUu7+oRSXPBIF5HShY3yjhZ1hWi06W1jwQlQcUu6c6seypDs8EobQjwb97KtUSmQeS6wHFsGLZk3giCIxrT2nneirREpkHku+Bc52YrqqpJ4JQysngp1VLS3eC+ah_Hfgw3WYE0l7fe_sQyPpKmWJZMV1VqhIEpmnlSt9tFXT1paoydU5wK8uvl6BDT3AvWAryInp4+TToBdTWemaQZVEsH+_Edot2ViUIufcCu7VYSvpvvowJI2QGJHkX9OX0UPCMrmVc9HvlIsVh2D0TfMP5teBjkGVRTCu2W5QWCQLDdP9MkOWVq0JAEBhLSj3F5yl8Phxo5W526b2MnC_EDj2Rb8DW8UB+KAjn73EyDOjBZlZFMX2mE+MVbWyRIOTSnquGirmzcUPfyvdUOVMIlOXgTu7tC64AWRibiwh3AL23fTXQFx2UE_WokXwZW7nK6nRNsa0YryjVCKL3PfT8I6uiSek1BMmKlgzk_kJwJWl6gnGg+N+W8zSJesWDwenY805LinP_U+4PaSlNBu4pthXjFaUiQeh6NiKX9q5kWW7BuNe8GkjQvAE0Xj8CTPOaLwHp1BOcArSjdTLwOnTSP4OyvWsCbApLhQOdWC9bXkWCkLo7+NeyubJx8X3MuL2GYClaTZ4n+aD_xGeDucUbyTvRRPt60IDOo8HyWlQkvXpKLX0vqyVfytIqxhXrZaUlgvQrmyM7F4cSAB_4NYe8XwP9YtZ+4Abwtd+yIsinZdt7wX+g429BkBWpFylHPUmWpWKsr17Oarqc7bj+s3L3MnJNjT46DFsIvvngQsrShO8xsDKMcgOUMYO8h4F+6DUrQDmFrJQhsqkXWhy0rATn_5kT881ULEsQUukZgOYgWZR_YtTvaPhQHwRS3iuUqz0+ekKrJdS4ZR4VDgAHossk8F1YClDWu5T1+7DKS2A5inXFfDNpRhCYtBap9N+w2b1mudN5YSJqPxOF6k5QPkzZC6Iov0KZWnoeCvTFBHcArcxFIXdT6FtRFJyAMhXrDU7sN1KnHAk6kWKPRqmy80Fr_lcSRF5XcfxY3oZMrfxk9JjHLVs2TACaZ5wP_uExv69klK95zBBfmdORSTGv2G8k5QiyDynaN0qVjQ8aS99IQ2vJM80iYug_+THgBOzR0C4uGU9FWsHLoijmezQ1rBxBtHyZRdGcY2YGDNMQrgFiPAhq+gKCoLZTn5aJtbMg1nqD6l1D_max34ggjME2pbCdaigwTUnXRdlx2DjIsTNNuhd1JUjngU+KF2I6wWftwZlUdwPI6s7unZvGRiOCYLiGVyJJFkVj947gCvAsjugH9CK_SRUP4CctG2toNRx0Ae48iNNMiWJfHChKU4LoiaImmVmXf8PAkeAxGr_ZuDPrxnu1D9_sAO4j_YNgT6_5UpxOsd_oqXqRIDhiHW7umGLjalVdth8InsT2O4G2HJjgAXyxCbiO0+fASSBPPe2O2C4uFKRIED5p+LHND5dz9VfO6A+exzG_BvJDLgXb24G+GP8CuBhk9WFxS+0rDhRjoJQgW+XUIa6zNP78PXiGINHrmFkdZ7v2Njpi7wFceByMBj8BeRX9UxAXClJKkDyMMV27Wzrqa2HuAw8TNLu3lDAL97BxG6D5mMjRkAWbQrChyIVSguwVQsFZKaI1hhwOniJ4hoN_yYphrh3YtAEYxOfJ4JcgD4szrvnVjkUuFAiCo9YjR9dquXJ4vwM2a+3_RXx0NtDnVAs2rAWOw4ip4AqwOTBp7IGu+EicKG5I3Jrz1De+Y6Nen_3cOQ_rsAUF6UsMnsZxR4JUzk_QW0uYj4CxYAcQpqwKs7A6lyUuiBNFgmzL+fq6kAG5Cxs0d7gXLA_Znt0o7wEwhmBLzY4DdN0K_BG99bCvNwhbnqdA9Uozwi64TuWJC+JEkSBiSxbWuv+OHUPYiuF+t5WeAP8FhClrUJiCYTJBdwP4cZiFh1kWuq0LLpCu4CzQLszyKWsOGAAOxufjOV4DvgNpF3Hhhx4EB2q4sGXaLUL_78ENNNQC1xbOn+X8EPAr8J57PaTjjyjnN+AFfNgfFMasIZUdqBh0WQPon8MUMAR0BmHKYgq7EXTHx3oHZalTuN6zGeOcp_2wJT5spUl6W7BZ2q1B_9fBPU3toPGWgeFc3x8MBmG_UKQ18zvBRBzai6PG4iJrXQQddqHiCeAh0C1kJWSXhpi98OmvwaLS8vn8LZ_1LCn2zZSleoR0Lk60FUHU7W4cUqH1Kkbdur7fakklBbj3AbiY+w3gUaDGDFN6UJjKFVlifwINMbYA+gegXuMIoKXqMOVlCusDTsSPr1UqmHtvcG9Upfspui5OtGuFUztx8irYMEXKN1VV41+9PORp_IvNCh4NvS4D+o8bl_yTirZAz0_DqhBb1qasfuAcEMUT8H9Qroh3P3p7Wh1Ep01JL6KmeeuS2mgX9SDtgcbTaZUvUHywV3LISKUF+m+_L7gIfABSJwSihnRPgVtA2ORQb6xyNc+4BXgiB+nlXw29rgNh99IqPi4RJ9qLIF1Aq7hqjaCe0TRIxS6_pfrItwRoEqv5ya1gWUvpk3APUqjX1zb0+9HnMaChXZiiOdQjQPOMs8B8n4U_SL7pPvMmIZs4saUIskUStPGpw3zy3eAzbzEbQfAeGMiFg4BWvpIsGhpq+HICWCtkRWdR3kngaPzxUpCyya_h5NVAD27TKp1EEI0X0yrX0hALw1KesqZS1qHg5+AtkETRuD7sIfFHlKkFDH3j+xgQ1tBIRB4N0iqbppkg+g83LmzPExwrwH2U2xNcCxQ8SRJPCxEeFdbzi7vB3tisedxij_k8JaO870k4FCzylCF5iVJLEAWJftsi7GcaxSZSsIBLuXAAEGHCDMxiPXU8KTxExUZ9RemcqPSg7NmUfVtU5UdcbmoJMgbHxDJXoIHfpK6+4HAwA6Rd3sGA_kDbQ6bGZIxWw96Iqa4wqykQpEOYJcZQlp7SXk_jroyhrkIV1LUKTOJDb3A6WFC4ka4_WtcfBPbDllEx++8z6r0cfAPSJB00B2mbJo3RdS1wAMucG8WtN0GlZeER1NsdDAN6BpN0UVCqx21A96vAh3ErTFspxrSwkPhl9Ca+KWw1SRtB1OPdBPS2Xx_QuolRkX8kyP4OzqWiXuBhoMloEmUaSunXa7U9REPF2IX20T8TPa+5C6RttJJKgriNrC0i48B4GmFX92KcR4JO+5OOBieCv8ZZd5W6NOn+FdBPITxdJW0kt2kTvZWnh6_PAC10pPFhdKoJooZV73EkUG8yDGyui3EKAahtKyKqguAiUM9lYa3qDQZ6njEcxD6koQ30FaV6pjIZnAHSNkJB5aK01ZeEfQuyInMxZCBYr2hizCfUvT14H5STpVzcMIhK5D+_TMEruaZvYdk5SNlB8lJ3a6DXkf8HZEW+1SR9eRDHJCzvluijJUX1KIeBenTr71P_ohj98gp1HQX60GP42pMWVFf8vBtl_BlMAN2Clpeg_MtFkNi74RgcsCd1qMHupfF2jKG+0io07JNfoxKX9POp4ALQADEeA99FVWGlcvGt3rrTXjgNpw4HUdpdSY0ory_T+9VZ6kFKnSXbTgK9aEStoNxEENVzflCqW5BzbQLUUrNeL1ZvFbvgz3Wo9JfgbLBV7ArEV+FyBdGK+OqrS00dqVWTRi0J_46jfnhmaV00CVgp+qv30Pb+uvT6Tv290eFSoF4661IYYqXhYVcYDdGVQkaDSTT0_k5jh1FubGVADD3Rrxc5tsfQB8BDIA_kULt+qTFjFoYdMsar7EPCJ8BISLKd10x5TYePNgfqeacBPfNpkyNffCSCxLnikhTfroki_YF+aWoQ0DYIkxIP4JM24DQuaQKuIdX6JbfzcrpIBIl9b06CvLsZulwBphIMJwDt88q94Id9ccJEoMWAbXLskA9FkLwNscq1t8bX94NHCY4e5RLk4Rq266cQRmOryLF_HmyuYmOhB1lQJVGebh+IsXrIeDP4SV4Mx1b95JpW+l4Aevdl7bzYXsXOD9SDzAOrqiTM020Fhzb66bt3LwTrZdV4bFsT6FnRs+A6sFFWbfVhlzgxTwRZAvRCi0ljD2zBx8FgCkF0BFij8e10f8KevbBAS7b3Ag0xTRp7QJxYIoLooZnNQxo7p_STttVrj9FDBNWupTfSeI4N2h6iybeWug8B7taVNJoTpc7ixFKXIB9HWVMGylbvcSj4C8GlnzzonDab0Fk_uXYeemueoeXb9mmzIWZ9xYkCQbQXa2HMlae1unVR_DdA85OzQbukG4KO2oauB3yaZ9wINk+6zgnRT5xYvrq2L3CiibqJdw9og57eSX+S4DsIJHKYgl7d0HEceABoqGji3QPzxA0NsSSzwcrCmf2pxQPdSax30scSjO62+rr7EV20PWQoej0D+oBEEhi9kipqw79JOZcg73Cel02LsjtM0dP3Y4Gexg_i2AnE_m4GdertUL3uOoDTF8G5YANgUrsHxIUCQQr_WXCq1vpfA11rL8tyNPGA3tHQvqVyr9bqXY5Qfx9EddN++kfXG1wC9gQmwTwwh+w7M8T6qrC2rxOcrItGkGCOVW7NT2IT2m0HKrsAHA9ax1ZxtiuaI07IRHeIpfPp+mOSDg9ADG0P0dPvZ4Gehhs5wmu6IhcKPYhT7ozwyreSovIApNBw+ChwIdg2qnpyXm6RC6UE0dh5MbD9OMmOjmNQ785kq5hq7cQBcaEgpUOsT7hSmLk79+yQTA_YP7Bo20UcEBcKUiQIkxKtsMxyrtshuR6oyxJyct0RumazHC4UCi4SxKnmBY4rQq_SCjQPpMMDin1xoChNCfI8d_L4jnrRIXaSaw8o9sWBojQiCF2LErxevGsn5oF8eeA1hwNFqxsRxLk6qXjXTpLoAdtXFV2rNIv9cgRRF6O3DE2S6QHtvjYJ3wOK+WlNiy1HkAUkmtk0oX02D2TcA4p5xX4jaUYQxmDfkGIKSOrPijUywD6YB0LwgGJ9ihP7jYprRhDn7uMc9UTRxDyQBw8o1hXzzaQsQWDS26R8uVlqu5AED9gkPfxWeNmJ+WYllyWIk2pUs9R2IQkesEl6+K1QMdZbIoieKL4bvi5WonkgUR5QjDd6el6qXUWC0OVoXPZUaWI7Nw9k0ANPObFe1rSKBHFS69swviyb0y6aB9LvAcW2YryiVCPIS+TUkq+JeSCLHlBsK8YrSosEoevR+vCt4NuKJdgN80A6PaCYvtWJ8YoWtEgQJ5fez_3viiXYDfNAOj2gmC6+e17JhKoEgWF6kWossF6kkhfteto8oFge68R2i7pXJYiT+z6OenhoUn8P2IPC4G2gWFZMVxVPBIFp2ul4U9XSLEEcHrAHhcG9fJMT01VL8kQQp5SHOP61aomWwDyQbA8ohhXLnsQzQWCc1oxHApuLeHKtJUqgBxS7I51Y9qSeZ4I4pY3m+Iqnki1RVB6wOYh_zyp2R9eSvSaCwDytaF0D6v4V_7UYmbC0Qb+2R8+mTGr3gGL2GieGPecu_WZFr5m0P+sJcLjXDJau6AH999dvd6xTvFL7SYfas1gOPKCYrXlvoa_umgbe3alwA3N9zR4I2gOozXy1W82aZifD55hyEL1Hi9tKyplb0xDLLcCpaIT72Y41eUA+DwIjR03uLiQe4Yccyunb2fQiG5N_GthaBZmYBxLqgdno1QOC+PolZ189iBzhVDiI0+X6bGIeSKAHFJuD_JJD9vgmiDJTsfbSj9O5iXkggR4Y58Sob9V8D7HcGhlqdeZc++p1NDEPJMUD81GkAYLo6FsC9SCq1VHgCk71fVom5oEkeECxeEVQcsiQwARxvHEvxzucczuYB+rtAcWiYjKwBB5iuRo4q1qT+by9e82O5oE6eOBN6tyf3sPXqlVTfcPqQdxVrfOo4LOmldhn80BMHlDsnRcWOaRzaARRYSj2HIcrQdCnxSrOxDxQiwcUc1c6MVhLvhbThkoQp6bhHO9psVa7aR4I3wOKOcVeqBLaHKRUK+YjHfn8Z9C99Lqdmwci8oC+GfEoeo_ir9OGVU8kBJFykGQ7DtpB2UmfTcwDEXlgAeVqI+LbUZQfxRCroKej8EA+fBGF4lamecCJrYFRkUMejowgKhzF9ZtvZwJ7wUoOMQnTA4qpM50YC7PcRmVFShDVhAH6Tq2rga1sySEmYXhAsXS1E1thlFexjMgJ4tR8HcfBFbWwG+aB2jygWFJMRS6RTdKbas6kvQ3XbganNr1nn80DNXhgJGnPovdYUUMe30nj6kE01JJB5wAZaGIe8OMBxc45cZFDCsbWg7jeoCdZj_O7wNHuNTuaBzx4YAJp+kOOrzykDS1JbD2Iq7FjYD8+W0_iOsWO1TygWOkXNzmkVOw9iOsJepK1OR8GbE7iOsWO5TzgDquWlbsZ9bXYexDXIP4byOCzgFYj7AuZXcfY0fWAYkKxoQl5XcghRerWg6hyCT2JSHoJuBS0BSbmAX3Zgr7B81rIUdfnZ3UniBsLEOUEzrUbc333mh1z6QFtTdL2kTFJsD4xBJEzIMnBHEQS2+Aoh+RPFmCyyKEtSomQRBFEHoEk2gV8G+ihzya58cA0LD0DckSyK9evF+s2Sa+ksOOgPtwfVSmNXc+cB9TWfZJGDnk5cQSRUjhKL76cBs4Ftl0eJ2RU1LZq49OcNk+cmYkbYjX1EEOu_bh2I9ih6T37nGoPvIH250MMfY9BYiWRPUiptxwHiiTa6Liy9J6dp9IDakO15X5JJ4e8m_geREq6Qm_Sl_PLQRf3mh1T5YG5aHsVxLgnLVqniiByKiTRErBIciLQFnqT5HtAO7nvByLHguSr+_8apo4gruoQ5VjORRQtC5sk1wNathUx9EsAqZPUEkSehiQbc9C3OQ4A9nNwOCFBop89GwGGQo6PE6RXTaqkmiCupRBlT84vBIeA1u51O9bFA99R60QwBGLMqIsGIVaaCYLIH5BEv9jbG1wM9gCZsQ1b0iDafTsTXA+ehBzfpkHpajpmLoggit4zOQX0A7tUc4DdD8UDr1LKKHA3xKjb1vRQLGlSSOYI4toHUTQn+U9wNtjRvW7HUD0wi9L+CB6GGJpzZE4ySxC3pSBKe85PBseBvd3rdgzkgRfJrd+mvA9iLAlUUsIzZ54grv8hSjvO9wKng57AVr1wQg2iHmIquB1MhxhLOWZeckOQ0paELOpJjga9wNal9+y8mQdmc+VpMAFSqOfIleSSIG4LQ5RNONcSsSb03cCmwGS11RbhhFeAJt4zIMZHeXVKrglS2uiQ5ad81nOUnkBDMX1_V55E3zc1HUwFEyHFWxxzL0aQJiEAUdbkUmewD9ArwDsB9SxtQJZkBcaop3gd6BXX58F8iKHdtiaOB4wgVUIBwogcDUC9it5J2RZsBNIoi1H6HaB3MdRbTIEQIolJBQ8YQSo4ptxlyKKVsI6gC9DTek32u4IOYH2g3icJol5Ab+t9CeYATa71lHsu+ARSLOVo4sEDRhAPTmopCaTRXGWbEnTmfDOgjZRaBNgQRCmfUrgm0doQuBDMB39zARk0tzDx6QEjiE_HtZQN0mi7i3qbdYEItCXQeywarpVCPU9boPmNjson0XaN5UDzBB3VE2goVIoFfJ4HRICvwVLIoHwmIXrg_wAmMerpbxrnbAAAAABJRU5ErkJggg==",
    "BTTTriggerConfig" : {
      "BTTTouchBarAppleScriptString" : "#!\/usr\/bin\/python\n# -*- coding: utf-8 -*-\nimport urllib2,json,sys\n\ncoin_ticker = \"ONE\" if \"ONE\"[0] != \"{\" else \"BTC\"\nfiat_ticker = \"USD\" if \"USD\"[0] != \"{\" else \"USD\"\nfiat_symbol = \"$\" if \"$\"[0] != \"{\" else  \"$\"\nnum_format = \"{:0,.3f}\" if \"{:0,.3f}\"[2:8] != \"format\" else  \"{}\"\nmod_percent = float(\"0\") if \"0\"[0] != \"{\" else float(0)\noutput_type = \"no\" if \"no\"[0] != \"{\" else  \"mktcap\"\napi_type = \"live\" if \"live\"[0] != \"{\" else  \"live\"\nextraOptions = \"False\" if \"False\"[0] != \"{\" else  \"&limit=1&aggregate=1&toTs=1514376000\"\noffline_cache = \"true\" if \"true\"[0] != \"{\" else \"false\"\npercentageRound = int(\"0\") if \"0\"[0] != \"{\" else int(0)\nliteralRound = int(\"0\") if \"0\"[0] != \"{\" else int(0)\n\ntry:\n    if (api_type == \"live\"):\n\n        url = \"https:\/\/min-api.cryptocompare.com\/data\/pricemultifull?fsyms={}&tsyms={}\".format(coin_ticker, fiat_ticker)\n\n        data = urllib2.urlopen(url)\n        obj=json.load(data)\n\n        raw_current = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"PRICE\"])\n        raw_opening = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"OPEN24HOUR\"])\n        raw_high = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"HIGHDAY\"])\n        raw_low = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"LOWDAY\"])\n        raw_mktcap = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"MKTCAP\"])\n        current = num_format.format(raw_current)\n        opening = num_format.format(raw_opening)\n        high = num_format.format(raw_high)\n        low = num_format.format(raw_low)\n\n        if (raw_mktcap > 1000000):\n            mktcap = str(\"{:,.\"+str(literalRound)+\"f}\").format(raw_mktcap \/ 1000000) + \" M\"\n        else:\n            mktcap = str(\"{:,.\"+str(literalRound)+\"f}\").format(raw_mktcap)\n\n        if (raw_current > raw_opening):\n            trend = \"▲\"\n        else:\n            trend = \"▼\"\n\n        if (output_type is \"no\"):\n            output = fiat_symbol + current\n        elif (output_type is \"simple\"):\n            output = fiat_symbol + current + \" \" + trend\n        elif (output_type is \"mktcap\"):\n            output = fiat_symbol + current + \" (\" + fiat_symbol + mktcap + \")\"\n        elif (output_type is \"absolute\"):\n            output = fiat_symbol + current + \" (L: \" + fiat_symbol + low + \" H: \" + fiat_symbol + high + \")\"\n        elif (output_type is \"relative\"):\n            output = fiat_symbol + current + \" (L: -\" + fiat_symbol + str(round(raw_current - raw_low, literalRound)) + \" H: +\" + fiat_symbol + str(round(raw_high - raw_current,literalRound)) + \")\"\n        elif (output_type is \"current-percentage\"):\n            output = fiat_symbol + current + \" (\" + str(round(((raw_current - raw_opening) \/ raw_current) * 100, percentageRound)) + \"%)\"\n        elif (output_type is \"range-percentage\"):\n            output = fiat_symbol + current + \" (L: -\" + str(round (((raw_current - raw_low) \/ raw_current) * 100, percentageRound)) + \"% H: +\" + str(round (((raw_high - raw_current) \/ raw_current) * 100, percentageRound)) + \"%)\"\n        elif (output_type is \"user-percentage\"):\n            output = fiat_symbol + current + \" (L: \" + fiat_symbol + str(round(raw_current - (raw_current * mod_percent), literalRound)) + \" H: \" + fiat_symbol + str(round(raw_current + (raw_current * mod_percent), literalRound)) + \")\"\n\n        if (offline_cache is \"true\"):\n            tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"w\")\n            tmp_file.write(output)\n            tmp_file.close()\n\n        print(output)\n\n    elif (api_type == \"historical\"):\n        url = \"https:\/\/min-api.cryptocompare.com\/data\/histohour?fsym={}&tsym={}\" + extraOptions\n        url = url.format(coin_ticker, fiat_ticker)\n\n        data = urllib2.urlopen(url)\n        obj=json.load(data)\n\n        raw_high = float(obj[\"Data\"][1][\"high\"])\n        high = num_format.format(raw_high)\n\n        output = fiat_symbol + high\n\n        if (offline_cache is \"true\"):\n            tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"w\")\n            tmp_file.write(output)\n            tmp_file.close() \n\n        print(output)\nexcept urllib2.URLError, e:\n    try:\n        tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"r\")\n        print 'CACHED ' + tmp_file.read() \n    except IOError, e:\n        print('Unable to get data from API & no cache available')\nexcept ValueError, e:\n    print('There was an error formatting the output: %s' % e)\n# Please submit any issues https:\/\/github.com\/chrislennon\/Crypto-Touchbar-App\/issues with the above script",
      "BTTTouchBarFreeSpaceAfterButton" : "5.000000",
      "BTTTouchBarButtonColor" : "127.000000, 202.000000, 73.000000, 255.000000",
      "BTTTouchBarItemPlacement" : 0,
      "BTTTouchBarAppleScriptStringRunOnInit" : false,
      "BTTTouchBarAlwaysShowButton" : false,
      "BTTTouchBarFontColorAlternate" : "255.000000, 255.000000, 255.000000, 255.000000",
      "BTTTouchBarButtonWidth" : 100,
      "BTTTouchBarScriptUpdateInterval" : 60,
      "BTTTouchBarItemIconHeight" : 22,
      "BTTTouchBarButtonTextAlignment" : 0,
      "BTTTouchBarAlternateBackgroundColor" : "127.000000, 202.000000, 73.000000, 255.000000",
      "BTTTouchBarAppleScriptUsePath" : 0,
      "BTTTBWidgetWidth" : 400,
      "BTTTouchBarColorRegex" : "CACHED",
      "BTTTouchBarItemIconWidth" : 22,
      "BTTTouchBarButtonName" : "XYA",
      "BTTTouchBarShellScriptString" : "#!\/usr\/bin\/python\n# -*- coding: utf-8 -*-\nimport urllib2,json,sys\n\ncoin_ticker = \"BTC\" if \"BTC\"[0] != \"{\" else \"BTC\"\nfiat_ticker = \"USD\" if \"USD\"[0] != \"{\" else \"USD\"\nfiat_symbol = \"$\" if \"$\"[0] != \"{\" else  \"$\"\nnum_format = \"{:0,.3f}\" if \"{:0,.3f}\"[2:8] != \"format\" else  \"{}\"\nmod_percent = float(\"0\") if \"0\"[0] != \"{\" else float(0)\noutput_type = \"no\" if \"no\"[0] != \"{\" else  \"mktcap\"\napi_type = \"live\" if \"live\"[0] != \"{\" else  \"live\"\nextraOptions = \"False\" if \"False\"[0] != \"{\" else  \"&limit=1&aggregate=1&toTs=1514376000\"\noffline_cache = \"true\" if \"true\"[0] != \"{\" else \"false\"\npercentageRound = int(\"0\") if \"0\"[0] != \"{\" else int(0)\nliteralRound = int(\"0\") if \"0\"[0] != \"{\" else int(0)\n\ntry:\n    if (api_type == \"live\"):\n        url = \"https:\/\/api.coingecko.com\/api\/v3\/simple\/token_price\/harmony-shard-0?contract_addresses=0x9b68BF4bF89c115c721105eaf6BD5164aFcc51E4&vs_currencies=usd&include_market_cap=true&include_24hr_vol=true&include_24hr_change=true&include_last_updated_at=true\"\n\n        data = urllib2.urlopen(url)\n        obj=json.load(data)\n\n        raw_current = float(obj[\"0x9b68bf4bf89c115c721105eaf6bd5164afcc51e4\"]['usd'])\n\n        current = num_format.format(raw_current)\n\n        output = fiat_symbol + current\n       \n        if (offline_cache == \"true\"):\n            tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"w\")\n            tmp_file.write(output)\n            tmp_file.close()\n\n        print(output)\nexcept urllib2.URLError, e:\n    try:\n        tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"r\")\n        print 'CACHED ' + tmp_file.read() \n    except IOError, e:\n        print('Unable to get data from API & no cache available')\nexcept ValueError, e:\n    print('There was an error formatting the output')",
      "BTTTouchBarButtonFontSize" : 15,
      "BTTTouchBarFontColor" : "255.000000, 255.000000, 255.000000, 255.000000",
      "BTTTouchBarIconTextOffset" : 5,
      "BTTTouchBarOnlyShowIcon" : false,
      "BTTTouchBarItemPadding" : 0
    }
  },
  {
    "BTTWidgetName" : "JEWEL",
    "BTTTriggerType" : 642,
    "BTTTriggerTypeDescription" : "Shell Script \/ Task Widget",
    "BTTTriggerClass" : "BTTTriggerTypeTouchBar",
    "BTTPredefinedActionType" : -1,
    "BTTPredefinedActionName" : "No Action",
    "BTTShellScriptWidgetGestureConfig" : "\/usr\/bin\/python:::-c:::-:::",
    "BTTEnabled2" : 1,
    "BTTRepeatDelay" : 0,
    "BTTUUID" : "577098C4-C5C4-4B5D-829C-D4D66E030654",
    "BTTNotesInsteadOfDescription" : 0,
    "BTTEnabled" : 1,
    "BTTModifierMode" : 0,
    "BTTOrder" : 4,
    "BTTDisplayOrder" : 0,
    "BTTMergeIntoTouchBarGroups" : 0,
    "BTTIconData" : "iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAK22lDQ1BJQ0MgUHJvZmlsZQAASImVlwdUk9kSgO__pzcIJERASqihCNIJICX0AEKkg6iEJJBQYkwIKnZlcQXXgooIqCu6KKLg6lLEhliwLYIN+4IsCspzsYAFlfcDj7C777z3zpucyXxn_rkzc+_5b84EAEoYXybLhKkAZEmz5ZFBvsz4hEQmrheQgQ6idsCML1DIODxeGEBk0v5Vhu8BaMzethnL9e_P_6toCkUKAQBQEsIpQoUgC+FmRF8LZPJsAFDHEL_J4mzZGN9BmC5HGkS4b4zTJvjLGKeMM5o6HhMd6YewKQB4Mp8vTwOAbIf4mTmCNCQPmYewnVQokSK8GmEvgZgvRBipC2ZkZS0c4wGELZB4GQAUOsLslD_lTPtL_hRVfj4_TcUT+xoXvL9EIcvkL_0_j+Z_S1amcrKGOaJksTw4ErEM5PzuZywMVbE0JTxikiXC8fhxFiuDYyZZoPBLnGQh3z9UtTYzPGySUyWBXFWebG70JIsUAVGTLF8YqaqVKvfjTDJfPlVXmRGj8otFXFX+XHF03CTnSGLDJ1mRERU6FeOn8suVkar+RdIg36m6gaq9Zyn+tF8JV7U2WxwdrNo7f6p_kZQzlVMRr+pNKPIPmIqJUcXLsn1VtWSZPFW8KDNI5VfkRKnWZiMv59RanuoM0_khvEkG_iAAhCEfJuABB+AE7IEbQLrNFi3JHtuM30LZUrkkTZzN5CA3TsTkSgW2M5gOdg72AIzd34lX4t398XsJMfBTPmEvAI5jd8xiypeO3JlTwwBo1E35WN0AUHcD0MwTKOU5Ez702BcGEIE6oCO_DgbABFgAG6Q_F+ABfJCOQ0AEiAYJYD4QADHIAnKwGCwHa0A+KARbwA5QCvaC_eAQOAqOgwZwGpwHl8F10A7ugkegC_SCV2AQDIMRCIJwEAWiQTqQIWQGWUMOEBvyggKgMCgSSoCSoTRICimh5dA6qBAqgkqhfVAV9DN0EjoPXYU6oAdQN9QPvYU+wyiYDNNhfdgcngmzYQ4cCkfD8+A0eBGcC+fBm+ASuAI+AtfD5+Hr8F24C34FD6EAioRioIxQNig2yg8VgUpEpaLkqJWoAlQxqgJVg2pCtaJuo7pQA6hPaCyahmaibdAe6GB0DFqAXoReid6ILkUfQtejL6Jvo7vRg+hvGApGD2ONccdwMfGYNMxiTD6mGFOJqcNcwtzF9GKGsVgsA8vCumKDsQnYdOwy7Ebsbmwtthnbge3BDuFwOB2cNc4TF4Hj47Jx+bhduCO4c7hbuF7cRzwJb4h3wAfiE_FS_Fp8Mf4w_iz+Fv4FfoRAJZgR3AkRBCFhKWEz4QChiXCT0EsYIWoQWURPYjQxnbiGWEKsIV4iPia+I5FIxiQ30hyShLSaVEI6RrpC6iZ9ImuSrch+5CSykryJfJDcTH5AfkehUMwpPpRESjZlE6WKcoHylPJRjaZmq8ZVE6qtUitTq1e7pfZanaBups5Rn6+eq16sfkL9pvoAlUA1p_pR+dSV1DLqSWondUiDpmGvEaGRpbFR47DGVY0+TZymuWaAplAzT3O_5gXNHhqKZkLzowlo62gHaJdovXQsnUXn0tPphfSj9Db6oJamlpNWrNYSrTKtM1pdDBTDnMFlZDI2M44z7jE+T9OfxpkmmrZhWs20W9M+aE_X9tEWaRdo12rf1f6sw9QJ0MnQ2arToPNEF61rpTtHd7HuHt1LugPT6dM9pgumF0w_Pv2hHqxnpRept0xvv94NvSF9A_0gfZn+Lv0L+gMGDAMfg3SD7QZnDfoNaYZehhLD7YbnDF8ytZgcZiazhHmROWikZxRspDTaZ9RmNGLMMo4xXmtca_zEhGjCNkk12W7SYjJoamg623S5abXpQzOCGdtMbLbTrNXsgznLPM58vXmDeR9Lm8Vl5bKqWY8tKBbeFossKizuWGIt2ZYZlrst261gK2crsVWZ1U1r2NrFWmK927pjBmaG2wzpjIoZnTZkG45Njk21TbctwzbMdq1tg+3rmaYzE2dundk685uds12m3QG7R_aa9iH2a+2b7N86WDkIHMoc7jhSHAMdVzk2Or5xsnYSOe1xuu9Mc57tvN65xfmri6uL3KXGpd_V1DXZtdy1k01n89gb2VfcMG6+bqvcTrt9cndxz3Y_7v6Hh41Hhsdhj75ZrFmiWQdm9Xgae_I993l2eTG9kr1+9OryNvLme1d4P_Mx8RH6VPq84Fhy0jlHOK997XzlvnW+H_zc_Vb4Nfuj_IP8C_zbAjQDYgJKA54GGgemBVYHDgY5By0Lag7GBIcGbw3u5OpzBdwq7mCIa8iKkIuh5NCo0NLQZ2FWYfKwptnw7JDZ22Y_DjcLl4Y3RIAIbsS2iCc8Fm8R79Qc7BzenLI5zyPtI5dHtkbRohZEHY4ajvaN3hz9KMYiRhnTEqsemxRbFfshzj+uKK4rfmb8ivjrCboJkoTGRFxibGJl4tDcgLk75vYmOSflJ92bx5q3ZN7V+brzM+efWaC+gL_gRDImOS75cPIXfgS_gj+Uwk0pTxkU+Al2Cl4JfYTbhf0iT1GR6EWqZ2pRal+aZ9q2tH6xt7hYPCDxk5RK3qQHp+9N_5ARkXEwYzQzLrM2C5+VnHVSqinNkF5caLBwycIOmbUsX9a1yH3RjkWD8lB5pQJSzFM0ZtORQemG0kL5nbI7xyunLOfj4tjFJ5ZoLJEuubHUaumGpS9yA3N_WoZeJljWstxo+Zrl3Ss4K_athFamrGxZZbIqb1Xv6qDVh9YQ12Ss+XWt3dqite_Xxa1rytPPW53X813Qd9X5avny_M71Huv3fo_+XvJ92wbHDbs2fCsQFlwrtCssLvyyUbDx2g_2P5T8MLopdVPbZpfNe7Zgt0i33NvqvfVQkUZRblHPttnb6rcztxdsf79jwY6rxU7Fe3cSdyp3dpWElTTuMt21ZdeXUnHp3TLfstpyvfIN5R92C3ff2uOzp2av_t7CvZ9_lPx4f1_QvvoK84ri_dj9OfufH4g90PoT+6eqSt3KwsqvB6UHuw5FHrpY5VpVdVjv8OZquFpZ3X8k6Uj7Uf+jjTU2NftqGbWFx8Ax5bGXPyf_fO946PGWE+wTNb+Y_VJeR6srqIfql9YPNogbuhoTGjtOhpxsafJoqjtle+rgaaPTZWe0zmw+Szybd3b0XO65oWZZ88D5tPM9LQtaHl2Iv3Dn4pyLbZdCL125HHj5Qiun9dwVzyunr7pfPXmNfa3husv1+hvON+p+df61rs2lrf6m683Gdrf2po5ZHWdved86f9v_9uU73DvX74bf7bgXc+9+Z1Jn133h_b4HmQ_ePMx5OPJo9WPM44In1CfFT_WeVvxm+Vttl0vXmW7_7hvPop496hH0vPpd8fuX3rznlOfFLwxfVPU59J3uD+xvfzn3Ze8r2auRgfx_aPyj_LXF61_+8PnjxmD8YO8b+ZvRtxvf6bw7+N7pfcsQb+jpcNbwyIeCjzofD31if2r9HPf5xcjiL7gvJV8tvzZ9C_32eDRrdFTGl_PHRwEUonBqKgBvDyLzcQIAtHYAiHMn5utxgSb+E4wT+E88MYOPiwsASCoQi2ikDwDliLIQVV8NAA+x0T4AdnRU6b9EkeroMJGL1ICMJsWjo++Q+RFnCcDXztHRkYbR0a+VSLMPkTlmeGKuHxPqEQDaHzrEhPs+fBedB_4mEzP_n_b4dwtUHfzF_hN00RrKoWz5TAAAAGxlWElmTU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAACQAAAAAQAAAJAAAAABAAKgAgAEAAAAAQAAAMigAwAEAAAAAQAAAMgAAAAA8XHUkwAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAHDZJREFUeAHtnQm0FdWVhsUhQhBwQtCOgrYtalqNcUhQQVB7OXe3JIqJGganRNsYXB21uxNJdMUpK1HjHAfAGI1Do2nnOIADmE5rO8UBlxGenaA4ISiKA6G__3nqed97d6hbw61z6u691v+qbg3n7POf_d9dp+rUfX1WMcucgZUrV_aj0P4OA1luCjYBQx02ZDkEDAJ9K6DzZB+A5RVYwvoi8Cp4zeEVlvPBUrBM6NOnj84zy5CBPhmW1ZZFIYYBNHwE2MotJYaNwAYO67PM096k8NcdFrKUaOaB57VENO+yNEvIgAmkCeIQg7LCYLAZGAl2A5sDZYK1wRrAB_sYJ94ByjwvgUfAo+Bl8AaiUcYxi8GACaQBSYhCl0Vjwa5gW6BMkXdWoIpcTNlGmeVpMAfMQiy6ZDOrwYAJpAcxCEJZYDjYHewPtgcSyZqgTPYhjZE4ngB3gAfBAgSj7GPmGDCBOCIQxtasHgjGAGULjS3ayTRWUVaZDW5DKM+xbHtra4EgiiFEwC5gMtgRKFOYfZpZHoOIq8FcxKI7aG1pbSkQhKEMcQjYG+gOlFltBnRH7B5wI0JRhmkraxuBIArdgZIwvg3GgHWAWXwGFnPobHAZmINY2uJOWOkFgjD0oO4IcCjQbVmz9AzotvH14FqEogeVpbXSCgRhKEP8MzgRbFfaHiy2YU9R_QXgVoSiDFM6K51AEEY_emkS0MB7h9L1mJ8Nehy3NKCfhlBKNd2lNAJBGKvTQfuCU4GecpembbQlBFuJk4+Cs8FdCOWTEJxu5GMpgghx6FbtyeAAsFqjRtv+XBlYQem3g3MRydxca2pB4UELBGFoQuAUcCzQmMPMHwY0JrkcnIdQNJkySAtWIIhjPIyfBvQE3MxfBvRE_nREcoO_Ltb2LDiBIIxhNEfCOAysWbtptscjBj7El18DCaXDI78auhKUQBDHBFokcWzWsGV2gI8MvIxTEskMH52r5lMQAkEYml4uYegpuGbbmoXLwMe4rqfxEoqm33tt3gsEcewJgz8HehfDrDwM6J2UkxDJ_T43aVVfnUMYqwE9Bb8ZmDh87ajkfqlPb1Yfq6+TF5PvmV5mEAjTa6164KSn4WblZ+Bqmngq2eQN35rqnUAQh27bXgpG+0aW+ZMrAw9R+ncQiW4Le2NeXWIhDr3ieicwcXgTIi1zRH1+p4uBllXaqCJvMgjEfBNnLwb6dRCz9mVAv8ZyPJnkOh8oKDyDIIxVwQ8g4ypg4vAhKor1QTFwlWJCsVGsKwXPeIUAPQmfCjQD15tsVnSnWP2dDGh2sG7U_JhsoifxhVhhQYk49N6GXrY5upCWW6WhMHAFjp6ISAp5z6SQFIY41qLRJo5QQrRYP_UFeoGLmZZ70vIMQkP1e1Mabxzc8tZahSEzcBPOH0kmaelvDbc0g7jLqp_RUBNHyKFajO+KmZ+5GGqZBy3LIDRMA_ILgY05Wta9paxIY5ITWjVwb0kGQRx6X1x3q0wcpYzZljZKMTTVxVTuFbdEILTi38ApubfGKmgXBhRLiqncLfdLLJT+DVoxA6yRe2usgnZiQO+VTOBS6_o8G52rQBCH5lZdC+wJeZ692L5la1rK4YjkjrwoyE0giEOzcjXxcFhezlu5xgAMdID9EEkus4BzGYMgjsE4rdcqTRyQYJYrA4qxy1zMZV5R5gLBUb0ddg4Ylbm3VqAxUJ0Bxdo5LvaqH5Fwa+YCwY_jwYSE_oRw2kqcDBkhcJzER8WcYi9Ty3QMgoL1Aws3gnUz9dKPwm7Dje+DQibNZUiBJon+FByYYZm+FPU2jhzCeOT+rBzKTCCIYwOcug9sk5VzHpVzC74cBfHqgOCNvtIX2JXgoOAb07sBz7BpL_rq9d67mt+SySUWhEtoPwRlFIcyR2nEoRBxQj+KVbWtbKYY_KGLydRty0QgePEtcExqb_wrQJljYlkyRyW9rk0T2aY2ls0Ui4rJ1Jb6EgulDseLWUDLMpm+XUspjspOcpdb09lWtjHJAto0li8CLRNbFhlkKrUPT+yBnyeWNnP0pLvEmUQxqdhMZakEwrfPeGo_NJUH_p1cujFHI4qdSMo4JjnUxWgjCmruT3yJRcW6a_UQGFGz9PB2KHMcTcC8FZ7r6T2mT9ejFL1vUaa7W_Noz2j6NNFdrTQZZAoVl0kcUeZoS3HQl7q7pbaXLZMoRhWriSxRBuGb5qvUpomI6ySq1b+TlDlKdSs3DcX0b9mekyyGD01o_H2zvDSdQSBvdSrR71iVRRxR5ijFQ8BmA6Da8QSSuChTJlGsnupit1qTa25rOoNQif6T7ExQhhegUmcO+NDkTE3f8NYI+PeSOEfbypRJ9ILVOLjQf+CNbU0JBMI+T8ma56JLrNBNmSPVcw74GEAZ14CRYCXw1X6FY_r3An9t1kEnkumcd2Cz53p4vC6x9oSH93PxDbKOAx+D0G0mDUg1oZLz9Q9+9B5CCLYCJ7+XNCg4d10gzkI3xe5xzfAQO4NQ8CAKng2+1EwFHh6bOnOoTfBxIovzPWxfLZd0maWZrnfVOqDedtqrL5TpIPRM8iRtGAMPS1g2tGYG6eMoLXRxaMyR6rJKjBIs4uJMrQdk+rlXZbztkvhMQGngPhGIw5BNMaz+i2WxMgikDqS0h8G2sUr18yANzvQrGOroxAYX23Pyb8HGiQsp9kRdh_8jPLyRxA3ar0wyA+hmTaj2NI6PgoOljRoQN4McQUFfbFSYx_v1rZeFODaknF+CUMWhLtINlosI9DX1oVlzXzATOC_kTKJYVkw3tIYCgUjdudJvW+l2ZoiWyXMOeNCt3IvBjiGS0MPnQ_g8lTY17P8e53V+dCIJ+TmJYvkbLrarNbFrWxyCduXor3SdEdaKvuWyGHPoUvQMcFBYza_r7RT2KhMkMieSiZwcaiZRTCu261pdgbhvGN0W09Pz0CyTzOEareyhb90yWV8aM44+jjUOrdbwwDOJYlqPLepqoO5OCtD16thq5Hi+LZPMUdHGD1h_sOJzWVYfIMhTPeAMPJMotus+9G4kkPEUMCiwaMgyc3Q23QXRvYHx0Mjdjzig6cl71QoNOJMothXjNa2mQEg963PWPjXP9HOHMsck12FZe_gEBS7OutACy3uBul_Kqn7H+STKUx+EZPu4WK_qc02BcPQosEXVs_zcGGUOvdOQh82n0OfyKLigMp8hqBM9C6nlL+WJ+9DubinGFetVrZ5AJlc9w8+N+tZKfbeqXtPofE3VeLzeMQHt06TFXMZULpNMpPyQMknNWK8qEFLO1jRwZxCCKXPonzumekIes6H3c5ymTYduEvusvBrh+uJIylffhGA7u5jv5WtVgXCUJqRpDOK7RZljcYscfZh6WiHEvJvzLBW8nGcliER9MhGEkEkU64r5XtZLICjpcxyl21+99vU6u9gN0ZijZQHrOn1Osc3OpPbf0Zam3w1ptmaXSUIYkyjWx7rY79bMaiIYxhF6AchnizJHy8RRQcY9FeshrkoYj7TKcSeSidTneyZRzCv2u1k1gezOEQO7HeXXh9txp8gfWNBAXdfwoZourea10vmKTKK+89UU86N7OldNIPv3PMijzzPxJfWs3JTt0bODkG_3avyxMCUHTZ_uRDKBE9WHvlqv2O8mEK7BhuK53nfw0YrOHJ2c0NFLWHnKR4Ji+LSSY+bQhhUxjs38kAAyyZedBrra3k0gbNXllUTim+n6VZljcVrHIKAf+AJI86ssut1bSJClbP9yztf_cElkcLY6GAoGJSqAk1wfKpP4OCZR7EsDXaYZjZU2ig+JXqSpLCTj9czuVtGxW+Hb2UAkLOSzxhOCLjv+rG10oDJEI9NDNh2nt+tCMo0__hjHYbjpz3EbgQ2Bfp3wyw568vwM+_WFNZ_1po3z3uZ83d1S_FW9vdp0odmcoNiXBm6IiusTreCwXozSHZrdom0eLFfiw5YQ+mJaX2ifHlz9GPxNjbJeY3uHg4LoCYdF1P8J692M8u5kw77dNvr_4XzaMqWnm7RFgToY6H1t4e_BMIcvsKxmT7LxUMpLPOCnXontBdAVh9UqavG2R6hvb9r1vurtcgxnRchjYH3t8MQkkE1w9s9J_aFd6uCfgMNBz0vKesVqtqumuS8AUaZ5nvW_gP8DE8ClIBTTJaHeI1cAiBN9USijbg92AMNBP6DnYHFNIjmM_kl008L1zSuU0RWHcSvO8bg3KXtH2tShOrocw9k9+Hy_NnpkEshwnBWJTRttGsdJEseWTZ9c+wQJ5E9A3O3mliy8N02RkTh0GbEp0KVTFqbsrp8TeqrZwuifTThnAeiKw2bLyOl4_bjcAyp79YoKdqlYD3oV4pUFTwHfBc18I8Zpt755a12mxTm_qGPWoOKxOVSuy6Qb4VyZRFcgZTBpoVMglZccu5ahZXSUBlkaH_wryFocZaAojzZIJPrlxZF5FF5AmV1a6BQIDRuAE5sX4EimVdIO3Wi4BuyUacFWWBwGNuag0+McGMAxmztNdA1aR+B04nvbHjVYgtdA06wYBjS+KYNJC9JEl0B0N2NtbSiBaWBvVgwDZeFeWpAmugQitWgQZ2YMGAOfauHTDMK1lm6x6bafmTFgDHzGwKbShq7Z+4KNPttua8aAMQAD0kRfCURzbjYAZsaAMfAZA9JE_0ggQz7bbmvGgDEAA9JEp0D0JlVos1KtB42BvBmQJgYqg2wGfJsLk3fjrXxjoBEDnTevJBBNGDMzBoyB3gwMk0B8fIOwt6u2xRhoPQNDTSCtJ91qDIcBE0g4fWWeFsCACaQA0q3KcBjoFEgZZvGGQ7l5GhIDgzQG0VQTM2PAGOjNQOdUExNIb2JsizEgBkwgFgfGQB0GTCB1yLFdxkCnQIwGY8AYqMGABun6vVYzY8AY6M3Acgnkg97bbYsxYAzAwAeWQSwOjIHaDHRmELvEqk2Q7WlvBjoFop_xNzMGjIHeDCzRJdai3tttizFgDMDAIgnkNaPCGDAGqjLwmgTyatVdttEYMAZetUssCwJjoDYDnRmko_Z+22MMtDUDryiDzAdl+dHhtu5Na3ymDEgT8yWQpeDtTIu2woyB8BmQJpZKIMuA3eoNv0OtBdkyIE0siwTyerZlW2nGQPAMSBOdAtFUk4XBN8caYAxky4A0sXxV_jNp52Ak27KtNGMgeAbmSxu6xJLNAx93roX_x_5TVnF9uFpxVWdas7TwgkqMBPI86+9oQ+Cmy8V7A29DyO7_T8jOV_guLXQTiDJI8LN6SYmf0I5jwS3ArLUMPEl1Z7a2ytxqkxakiU8zCIH1LusvaUPoRlv0XGcyuDX0tgTkvzg_Ce7fCMjneq6+5DTRdYmlg+fUOyOkfTROKXIiuC0kvwP29Qw4nxWw_z1d79JCNAbRAXN7HhXyZzpMaXIiyEMkugX4LAjJNPD8I8j6W_4Oyrw0JCJi+NqlhUqB_IkT34xxcqsP+WvSChGJpgt8C9yVtAx33nssFVy_AF8De4LLQUim_5g0FewBxoOLwXNAbUtqr3CiLq00GyOJJe7bJJXFPEcakBY6bfVohaW+WTRy361imw+rn0_jBJ33Dv_vWiK5Buwbs6zoNp8C6FHwAHiBsrS90yjztGg9kKX6ehvaMJOlxH4jbdAt8S3BGDASbAX0Oc7P0eqO4cmU9yLLpJaqb5NW2uA8aaB6loWwi4Bv9l84tG6DRjXcTRnrgbtrNO5Dtr8KbgX_AkaCIbUKZd8A8BcQms3F4VXrtGsw+3cGR4PrQAd4H1SzS9hY+QVbq9iq2zl3XaC+9c0uquqwNuLpeLDcN4_xZybIQiRDKOd3rn0LWd4LzgX7gXVArH9mynH_AD4CodlSHB5eMwB67ODY_mA0OA0omF8EssfBej0Oj_2RcyUO9alvptjX5Wd1Y+dQsMA3r50_t7Fcp7rn8bdShkSyDxgBEn0Dct5ZIERbgdOT4rPV_UjO3QTsBTbvvif+J87VF5H60kdT7A+tbE23dMv1pH7A4YnKAzxaPwBfrqQBqTIJbVwE7gbzgB4sNmXUr+v2nZo6yZ+D1d+jkroDX6+A+0CiZ2au766kfvWlj_a_tE0a6LJuAnFbddvOVxuHYzPSiiRl4zblfA1mQ7Vt4W_tVjvv+mwG9aoPfbVesV9NIA_i_VJfW4BfmWSSFO3TXZ6NUpxf9Klb4MDfttKJADKH6FDMP9STl2oC6eAg3dr02Q7CuekFZZLdfSYmhm8DOOZLMY7L5BDXR9MpTH3msynmFfvdrJdAuAb7iCM0beCv3Y7078OBuJR6TNJMs+hsDer1kDB026MVDajIHOorn02xPsvFfjc_ewnE7dX0DD1R9N2iTJL67lbMhury6u9iHuvzYaMI3rXydJDy1SfTge+ZQzQo1qtOSaoqEJSkJ8h_0JkBmL6drnLfVnm7q2_efnlX0oLy9RA0tztxri+uog7fM0dE9R9czEefu5ZVBeL2Xt11lP8rUSZZN2dXNQ2nT851tKL4z1HJ2DwqcuKYTtkhZI6IgpqxXk8gD3N2mnk2UeWtWkZjksRPeOs5SsfrAdLW9Y4JbN9OtEnPdDIzyhP3es4RSuZQ2xXjivWqVlMgpBxdl91d9Sx_N+pbaxodlUcm0a1R3SIti0nsG2fVGMf5NMoLKXOo+XpoXHO8XVMgjrgbWC5x66EsokyStUi+AgGZfuMWTOgm1J_JDQcnjtAyh+hXbCvGa1ojgfyeM3XLNzTTt1hmz0kIAPG0T2gkxPA39TjEiWM6dYWWOUSPYlsxXtPqCoTUo_vDl4BPapbg744sM4kGtbrEKpttQYAnvukQcOZQPyqmL3ExXrNf6wrEnTWH5X_XLMHvHVllkg9p5ikgzdt3vjGlt+bOJEBWJnEs8MyhJiumFdt1raFAIPB9SrgehJhF1PjUmURBBG6mrClguQoN3Bbh_9G06bEk7Qg8c6jJiuXrXWzXpSBWeoWQgZSiW2Hb1i3N7523494ESNF76okNLk7g5AtALO4SV5TfiYsp+nB4uDNJFU4cMzj3gCTne3LO0_gxCg6WNvKnYQZRAa6g8xsV5vl+dWjquVtwcSHlnAESXZoUzNEy6j8hpTiupIyQxaEuOD+OOHRg7G9BvjkGcfxs0LKZoNSVh2nOzUQISpxJ4GI1yjgLfD8PB3MqcwXlfod2X5GkfJc5pnOuLllDtidxfgw8LInTiFgZRAW5AkVuqGORiI8sxiQKttPAtKhQz5e6G_mDlOJQ5ghdHIrdK+KKQ30aO4PoYL5F9DMt94Ov6nPglkUm6Q8HvwC7AF+_ODRF_1pwFoEhoTRlJcocareeeewJD7rxFMuaEohKhDBdf84EZXiqrB+5PgrCEl9ucb44USb2dUxC85oXhmuXZiMoc+h2eeim3zQbBxe6WRPbkghE30g3g3+KXYvfB6bOJH43L5l3JcscIuG34OsIpKlMH3sMEtHsKjibz7pdWAZLPSYpAwmVbXDiUOYIfcwRNUuxenaz4tDJTQtEJ1GRruVC+21auV7LdAmR2dytWpWEsL0ic5Thsiqi_HIXs9Hn2MumL7GikiFyA9YfAiOibSVYakyiJ8xvlaAtTTeBPl2Pk3SnskzimEd7RtOnrzdNCCckyiCqyFU4ldUyTL1Qk2QKjGnuW7RzQ7v8cW3WbesyiUOxOTWpONT3iQWik6lYc+l_o_USWduNSZw4yjTmiMLxNy5Go89NLxNfYkU1Qe5w1mcBLctkbXF3y4ljOh1XlgF5FIMLWBmLQLRMbKkyiGp1DvyIVf2eVpms9JmkxJlDsfijtOJQMKcWiFPENSx_6dbLtND1eCnvblVkjjKNOaLYUywqJlNb6kusyAMI112t+8A20bYSLXV3K_UTd1_4qMgcZRTHM_C8F9kj0V2rnn2UmUBUMMTvyeJGoCkKZTONSTR794PAG9YP_38KyjbmULdoytAhiEPzBTOxTAUijxDJd1mcB7K6fFOxPpmvc67icpR5n8etOOfjNBFzCuLQ5NHMLHOyEIjeldDDpkmZeWkFGQONGdAzHD3k1asImVnmApFniGQwi_8Eo_TZzBjImYGHKf9riKP6f6dNUXkuApE_iGRrFnrveZg+mxkDOTHQQbn7IY7n8ig_t3GCc_h4nH4nD8etTGPAxdbxeYlDDOcmEBWO43ewOA7oZRUzYyBLBhRTx7kYy7LcbmXlKhDVRAP0m1pngKZf99T5ZsZAFQYUS2e42KqyO7tNuQvEuapfADknO7etpDZnQLGkmMrdchuk9_ScQfuabLsQHN1zn302BppgQI8Q9Nte+jnY3K1VGUSXWmrQiUANNDMGkjCg2DmxVeKQgy3LIBEbZJIBrF8FDo622dIYiMHATRxzJOJ4N8axmR3SsgwSeewaOJnPlkkiUmzZiAHFyuRWi0NOtTyDREyQSTRp7gJgY5KIFFtWYyC6rCpkkmjLM0jEAN8GavAJQHcjQp8AGDXLltkxoJhQbGhAXog41JTCMogql5FJJNJ_B_8B+gIzY0A_tvAToH_wU+jzs8IFEsUCQvkm6xeDtaNttmxLBjQ1SdNHrvOh9d4IRGQgkv1ZSCQ2wVGEtJ910GSJQ1OUvDCvBCJGEIlmAV8KRuuzWdsw8BAt1f8vyWVWblIWCxuk13LYEfR19l9d6xjbXjoG1Nf6YWmvxCGWvROInIIovfhyDPgesOnykFBSU9+qj49xfe5dM727xOrJEJdc+iGIn4Nte+6zz0Ez8DTen4QwMvuBhTzY8DKDVDbUESiRaKLjx5X7bD1IBtSH6kv9pyevxSF2vc8gcjIysskE1k8Dm0XbbBkUAy_j7ekIY0YoXgclEJGKSHQLWCI5DGgKvZn_DGgm96+BxNHhv7ufeRicQCLXEcp41iUU3RY285cB3ZmSMG7w18XangUrEDUJkWzAYgo4FqwDzPxhYDGuXA7OQxyv++NWc54ELZCoqQhlF9ZPBvoPvKtF221ZCAMrqFX_SfZchDG3EA8yrLQUAhEfiET_fXdfcCoYCUrTNtoSgmn27aNA_+D1LsTR1H+T9bWBpQsihKL3TCaByWAHX4kvmV+P056rwTSEUdjU9Dw4LZ1AIpIQisYkBwH9mPZ20XZbZsrAU5SmH4u+BWFozFE6K61Aop5CKANZPwIcCnaLttsyFQOPcLb+N+WvEMbSVCV5fnLpBRLxj1D6s74r+DYYA+yuFyQ0YcoQs8FlYA7CWMay9NY2AqnsScSiTHIw2BuMqNxn670YmMeWe8BNiEKZo62sLQUS9TBCGcK6bhFrQL8jGArMVlnlNUh4DGjgPRdhLGpXUtpaIJWdjli+yGc9RxkDdCmm3+9qJ9PvTc0Bs8HtiOJZlm1vJpAeIYBQ1mDTcLA70CvA2wNlljVBmexDGqNM8QTQK64PggUIQ7NtzRwDJpAGoYBgJI6xQFlF76RsBdYHIdqbOP080LsYyhazEIREYlaDARNIDWKqbUYsuhM2GGwG9LReg_3NwSCwNlD28cGUBfS23hLwEtDgWk+5XwZvIIplLM1iMGACiUFSvUMQjcYqW1ZgOOsbAU2k1E2A9UCe9haFaxCtCYELwQLwQgTEoLGFWUIGTCAJiat3GqLRdBdlm7WABLQp0HssulyrhDJPX6DxjZY6T6bpGsuBxglaKhPoUqgSHXyeDySA98AyxKDzzDJk4P8BngXB2D_fcvQAAAAASUVORK5CYII=",
    "BTTTriggerConfig" : {
      "BTTTouchBarFreeSpaceAfterButton" : "5.000000",
      "BTTTouchBarAppleScriptString" : "#!\/usr\/bin\/python\n# -*- coding: utf-8 -*-\nimport urllib2,json,sys\n\ncoin_ticker = \"ONE\" if \"ONE\"[0] != \"{\" else \"BTC\"\nfiat_ticker = \"USD\" if \"USD\"[0] != \"{\" else \"USD\"\nfiat_symbol = \"$\" if \"$\"[0] != \"{\" else  \"$\"\nnum_format = \"{:0,.3f}\" if \"{:0,.3f}\"[2:8] != \"format\" else  \"{}\"\nmod_percent = float(\"0\") if \"0\"[0] != \"{\" else float(0)\noutput_type = \"no\" if \"no\"[0] != \"{\" else  \"mktcap\"\napi_type = \"live\" if \"live\"[0] != \"{\" else  \"live\"\nextraOptions = \"False\" if \"False\"[0] != \"{\" else  \"&limit=1&aggregate=1&toTs=1514376000\"\noffline_cache = \"true\" if \"true\"[0] != \"{\" else \"false\"\npercentageRound = int(\"0\") if \"0\"[0] != \"{\" else int(0)\nliteralRound = int(\"0\") if \"0\"[0] != \"{\" else int(0)\n\ntry:\n    if (api_type == \"live\"):\n\n        url = \"https:\/\/min-api.cryptocompare.com\/data\/pricemultifull?fsyms={}&tsyms={}\".format(coin_ticker, fiat_ticker)\n\n        data = urllib2.urlopen(url)\n        obj=json.load(data)\n\n        raw_current = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"PRICE\"])\n        raw_opening = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"OPEN24HOUR\"])\n        raw_high = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"HIGHDAY\"])\n        raw_low = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"LOWDAY\"])\n        raw_mktcap = float(obj[\"RAW\"][coin_ticker][fiat_ticker][\"MKTCAP\"])\n        current = num_format.format(raw_current)\n        opening = num_format.format(raw_opening)\n        high = num_format.format(raw_high)\n        low = num_format.format(raw_low)\n\n        if (raw_mktcap > 1000000):\n            mktcap = str(\"{:,.\"+str(literalRound)+\"f}\").format(raw_mktcap \/ 1000000) + \" M\"\n        else:\n            mktcap = str(\"{:,.\"+str(literalRound)+\"f}\").format(raw_mktcap)\n\n        if (raw_current > raw_opening):\n            trend = \"▲\"\n        else:\n            trend = \"▼\"\n\n        if (output_type is \"no\"):\n            output = fiat_symbol + current\n        elif (output_type is \"simple\"):\n            output = fiat_symbol + current + \" \" + trend\n        elif (output_type is \"mktcap\"):\n            output = fiat_symbol + current + \" (\" + fiat_symbol + mktcap + \")\"\n        elif (output_type is \"absolute\"):\n            output = fiat_symbol + current + \" (L: \" + fiat_symbol + low + \" H: \" + fiat_symbol + high + \")\"\n        elif (output_type is \"relative\"):\n            output = fiat_symbol + current + \" (L: -\" + fiat_symbol + str(round(raw_current - raw_low, literalRound)) + \" H: +\" + fiat_symbol + str(round(raw_high - raw_current,literalRound)) + \")\"\n        elif (output_type is \"current-percentage\"):\n            output = fiat_symbol + current + \" (\" + str(round(((raw_current - raw_opening) \/ raw_current) * 100, percentageRound)) + \"%)\"\n        elif (output_type is \"range-percentage\"):\n            output = fiat_symbol + current + \" (L: -\" + str(round (((raw_current - raw_low) \/ raw_current) * 100, percentageRound)) + \"% H: +\" + str(round (((raw_high - raw_current) \/ raw_current) * 100, percentageRound)) + \"%)\"\n        elif (output_type is \"user-percentage\"):\n            output = fiat_symbol + current + \" (L: \" + fiat_symbol + str(round(raw_current - (raw_current * mod_percent), literalRound)) + \" H: \" + fiat_symbol + str(round(raw_current + (raw_current * mod_percent), literalRound)) + \")\"\n\n        if (offline_cache is \"true\"):\n            tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"w\")\n            tmp_file.write(output)\n            tmp_file.close()\n\n        print(output)\n\n    elif (api_type == \"historical\"):\n        url = \"https:\/\/min-api.cryptocompare.com\/data\/histohour?fsym={}&tsym={}\" + extraOptions\n        url = url.format(coin_ticker, fiat_ticker)\n\n        data = urllib2.urlopen(url)\n        obj=json.load(data)\n\n        raw_high = float(obj[\"Data\"][1][\"high\"])\n        high = num_format.format(raw_high)\n\n        output = fiat_symbol + high\n\n        if (offline_cache is \"true\"):\n            tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"w\")\n            tmp_file.write(output)\n            tmp_file.close() \n\n        print(output)\nexcept urllib2.URLError, e:\n    try:\n        tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"r\")\n        print 'CACHED ' + tmp_file.read() \n    except IOError, e:\n        print('Unable to get data from API & no cache available')\nexcept ValueError, e:\n    print('There was an error formatting the output: %s' % e)\n# Please submit any issues https:\/\/github.com\/chrislennon\/Crypto-Touchbar-App\/issues with the above script",
      "BTTTouchBarButtonColor" : "251.000000, 227.000000, 117.000000, 255.000000",
      "BTTTouchBarItemPlacement" : 0,
      "BTTTouchBarAppleScriptStringRunOnInit" : false,
      "BTTTouchBarAlwaysShowButton" : false,
      "BTTTouchBarFontColorAlternate" : "0.000000, 179.000000, 76.000000, 255.000000",
      "BTTTouchBarButtonWidth" : 100,
      "BTTTouchBarScriptUpdateInterval" : 60,
      "BTTTouchBarItemIconHeight" : 22,
      "BTTTouchBarButtonTextAlignment" : 0,
      "BTTTouchBarAlternateBackgroundColor" : "251.000000, 227.000000, 117.000000, 255.000000",
      "BTTTouchBarAppleScriptUsePath" : 0,
      "BTTTBWidgetWidth" : 400,
      "BTTTouchBarColorRegex" : "CACHED",
      "BTTTouchBarItemIconWidth" : 22,
      "BTTTouchBarButtonName" : "JEWEL",
      "BTTTouchBarIconTextOffset" : 5,
      "BTTTouchBarFontColor" : "0.000000, 179.000000, 76.000000, 255.000000",
      "BTTTouchBarShellScriptString" : "#!\/usr\/bin\/python\n# -*- coding: utf-8 -*-\nimport urllib2,json,sys\n\ncoin_ticker = \"BTC\" if \"BTC\"[0] != \"{\" else \"BTC\"\nfiat_ticker = \"USD\" if \"USD\"[0] != \"{\" else \"USD\"\nfiat_symbol = \"$\" if \"$\"[0] != \"{\" else  \"$\"\nnum_format = \"{:0,.3f}\" if \"{:0,.3f}\"[2:8] != \"format\" else  \"{}\"\nmod_percent = float(\"0\") if \"0\"[0] != \"{\" else float(0)\noutput_type = \"no\" if \"no\"[0] != \"{\" else  \"mktcap\"\napi_type = \"live\" if \"live\"[0] != \"{\" else  \"live\"\nextraOptions = \"False\" if \"False\"[0] != \"{\" else  \"&limit=1&aggregate=1&toTs=1514376000\"\noffline_cache = \"true\" if \"true\"[0] != \"{\" else \"false\"\npercentageRound = int(\"0\") if \"0\"[0] != \"{\" else int(0)\nliteralRound = int(\"0\") if \"0\"[0] != \"{\" else int(0)\n\ntry:\n    if (api_type == \"live\"):\n        url = \"https:\/\/api.coingecko.com\/api\/v3\/simple\/token_price\/harmony-shard-0?contract_addresses=0x72Cb10C6bfA5624dD07Ef608027E366bd690048F&vs_currencies=usd&include_market_cap=true&include_24hr_vol=true&include_24hr_change=true&include_last_updated_at=true\"\n\n        data = urllib2.urlopen(url)\n        obj=json.load(data)\n\n        raw_current = float(obj[\"0x72cb10c6bfa5624dd07ef608027e366bd690048f\"]['usd'])\n\n        current = num_format.format(raw_current)\n\n        output = fiat_symbol + current\n       \n        if (offline_cache == \"true\"):\n            tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"w\")\n            tmp_file.write(output)\n            tmp_file.close()\n\n        print(output)\nexcept urllib2.URLError, e:\n    try:\n        tmp_file = open(\"\/tmp\/\"+coin_ticker+\"-\"+fiat_ticker+\"-\"+output_type+\".txt\", \"r\")\n        print 'CACHED ' + tmp_file.read() \n    except IOError, e:\n        print('Unable to get data from API & no cache available')\nexcept ValueError, e:\n    print('There was an error formatting the output')",
      "BTTTouchBarButtonFontSize" : 15,
      "BTTTouchBarOnlyShowIcon" : false,
      "BTTTouchBarItemPadding" : 0
    }
  }
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment