Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.albasani.net!weretis.net!feeder4.news.weretis.net!ecngs!feeder2.ecngs.de!217.188.199.168.MISMATCH!takemy.news.telefonica.de!telefonica.de!newsfeed.xs4all.nl!newsfeed2.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.007 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'python.': 0.02; 'syntax': 0.04; 'filename:fname piece:py': 0.07; 'subject:Error': 0.07; 'variables': 0.07; 'subject:update': 0.09; 'subject:using': 0.09; 'true)': 0.09; 'worked.': 0.09; '###': 0.16; 'lambda': 0.16; 'numpy': 0.16; 'pylab': 0.16; 'received:173.164': 0.16; 'renaming': 0.16; 'skip:n 50': 0.16; 'subject:after': 0.16; 'substitute': 0.16; 'syntaxerror:': 0.16; 'fix': 0.17; 'variable': 0.18; 'programming': 0.22; 'import': 0.22; 'to:name:python- list@python.org': 0.22; 'error': 0.23; 'copied': 0.24; 'earlier': 0.24; 'header:Received:8': 0.24; 'versions': 0.24; 'updating': 0.26; 'pass': 0.26; 'code:': 0.26; 'function': 0.29; 'points': 0.29; 'skip:( 20': 0.30; 'gives': 0.31; 'code': 0.31; '"",': 0.31; 'file': 0.32; 'class': 0.32; 'worked': 0.33; 'updated': 0.34; 'problem': 0.35; 'anybody': 0.35; 'but': 0.35; 'version': 0.36; 'shows': 0.36; 'changing': 0.37; 'thank': 0.38; 'manager': 0.38; 'stopped': 0.38; 'to:addr:python-list': 0.38; '\xa0\xa0\xa0': 0.39; 'to:addr:python.org': 0.39; 'skip:p 20': 0.39; 'above,': 0.60; 'received:98.137': 0.60; 'solve': 0.60; 'forum': 0.61; 'new': 0.61; 'received:173': 0.61; 'such': 0.63; 'skip:n 10': 0.64; 'more': 0.64; 'header:Reply-To:1': 0.67; 'invalid': 0.68; 'received:gq1.yahoo.com': 0.68; 'received:mail.gq1.yahoo.com': 0.68; 'received:98.136': 0.69; 'below.': 0.71; '8bit%:100': 0.72; 'skip:a 40': 0.72; 'transfer': 0.82; 'equation,': 0.84; 'received:bullet.mail.gq1.yahoo.com': 0.84 X-Yahoo-Newman-Property: ymail-4 X-Yahoo-Newman-Id: 35753.90997.bm@omp1075.mail.gq1.yahoo.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1405099994; bh=ylVvrZVnhGMslNa6UAEWxIWjep/h3LTMTM3ebZRMOA8=; h=Message-ID:Date:From:Reply-To:Subject:To:MIME-Version:Content-Type; b=e8ygFRMEW8SSDWaYG7pwi22yNR2hSYBvQX23ZFSIO5pdLF8Cn8xqOHstVJ8o5NUQ//TGtLkIOdyYZlloGW1JsVfdPqfBFZ1tigV/j3sp4iv9TiTlypZjgcUKEgK8ktoRzqiXe8FEeMzHE+BiSxFzr2AidC/I+qkjjD3V5+wSJCk= X-YMail-OSG: XQxMNtAVM1kwCpD_TdVl8B4IA1QytnC6C0znNhHck_QKOit 8sG2vKN3yzPfCpH1sx.bHuqVX7DTCvyaktd0QNd5G2gHrq18XQGKzMGy.wVN 09kj3GmsHSISiFN2wPX7vCMZUccGFfUeRqZmV6GQjM9gv1MB8Ml74rbU4.hf WH.G9xQ5m0_nKyGqKaIAiUkXtl3ULdM6lMFcdrLQNZ0uoTVXBuYavuevVpiv 7ZrPTyx54RwyaFySjNZrxidgGRAid7oAJnRaeg8XX2ETXTEn.cor6ncNzKNS E2QN1j2oK_5TQ7Ucgp9Z5SStC2yAXr2dicEdmezNH.e3L1iKQK5L0WAE.j_S ZZihHePIrKJ_ucS92xT73rAjkj8pnLZyqORc2iWq7XJcALAuSBE02LcrrOYK R.URYmDhjbOjPW8GJkXXU9z1Vrr9m0NGalq_tTCWYgLwZUs4AYjHj9nTFrKF RlVCdbPo4v_loYnYjFclgZHg1B7V96yo6xPMTvme6uIP8CqoK0LDJ7BVMEHr 2GHVF2M774jbphTZd5S9yNnd6RPzbGe21VLlwQl5STlTDiM.l3xwRpkJy1lA K_VXpDGsPZZwISys56rYw6tjdEZx4Lf7N8QAOvOtvdrdiO7flv6GAVLgF8QV IjIZ9GNvvtk2Ep1MG5tolihOPfXHSYVgcqcEMYPMYJuNh X-Rocket-MIMEInfo: 002.001, SSBhbSBuZXcgdG8gdGhlIGZvcnVtIGFuZCBwcm9ncmFtbWluZyBQeXRob24uCgpSZWNlbnRseSBJIHVwZGF0ZWQgYm90aCBDYW5vcHkgYW5kIGl0cyBwYWNrYWdlcywgSSBhbSBub3cgdXNpbmcgQ2Fub3B5IDEuNC4xLjE5NzUgYW5kIHN5bXB5IDAuNy41LTEuCgpJbiBhbiBlYXJsaWVyIHZlcnNpb24gbXkgY29kZSB0byBzb2x2ZSBhbGdlYnJhIGFuZCBzdWJzdGl0dXRlIGEgbG90IG9mIGNvbnN0YW50cyBhbmQgdHJhbnNmZXIgZnVuY3Rpb25zIHdpdGggbW9yZSB0aGFuIDEwMDEgZnJlcXVlbmN5IHBvaW50cyABMAEBAQE- X-Mailer: YahooMailWebService/0.8.194.680 Date: Fri, 11 Jul 2014 10:33:14 -0700 From: Niklas Troedsson Subject: Error after sympy lambdify function update using vector() dot.class To: "python-list@python.org" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="-432529009-1483969506-1405099994=:42214" X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Niklas Troedsson List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 400 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1405100802 news.xs4all.nl 2938 [2001:888:2000:d::a6]:38543 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:74361 ---432529009-1483969506-1405099994=:42214 Content-Type: multipart/alternative; boundary="-432529009-1744019865-1405099994=:42214" ---432529009-1744019865-1405099994=:42214 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable I am new to the forum and programming Python.=0A=0ARecently I updated both = Canopy and its packages, I am now using Canopy 1.4.1.1975 and sympy 0.7.5-1= .=0A=0AIn an earlier version my code to solve algebra and substitute a lot = of constants and transfer functions with more than 1001 frequency points wo= rked. But after the package update to the versions above, lambdify function= stopped working and shows an invalid syntax error, pointing to the "dot" i= n alg.const1.=0A=0ACan anybody help to get around this without changing the= original code of using alg.const1, instead of the cumbersome fix of renami= ng all variables and make them single variable names such as alg_const1.=0A= =0A%run testofdotclasslambdify.py=0A=A0 File "", line 1=0A=A0=A0=A0= lambda alg.npnt1,alg.npnt2,alg.ntf1,alg.const1: (alg.const1*(alg.npnt2 + a= lg.ntf1)/(alg.const1 + alg.npnt2 + alg.ntf1))=0A=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0 ^=0ASyntaxError: invalid syntax=0A=A0=0AI have attached the *.= py code and copied in below.=0A=0AThank you!=0A=0Atestofdotclasslambdify.py= =0A.=0A=0Aimport numpy as np=0Aimport pylab as pl=0Aimport sympy as sy=0A= =0A# empty class for variables=0Aclass vector:=0Apass=0A#=0A=0A# frequency,= radians and Laplace representation=0Afqaxst =3D 1.0e2=0Afqaxsp =3D 100.0e6= =0Afqnop =3D 1001=0Afq =3D np.logspace(np.log10(fqaxst),np.log10(fqaxs= p),fqnop)=0Awq =3D 2*np.pi*fq=0As =3D 1.0j*wq=0A=0Antf1 =3D np.e= xp(-s*1.0/10e6)=0A=0Anpnt1 =3D 1=0Anpnt2 =3D 1=0Aconst1 =3D 1=0A=0A### so= lve #1 with lambdify =0A# set equation, variables and constants to solve= =0Aalg_phiout, alg_npnt1, alg_npnt2 =3D sy.symbols('alg_phiout, alg_npnt1, = alg_npnt2')=0Aalg_ntf1, alg_const1 =3D sy.symbols('alg_ntf1, al= g_const1', complex =3D True)=0A=0Asubst1 =3D (alg_npnt1, alg_npnt2, a= lg_ntf1, alg_const1)=0A=0Asol =3D vector() =0Asol.algnpnt1 =3D (al= g_npnt1-alg_phiout/alg_const1)*(alg_ntf1+alg_npnt2)-alg_phiout=0Asol.solnpn= t1 =3D sy.simplify(sy.diff(sy.solve(sol.algnpnt1, alg_phiout)[0], alg_npnt1= ,1))=0Asol.refnum1 =3D sy.lambdify(subst1, sol.solnpnt1)=0Atf1 = =3D sol.refnum1(npnt1, npnt2, ntf1, const1)=0A=0A# plot=0Apl.figure(1)=0Apl= .semilogx(fq,10*np.log10(np.abs(tf1)**2),label=3D'tf1')=0Apl.legend(loc=3D'= lower right')=0Apl.title('TF')=0Apl.xlabel('Frequency, Hz')=0Apl.ylabel('Sp= ectrum, dB')=0Apl.grid(b=3D'on')=0Apl.show()=0A=0A### solve #2 with lambdif= y using vector as dot-class variables=0A# problem with code below, which = wasn't a probelm before updating Canopy package manager 2014-July-01=0A# = I do not want all variables as signle variables but bundled in a vector dot= .class=0A=0A# set equation, variables and constants to solve=0Aalg =3D vect= or()=0A=0Aalg.phiout, alg.npnt1, alg.npnt2 =3D sy.symbols('alg.phiout, alg.= npnt1, alg.npnt2')=0Aalg.ntf1, alg.const1 =3D sy.symbols('alg.n= tf1, alg.const1', complex =3D True)=0A=0Asubst2 =3D (alg.npnt1, alg.n= pnt2, alg.ntf1, alg.const1)=0Asol.algnpnt2 =3D (alg.npnt1-alg.phiout/alg.co= nst1)*(alg.ntf1+alg.npnt2)-alg.phiout=0Asol.solnpnt2 =3D sy.simplify(sy.dif= f(sy.solve(sol.algnpnt2, alg.phiout)[0], alg.npnt1,1))=0Asol.refnum2 =3D s= y.lambdify(subst2, sol.solnpnt2)=0A=0A# problem with new version of lambdif= y in new sympy, old version of lambdify/sympy worked=0A# Gives the followin= g error code:=0Atf2 =3D sol.refnum2(npnt1, npnt2, ntf1, const1)=0A= # tf2 =3D sol.refnum2(npnt1, npnt2, ntf1, const1)=0A# In [10]: %ru= n testofdotclasslambdify.py=0A# File "", line 1=0A# lambda = alg.npnt1,alg.npnt2,alg.ntf1,alg.const1: (alg.const1*(alg.npnt2 + alg.ntf1)= /(alg.const1 + alg.npnt2 + alg.ntf1))=0A# ^=0A# SyntaxError= : invalid syntax=0A# In [11]:=0A=0A# plot=0Apl.figure(2)=0Apl.semilogx(fq,1= 0*np.log10(np.abs(tf1)**2),label=3D'tf1')=0Apl.legend(loc=3D'lower right')= =0Apl.title('TF')=0Apl.xlabel('Frequency, Hz')=0Apl.ylabel('Spectrum, dB')= =0Apl.grid(b=3D'on')=0Apl.show() ---432529009-1744019865-1405099994=:42214 Content-Type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable
I am new to the forum and programm= ing Python.

