From 5c6c645b138dadc59c3fb97da11ac41b4dd382a2 Mon Sep 17 00:00:00 2001 From: Joerg Boenisch Date: Mon, 25 Apr 2016 10:13:25 +0200 Subject: [PATCH] cam testenv blue bars (side and top), test background image for standard-frontend and qweb reports --- ext/custom-addons/cam_testenv/__init__.py | 4 +- ext/custom-addons/cam_testenv/__openerp__.py | 4 +- ext/custom-addons/cam_testenv/background.xcf | Bin 80910 -> 80934 bytes .../cam_testenv/controllers/__init__.py | 2 +- .../controllers/testenv_controller.py | 17 ++--- .../cam_testenv/print_background.xcf | Bin 0 -> 82174 bytes ext/custom-addons/cam_testenv/report.py | 49 ++++++++++++ .../cam_testenv/static/src/css/testenv.css | 26 +++++-- .../static/src/img/print_background.png | Bin 0 -> 26060 bytes .../static/src/img/print_test_inkscape.svg | 69 +++++++++++++++++ .../static/src/img/print_test_n.svg | 70 ++++++++++++++++++ .../cam_testenv/static/src/js/testenv.js | 2 +- .../cam_testenv/views/cam_testenv.xml | 29 ++++++++ 13 files changed, 250 insertions(+), 22 deletions(-) create mode 100644 ext/custom-addons/cam_testenv/print_background.xcf create mode 100644 ext/custom-addons/cam_testenv/report.py create mode 100644 ext/custom-addons/cam_testenv/static/src/img/print_background.png create mode 100644 ext/custom-addons/cam_testenv/static/src/img/print_test_inkscape.svg create mode 100644 ext/custom-addons/cam_testenv/static/src/img/print_test_n.svg diff --git a/ext/custom-addons/cam_testenv/__init__.py b/ext/custom-addons/cam_testenv/__init__.py index b0f2271d..601f4302 100644 --- a/ext/custom-addons/cam_testenv/__init__.py +++ b/ext/custom-addons/cam_testenv/__init__.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- ############################################################################## # -# OpenERP, Open Source Management Solution +# OpenERP, Open Source Management Solution # Copyright (C) 20014-2016 Camadeus GmbH (). # # This program is free software: you can redistribute it and/or modify @@ -20,5 +20,7 @@ ############################################################################## import controllers +import report + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/ext/custom-addons/cam_testenv/__openerp__.py b/ext/custom-addons/cam_testenv/__openerp__.py index 14c44a21..d54d10d2 100644 --- a/ext/custom-addons/cam_testenv/__openerp__.py +++ b/ext/custom-addons/cam_testenv/__openerp__.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- ############################################################################## # -# OpenERP, Open Source Management Solution +# OpenERP, Open Source Management Solution # Copyright (C) 20014-2016 Camadeus GmbH (). # # This program is free software: you can redistribute it and/or modify @@ -33,7 +33,7 @@ Test Environment """, 'author': 'camadeus Consulting GmbH', 'website': 'http://www.camadeus.at', - 'depends': ['web','base'], + 'depends': ['report', 'web', 'base'], 'data': [ 'views/cam_testenv.xml', ], diff --git a/ext/custom-addons/cam_testenv/background.xcf b/ext/custom-addons/cam_testenv/background.xcf index eb98e7b84edfe7f67b81b6d8ff0e7b16b12cefe1..1af5fe07b043da39cfbcf656caa43c8d10f46978 100644 GIT binary patch delta 1177 zcmYM!e`r-@7{KxGyWM#=W;Ro|5~D45ch?qZ<+{+6tXvn&QWXm?d7k(*jnDYZF>ul*9iIRkCgU?(A|45YzWJ;gEe7o;oRJuU%C6}19=@G z^W}{gB2Son%Z(VtM2uSHs}B-Gl#{VQSB1xO4i2WuS3$A&bb zpL7M*IcV!jR4(%yZiVDLSpNw;brzaVW#AdB+*%JWjA{~6+aYb$X{%0Kb=s=a8*~8L zKZ4f=VTTQMy`)3%roHSu0dL3P9lw9@5MQs-i8cQPn$t=@7P)|jR=L%1iZGR2ipQq4-K zQ$5ORKsgO-OjDY1yGB)}xDrlrs1C)UcUSDK-l5p0?zW;_TT$3p@&A!`6Q2Q*Q{<5wTR_AGfmflSJH!ruPHrx@3hWhW#`Z1SY5&Gu;16Kp= AX8-^I delta 1184 zcmX}se`r-@7{KxGd$)NvMlo_t=PDLnb?ZXYn$^0+3a2rz^pE<7tsi1K8LOL=VsW86 zDv32J=Pid0WQ10>GQ-KuCTgL{7}1DUj7da4DBVBO&$&yi@6p`0J^Nl*m5oG}7JI#8dV2bwBaM-5 zA@hN!ZiPuGxMn8sI7+xBp$D{DkE#7~v;W&gJ0ZG92X#zC8q;}Qg5nZYs#XnZ);hK6 zIdy6eWQq?O9Mh1-bY7RBq(qgfRfC$fPHp-WNudd_KcLBqHkHfv%L`z|6s*j`gU4a*(F{Cdmh0c^Lj{`b;_($W}PzY)P33u zTV91{-h#9pbv&#-c;PPCaTq$SR+sm8-3mP$wH5Yx-nUPObOH|C0Pl9gp;7p7w=$EE zdlWwT4NlC1lTMG5b5#SMTdFT6l!q^mz{uUQS|bl>ryTs70XXO2=T5;7zSXar722L{85@x-xSw}2J6sf( zt6@=6EoxUU+j+Nx}%|f{(tMAnJwEGnbRD(9M0@Q{H81Mm7j)j zf!9_L5?|>%UC>{Id#*lnwOy!tno#$At~DMi3upOQri`BM#bGM<`jW7wBsbm=l97J_ D_w?tB diff --git a/ext/custom-addons/cam_testenv/controllers/__init__.py b/ext/custom-addons/cam_testenv/controllers/__init__.py index a4e03b1d..23f15e7e 100644 --- a/ext/custom-addons/cam_testenv/controllers/__init__.py +++ b/ext/custom-addons/cam_testenv/controllers/__init__.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- ############################################################################## # -# OpenERP, Open Source Management Solution +# OpenERP, Open Source Management Solution # Copyright (C) 20014-2016 Camadeus GmbH (). # # This program is free software: you can redistribute it and/or modify diff --git a/ext/custom-addons/cam_testenv/controllers/testenv_controller.py b/ext/custom-addons/cam_testenv/controllers/testenv_controller.py index 572d8896..3be243a6 100644 --- a/ext/custom-addons/cam_testenv/controllers/testenv_controller.py +++ b/ext/custom-addons/cam_testenv/controllers/testenv_controller.py @@ -28,28 +28,29 @@ from openerp.addons.web import http from openerp.addons.web.controllers.main import Home from openerp.http import request -class Home_Debug(Home): +class Home_Debug(Home): @http.route('/', type='http', auth="none") def index(self, s_action=None, db=None, **kw): - + # Check arguments if openerp.tools.config.get('show_debug', False): return http.local_redirect('/web?debug=1', query=request.params, keep_hash=True) else: return http.local_redirect('/web', query=request.params, keep_hash=True) + class WebClient(http.Controller): _cp_path = "/web/testenv" @http.jsonrequest - def testmode(self, req, db=False): + def testmode(self, req, db=False): if not db and req and req.session: db = req.session._db - + if db: h = req.httprequest.environ['HTTP_HOST'].split(':')[0] - d = h.split('.')[0] + d = h.split('.')[0] r = openerp.tools.config.get('dbfilter_test', 'test.*').replace('%h', h).replace('%d', d) try: pattern_list = eval(r) @@ -57,12 +58,10 @@ class WebClient(http.Controller): pattern_list = [pattern_list] except: pattern_list = [r] - + for pattern in pattern_list: - if isinstance(pattern, str) and re.match(pattern, db): + if isinstance(pattern, str) and re.match(pattern, db): return True return False - - # vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/ext/custom-addons/cam_testenv/print_background.xcf b/ext/custom-addons/cam_testenv/print_background.xcf new file mode 100644 index 0000000000000000000000000000000000000000..909ca4b52899e9b61f0dea177aa3d90bbac51943 GIT binary patch literal 82174 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 +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +import re +import openerp +from openerp import models +import logging + +_logger = logging.getLogger(__name__) + + +class Report(models.Model): + _inherit = "report" + + def render(self, cr, uid, ids, template, values=None, context=None): + testmode = {'testmode': False} + + r = openerp.tools.config.get('dbfilter_test', 'test.*') + try: + pattern_list = eval(r) + if not hasattr(pattern_list, '__iter__'): + pattern_list = [pattern_list] + except: + pattern_list = [r] + + for pattern in pattern_list: + if isinstance(pattern, str) and re.match(pattern, cr.dbname): + testmode = {'testmode': True} + _logger.info('testmode enabled for reports') + + if not values: + values = {} + values.update(testmode) + return super(Report, self).render(cr, uid, ids, template, values, context) diff --git a/ext/custom-addons/cam_testenv/static/src/css/testenv.css b/ext/custom-addons/cam_testenv/static/src/css/testenv.css index 733c3f8c..a36790a4 100644 --- a/ext/custom-addons/cam_testenv/static/src/css/testenv.css +++ b/ext/custom-addons/cam_testenv/static/src/css/testenv.css @@ -1,10 +1,20 @@ - -.test-mode-activated { - background-size: cover; - background-attachment: fixed; +.test-mode-activated .oe_view_manager_wrapper { +background-image: url("/cam_testenv/static/src/img/back-testenv.jpg"); +background-size: cover; +background-attachment: fixed; +} +.test-mode-activated .oe_view_manager_body, +.test-mode-activated .oe_view_manager_wrapper > * { +opacity: 0.9; +background: rgba(255,255,255,.8) !important; +} + +.test-mode-activated .oe_list_field { +opacity: 1; +} + +.test-mode-activated .oe_leftbar > * , +.test-mode-activated .oe_view_manager_header > *{ +background: lightblue; } -.test-mode-activated > * { - opacity: 0.9; - background-color: rgba(0,0,0,0); -} \ No newline at end of file diff --git a/ext/custom-addons/cam_testenv/static/src/img/print_background.png b/ext/custom-addons/cam_testenv/static/src/img/print_background.png new file mode 100644 index 0000000000000000000000000000000000000000..6c9324dc546da1e930a0710e44868b547b4b906e GIT binary patch literal 26060 zcmce;2T+q;xGst)q9EX}APNFv0f{uJ(xofCBp_W-dJ}?_(3C17pd!836iP&zln@nx zA0b2x0qFt~dJ{tEoP}r3+4t_*XXfm=GuIi(B;S|yt@W3yo5I1%=_mIr;B<7%=a2p$qsz>` z2tH)=yRWaw`0K<47M@$j+%8puk1qLXKJZib_Vjf0@}pDtb+q?$e0(Lq)z9UM_I-UL z^XIIbbaYqf?rW$*1BVtzo#9#cQz`q&tGQ#(3`#M8yZNIZCzSkFr}$aa?%`E-jN7#rPiRl`6oY;Qt>BK)(f!hNP-Fm4j}iiZzOaKo z_F#R_#E(Avf4{w(PXGVB`uFV>Jut-CQt%K+)jG<*4?n^GE|l26l*z-FwLcS{`Lv0Gn~}?apUwqZPalMk z2tFKJJg`kc$1}sHKUl~U;Oa;AU?+7s6HD$6-FmpWnt#|WR~^qBjo}OXC71a~c>Nfi zxGS|W0$MA-Lu{5^@ayjB>9!QfEs~=s#@Eu(>1p-xalrCh9y_)z{`%zM96RH|TGh=+ z_v!kXSSNFHr-6a+7C6?-bk)*IQnw^o1DS1+`)wb zsbb8J+iAg?Rt@hdDQRGZ2a08#{*T>2SrJ9=i{#fHxa#iXF zBo&mT<2wju=0UlCzl*XYEF$yzo+$S`b1EGxn|cI8owKfVzQi(1N2h3xMP9S->1pRK zR+hdDDd*u^xX9HlTqsIMN9^?~Q<-1X!Eh7}TVT~_+tRMCPDb=S zEb`6il$RJ-x*Qa&ZtHx@xGZf$%1w%`Q?A;2dCD$IZum&WDWdm-;3+RtH{ELAC-KB* zRA94~mNM+DBsr7T5l7mWUUZr4k=cZUy=EFbv7DXwZg7}Xj#m4e4R5~kcYu3%?`4Ws z5)hBNY@#@-6D^tu+L0?$83L?e*@R0n{fA(5U=d;n2f@m?>$Np?0*OS;pX}q z3>xDb1HGB<>50~cWKGu|`4(|!E*73a6EsSmLr1al3QRQ1(<9xmgvhs6Z>T8c^ehEg!+P#qPyTnLW9Hw!(-$iokl&ku`N^gpHTm z4t%gJIk#D5Dn!-v^e(&F_Vf6W6N7UW7e2D*N_d~Nl#M8=tA}MwhA92L&>CFrWv+|h zQ=ZLJhp@937arXF-^)%A$fWJs^C_f}s>G*1v|l;0<4+^Aw5OG0goK?UwUa_K?D_uw z-G74q=U28TW7SzELk?|c7NU8-HZ-~W2co{Q|D9WkL5FpTga1><%?-D+1=At@5U>ss*QbUw`^ zF;x0BIkBi)F#pQarzL1gr0VLG>7>N&ipoEhN6Ss;8w-Zx zav{b813;5`ip|UkVOyU^zA=fN0@Hi8J&91_ISmixImn+(ioCPm`=-GomGd}Q)~Cyt z&h)v2!HXm}<#SfUV=F|e>%9p#lAC$|K2Wcs^Z@mGW2b`--O=5E;% zM@DlZ`lNP>bZ%7Rlwc))Kd;kLDl;EpzR#Eph1g zie)iDzw7BA9)5II@b4ALi!NznopFQvp+6mQ5Adn^zjDfOgQ?E1-3|$d z7CfxOdxybEmsO9f;nT>ft&(xd%hHSiH+w#noc=@{P|qb#c-2Mh>A&MjTz2z^0*`1S z;aXQ+RK>Whh-LVDVG_5!8w_`Lwj5(_D4)qrrOL>1l>V$@JX+ea6c z(?xN?L`g2JM^}1)6Yc1be}pBSR@l69E~)ICOhQMyTG13Mow#ueaAFFQO&?FGs6ZyO zd3X1$r#RKj+unaifsGSD4oK1ta1fJ%4&FV{-q15omg*AG_e;9X%-BEt6hOQ90XI1cuevgwvlCXc5munV(&aFC3G#O{m)4ejR zFS~)GtvKVw=C&Smg~Y}V%`rBg1wQXnU?4WEczu14&15X;poI*<^0Y7;U#45#w-l*9 zJXqOg7Fenq6vNL3W&n%+M@-F;iEcF%I11?Hoe-SQD)7*K zj^;>6i1?R8%C=+4u|PlG#2?B|om=%d@}$Ipg$xBHaw0B>&4jPDKuH-B)G|IpWdOcO zoWHf8{j{}>tL(_tgbS;-Dx_^WtYmJqqcYv6dPcMxtP4S-F(Y7pJJh6bm%*ePDj~-q zKxI_GkT8f75?OS5GX5r4#wy7$ejk41eNLf?sY zBA%DRV@EczRcU05&C1C^C*AZ5hl)CH&ZqQzA0A^pTpu6L+F#FOO8#UnUUQyq6?^hH zA))c3cvHjakSspaKu8+F%xq(Yk+GuIZA?|MaRiHB6dabfzV$$jmzdR#> zqLStuo}6Ub4P0)-*x_#Yb8M|=*g_=G;itma zHKoXSM7qDf6dQ)jG@wFWaSwO|DRI1iv=3dKwU+ZqjV&_n^~aUpOLjRCSlP(o?D4og z;^5Ek=cdTwm*xD^)u zs`MQsLWu$MTK8R25~4d$anJYKkyX#FMm}%I;)WH^Q{Q(XjKljT3M{Jbw3j_ln^>H? zPcAf4Nrod>iNxB++ubEPM@5FSSHRWqyOD-hvu@Y*BF+IRtanaWG$afh#NT6bYxZIsDYC#ASql6BQ z%c@5~L1la)qs)w;9AfnTR6}{%J(slM3HvR|B0*nzP+Pm_M9>G7<<%w}nHBHwh9~Uk z0oL4Sx?vEmub1TS$swmJ_e0m)3K{bL$<=fFtyWPQRyrX*LbR)J%MeR3LD3%>qjU2B zYjxQz9=^cYHX3JbzF(I*%H=%3`+XVlQdfZN>N-+|WZ znpIDZOsLtyqW1&2ILT$ZZ>Q0s!6Pi!Sy0Y7%#*O#!6*HVADWj&vvg2YVGI9PDk5Kk zfewC=$-`4Wr4Zz=Ub{r6+HzV|T<{pJxZ!~w2gdBy;&$kmJ6bFQIu)i&+zotgbTpfH zdTxTF#gvP3NanDbN8WGhHU*RCw}(c~?7~@MQus$AG|BqmACNp39&L_eTonChUDiv9^cn(>HV5#Thh28;-%>kw5L*ovz0L1; zK?*pasIW)bz4kB2Bbl%8@=3q6vvm`ivucGF5#m)ZnrfIHoZJ{8w%o7t1ml1yTnl& zQZ&0yq;Atae529yRi^|?JG`FE#Ky?jRbNiK(N-8!5OXGV%w2n8(BkLW*s4OXN%3Fh zsB|o`PJGHJ9qL>-C(K?(_UYELgy=%(QiGKh3EsaHwretXM=Fae<8{~V?{L;5t%+{Z zH*iUx>FJrhjJtWSqB0YQa6DLj;@88cHR%IGZf<_bRh`8_OjpKZS$r-MwG%<)xnNZD zO7=2_KUDmCA|9tyoswc)B$t9F#`Z3Gir{Umqp}#Lafs1E`|@=}z7&w`d+{HxA~Us? znKgurC*z`NrmG%OQv6C#v1A&k2$>qZ$N$K8pPsqob&M|FU0ggE@#7DN>iqU+%DfI? zf{OTbtJ?JGBH!V6cP;8`;Lp>a8+~Hfb_DhZ3d5N^*aS02X*bAZYKDD-vj*(jd!Mn= zF^3Q9y+%}NsOj%2C|Js{JRQ-K;@{tpvVL(KOo;OBVLpbDa?NOI8S`A_u{aN_w)0k1 zYtm8B4)pP;t$DNniqS0YYTKk4N8ZQP7=w!PsBj__g1|oXUzagFMyF>aHPJ}sS~^ok z-dGtdhwzBWnBkv!6T;%gN1U&s_!{Lm5X` zKRhIqde0^57*4;M4`pU1g)bW)aOb}IDoZFNFFSqOm!gt$K4vh`{e2c2U3=gJH!JLZ zVBq&Z-L0(yvC8tY@*W=_^eNu#uA3FcO-(&Hu2i&IQ&kXTUy#PV1_Q~^Lu<~TNI_~H zw2YXg3q{X5Y*SdO^C^?xGQMxe8X7tU1TaC9D|I!(5B72X92b~`S*6MN4NMqps#NKbEhEmv*wMLNUFu_(@qs@hc@8V{K%*+(EQ>CMR_n!`177F*z%p zg7@p}2#)@+4zGslaNegUd%z7Q0-Uv1BDJoK6!aRaH`1K2cI%eiUxuIO3ejz)Hct^W z3y{6v{}_}M3jFbbu=lCdR;#P;D1y2v)mF+{^7oC}2U5Fh+El|{cUjoT4oKBTg8ZB2 zqZ@JLwT<~Z&51|^@}*|(RtEm10Q7zc!UV-6Eh~(`X6Ir8Fwn`P^7GS~Keow8 zZWfUlB}LSZIC@(x&npt&&>NkZn?9JPhsm4`{is^r8(d;34G@9x=d^DdUUd&B$Da|c zQOY(wO--hDdf%-^ld6#io3g1-D4MuRj6=yeuLh!=Qh%AbQ*7*fgZdL7^j}G!mNLIF zza!uMu$_46OpW^c2Yn4sIchX_a<=tBYvG63FF`MkzflRrmY1jR@2^M|GirD+ybp;{ zhlO}~*Gl<@@`P!9hu>lg2ypZAstw$yv`tL7bc*zKi?7sb*r21hNp!$r31`?E>LLOH zFj@rNJ8QO_|33b)C>B2PG@J3(EqU)MTejiwnGqMYodac-xnm$wyl3Bgf@=R&T|I7I zmwgQnNaIxBmUU*I3yfgnuc7V^s0Hwj> z1!*g_{P05BhQn=GhQuWXBpH@dm8z3~F@WY>`0bV@en?4ZKnh0hzCNzx?X_XMyI>cj zqJOIBA39<76p7?wDvA=>uQO%I=GA>;TQWoT;Sj7Q8*0 zbD&fM)#(Zv9(IEunW9%FaD$+vRXM!m#cNr!VSO_l7wTSD^?3o5_3x$TpXO8q1aP+W zDrOuB%0_>>;c~+C#iY-7Q~Il`R~7aEu7Kay{|kIEFCWP(b_dJ{UY>tYwl9XHo(;+Z6xECXpjWb+eSlJliBoW}la-ZI zbcCEg#oh!2#Co#Z4hQDXJPv~EHL}1|5Ve4AFP4%0>JL`WiryHhJ{%a~ZmZ&tj&)wT0~ zfK-8h2Yhn;YykoU1r& zTXSYf|EK~`SdBcMpp6~=2$dUw| z8+w{NxG?8Lp=gnQ{0(N^saf37==+8;0S4FDZ1GM= z-lKSQfc94yc_TTtaCS{cGX+RROCW@Sc;?xlPdGMa-7DZjQnH@g_V3l#ZtPBWR|~dH zhllOcMzTrIM!LFIO$PzYyGl=Obh@vVRbxa9tYy_Wn-V4T%l9B}~^@%LA zu?tYmYZ~hE_DrANZS1<;$L5m+l($Uf;Sx;A<{)mju8-!U6qy3)mB_J;uAzI(CvIeKYx>u@n? zy*NVp7kxD(^R=yL(n&8u%KV|ADOp>s-Y()0_yDz*s-60uN6@xzVrtCtC!PjSrz47N>jPE#tfj z4Ge4J13v$ioj`EpJkEcO<>b_Uc9TI_=~u-IQ#gSpS<<^HQQ_FfxSOJ0_erq zd32<-`*v^c?LudQ@h8EE~Qv<7G|^tuM2Si%PXB zdcwUQ3@M4<=wK>LYU^(M=$$urm%3RIrlP_(`o6huC{wNPZGs3t(1mO#Q_dk2;&!5f zZT0&|Mot^N3RmTWvbmpm2F}pu2*eNfi}48u^}X&B`!|h(R1h{lT%*f8`mL3*S~J!L zu`BIUOfKm>gXI)M@&aPt4w7c7>2`Vs55l`%|DCk(Lgt|QvUmmCQt}V@&$*kc%8D-U zC)4QXAFg80FBTmxArFI^D#nXiJyn#{Zztcr#oo;kKP15CCU~i3PM~dOox;l6otVUt zpLY#(hDN1#*E&j+1e1XrC6saEN!2ge<$rMjXlA-ec4c$aTkKHW&!Hcyu!yydb*QjYT}vfRqkea(Yu$L9d~jfbPXyY3 zzG=AD?db+_iV51=h94Es+s`o2hQ(OwgRv1~rM<$uA`Dv2()|lgva*fOyuC8*Y)b0g zhD?N(T0p~Z47a<^U0`jnj;X5yfCK>9(zDe*FYX}r_Vru&n>t#qyYXTNI11frJI(WR zxiN)!=V~dZmnXO@h#0FQ>J>1e;aqk7 z{Ze_5-*2RjtXpWPO?Fv)8mFdKRQ0YYMtRp-Q3*{S7$ECLpQoLaR1~und0b>)#8rL0 zMx`mtQy)HA$P1BV81Wt48_ShTgaa>f>Us(nEU6vW2e8Jb8OP?I2y7S%pc!SiqF-xT zY%bEMLz@W7H%IE!cW%yXcn@d>=8cj}88A6K09%F6Ng196{!hHugzz!)9h~WGMZa%O zFQ-VHl43dxV)=u6CTiQ_&lW1Lw%5o-^uo3xgW;*u3^!M_56^sIeKsv%6qpuRVT7TQ*tk>1)# zpqXxh$*k&gPJX`IG(Zv3OVQa;Fofu7lF_k@0K=?}4(o5f0VXz~s<6S!Cny>2o)L(h zk-!)^Rts-~%-|PujJmW%UXIZ9y9+6%c>;j5MJpSu-^Vwu&b__j2})fEc% zUVNQU+CVa`?&=E1J*gRX0=>?g>%M*JqDZX`BvQPoztKi1V6-wdoGH4~=3&wC7u*TP zuia!UdYDCqCerkL#U&zq$0Rve)8!Ik2C;a|hqX3CEQx&Y_O$2As7_@Ory&a>jn1x42PyV@s~bwVjz_lOfngJeFxtcZX0&NA|iUCCydTf|_`; zCXk9Wu`Hz8Hr<}`Vd$7`Sn#L9!!2E3jir$ef)A&~^zLbYJVP|4>przoJGHR5I9wX7 z%~`Ia8SqQx;LfhfBgIO$AyRT!|Lexl-gj#`JPa5zY(Hmm&6woNe)43bakMM2*rO0* ziaiXwRt=x-UsTZ$znMdL+u9650pqdT=81_(%-N{?yQ%BKBO5e z;1{TUQe#Vr7_p^I2kGPv2L$U6R|b@Wai}NyU2c3*(-j=e^1}W{shwfG_R8qZkWB<4 zk(Zaf0OVrd)q`*OU1Ig3AU1Ejxa{ z(*XrQKGXH4U0_)kjPTf!H+EshM8X~Rc&Edu@O0v1C%oFzu*!MpzfK#DsrP30s~RzG z)-q-D`ija8`5;3aLWEU5%FI{xFbq!|<^pY7#>b2RWQnw3*1SKv-qwc0~sa#AiGlK=;@B{i9{|+c5-`>qTgnuZy{kMHL z0a~Typt%%;F2VWG-rYemPam}SZxI@ig4KsBho(;<8_O-47m{w>(c}k-04m+A_D8Vv z>i7uCu99?`W~ty@SC5>Err3AfqMU2me)c**j8KZXZEl{taBYq%RW1R5lgFt^*_|`B zXW)o$&$_BYioz8a13dMQ+r+mGrq{CP5I@!?nLN{ru7ojWe7+B_(+NTEm z05&VDlL0;Jg&*x_xRud&DXe-#%tZ9oiM{o_>f1#wwj4}c3RQJ73jFg)CPKKewU6}S zMYjh#;$D!HajDCS%|aw>)!yMQmE+;5_N)6j6f)6yzyNjycz)k0!uo9cS=>wp}R z$9-X;Xu4U$p-%f4z%7jAkYNq}3VQi3W6Hcd*IGc6Af3DS5~98yb54J!a80{+;!B*| zcKYFJq-dpBMs4jYen_(Mv!TIW-#JB?^`uX9rkCu9a}n9ZF%X`t<#)F9S;J`)GA5#r zp#L*0|A8L)rLP5NdC+Oow!%!xt&};!jm)$w9~vI+sX#2cJjKh)eNY>0Yz{pjpE!>--?kHWJ2j=)Io*A55FirQztEhfoYDyp zkwWy+y7Hhx7Wtev7MYcJUu>mrxUrL854h^?_g>~?6sT~WiEUGj;yjnr9VKMynJ*0w zGcg_R2?C(_EKJxf2!hcN`LTAhA=`G{3H~AP(v06D(=s%s!-VgY>8CSpwSYCGZVr2U z-^PQs*^MO0(9+^+r2*X523S#Al5wdOLZfog$Q&LezQM)Glg~`S1{n~u8UpjI3CN{ z`1Y+1TAsRvx`DqRGlL2M#l;tPadlNp?|10T?(TcWNqJ=a(nP^FXtFQ|Zl;g_6i?GZ z%WbduRF#Z^=qV=Dp_ z8331&+GxKX1|_vVF*xQMV1DfPjwQBL@$&0zJ;-%-rlPYco$r+n;f0Zze4yTa?q{HI zvdIRQ1gz-nJ)|U8@OPJ}BU%hSRLa?9u+71eD?YQ9NQ9MS)}rU)qSTC{)hy9#>{@A1o5gV%u+JyQNm(~>&D1~=n zXct$POiA>l56)n&CSqkMGlCsEx?W6T%I$5g^TFrtD{Ef>>U&~+%SBY)4m-fS`?Ddt zM|60sG;@tX^nxkF6liZR15S*phtwAa42nL*!2ObUsLe6ATvpy(Y4p3X!?mr)$^kiv zJ5@2QZJ7dWVCPLwM)qFm0m_q-sG-LB8+50fd$aduKvWa^v02xn6%qnMeVPHy3q z6g^+#+$cYUFUMe@H9l|@*h+hM@OnjRgO27SHZ@|>x5rWnZUFn>R=x!j&c?TCaSj+Vy7>08 zh|N1^eqHBHx&>X&1d!pYI9ib-uA^hMDWt#OPgt+&UO4p1@|0#@=!aJuL2`Ipc6ivdNDg~)H8}Elm?k$}yHK+I2;hu;3UIGwFBTR3!ZxW_BE{(%JS?1Y z_1>{O(n^w(YJydb+)*eI`voXXe9A6ooo5eF5A z>`0*7f)gk%A)oIYhg~hWWCkq-Th$`18AM2uKcX3Z??S{yu?mH)#|+SKneDfnM2E>g zc$zIMJ1AV;dUR{&6I9$lef>}srv$)7wboq<<(|!i`U@JXCMI%!b2@DTRuJwcZWP|P zRz{Ikp>HF1|?@SUF)N zdv_{#pOPK(>_U8Y#i=jst8H056W^`NN{Z}7MFrr_yR~BTP#q2c-Bz2#U14a}z+*|L z1a8|w-iY5y>CRf)K4H(a<&ot@UcjYD%?2VqR7LZ7-vM^M@r(&;^+`{|w@E*q+%+L}xkkpObv@ROL*bGXgYTY~*3N=R6G z1s2`-@%uKSV5g{1Y*J4vpf)SZDVjd=;F*tGJt1t{(N~b;v4lKd@|zo1^z7&G9>g9$ zMZMW8Fo>&#cW~CA)TfWs-5rndaYG6*se`&Lav`WvHT}!EriRAg#UuxQSHDUyj&3n%l_CPu9J)rQ4S?g9F8P zS5?mw1^H7KucrvVW{7e(sbMx>=pq*4C_F`z3%2yef1ML>%RMlIS3At9dxSJ-G< zE}IAYzjulqs(NQG9?iMNa_21$$D*Qwfl3UIn@hhG=@V-**xaRnrgxOLH;m)o8S;rU z8hLB+%sh`3JBhvx9?CgRt-#P9NG#QTJ1{qYu5#?OXV%!L^zct{zNB@Ay>t654PCm_ z2J*suB%0j!FvL&euFYn?(&bEdsg1CY4H+ZH9jlKR73jx_H=NFvzLz?AoB@@b+?m}; zz0s4f1Nr6%Gjg~c(N~RqYrFn@c}05$qv?E|HI~cyjSe~^PwQ97bf!K7dSRh6r{Gf3 zLaB>;ysZ)#=dtSirrGgbK#iVd_4hVZQfjzt*CJLSqo^cw#?CH0Y}NtbWGFaj{3^P3 zU91D0<$W_qveK(&s0o(6fCub2fzv}uWqw0yRpf)I81bNmqP^C(D*@=rM@-U#gDz4T zZlE+`!M)m{ckdfhmsl5j9UmX8s<|P<`n9h?$~3U@nRRFy*kfPos0!PGv<2$Ztqwc8 zfe&LtT&nY$azC>cXxc@$=BeJhD#}V3IXQDTd0De<65sQ9YNh*WLQ+iZ#&+b7SgOL$ z!|Y(M*!TqMMRs%nAc(4{7~d&cjktOjEMjVUx*i`hmXzv8a$Q<3;t%y{^~WOBAz%23k*^iAR@wUzocZ;(tLIIIa3l zpjwJc*sp!@$76}xtJX(O852upH37x~iY>x*aA<`2mYebc)qJ!h z=JMCMYy_N@?J4cshp{fdrc9@>;IbQ8D@xiTTqRH7MK4QHCLr3QeG`qY(KeFWcgb|@9I%3-+wP{EU4Xt@hngdDa+Q+(&-k!H_xtIaW#;Cr2 zXC!7s?=8{Y)%#K85hZ+fC6s4N`gC- zkDE)n<5jjhHf)bAZ$P^ky24TisI`McmDmcIbl|fA8*|ADR&=Vix`<>P{lUbzO=2T> zij*JvBp)K98w^6a-5Y{i9CEauv!0fW-{oPYKG<#+osF9g-rfEDX#}tUH`VNfB`?9a z>gsEwTBChs#?CL*0r#O~Ol=(F99Nh-&@?ZKq6emx7)}o&o$T22_9@J3Mdgzp-9pZ| zgYzYidOvq`If#qXy2SpTEn)cimz=(iW+!|l^{=>N_NR&(Vi`r2006M@*7h;nR5y6B z5wN8LDVlZAAEPd199~UNn<`3&fSh^~8yrza(p+5s{DXMm+IMenv%+>kBf@FY^%5&b zy7E$-o79)(UwhelT3v{&EDsGJslcjH8yi1E!&dz-2R~mgzr9a26!Bf@Ati%DCj{C{ zKxZ>)YQm^Vq+SICf^Yc)q}_Z=*b4-LiBz^Fvhv2)LKmNL2FnR_=)Kr4e=9uWN7Idr zR}K52qc_YU6FbseEYc3n)s3@anPGOi2*6KUd43-YKVi>) zOr}!b()`gNDXHG=&@)Owhul`JS`j<45d0^E{^ z=O3I%HmPlG_GY&)=!+iXQ+`#q92*!KVPZBha{KL^|BiHX)&b2SP&1zQm(-X`Xp z+T_yixUCs#v{XkAt$BX!w~yF(NXhoc!D8$FKemuI_qgaUvb=sYM5yQTp0!<1_!%+4 zh?Urz7PD{h>vFWY*h6e3r~v?wXaOON|4{ckRsni^I8wBDP>zZ)7V z^Qg*r#gsjF$a9~@?|sJ>GW5Hu-nj)@$OTOK!m2_O$l-ho4>E~M#qpwjDKA-zSpJa$ zl$sYY>Pu?OCA~(l4!Qm8bpYNka7Isj=lnKm!(w@+ioN+oLFaC-L5G>U)VdJYqwjOC z4noD#3ExO*zkQ1w$Ms^WjuMgE_u!s5ao+-Fq`U&nbbF2ori`_%Scfm^G4W%*I95xl z@Q+G!0n<}b`KH%Z5F3jSd+)LShd9v|?R9Z-ExbZrPIkB}z;1VBdHKLB0T?j=kLK4S zp~ZuJUih;e%6E_@ZGqNZ<^?-Qz#c?MT(UXq@2pVldtT`^~%Q{8i5nKEI*w_ekn)=5V6r!Bb5g21DtDRTi=%R2r04VLkd5HY= zW4E9hu?$F(fFr> zFrKxrzSqig%!XK`W39D;iu0_^eO#{pf{mSfkI}!X*~YKs6{YZv-$L^5$0Vn4;OY`$ zl+CNTP$okAHud!c&{TYs#(Ov2(xvxo$JEr?Nwnc{7`xjC3xd`}CouGAl|;J+H#m43*6-;*G7CGcUMHybR_|zf^~C zSKGAJ*f-s7PHh!vzWjUAX9*I|D#R)+Q9!yRvdsa2F}YB1o^V1HYhTOdZz0AzU^0Ku zGPo(zg#gU4tgIb9;1vz78ENtZDi!%=;%T7JU7u*X6kfhsEAPt*6e8}_%=!>j=5oy3 zEdX)UT^X|EosWQrV;x(}vF$3apWKl$N8h}ntQ^C3l=1EEX6MOxMn`ZR#HvTrUKi$+ zm6h$JbQ#BiadjQ;NP$!;{>iLu`~$s!%H3T`eA|;y_8y@=4^MO+%8VKQTTkk{2i`>bWhiDMUH_}83lL4`)cHncVVJs^Oj}${xl36p^~OkWH-3@TRRu1 zVfTp@LV!GFc}05XN?+>sJt_WXYniU;Qusf%7QIse@)K&{80UBtV zT%`CWduo?G*TUM;v6-pLhVh;y?wN!LIAXk%WI1GGWqRY~^DH`hH&824M8%%+vtBAL z6qv>-?PpRn?^x!})5v~&f8LLGbs0Zhya8y6Jffn|6sCr9&iJ{>zs9WUw)u5x-r{8p zIdMUfmk?)ZMalzOxxjX|G!?WU;=M}>d2;~}$UBhsq(&2Qp(P5O0(pT@vhh=sDh|fJ z{IOP*`Zza8dnHyK4j4zVZ1YJ>(os^4>6O^Bm0Mp!#K9WNF!ora#iQ}_AB!H@73Ksr zWGmx0I*vu5OE$Jps@eQ$QH5e72`tiK#G&4QdPPxYx+#rkW7KgMkVqmobFYV+>*l6^ z-vWmY^#1Tz{~uN-J3j%3J}fQ!*HZSup|NR@GWMC)i=#cfCI8!>3nv{HRm!`vn4U%U z`~gy89xIXP?615Q75|G1V8lN?siu27e0MlcW@*QNcw`Q3+won=Yr8o&Z^<+9FkP@m z=nNHsiBVSC-wsxokA?sys3`JmTfY7?@!CEv7V50EU2Im_V;M`XpF;OTt=$0BI8syZo_q3nACx2GkMK(drV<5$mvFvA73jS9wpq7zwzA8Po;zy5bgBY*u?wla(mD;LpS14#( zkdcQlEK)VQHxZYgx0+;H8xTO~ACRMeoO>gAKJR4**?nLMa@VoCNcDs9jhA!`XG>St zu8ypf)l>FD{N8(`?w(t^J~V8KZBw)X`#GB8?S*+Odojx551`2>eu3%`2RmL*S5|6~ zqrNL|e%ubpy;6J1L?~3W$!7m0#CTg#xBin908{eFQ=Mtne$a2=49k{Ui{9LZw<=`z zN{`P;;}y^=%{&zj*qGZ^HqyJpV$L4!k(Y_WOA6!m8_&3SoYC*|ht9t2! z<3RCGgQH8O*49yMCT)dkpZfbJN7fM74C`J+q!H1v@ABoHsajlxBTntPqY~Yzr)*uO z;@5UUr3Le{Lx%fjd~^iJ4{b#kXqt_u4%Z$eo@JRMoicVBntK}PVg~VP;RV0hkg6y3 zYGqH+1Jux}Zr+Aul$!l*#_b!)Lxlb%%si*>P~g8;s5HE!_9@^}b=!k&eu;_IRw!?5 zBO0Y{3!lRVv1cU^n_ zyqV=~-DcS)Jg^t!;6mQZHYq;$aJ%z_AQt47%o>G@MWlCp3{#kKZ&nff4^|)vn2V!_>a7zKSqqWwp6JPedJ6`WzTcZ&k zgdY9ql*tSt#y5NUiYE*J&sYmtvjlFNgU6TK1e_vmWfNY&T@Pt@kY^7XY8wi%o$&HD z>!s>Hr@zoy1u9FCl}z_;>Hkf%5?5!(51^E(Y~R=XhaJ8Hw_$?Q<(pxvR)A>rNj zgpum}o^=;u+|p)j=*O9QlQ_YD9!Nk-+Y1Irtaty(}c1uB?Q5hV{%e449s3YP8IbtT`4kJe}^? zvU19VM%($*+{Ao1-SEL-lahdN7teSG5AguN;q18jz3bfvQz}sYq7{+sFgyO)y}exn z!50Y5@#fxM{l(Sesq}dpoYs#)%28=%stNH62PYN_$68=XECPO66E%KA3ur)C*4ziR zl-tvk0sgQ0#$_ekMLs<1eQvIuDnk>DV3$>9{Rx`uPHJHNN$xMEhU@1SK1ZqWoL*Ns zKova$zyS=oyh44@c2!|VAPD^I1?K3t8;IL?+S4^w-hlq!SAciI=q_+AoFe|i!wmQN zNBQ23b6j5<@WdagcY7L)ImG)?X)dR?e?Q(V{UG+kJs9K}BRY%W@K>F~{Gn%*4y z}3^d<_3f)q(;LV`#y0jUBZps1j9 z1tMLfhbEwOhzdvv3DTrD34~CBln_dQcXQ5t*ZMEldf#*Jhx>sK*e!R}~haU*z5AQhvfdHc@ujbA$;Ak0K;ymcnlUd+@)+-{Ew z2jvcs``)iR z$W{#i*~v=pTi6%d0gD62Mulv125&MmJDJ*AO)ZFXeWDMM9YXE%Za@nhKiX7xv_5z9 z8+v(5z#`Buzh8Xqs=kua)@7r6hkylLZ5}4SQ&NE*e&3g**SKW$e!BT!^ykhIB3~VFH>+O;~Ss(!ciriP5PUw9S`vtmzAQ#xT>p-nqKb-2vUat#UH+Twg zuy;(aj&L2odE7DG8bxw&ut;)nObLz9Ksao0e6M&+EWy+6K|waHlk7NfyrCjz>e0q-UI{O&7OC77u_BRb zJ6P!dC<$-)`JzT1#u&;RPOLhM0Z2`Rr`WquG1HQa58#?m|RR4mK z8Hu~)Tv_Kq+*9B(4c~x-oq81$07n!eMu^Xf3l zxDj^nqsBuFOioFm>k!eecM(%68+&9J9YWH{{Y+e6e&*IVX>&=dE8ViliA3t^vX(qb z+s6EaSv+4nwF*1c0yq})8y81gEdsAKgHF=dGK}>f)OSxH{@L;AM{nuQ&|C1lw z0jed9F;{CR0q%x-4`G5sof`|;X^=IRw?_oQ>y^Vjj36Ziatkve^r@1f{GqA_y_kc) z&B6zRdl1P1dobV9E&@iAGqqE8o^1^$kqFuAr4%RZ-Xwc*$=^)j<@wg)=MI!6k`!8Z z^=>xThYyo^hr}4*A5G))Ck^0rOXK?Xp`BTNC3Ckvbv*WJQhJgAU=)zX41eU!Llct* zY-AG?fBJn#l-w0iY-F%B_5$mtEh6)VI1wx^6)enR)R;l}&Ml)I2*R-|wz37nM?|bT zi!JonaG!_rf}Fbh;-i&r;1%lSW?bLdcriWvjLEM5p)QW*lSz_nzc0q{tvB7N(pwbe zaRO!iL?lykyrt!1^v+sVq8Z^au>;iHeX_90q1_3~#^kj~#COZ?#^^+j2N*#L^0&^^ zsDa=BzHLnKkv4BW<&5T_(vxhOZVCIBv-=; z75O8T*<%6JV<4aWO`4m;Ua37@CMT;sh$2ARug5B~eCR(HNZ{=S6k1oRAi{#5#Kx9?Ip61CRMC-7v5JX@@& z5r5f98(VGY)^Xl76t2;hbr9cUR5bfjz&Z5D zpAmW6rRnargsaW`@Ro?Pg&w#GWk@l4UsIikEoVkkPIC7I5GT$q3_OGBKb@XDhjg3l zf7T0D{Q7<_&a(#eUa@^~_VC0u*0?Txad`r?oay3rgT%7b_~Zomc#YR)ztdS z;9lBuS;B9(lp0X={LEv7au6d9%y45>eR*VfB&Ge$M;c5{)5OG_-R=4}R2l#zF1oHx zmsKOvR;dgT%^i}f)eZ_oy2VrR-musCs z#=c7#uN}HRHfCO+YS-Hk)vs@q46@eZ1LWz8NYGR1{kg!OjL_=B-4?97j(v zWxh5oZN1THhQ^W4tMSar9Qzso4OsO%jJdO99WGJ^hdaxfx9;XSkhdppWQs9ZiGAy} zdM`Nwie7LpRrBQ2<&@;5u%B%y0nv`Hnz`&g9C!`#_S?B1)RdAWxxxbjO1N__q?@=0 z`FG!YPJ0^^EiZQ_-%vuILazqSDmfoj5rbRHkJ}QU(a7fx0W&IIqZCcCx)r#rm@D{Z z)N=G|l&AZ6?v4>azK6Akc$&i^n!UbWj(<|wSw{7~qMn-aoGiQoi}pko(pm_Fjm{@7 zmDDrIKf^gmqbEV*n*_Yar$oHyVr%ZOyMdo^W-bvyVOnzD53(CQg;EqG{oE2r=#=$ z#gAl$aHV9HITK5o@f8-!zB3X86s>9#k! z=7@6BZ~4m-9_pwa&91Qy+j&quLfd)VMLq;NN99~xqYUeRe|J2S;qvWwD=>Ine?R8# z3+0b;H6f$J(%906i0+VW>#KoX0VV0uNmsb$kQF$coo$K)PEfi-A-DhH&?GnJ_2%#Q zd`U|RQ;(&jxFfF~RZ*4|6iO|*9mEx!ebfl_V7e}(`dr1o*`@c^+Io>$J{N`kr@|Fc z$|Ct2w1oLs5xB`zg!ROz4!_o9g9RcX*|NR%QwzG$)Gg|&_`Al8O}ie@WCsy(Gp&S_ zf^p>I!wNuH8E~9AiUOnF<0BD1k}uxq&aqcm$igqbgtLUbl+mi)zRBk7g}4q6d$~4v zI|^^ZlevOeXci_MR}$bFg!X z`GhSF;rALL&$6#?Dbn+)ubxw^JcMk5r z{=L21#2lqZEq_H__4&ed(DX(iw^AQbN0CuBC9i3ofm)aYacWqFRf|roAR88cTqwGoovcbQ;aLmnVc^Pxn1G%B73-gA-aYT@>=H%>&nH5si~D6Tfks=c#{8Zvl8@_3JgnN`h8!> z_-^PnN)1gmF+MLM!q3JS@hQ35c?_Gbaypy+XAy>esJ4`o+ZBd!BAk9;CI-4s&D^8> z5FZ`>UV9jmBjnD1@7{DM%U3~%SIGjAzti_@I(zTQb`bE>d`ootz-7Zedwavh1)|SJ zw^Gi}pB^^fE>ciLQOP$#a>wcOa0UOYwUyy}W~N~q!{b{1Jx9KDjxMw`eEv+Yd8LoW z8=l}0B=Y^{p>9FmzBO}vV9^m|-v*0aYQTxuGpgLCYu?xFAlSWd;(GZ5)`BJN?u?X@ zOnGj++j?b}J8&=MSHmZ+<>(+H?Xd;RtWWvgJS}Ri>Q(X(1%Zmx`TWSjTXAy>{=k`5 z?KO%pzO}bY3mY_xoC%hqhV!lVLJ$Qo)2ar(*6&*DHj&#dS%ZUhZE*{X1@kUW2%l5e zw$!tD1%6Z<@8+MS6Yum!3z`ivKF=SoQ|s&?9wL#+G>-exLbsLut_kY!1vTw#Z@#Mc zdbC4!OzSk>Vt7zo+>c}F8?gvD2!&2N`vD&RxXNP!ObeFbv{0t2{SCjSR}yB+fktR$kVF^#e;c0 zZ7=6$;%EgU@0dd@C^f~|-(<9b*flvVJrhR<~0ejsi9$XkZ7J&$R;tu3stFHcU+ zP2ZcBCtzCK2+y{)A%6)152SAI1@&;OY&;&jjHs=2yP&$6MUNF6MGzYNSDIuT8l7$I zMSX43(xQGS;iGZ>&dz4B2YD{oR(_S4VogAoW2Y()b`x!k%ZyD9=WCUqBWc;8GVGyf zW@EJKL_z^p%h*J6J69{?CKSpkEzOynyy?rxBOOF=&q1k?Zn?VIr?==AT*kAfQ>n<+ z>AmFCdj5eYC|L1LXg?<$85><)F{2n!hL8*LA#_T@MT2I>ZBeSe6NJuM*)OJBo=n&8 z=~@UTcOS}|*`_0bdNfDrf>?T-no_bH4p!naJxR1#ONic}{@D5b(D*rOOWJrXbI3+E zNe#(ET_|)u7_n4T?a0tG~YcwG(DXn@N>rV zxLZgKA$w4=;bOqduOl{Yrd40c880`cmXjER zLZ#I%-nIKRI*O!+ava9Q?&d*kskGlxYM)Y4*|fWR*V8vIvdcbxf~f9bKv|9GkZ!M4Q8+%rh0-!~K}~MR!ofN7y;a zw+x(2r0d)DsANJ|C-emE~T7}bg-ZCNE^#PnGPi6=n9hvLIq&-`{ z--(|tEKW=;3q6kwOxB4QM;h53Q(am%Qj66A=5y)v05E?)e}34#s(oO@N8IR9j?9EzWAtOcoix{l~*WF^%o?R_c zzAQ1*PqY~{@brp%I)~@$f7r{$WY$ct&x9$a?g<|20hcL>eBH6Y(x%_5d_Maj$FaQFBlo^S^f;K^@Z{s*kz8-f9$galjZ9q%-s9f8~KrU zwz@tQ7ZKs}J}DJ%>8Cb2X#(Ya-rv7UJ0uni&%P!@k!#P-uj5TiM_c+UsYE_mzwFk^ z$7g5)UH81|ub7IA)F6h1hgtjtMs=B4PZWgh5%rs!g{K48%_udOY~?#*kM5u#c#jjA z`Qx40bs-@xTH^z)uj5Dk8L-aR*%fmlg7%cq<1ZUMq6f(~@3toxrSr5bEpMl!5NY{h zr1=9!jOgFUj!l*0Gxzl@(Y%R2)|`rpY(Gzpshq+XazKhXzQpHEj*Hye>!l;B2aUV~ z2V)w_jeHVgeUD*5Qh=`aerV)!EzuaN@Zq7a+^_8=X^R8FQku?JE))NnM`1grWOQDu z(PNb8Fswunk2IJ9aKhOs>V1m|mO~2itqn!>D*d2Q_UqHhDIG`2;lRJe!Yzm%;8Ry@{%!lplxZLH=10rzvOeTjF6|JthF012!rWD2-?>;murl!O+l*Z!8!eDu~KF_@H_mtD~)N2O#PSW$W`)p+3 z3e7={^9TeB=6y;oPU0=XBiJBbFNAr|zVKg)KV=E#yhawAxQh`lFd9WfU6Gf+NE_hh zHcJJEpTNs(@kb25`5-w@DsRZ}*t~ZX$wD8Ig~m_11}Iqvje9d#{gtP?j7WO9HYpVy zELOVqb74kF@%6?`a$(dx{o2zE^n5Va*T_iW+CxM!Jyv>qTj8AL9v4Uv70L2wDEr4{ zV0y&*TdwoZc&+8?m!nzsUvqw}Ub)dt>Y|dVr+mj;FCprJ{k~{R^+e}3H~A9{{NIzv z0FcnIH|7oct$(P;=!v4Yz=4Ry#MKaX^U;#!_Ydz=@FwXsHHPx$iLhWl`S@OFpkM1; zVGMp2p*67uff{EgB%F_m_9Pc+cs_wn7dND)hJm9Rg{4z&G9a$RixrP|=*ni%wx^?# zU$x$#&Os$M9krSF>6Kt!@y}LQB+CC4Nn4UJfwYP6mn4un3GX*9JIS)Oq{i0ZMGX^IY2t8q` zGW1>2a&d`MIbNNQ0&0~|yG;P$>n^7d^`;PJaA0`c+-keiwC=O6ACI&E!m9Go(cu(A zy~{j#H+7twb9vo0ZM?Gf(m#tjRZjze8Y&;Gm(teHH*AUj3KjZiAs}3@6hMRvj5v9- zV0Eq8|EyfFF{4%6mxTMgo8-ocCT*54z_N8;R7?%S(uJ*kfX6$xaM>OfFW9r+7r!52 zC&Hnbc3FO|uz2-dVo5{$*R;Ri^w=@pyt~G^7;)bXSGU{z0@X}^Zx^Vhi>s}Xf3A_w zds2Z3XFAI1y(m!9qlvD}Fg)HPy8jSnXD3D7HdJU|bv`6L30l11EHCHsf*IvE$OOMO zPELu~mfBDz5LRMGh;Hel4>wVxZUwf20waGl;RQaZ6-7tj{xa&>aaN?1WSx zQeL?OUK_>Ix8@~VEqU4WCt%9D!&|YM)fdTMTAS>dF(zXGh3=Yh2-&?CS2@cSyi8wM z60;)SyJs7+(cQfb&9SrdkeanRt9`)T6_Udf2tC!cL_*XyHoEA#&D`4I^rhG=_08mf zBzbXaJJ;e>9-E7Ev=ZZtp@A^d2Pd-_syM}sKHbhe`FIc2)OIH=*VkiZIK# literal 0 HcmV?d00001 diff --git a/ext/custom-addons/cam_testenv/static/src/img/print_test_inkscape.svg b/ext/custom-addons/cam_testenv/static/src/img/print_test_inkscape.svg new file mode 100644 index 00000000..fd571e9c --- /dev/null +++ b/ext/custom-addons/cam_testenv/static/src/img/print_test_inkscape.svg @@ -0,0 +1,69 @@ + + + + + + + + + + image/svg+xml + + + + + + + Test + + diff --git a/ext/custom-addons/cam_testenv/static/src/img/print_test_n.svg b/ext/custom-addons/cam_testenv/static/src/img/print_test_n.svg new file mode 100644 index 00000000..b0784b5d --- /dev/null +++ b/ext/custom-addons/cam_testenv/static/src/img/print_test_n.svg @@ -0,0 +1,70 @@ + + + + + + + + + + image/svg+xml + + + + + + + TEST + + diff --git a/ext/custom-addons/cam_testenv/static/src/js/testenv.js b/ext/custom-addons/cam_testenv/static/src/js/testenv.js index e47184c5..5e631572 100644 --- a/ext/custom-addons/cam_testenv/static/src/js/testenv.js +++ b/ext/custom-addons/cam_testenv/static/src/js/testenv.js @@ -21,7 +21,7 @@ openerp.cam_testenv = function (openerp) { // (should not change, but just in case...) if (result) { $("body").addClass("test-mode-activated"); - $("body").css("background-image", "url(" + openerp.session.origin + "/cam_testenv/static/src/img/back-testenv.jpg" + ")"); + // $("body").css("background-image", "url(" + openerp.session.origin + "/cam_testenv/static/src/img/back-testenv.jpg" + ")"); } }); }); diff --git a/ext/custom-addons/cam_testenv/views/cam_testenv.xml b/ext/custom-addons/cam_testenv/views/cam_testenv.xml index f0e25814..fef19f79 100644 --- a/ext/custom-addons/cam_testenv/views/cam_testenv.xml +++ b/ext/custom-addons/cam_testenv/views/cam_testenv.xml @@ -9,5 +9,34 @@ + +