0xGA: Check-in [01237bba82]

Yet another PHP framework, but made for org-mode and geeks.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Fix serious bug in blog path management and sqlite find_all request
Timelines: family | ancestors | descendants | both | narv
Files: files | file ages | folders
SHA1:01237bba8208a745e09c879111b7daee9a917b07
User & Date: milouse 2014-05-21 23:45:36
Context
2014-06-02
11:32
Shiny messages wrapper for start and stop functions check-in: f68d80e7b3 user: milouse tags: narv
2014-05-21
23:45
Fix serious bug in blog path management and sqlite find_all request check-in: 01237bba82 user: milouse tags: narv
23:14
Add sqlite to chroot env and fix sqlite database creation check-in: cef06cebce user: milouse tags: narv
Changes

Changes to README.md.

    13     13   ------------
    14     14   
    15     15   The code is released under the terms of the [WTFPL v2](http://sam.zoy.org/wtfpl/). Feel free to submit [new tickets or bug reports](tktnew) or share [proposals](tktnew?type=Feature_Request&severity=Cosmetic).
    16     16   
    17     17   Install
    18     18   -------
    19     19   
    20         -It is as simple as the following command: `wget -O narv_install.sh http://projects.depar.is/0xGA/raw/narv_install.sh?name=1b6d160413 && bash narv_install.sh`
           20  +It is as simple as the following command: `wget -O narv_install.sh http://projects.depar.is/0xGA/raw/narv_install.sh?name=2219042f48 && bash narv_install.sh`
    21     21   
    22     22   It require the following commands to be present on your system:
    23     23   
    24     24   - base64
    25     25   - gzip
    26     26   - install
    27     27   - wget

Changes to example/narvblog.py.

   181    181                   art_date = art.datetime()
   182    182                   if art_date != None:
   183    183                       data = {
   184    184                           'url': art.url(),
   185    185                           'title': art.title,
   186    186                           'abstract': art.abstract,
   187    187                           'year': art_date.year,
   188         -                        'month': art_date.month,
          188  +                        'month': str(art_date.month).zfill(2),
   189    189                           'localized_month': self.monthes[int(art_date.month) - 1],
   190    190                           'day': art_date.day,
   191    191                           'timestamp': art.date
   192    192                       }
   193    193   
   194    194                       output += art_format.format(**data)
   195    195   

Changes to narv.py.

   144    144                       if 'value' in conditions[option]:
   145    145                           opt_val = conditions[option]['value']
   146    146   
   147    147                   else:
   148    148                       opt_val = conditions[option]
   149    149   
   150    150                   if opt_val != None:
   151         -                    values[option] = optval
          151  +                    values[option] = opt_val
   152    152                       where_clause.append('{0} {1} :{0}'.format(option, cond))
   153    153   
   154    154           if len(where_clause) > 0:
   155         -            where_str = ' and '.join(where_clause)
          155  +            where_str = ' where ' + ' and '.join(where_clause)
   156    156           else:
   157    157               where_str = ''
   158    158   
   159    159           request = '{0}{1}{2}{3}'.format(
   160    160               base_select,
   161    161               where_str,
   162    162               order_clause,

Changes to narv_install.sh.

     1      1   #!/usr/bin/env bash
     2      2   
     3         -PAYLOAD="H4sIAN0WfVMAA+3YVUwlXbigYdytodm4u7tbQ+Pu7u4OjXtjG9i4W+Pu7tq4u7s21rhz/j+ZzMzF
     4         -TM7VmclkeG6+qqy6qJWsSiqvvZGzO6OFF9h/JeZ/cHFw/DtZuDiY/+f57+U/a5xgLKxsbFysLKxc
     5         -nJxgzP/csHKBETP/l77Vf+Pm4mrkTEwMZmdl6+DmYva/fe4/W/9/FBEQDu4e01cFAtL+n5MAtqHz
     6         -R3ldsu69ulgSkdl67TQ07W/mSlNvL7a3HFIzGD4KbI3iRtnFInEpe9t0Q0rEMizPEfg9z73cvZS8
     7         -eRJjoQ4kX+2LiRO2trKZuvphSrPy3Wi9MK5EcBwekocjIhlgCqk/q4ctdWr9L1KfGCtG78OVDx4M
     8         -SjcBVOlRL56kOT8zmP+jB2XPK63y1Rx3IE77AXQ03gD8Df9FAJwhySzc7z7UuRCJWDhJE5Qw+rbz
     9         -jMiZrIyeIhYnZJN4mL0BsXR2cxU/jj19OP+k4N/0gc0OQvi+7OHottwuwdDhltYvfTvMTgIoLCB7
    10         -T1PsIUIZStLrMMcsmPEjQ+CfXRPXN5gqFx47PHjjzKtVZsG5xO+aGwEuXxctAl3gj+jTf6dcJf8k
    11         -UXLA+52CA+I2hSTOjph3MRxwynr0Z2VHiveURD1kPgAHpcK6jmFLZFIMbyGvD5hlv0RDBgdMGU1K
    12         -1GY4QnIAKCSl/IlzxcruAjD/biljWUSHSBJHrevoVrAdsJw48+e3CxQA2Bne/XjtBupb61EVjgzP
    13         -clklNUpwCtHmQ+z4hi833bfPGW6UuwRCWsPt1w0jMX5CYDHkiRG5P4UU6kPYI+2sC5elEZcpUCSR
    14         -+RzCEJ9TUSIopC3S7mdjs4FKkPtGLnEzLYU1rO0Q5MNvXGqoDKv8eHifzC6vpqiIYmCb6XErLvCJ
    15         -iC7wfY7Dqkz6ClEeEY7JIgy/GXowGidQCsOnhqm7A9AKhQP+jIPpB71GQ3SEzYWpqEJEKE62BJyr
    16         -K+Tn3O/UyL5KwBO4XMiokIamcVkAW9AIJ/OgW4Oh1CZbfMX22wdl3cEOaU7S6SsRU8Pw7OAjNyCD
    17         -t1v/SqjmJqNO5NzkGzBOcGaGK4aN1PtDKqKAJgnB4MsaipS+hIIWLT32SEPL2uJRST+Mfg4SSoj5
    18         -p9hsR0jqFeyoE0fKyFJip08pBT72hFjoGDJ6VLAfJvaPehpoXAj4+m1AVHIV8rrpx/RYAgxd+x+x
    19         -IntOHl6uEE8uFzEJUdEdwAGjPkRZN+TaupuweQ8o4zAOzr7avnuBokpNfrp+psYis9URNoghtzny
    20         -3qdCOKaRjV4sDhoBEcPFYvLrYPW3u3WtgIgB5Pzg9uCVyZKI+2LGk/kovih4kkMX7N8cHdVdNttv
    21         -8JPpxRUf6v7n87CrU6/V4a2qaHqlIiLNea3Png4ag8Bos3vlhSPqcoUSyrifgOjJ0YRZ/WMrq6+q
    22         -rIsI+BLGuCxJUGl7ufy4DIYE8IKRxyYEKcAo+WAOfBBFcM4DikKzbFl24Ogx/PdqutPtRy78ke4l
    23         -JDNCIPOd5Leyt3ny/cghQgtJbgvG0XLygbQ4hikbuUSbJMry3xOYy1i74iiUpRhxsY6IZQnr2+oe
    24         -zZrB+VZaIdci4Xe6Jck6zD1gNW4CxWUAI3uQoVrODeFvq6DDDxTbIfz0JXFhcYxZahpAglILYEJj
    25         -u7NOdJgUKU9yh4dbqJYAUXSGO3rfl0aPI/WJKwYvkOCUu/23Th2EbqFVtfCldNeaX5eWEbP4eHZA
    26         -J4g6b+YQXVxc7hjEiIDtxBoHmc1HCy3+9gwVj06w8BiOS1LY3xhGHT+uVKMsqZdiaJ8xGC3n2c+6
    27         -01Y6sE5gWtvGG/jiXWNxu3PtLNWkWdU9Ajlqo7Q7cGZ8p4heVhC5K+I3/HqJ2ApxypumBA9CyBGF
    28         -uOPPd5Weof8iTfGTm1V359uzEAGoeteP/jkjOkCc7JqHHD1Cq9YW01I1I/L5Ycdfv7uqpicwdNaM
    29         -OPMZo7CVxbbvIZpmFu4LmU/08r3RXhiRnyWzEiRFRg4hC//C7w+a8ubLR2w/Ucg8MDKIi4HAJCL4
    30         -AqddONEUTBWdKkYvCimOoBtTfjgt/Kk47F+gxYM98qOAjtGjRvVMH0MPrvUe/+u9b29FqqTNGBAs
    31         -6JMQEra73WfGudlj3DQvDWbKcmRxoRsiI0N6rFKwC+Qlck2tb68SylnRZwo14WhKVVQHf7N7HOkX
    32         -SilTnyzTiWzMS22KXGLjG+AlVMUIpb93cDjTeDwYbSHbb2/fnOBQcK4sqo/i6TM4xErJhOJrKOqs
    33         -30PUmAyz+tV7sm2VdxTXlZCpNMaZPVQuTBUTyUeBJIqLvV+IHu6FbJMubt+Ptw2PHH+MFUygzFFT
    34         -bbb9rnpfXRbgXV7hS9RdBAr66tlzZ/WfIiyrVHCVA4f5YLWqHDh5Q1kOxhbkHMtZapbdjjlEVPhd
    35         -qKT2qhhpGVe/8xmGbNiKN3E5WGPIieK3b3YKeJ6pph9mc6s1UV0vR7DbVdsLDuilPWefMuscNL4o
    36         -rl+9VDR0TfkDrzazN6oTApcygvbBPDy6sOR2IQxlIjzHf4u77LCmoYXXt9Wyl9hWw3BsUT+L/HzY
    37         -INNaz/ERDKlX8C52fH43vXxEcp+8uobMxN+pzwdd3R3fwGf6CQi8OF5FMk4nSryY43VXxPZPff2G
    38         -/fhVsyYjXBS7VRXlC3/t/i8R5WpEgYfQfuIYe9h6cniDXkNKH8HUqdj9ZIlgZgIjIWcOGR9UZv3h
    39         -Mm/BHC53xSQN09/DvvmDtgcw5UpzDUHfeZTtknzpeMGs9U/qBrAbFkij79vzCFWHKv8oHhLdcP9+
    40         -RhUrZNApTfawFAxV2zn5vszglr6U9iRulLzH4bvUatr1U1f7HqdRsCa6bRmH0HjtUbMOIOgdL2+X
    41         -Vx/QRD6rdI0gUliZ6qLo1CjV2qbknRh24zzsGP5Ekdoyx55X8D16CKvRV1uZge4nObrLDeqzKqzF
    42         -xNT3RKijTMWE0xO1sXhcEtwHK7cNNRHObzL4npWO2efTBrgoRIUqUYAQkX7upR5fq4EWH3p5SC9B
    43         -LPAgGxGcamqq5JFQ46sWl+dRdkjTS6YqSvuvJkJRcpVX1dTC/NxKMg+brCvSd24Ki79wUz0NluFQ
    44         -aRvDYikxXqjagt941HauxQL+hJFKGzqMB+k5hYKXPkU1yTLfe2gi9PbuWkzODohRnIf8Uou/C7XG
    45         -SRvbdl5yiVtawAhT0FYzHFzPIPb88vK3buoSnXC6Hc9Y1Mmpc/Go3/Lt3NblBeOBH9xAdJ9nahPl
    46         -CkZevHT3NLKgpS2IQRZdQ2P/WUPjkBnrS+tsGb2N7xvma0Nt7Yy3mo42E9FqCs7sqYBl6ag6/IN2
    47         -xe3hBB73qIH1gTxdfzhJzoEDH9pqziTKvQFeSfo+1xNhlKohn3EmvUgF6slp40q5UErzOTzi7+Wp
    48         -e9Zs+3FxQgrKQTzYfFiGqxgxFniM/Uxoqfdd+VAuFtT52EOo5cYVe+Z75bA1HAkdJ0Rdpoy/3Ojd
    49         -8TnqWJrO8SOM2Su/cC3YOkaBmW7lihlmVe8cc4eXnLNWO06S7dhNCLAQ9Ygx9OdX3hx5J6bcgtHG
    50         -WPkgdVVkNs9psTPjtVHa5EyZDDg+mSkVHQPozaExfb5u+S930yuamhG+KlV4bukC95rMciyNwTwR
    51         -q/db1BPB64fjEl1zJSNe2XiOa/15/cCdFxRrUVuwUeENB10TNJdSAj7Jty8g4zrPBHC7XMPk+4HM
    52         -INoJrDHGbtMENGI7ltovJC2zoqyzB4leQyKDVNvp+4ewiI8rGConO+Ym1EWPPrYtvunT5jZN3VcX
    53         -58S26LGkjhUSvpoDnZWIKsbc2U7ZuqnMwEeoy4NWR2Ki+yGnqKnhjyutIE7cYb5guwm/TvdbXnqj
    54         -D87HRRIMmDkgEPhi8P2JypXyVkKW7n0OxpNgnl4Ku6ndMkMo6A+KnaSboBoBtKd9UjFd6LhYZFx3
    55         -uTb6yL5QcfahMm3kaCPs91XOnosw/IIvSL8CmSxPW8KEQhFGczBanxTPnId8h73yg/M3OkEGO2lG
    56         -mtgzc2AtbD04F2c0Cra8nkZU9iInQQUNh/as9fUTet6J8pSu4blelepk5fyq3Q1Rw+2wNrTMhjEW
    57         -SKUiO6TRlzCdPm8ASnu6XfdxLfZsI1jCCa2Q7DZnp7/KCCwhP7Cw1D8GB8WmEmeoZtrlEPGQyIEY
    58         -WnAOyaBxWQw9xERomSbBM1dF9xFjRKGC/KisQgDV0L0hJCeXNxwNZs+zaZztCvR3vh7rOrAgNZ/5
    59         -YnrYFLJ6z0iJzsgzesL2C9M4JtaExEPOLSCY9wiU/JQ8mkPizA/5rcvzQNxZLkFji5HLVJDd0PTj
    60         -0dZ7SlPT+98H//fzD0PRaihmWQsunk2yH9+WO4qlxUQvVDtlQmYgJrkfVJZ/OMClY5/MBUyCl+7M
    61         -r6PAQhLKQT+scFMOIu1T3b2c4iFWF315YLn97Rs5CF2EfhGGE5BI6gRVWaRLvImXj6bKpahjJeFD
    62         -q+IWkb/L1v59r8UySydq+RGUG9RJLIyK1UBxx4qdmXWGn31xmXVQNMZusIzPIJnwkxqm0+AktQRR
    63         -S/KQLc2YPkIPnom8LxlKAM0kCSeHRnbsiSFH+6B0XViCCE6A87BB1A/LeDBpRWc0AtEzYtO+PLzR
    64         -hz7Vv9bAOKDeoIpUCrBHSAx+88o0/u5Oc/Rt25iH+oGgAvd+vsyrUx05hL7vWGYMxDZlHQE7lhd4
    65         -8HcfWjM5ateZ7jxuM+/HTInqkJl7k1Uui2Ht736RXMU4fXkzaV5MDlZ56+46Cl4l454i/SpMDm1U
    66         -mSfe/T32a2ul03Z9k27ZiNLkir4vdloW2YQikyVLz9rFf+cAYwhanNscvAgTXOzeYzhNcd0XblLV
    67         -fTrA28FVQrou8u0fy6QD993S8oO5FTxuMKj0zWQxNrcThXMxSSHGHCDTemkPxhx2SGPoxiTRXIt2
    68         -wDkAwnXcZIYnNV1aJn01kt6LqSxZhbTOJPTe1kBQjZHNeA/vhE0Pm5E04TYu7E4piQSYC61F0yh1
    69         -6aHnhSx1BLjF/CHKFPVsO4ru6r5argx+BoIlT2Q2wvm2aizft2+uPIjJ0AllwzThLMb+pXYhYi80
    70         -1W5QtpkIgHiCzQ1aJ79pcbb8IqMTL4pjsYYwHoHHnVZBekh4ztggWdPRQn87p2wozWF/Z9CAmXQe
    71         -Oy4pOz1hOE9AmuD/HStoEuIgybn2lNd1QkXcgm8ckIDFYTRVk7q3zMZLUjdJCZ/EyF7aNoNyQDm/
    72         -gAg+iCucEJPwNSGVVuu2GedKN+Q2xVMx+Ukd13ANf2lmRvvMusO54/lM/AeBb1OBr2QVka9lXAWR
    73         -gvAgZRZ4hFzl6rcted0cfeCT0crcNEMnkgc5Px+U3d+rjmkOrfRx0ZDYutlUXTaxTNMqzy9f4+04
    74         -QDdapxuRXzmq6cYbq23e0+vvrc4Nz78CtzM70rDJXX4e5MnbDV5BoiVPFmJeZZ2WRWsRolpHlBA2
    75         -RRV6NuS9Snt4N4gR9Zfr2h+iTGAmx1nV19Wt39N5+mfgBFbUXc/GbdEwRzddFwzuOyx1rdp0dR72
    76         -4AY3KvQ3Bp8XJqc0dcNJ27H3TysNB5vj0+pk1MFqAjRNv8XGsVYHju/GhjynQymVVHsq3vcl04Fp
    77         -EJ6Xu8u2FxqMfbe7rkQ3s2x10DNiDwESV3WclQtw3hTE+FXjLFnSgd+591ruVpTX9ijYaV9Om/3K
    78         -mSUcC3aVV0Su3EgODzEA48eoXENZ4WHQz95PSPSfpizSlxIoqitN+36H2SCXiMWNizF3Rl/NgThI
    79         -H95o1zvaJa+xsm5XYw2t3gSOzC6w7MsIqQSNB/oZujG+c5fVxtkQe5OkTycsogRGUM9uioggvZ/7
    80         -FiGRUfvHzMXk1xjQrDL3kjq5vmddSl0GQrz2DzXwcGihRYZW10RromLsHm1sVJOhd/ppE7fkWnRh
    81         -8L1WuLNyynaW0BhyZBtA0FP62FhHqMRpkCC4w6z/NKtK2CRjsCnwyNrxrgb1ZtntzhvShbLzm+3i
    82         -mOr1BvIrH3atpcHXfUazu4lCiLsoI+2jY5iVGR5en+CQNsfndgOf2zgX1HzqFBSlDrn+BnWMXJqJ
    83         -0vhCGjHdyC951+mk06VQbc10QW6ebQTIMnMSr4uD3+gb9SRFmIgIE8Wyey2AZ0CgmGSxxnFg6pwf
    84         -czEz8QMkHdN73ffD/kKM4cscEpN6P1mpTQYlXb/+ah7FkGinPKczGr5zdby0jUrUxclRK9jCUSbW
    85         -+aE5zzb9Nzy2DDw9g7SRkoZgZ2kci0SBJRNqhQJDfoveRDz7WJvNrElx0j6UqRM8g1jLXkNpAy2w
    86         -VRx/DaV8foWHj8eD+TBY/v9V//m3+jA6ev6XJsD/pP+xsLCy/I/+x8b+b//7d3z2v/8D/u1/6/+9
    87         -//1zEsA6+d9c1priu/9Uf0v6GytrNmrv/cDrlezgLLdqqj+XIpXZenLMji8dQl70tRc91kyB8uPl
    88         -fDcYSlKxyTuNspLhSztwY9C4G+xwhWsOsrq4vCNz9jpZ9cF4aPRSYmr46calzlxL395in5jzSGg3
    89         -YYZ6S6MCEOJ0Q2NxqCI3UXyamgZaa2MlevINHrixSwMcrv1ijPRZiDpHIXX4zXkgiPlHj+3RIg7x
    90         -ufNJu+YcwM1uMFhVZGUuoFnvnOBQ3nDYQGhn3USlRVsy/JBoCfdaJe4uosrSszG7itTV1er5ICyI
    91         -A/V0magC5a3wwa/IqF9spo7tOLnor7jTt4UN2Dr84SANbeFite0XP7VJMymR7xbnLK9fRPr2cIqh
    92         -B1yxFN1WEOcil7pmxZJCd9a2pSSvLGPdmIOXTp70N6GINkcHfBBLRkFK0YrKHe7fpMTxlcwYSfo7
    93         -h1np1af3HxufoMyfpVpc8VOfsByPN0uXqZ45XnFWFq9YPz/tIvIj7yKXG7l9994tObCYYtUGSyYh
    94         -7Q5TYst2kCSeVROGjE9BaEtqSNMTsYwjHxcha4SYDpqDZR70FaPIUcokf6SX2g0isCLQRiL77hxJ
    95         -EvpNv27EKo5jDzG6xhX8xaYx1kPGEDrFdf9bfwdFvwBOfvZepsO1iJONKxFynEHgX8c4gNhxHaTy
    96         -ijEJ3j4ex0MFX/M8skhDG4mL5hm9ATBXiMVaShs4j757Z+Rl/tMQMboJ/25bqda5MCCvnEvIbj4V
    97         -hsi8px4uvIH9bJiJkclXxjrc9ppVRRt3xfuHDLSyfVP1OmS9UsqMg2JOaHRAQIpnYgcHZljbrfQM
    98         -q34xT/E+dNR+eXButSOQj98ZFYThnAEIqx4+DSg6oKdyP2WDwIUaUhBebCCeVaCM2eoTkuWdeGyg
    99         -Th7nmc6VaNxZe7K1s+5nR6kWS/pTES5Th1FX5cKy1ITINsnEEE8HR9SjCr7+y38+h/wshJ+KlT+g
   100         -2VXPbC9Vdyv4RjJmXpXwLn2DXC/chorViwSRGY/nwlIuIvC92twduDasjcH2MKeOrZQMMj+8OUgh
   101         -UU8MZdCbTyRC+JWX4ek+TgJxckYSGqADkfeHVGpUqslZa1K9pN40oQq6/JIFYIVwuTIDPh8hmTmz
   102         -YIQHA+RUZsLz/E08ockCMcsef2xk8lMpLLAgDib11w9XZJ2GQfikaDGljl+xlIG0/SV/cnRw9VEv
   103         -LJF83ZeJW+6hObFOj/bTdW93AywM0K7GLkw+XmPcynhgOt5U+Dt3So/UvuLF2CgnZIeL+i4VPM1v
   104         -zjuBwYurHkD1LNbp7lfsGzit4fE633kOzTp1k2/DoWa2ReCWs2k3kwlnFGM+ESpLepua0mWqUYOV
   105         -lSYVNb/iwqXoy+/Dv0WCg4km6yj/c4aiPKHX6JAk0e4c6ztgCEZwJGOv3ZivK7lWLfkQV08K/eUo
   106         -0GKtA7Gwxn7p9kK06Zath0LA9lsF91eEnAc+q0AL2egrYS6TYWRfzNqcLQikp+3F7PcUJBGfmnNf
   107         -KMuM/bUU0ToUAe25j8h8WbWpknim2+AQvwvQlR2W3UFyuYWzI0aUvFvi+vBaMMDMTQD7s8m+Jv+D
   108         -QXh+Xsb/ms9UCRwdbp3AjBo5AxNmlfBRZEabtFbMEZlG3PGn0GHvP98mZSgNiguTxsPIWfPo3USp
   109         -pRelQK2KPNrtJU40MzYcw9yCqyOZOkS2p5GdBZCC/uc+07RO5LgtVtVwqQfaHWS53DCG/gJzCkf7
   110         -aGnwI8YYnwfVtWnYN8Mjafc6aF3/94uxo0udJgJS99mD4gvBps4YPuNLJxkcNL450riFIozWxbC2
   111         -okJJVcKcbYBr5PXMVtIROBktRjBqJs/Ch4YcpOfXuxtCQyX71u8bClAc6lt5Okm4L7fUc1a9sqoA
   112         -uHqxuAS1sdPiQosDfmbvmKwG+8H5PzjR2elDArH9yAXx1tJkjt2qfQQW4F6cmcn3R1/dlRVguTjm
   113         -CypvvbUdvPNeMIwvySMziWb+lK6GiiDiIAPeJ3ZvsVSAS5J9c2vZxHYxJ+OGZbLAFfPXsWMp6+m3
   114         -cpT6LtrBZkoG0PJYXqOjig4FrgEqimBh3vSvXlWwza5IoiHZD4ZxkBM4RMPKk7305R5ObIH3BUmW
   115         -atCNLwvfh72nCM0iFzSvarwN0vAh9mEMyWONpAKmyFn4a1z+lmpWZryHszYweftN0kInYTXNfzAR
   116         -BVPbaMjqLfow7/CHcmRrhqIkYjjMkhRiQHgmQhqoxS4rbbXH37OVeUiVJ9xcS8IFWFiNi4Ks1Bsi
   117         -+8S46lmXhFnXKezPjt9TGddb8xzAlwCfdmizWcmdtQkjr1wQS83zPhseks9cZx6mrNkXKOktmUKv
   118         -/1ert2VvVoHmRSMVfVZTu7hOdrWefmt/e36G17APPlW8a9Nqbri1Hj2+NYIilIrG0qw5SMrFdA6e
   119         -Wm20FdF8klh1SJRU6+p6P19OLwxVhTeMAXm1uS0BTlmLUDXmz8rtSWRCRFMCZw5f9syq3Z/0XfuE
   120         -NTFrtefBwPeJgsLH4bsXqbgljMn5opOLpGObgt4sggA5J9/Hx2xn95KlWw6Gntivux78lERiKHPr
   121         -wchoXlTWkr8O3HN/YGJT2+byWsCi2BSkit2Y1G1QRjiRgiTYCgpaYM2hzYtTk9u0JGowXiDQY771
   122         -8Ku8XivUbe7Al6aOYZzmuin3FlsDc58EN2ZPiiPtN4S9jBtoK4VfjaMreRy4A6aosA2Ng2O3e4A+
   123         -DAfZ9t8aXLpofiL/MMUTysWvAVPpvdf75nN/vmEl5qjuPnO1IpUo/lvhxG50yU0/AuNqwRfSANNK
   124         -f9VEpxHlXVgbCRTBx8I/fIqyoLJuJvC2my9hrf6UwRQ8dC5X4KGkNmM7L/A1rHKfjwHW0ANBKAxl
   125         -y2jYp/41msTCAKUmLwgX9DdIGFuxNvsU1qOb+HiIObN/PghnLRhgRqa76/E9NVvPVxNpWtPdLfer
   126         -aRVYSTthbccZGtGoEOq4OyeB7AEZUpmL4r5IAEEmzLBnXbHxEDNMecFU4Jz8kEy/u6ScQQ1LGAMz
   127         -SikI2qRPT8jC8eAvpjttZvY3u4NvRGv04MMKMjFdCzpMtHe3vxRMZzhMDOcRZnTpYzc8Pb7eD0bw
   128         -3/RODR7YnkgGk3l8wz/GniHE5fXrnuO+Y+B8Pet3XSxT8AC3HJsTwIOrlKkLPl6mxUyw2F8iQR2c
   129         -hBypz/8lZRApldM7LPgT0OKA0CQPhHJwBZOehP5BALKzrCI3oRhBNqdevv7GC3Uy/Co6EzlE5Qx3
   130         -ltKmIb3KE4ZZUuwLbG7y2VewkSIsl5oOw6OAFEAq5WiUevfHncOrXACsngpcRW4+hZgGWLN+7zCI
   131         -X/q14glSX1+aXavBSCzDV3XKl82aER7HUORzBj+jHP14eNYTgOO6gL+HPSv6/cZr5TPoCLlveKSc
   132         -3NFAJl/dtqQBYfLGd/YzTSost/j9oezdoqS9DpAieS1nxUu4frapuWSWF7ZQuZG0V9EzRT7UMbxo
   133         -lTViKWPip/nT7ap7qnYXZc8hP5fKEKSYbydabIVsfV23keV4zb3z3PcIGiXHgtSo8bo3TicoZjI5
   134         -OetX65mtmHDhMOuArokM64Jx99+92On0WUXc2/52oBsxzUFU7VB8Oj7gneA0q6EjBIvn+HdSd4Ys
   135         -/befhPpYGZIZKY1Wv8jYIu0FUwezW8+fImJXfZG3QnYWdygnTdA6A91ORpZXn5zou1/XkIxMyI5+
   136         -Fp1jwqU2HQuBPoKYd2rCOzp/REagoupCQ9nK6iiaNyx5GAfKD4Jrx82HcLjrX9IgD+mBn2069Gw6
   137         -Pzf0DPiCgTBzNNvyBiq2pCsDGMF5F1apcXkkbB7mc5a/MPDJ26gGY7x+XH+FfqGG1B2JXSQq36Q0
   138         -EcwzGxjiXfLrDXet+8IACVs+rqRChYd0qkacwYwHEtzH9EgtaBuKWDlVaUlzbanlZXMwtOk25eLT
   139         -1Phwuy05X+wYZEUlIR5MMqm7yQsZ9D6Ff526G0wCthvoyzLtyqhBNg9aXV0vTDEJvnth8OtiVgPx
   140         -sRgmWNFyFG7JNzFE/M0WKXc2V8cZDI7Su7ryc24vq/GgPIe6EGNQ16Dvyln98gqSxQD0SQD4Qu8l
   141         -4h9R+TfrzPZlyQRf/9ags9h2MPfsGKJDxbUScyDmwX6dUW645HCzJmBIdz1OPbS2gN4BY4LRQ5nn
   142         -yobfaPjlidz/rTSFsA+u8Al5cSB6TJqi3w6Zw76ZY7GokOWa4PnWGzcyyMIBrx9R31qTcaRH9U+W
   143         -7QHnMOwG71AlVhShl1vuFylfTY9H7WxakYk+MKEWzmXGUz1YdiZZJG49k1U+d2pWzNQ/3ylCVYzY
   144         -k5k9imXBCNnFZNvAda93JpiIhDq6b9fH+Tj0HFTaf9BqIeK06ZghoqTdqOaUK4S/c5JMzXnZbLk4
   145         -Li8p7kdJUr8k9mafBkLCJ0u2g0lsyKKiSoe2CxxUnLVVL4DPHoleLqNdtkpdWTrnqZ2vVoU065AI
   146         -uJxDYdhpoDs8pQRHwJP3L1Z8DYTokRYpaHk+POj2b3t626ALmqqS0DjEgvNHTtUgxYLuhDHpTC8D
   147         -PcYCvZdlsFuPTOZ4iQzGItTpITVM0l/LXd9giy7M3LvMocst9rXuyd7fjoYLsgu5twpeOlpyvmQn
   148         -v+IjMW2V7DCdop+xJThkkrbH+SOtJHWUspOlLBDsVAyzXdNPXFUjOuoH6/A5BrSXXIxPs0wN2Iu/
   149         -3/R5NcHejI3hPKFkx90Sp+KUEAsOa5zGBuE3aXanS4sF8hZL52iUEDwmHTSTTx2aMCxjY/p5MhjM
   150         -EysvXNm5qukFj3Wlq4ejYj/K7MkgdoQesKEMcBx1fdTdZC0IFP2tJAlotMK4OKsmYvSzDCKdzYIV
   151         -MmmGJziFcSPycK8kx4NBpEBU1OSNkWdbhne/gEEGo7M0c9J8BgHHUGS6g2jQmpw620BsPsXEYXm5
   152         -RiiWb9CHYGNjmX/YkED4GoVzAw2gb23ZEpStAeq18SbeKFdZuHMkHD5JkvFKHSG9CghHrzCOECkZ
   153         -MSUMAFS+SP+Hv7+9scbNHsOAl0QK13flWEyd7Ocd1sQUsXSzNPm1FofZVrRLq5w23nfGncBKGGFy
   154         -776rcZVD5E7Ho9GPjUGx2+WHobb0FxIvZkQnpR70/Jn8xrex8oxunRUDg7ULSkg7hdiAf/7L1E2K
   155         -XaMI30Jz3ANRq4EHqYl1FdoXzQ1daiesE/PlQ79eRq8GvOhaK/+YalGxZ1cJpPfZU1PVH2UiJzm3
   156         -ccYXDvAj9ZC9eoCbr6kKRlSRHdlhWv+Y6BJ3Bq0YCjscjPWAs87qQ4xYq1OoZW2JFIw0NSxJ0gg3
   157         -QE3VyaasZ1ombvf//W5JOJwhe3FuJhB/wEG5imzatovOpvSWRx65fk0VvkfziuU6qRzEwGCVBehV
   158         -FAtiZv1oJgYgL85mtHJ5nQQysVcelAhJSViBsqbyzwgByR50vxHSk4388ybzRueo3XioQtehM8cW
   159         -DZzdbStP/rQ2a1z1ZRpqeaEmUWLdwWzdoA5ZdOecT9U52TgrMS1WK2dXJwWGboz59YzxcyOq/LOR
   160         -L1RHR6ZOAOnOsWcg00gaDT8p4a3n6llc3+WRxctNfVRmZ3ZWZ1aW7zFYHm3s+nqtxJIP1Sm017YX
   161         -wto0dY2Jb3xt68mSFTxVZeVAGEJntUpguX8MiXq3yBsyQhdX98axNDgwPIqgUtcJ7uhw4aVZQbxv
   162         -VJmMw74Mr+K2O5/5oVVyTeqOPyHLWJL5gOovdFCR0i++rxDX7tQzmZEAfwpDuFv3WNXMQlcmHdWY
   163         -GycjbjQso0sfzEO+fZyQ5qcOb1gC8SU+3bcYAlFfan4zfIWhmdKLK5nlaEzA/T0AEOXjc6Ps7u/X
   164         -u7XIo6HIWkF0NS/lf3qPmy0su1WvI73vBPyFaNqOJLJRrmAKGCNE5i8CA+Nnjz1CpxBAVxxxtdmI
   165         -bTgOqGty++m1lmdgvxy1a5dl2461g4lu3cJrHq5KoFdwmoqPVto/Xx5PZC2tDEHnAbJHwcKIhEa7
   166         -r1F4ItqQ2v+u9QKL9fEIKz5yPP+HeyLPTWPRC3bDSkP2djMtVu78HQPc/kPcgbJOHnUtK3zko6BV
   167         -taKjKYqL6vYwfK9l7Tu+/Y4rys8kih9138OiWS5kMgHntJiiTTp2a6fnzAsVWWhTYKQSkB2rGXNS
   168         -RtGXnpHXvz/Q29sXBAhQacQTGkIvPWUvnb/oD39lHDor9YV3zCRfPpGJ/zvuOt34Mku+LbwHeEc9
   169         -vOk8jJD4v52zPn369OnTp0+fPn369OnTp0+fPn369OnTp0+fPn369OnTp0+fPn369OnTp/8v/Aev
   170         -WC5RAFAAAA=="
            3  +PAYLOAD="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
          170  +d/8BVOhqAgBQAAA="
   171    171   
   172    172   WORKINGREP=`realpath ./narvroot`
   173    173   
   174    174   echo "$PAYLOAD" | base64 -d > narv.tar.gz
   175    175   tar xzf narv.tar.gz
   176    176   rm narv.tar.gz
   177    177   gzip -d narv.gz narv.py.gz