Recently I updated both C= anopy and its packages, I am now using Canopy 1.4.1.1975 and sympy 0.7.5-1.=

In an earlier version my code to sol= ve algebra and substitute a lot of constants and transfer functions with mo= re than 1001 frequency points worked. But after the package update to the versions above, lambdif= y function stopped working and shows an invalid syntax error, pointing to t= he "dot" in alg.const1.

Can anybody help to get around this without changing the original = code of using alg.const1, instead of the cumbersome fix of renaming all var= iables and make them single variable names such as alg_const1.

%run testofdotclasslambdify.py
  File "<string>", line 1
    lambda alg.npnt1,alg.npnt2,alg.ntf1,alg.const1:= (alg.const1*(alg.npnt2 + alg.ntf1)/(alg.const1 + alg.npnt2 + alg.ntf1))        &nbs= p;     ^
SyntaxError: invalid = syntax
 
I have atta= ched the *.py code and copied in below.

Thank you!

t= estofdotclasslambdify.py
.
import numpy as np
= =0A
import pylab = as pl
=0A
im= port sympy as sy
=0A

=0A
# empty class for vari= ables
=0A
cl= ass vector:
=0A
pass
=0A
#
=0A

=0A
# frequency, radians and Laplace= representation
=0A
fqaxst =3D 1.0e2
=0A
fqaxsp =3D 100.0e6
=0A
fqnop =3D 1001
=0A
fq =3D np.logspace(np.log10(fqaxs= t),np.log10(fqaxsp),fqnop)
=0A
wq =3D 2*np.pi*fq
=0A
s =3D 1.0j*wq
=0A

=0A
ntf1 =3D np.exp(-s*1.0/10e6)
=0A

=0A
npnt1 =3D 1
=0A
npnt2 =3D 1
=0A
const1 =3D 1
=0A

=0A
### solve= #1 with lambdify
=0A
# set equation, variables and constants to solve
=0A
alg_phiout, alg_npnt1= , alg_npnt2 =3D sy.symbols('alg_phiout, alg_npnt1, alg_npnt2')
=0Aalg_ntf1, alg_const1= =3D sy.symbols('alg_ntf1, alg_const1', complex =3D True)
= =0A

=0A
subst1 =3D (alg_npnt1, alg_npnt2, alg_= ntf1, alg_const1)
=0A

=0A
sol =3D vect= or()
=0A
sol.algnpnt1 =3D (alg_npnt1-alg_phiout/alg_const1)*(alg_ntf1+alg_npnt2)-al= g_phiout
=0A
sol.solnpnt1 =3D sy.simplify(sy.diff(sy.solve(sol.algnpnt1, alg_phiout)[0]= , alg_npnt1,1))
=0A
sol.refnum1 =3D sy.lambdify(subst1, sol.solnpnt1)
=0A
tf1 =3D sol.ref= num1(npnt1, npnt2, ntf1, const1)
=0A

=0A
# plot=
=0A
pl.figu= re(1)
=0A
pl= .semilogx(fq,10*np.log10(np.abs(tf1)**2),label=3D'tf1')
=0A
pl.legend(loc=3D'lower rig= ht')
=0A
pl.= title('TF')
=0A
pl.xlabel('Frequency, Hz')
=0A
pl.ylabel('Spectrum, dB')
=0A
pl.grid(b=3D'on')
=0A
pl.show()
=0A

=0A
### solve #2 with lambdify using vector as dot-class = variables
=0A
# I do not want all variables as signle variables = but bundled in a vector dot.class
=0A

=0A
# set= equation, variables and constants to solve
=0A
alg =3D vector()
=0A
<= br style=3D"" class=3D"">
=0A
alg.phiout, alg.npnt1, alg.npnt2 =3D sy.symbols('alg.phio= ut, alg.npnt1, alg.npnt2')
=0A
alg.ntf1, alg.const1 =3D sy.symbols('alg.ntf= 1, alg.const1', complex =3D True)
=0A

=0A
subst= 2 =3D (alg.npnt1, alg.npnt2, alg.ntf1, alg.const1)
=0A
=0A
sol.algnpnt2 =3D (alg.npnt1-a= lg.phiout/alg.const1)*(alg.ntf1+alg.npnt2)-alg.phiout
=0A
sol.solnpnt2 =3D sy.simplify(= sy.diff(sy.solve(sol.algnpnt2, alg.phiout)[0], alg.npnt1,1))
=0A
sol.refnum2 =3D sy.la= mbdify(subst2, sol.solnpnt2)
=0A

=0A
# problem = with new version of lambdify in new sympy, old version of lambdify/sympy wo= rked
=0A
# G= ives the following error code:
=0A
tf2 =3D sol.refnum2(npnt1, npnt2, ntf1, con= st1)
=0A
# t= f2 =3D sol.refnum2(npnt1, npnt2, ntf1, const1)
=0A
# In [10]: %run testofdotcl= asslambdify.py
=0A
# File "<string>", line 1
=0A
# lambda alg.npnt1,alg.npnt2,alg.ntf= 1,alg.const1: (alg.const1*(alg.npnt2 + alg.ntf1)/(alg.const1 + alg.npnt2 + = alg.ntf1))
=0A
# ^
=0A
# SyntaxError: invalid syntax
=0A
# In [11]:
=0A

=0A
# plot
=0A
pl.figure(2)
=0A
pl.semilogx(fq,10*np.log10(np.abs(tf1)**2),label=3D'tf1')=0A
pl.legend(l= oc=3D'lower right')
=0A
pl.title('TF')
=0A
pl.xlabel('Frequency, Hz')
=0A
pl.ylabel('Spectrum, dB')
=0Apl.grid(b=3D'on')=0A
pl.show()=
=0A



= ---432529009-1744019865-1405099994=:42214-- ---432529009-1483969506-1405099994=:42214 Content-Type: text/plain; name="testofdotclasslambdify.py" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="testofdotclasslambdify.py" aW1wb3J0IG51bXB5IGFzIG5wDQppbXBvcnQgcHlsYWIgYXMgcGwNCmltcG9y dCBzeW1weSBhcyBzeQ0KDQojIGVtcHR5IGNsYXNzIGZvciB2YXJpYWJsZXMN CmNsYXNzIHZlY3RvcjoNCiAgICBwYXNzDQojDQoNCiMgZnJlcXVlbmN5LCBy YWRpYW5zIGFuZCBMYXBsYWNlIHJlcHJlc2VudGF0aW9uDQpmcWF4c3QgPSAx LjBlMg0KZnFheHNwID0gMTAwLjBlNg0KZnFub3AgID0gMTAwMQ0KZnEgICAg ID0gbnAubG9nc3BhY2UobnAubG9nMTAoZnFheHN0KSxucC5sb2cxMChmcWF4 c3ApLGZxbm9wKQ0Kd3EgICAgID0gMipucC5waSpmcQ0KcyAgICAgID0gMS4w aip3cQ0KDQpudGYxICAgPSBucC5leHAoLXMqMS4wLzEwZTYpDQoNCm5wbnQx ICA9IDENCm5wbnQyICA9IDENCmNvbnN0MSA9IDENCg0KIyMjIHNvbHZlICMx IHdpdGggbGFtYmRpZnkgDQojICAgc2V0IGVxdWF0aW9uLCB2YXJpYWJsZXMg YW5kIGNvbnN0YW50cyB0byBzb2x2ZQ0KYWxnX3BoaW91dCwgYWxnX25wbnQx LCBhbGdfbnBudDIgPSBzeS5zeW1ib2xzKCdhbGdfcGhpb3V0LCBhbGdfbnBu dDEsIGFsZ19ucG50MicpDQphbGdfbnRmMSwgYWxnX2NvbnN0MSAgICAgICAg ICAgICA9IHN5LnN5bWJvbHMoJ2FsZ19udGYxLCBhbGdfY29uc3QxJywgY29t cGxleCA9IFRydWUpDQoNCnN1YnN0MSAgICAgICA9IChhbGdfbnBudDEsIGFs Z19ucG50MiwgYWxnX250ZjEsIGFsZ19jb25zdDEpDQoNCnNvbCAgICAgICAg ICA9IHZlY3RvcigpICAgIA0Kc29sLmFsZ25wbnQxID0gKGFsZ19ucG50MS1h bGdfcGhpb3V0L2FsZ19jb25zdDEpKihhbGdfbnRmMSthbGdfbnBudDIpLWFs Z19waGlvdXQNCnNvbC5zb2xucG50MSA9IHN5LnNpbXBsaWZ5KHN5LmRpZmYo c3kuc29sdmUoc29sLmFsZ25wbnQxLCBhbGdfcGhpb3V0KVswXSwgYWxnX25w bnQxLDEpKQ0Kc29sLnJlZm51bTEgID0gc3kubGFtYmRpZnkoc3Vic3QxLCBz b2wuc29sbnBudDEpDQp0ZjEgICAgICAgICAgPSBzb2wucmVmbnVtMShucG50 MSwgbnBudDIsIG50ZjEsIGNvbnN0MSkNCg0KIyBwbG90DQpwbC5maWd1cmUo MSkNCnBsLnNlbWlsb2d4KGZxLDEwKm5wLmxvZzEwKG5wLmFicyh0ZjEpKioy KSxsYWJlbD0ndGYxJykNCnBsLmxlZ2VuZChsb2M9J2xvd2VyIHJpZ2h0JykN CnBsLnRpdGxlKCdURicpDQpwbC54bGFiZWwoJ0ZyZXF1ZW5jeSwgSHonKQ0K cGwueWxhYmVsKCdTcGVjdHJ1bSwgZEInKQ0KcGwuZ3JpZChiPSdvbicpDQpw bC5zaG93KCkNCg0KIyMjIHNvbHZlICMyIHdpdGggbGFtYmRpZnkgdXNpbmcg dmVjdG9yIGFzIGRvdC1jbGFzcyB2YXJpYWJsZXMNCiMgICBwcm9ibGVtIHdp dGggY29kZSBiZWxvdywgd2hpY2ggd2Fzbid0IGEgcHJvYmVsbSBiZWZvcmUg dXBkYXRpbmcgQ2Fub3B5IHBhY2thZ2UgbWFuYWdlciAyMDE0LUp1bHktMDEN CiMgICBJIGRvIG5vdCB3YW50IGFsbCB2YXJpYWJsZXMgYXMgc2lnbmxlIHZh cmlhYmxlcyBidXQgYnVuZGxlZCBpbiBhIHZlY3RvciBkb3QuY2xhc3MNCg0K IyBzZXQgZXF1YXRpb24sIHZhcmlhYmxlcyBhbmQgY29uc3RhbnRzIHRvIHNv bHZlDQphbGcgPSB2ZWN0b3IoKQ0KDQphbGcucGhpb3V0LCBhbGcubnBudDEs IGFsZy5ucG50MiA9IHN5LnN5bWJvbHMoJ2FsZy5waGlvdXQsIGFsZy5ucG50 MSwgYWxnLm5wbnQyJykNCmFsZy5udGYxLCBhbGcuY29uc3QxICAgICAgICAg ICAgID0gc3kuc3ltYm9scygnYWxnLm50ZjEsIGFsZy5jb25zdDEnLCBjb21w bGV4ID0gVHJ1ZSkNCg0Kc3Vic3QyICAgICAgID0gKGFsZy5ucG50MSwgYWxn Lm5wbnQyLCBhbGcubnRmMSwgYWxnLmNvbnN0MSkNCiAgICANCnNvbC5hbGdu cG50MiA9IChhbGcubnBudDEtYWxnLnBoaW91dC9hbGcuY29uc3QxKSooYWxn Lm50ZjErYWxnLm5wbnQyKS1hbGcucGhpb3V0DQpzb2wuc29sbnBudDIgPSBz eS5zaW1wbGlmeShzeS5kaWZmKHN5LnNvbHZlKHNvbC5hbGducG50MiwgYWxn LnBoaW91dClbMF0sIGFsZy5ucG50MSwxKSkNCnNvbC5yZWZudW0yICA9IHN5 LmxhbWJkaWZ5KHN1YnN0Miwgc29sLnNvbG5wbnQyKQ0KDQojIHByb2JsZW0g d2l0aCBuZXcgdmVyc2lvbiBvZiBsYW1iZGlmeSBpbiBuZXcgc3ltcHksIG9s ZCB2ZXJzaW9uIG9mIGxhbWJkaWZ5L3N5bXB5IHdvcmtlZA0KIyBHaXZlcyB0 aGUgZm9sbG93aW5nIGVycm9yIGNvZGU6DQp0ZjIgICAgICAgICAgPSBzb2wu cmVmbnVtMihucG50MSwgbnBudDIsIG50ZjEsIGNvbnN0MSkNCiMgdGYyICAg ICAgICA9IHNvbC5yZWZudW0yKG5wbnQxLCBucG50MiwgbnRmMSwgY29uc3Qx KQ0KIyAgIEluIFsxMF06ICVydW4gdGVzdG9mZG90Y2xhc3NsYW1iZGlmeS5w eQ0KIyAgICBGaWxlICI8c3RyaW5nPiIsIGxpbmUgMQ0KIyAgICAgIGxhbWJk YSBhbGcubnBudDEsYWxnLm5wbnQyLGFsZy5udGYxLGFsZy5jb25zdDE6IChh bGcuY29uc3QxKihhbGcubnBudDIgKyBhbGcubnRmMSkvKGFsZy5jb25zdDEg KyBhbGcubnBudDIgKyBhbGcubnRmMSkpDQojICAgICAgICAgICAgICAgXg0K IyAgIFN5bnRheEVycm9yOiBpbnZhbGlkIHN5bnRheA0KIyBJbiBbMTFdOg0K DQojIHBsb3QNCnBsLmZpZ3VyZSgyKQ0KcGwuc2VtaWxvZ3goZnEsMTAqbnAu bG9nMTAobnAuYWJzKHRmMSkqKjIpLGxhYmVsPSd0ZjEnKQ0KcGwubGVnZW5k KGxvYz0nbG93ZXIgcmlnaHQnKQ0KcGwudGl0bGUoJ1RGJykNCnBsLnhsYWJl bCgnRnJlcXVlbmN5LCBIeicpDQpwbC55bGFiZWwoJ1NwZWN0cnVtLCBkQicp DQpwbC5ncmlkKGI9J29uJykNCnBsLnNob3coKQ0K ---432529009-1483969506-1405099994=:42214--