Message-ID: <1857219275.1.1711647596932.JavaMail.tomcat8@139-162-214-5> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_0_1006376499.1711647596890" ------=_Part_0_1006376499.1711647596890 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html From source

From source

=20 =20

Before= you start

 

Software

 

  

Before you start you must make sure that you have the following software is= installed and properly configured (i.e. runnables are on system path and y= ou can run them from command line).
Software  Recommended version  Check runnable  Where to get it 
Java SDK  1.8.x+  java -version  http://= www.oracle.com/technetwork/java/javase/downloads/index.html
NodeJS 

8.x.x+  4.0.0&n= bsp;

12.x.x+  4.1.0+&n= bsp;

node --version https://nodejs.org/en/download/=
NPM 

6.4.x+  4.0.0&n= bsp;

6.14.x+  4.1.0+&n= bsp;

npm -version https://www.npmjs.com
Maven  v.3.0+  mvn -version  http://maven.apache.org/download.htm= l
Ant  v.1.8+  ant -version  http://ant.apache.org/bindownload.cg= i
Ant contrib  v.1.0b+    http://ant-contrib.sourceforge.net=
Tomcat  v.7+    http://tomcat.apache.org
MySQL  v.5.5+  mysql  http://dev.mysql.com/downloads/=

If you are running *nix please consult your OS documentation for the installation procedur= es of the above software. We would not recommend installing it manually. Fo= r example Mac OSX users are strongly advised to you macports as installation shell.

Nice to have  Notes 
Intellij IDEA Ultimate  Ultimate is required for Flex support 
Http server configurable for ajp 1.3  If you would like to mirror production setup loc= ally 
TOAD or MySQL query browser  If you plan to use mysql then GUI client would h= elp 

= Environment variables

 

Environment Variables  Required  Example value  Notes 
JAVA_HOME  3D"(tick)" D:\jdk1.8.0_45   
JAVA_OPTS    -Xms256m -Xmx1024m  Required as Tomcat may fail with OutOfMemory exc= eption 
ANT_HOME  3D"(tick)"  D:\apache-ant-1.8.1   
ANT_OPTS    -Xms256m -Xmx1024m   
M2_HOME  3D"(tick)"  D:\apache-maven-3.0.3   
MAVEN_OPTS  3D"(tick)"  -Xms256m -Xmx1024m  Required as test may fail with OutOfMemory excep= tion 
CATALINA_OPTS    -Dfile.encoding=3DUTF-8  Required by Tomcat to correctly process UTF-8 re= quests 
PATH      should contain all executables for the installed= software 

&= nbsp; 

You can check Environment variables from shell (*nix) by using "./yc.sh env= " or cmd (Windows) by using "yc.bat env".

Ch= eckout the project

 

The repository is located at GutHub https://github.com/inspire-software/yes-cart.
Please refer to instruction on GutHub https://help.github.co= m/articles/which-remote-url-should-i-use/ on the cloning/fo= rking options available.

Please do not use spaces in dir= ectory names where you checkout the project. This may prevent= you from accessing some of useful script tools and delay workspace setup.<= /span>

First time maven pre-build setup

 

You only need to perform steps in this section  once. After these are correctly setup skip this section in= day to day builds.

Maven

 

3rd party libraries  pre 3.3.0 

YesCart uses some 3rd party libraries that are no available on maven cen= tral, so you need to manually add them to your local repository

Go t= o the root of the YesCart checkout directory (i.e. /dev/yc in the example b= elow).

=20
$ cd /d=
ev/yc
=20

 

If you are running *nix you can use this nift= y script

=20
/dev/yc=
$ ./yc.sh i3rd
=20

 

If you are running Windows use batch file

=20
C:\yc\&=
gt; yc.bat i3rd
=20
If above does not work please make sure that your mvn installation is worki= ng correctly from command line and that all environment variables have been= setup correctly.

First time maven build  pre 4.0.0 

Run maven *clean* install command that will compile, test and package th= e code using the *dev* environment configurations

 Note the clean phase in the first time build. It was necessary in pre= 4.0.0 versions to load all nodes dependencies for the jam-jsclient module.


=20
 
/dev/yc$ mvn clean install
=20


Building using maven

 

  

If build is breaking make sure you have setup all that is necessary from "F= irst time maven pre-build setup" section above.

Basic buil= d

 

To build the project and deploy it to Tomcat all you need is to execute = couple of commands in shell/cmd.

Go to the root of the YesCart check= out directory (i.e. /dev/yc in the example below).

=20
$ cd /d=
ev/yc
=20

Run maven install command that will compile, test and package the code

=20
/dev/yc=
$ mvn install
=20

 

This command will perform default build which is targeted at development environment, which should be suitable in most c= ases.

As maven will be processing each module you will be able to see current = configuration in echo along with some tips as to what other options are ava= ilable.

Example echo configurations

=20
 &=
nbsp;   [echo] =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
     [echo] |
     [echo] | __     _______ &=
nbsp;           &nbs=
p;            &=
nbsp;______
     [echo] | \ \   / / ____|  &nbs=
p;            &=
nbsp;         |  ____| v.=
3.5.0-SNAPSHOT (build: 0556dbaf)
     [echo] |  \ \_/ | |   ______ _=
 __  _   _ _ __ ___| |__   ___ ___  _ __ ___ =
 _ __ ___   ___ _ __ ___ ___
     [echo] |   \   /| |  =
;|______| '_ \| | | | '__/ _ |  __| / __/ _ \| '_ ` _ \| '_ ` _ \ / _ =
| '__/ __/ _ \
     [echo] |    | | | |____  =
   | |_) | |_| | | |  __| |___| (_| (_) | | | | | | | |=
 | | |  __| | | (_|  __/
     [echo] |    |_|  \_____| =
   | .__/ \__,_|_|  \___|______\___\___/|_| |_| |_|_| |=
_| |_|\___|_|  \___\___|
     [echo] |       =
            &nb=
sp;| |
     [echo] |       =
            &nb=
sp;|_|  Copyright 2018 http://www.yes-cart.org
     [echo] |
     [echo] =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
     [echo]=20
     [echo] YC module jam-3.5.0-SNAPSHOT-rev.0556d=
baf configurations:
     [echo]=20
     [echo] Environment configuration (use -Denv=
=3Dx to switch)           =
;      : dev-idea
     [echo] Database provider (use -Pmysql or -Pde=
rby)            &nbs=
p;           : derby
     [echo] Full text search provider (use -PftEmb=
ededLucene or -PftDisabled) : embeded-lucene
     [echo] Tomcat SSL configuration (use -Pssl) &=
nbsp;           &nbs=
p;            &=
nbsp;   : off
     [echo] JAM npm goal (use -Dnpm.goal=3Dx to sw=
itch)            &nb=
sp;            =
: build.dev
     [echo] JAM npm target (use -Dnpm.target.home=
=3Dx to switch)           =
;     : dev (typescript/dist/dev)
     [echo] JAM npm modules (use -Dnpm.target.modu=
les=3Dx to switch)          &n=
bsp; : node_modules (typescript/node_modules)
     [echo]=20
     [echo] Payment modules
     [echo] LiqPay payments (use -PpaymentLiqPay o=
r -PpaymentAll)           =
;  : on
     [echo] Cybersource payments (use -PpaymentCyb=
ersource or -PpaymentAll)   : on
     [echo] Authorize.Net payments (use -PpaymentA=
uthorize or -PpaymentAll)   : on
     [echo] PayPal payments (use -PpaymentPaypal o=
r -PpaymentAll)           =
;  : on
     [echo] PostFinance payments (use -PpaymentPos=
tFinance or -PpaymentAll)   : on
     [echo]=20
     [echo] Add-on modules
     [echo] Marketing price rules integration &nbs=
p;(use -Ppricerules)          =
   : on
     [echo]=20
     [echo] Web Apps
     [echo] Storefront: ROOT.war
     [echo] REST API  : yes-api.war
     [echo] ADMIN     : yes-ma=
nager.war
     [echo]=20
     [echo] Tips:
     [echo] * use mvn help:all-profiles or help:ac=
tive-profiles to list profiles available
     [echo] * use mvn dependency:tree to list all =
dependencies
     [echo] * documentation for YC profiles is ava=
ilable at:
     [echo] http://www.inspire-software.com/docume=
ntation/wiki/docyescart/view/3.3.x/For%20Technical%20Users/Installation/Fro=
m%20source/
     [echo] =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
=20

mvn profiles

The platform comes with a variety of maven= profiles to tweak your build as required

<= span>Maven profiles and variables

 

Profiles

When working with maven if you specify at least one profile then activation= by default stops working for other profiles. Hence you may need to specify= all default profiles in some cases.
Profile  Alternative  Default  Dependency1 Affected module  Version  Notes 
dev        jam, sf, api  3.0.0+  synonym for -Denv=3Ddev 
devIntellijIDEA        jam, sf, api  3.0.0+  synonym for -Denv=3Ddev-idea 
buildInstaller (EoL 3.3.x)       installer  3.0.0+  Includes installer module in the build 
derby  mysql, mysql8  3D"(tick)" 3D"(tick)"  jam, sf, api  3.0.0+  Sets derby connector for hibernate 
mysql  derby, mysql8    3D"(tick)"  jam, sf, api  3.0.0+  Sets mysql connector for hibernate (connector/j = 5.x.x) 
mysql8 mysql, derby   jam, sf, api 4.0.0+ Sets mysql connector for hib= ernate (connector/j 8.x.x)
ftEmbededLucene   ftDisabled 3D"(tick)"  3D"(tick)"  sf, api  3.5.0+ Enables Lucene to be full text search provider f= or storefront
ftDisabled ftEmbededLucene     sf, api  3.5.0+ NOOP full text search provider for storefront (u= sed for builds that use external CMS + external FT provider)
nodejs 3D"(warning)"  (Deprecated 4.0.0)       jam-jsclient

3.3.0+

4.0.0+

3D"(error)" Deprecated in 4.0.0, please use admincors and ap= propriate npm scripts

3D"(warning)" Used for JAM client development= with validate phase to update currently running instance. Usage is from wi= thin specific module:

=20
yes-car=
t/manager/jam$ mvn validate -Pdev,nodejs,derby,ftEmbededLucene,connREST=20

3D"(warning)" Use this profile for sup= porting IDE builds to copy extra resources that IDE does not "see".<= /p>

ssl        jam, sf, api  3.0.0+  Sets secure configurations for wicket (enabled s= ecurity, guarantee CONFIDENTIAL) and sets up default secure and insecure po= rts (8443, 8080). If not used then "behind Apache" mode is assumed (disable= s security, guarantee NONE), default secure and insecure ports (443, 80).&n= bsp;
cors corsOff   api 3.7.0+ Allows to enable CORS mode for API= . See REST API for more details
corsOff cors     api   Disable CORS mode for API (origina= l 3.6.x behaviour)
admincors admincorsOff     jam 4.0.0+ Enables CORS in Admin app APIs. It= is recommended to switch this option on in local development, so that SPA = started in npm can connect to the locally running server. There is a conven= ience npm start script startlocal.sh located in jam-jsclie= nt/src/main/typescript that will start the client in "local" mode which wil= l connect to APIs on localhost:8082/cp (which is default development setup)= .
admincorsOff admincors   jam 4.0.0+ Disables CORS in Admin app A= PIs.
templates 3D"(warning)" =       jam, sf, api 3.0.0+ 

 3D"(warning)" DO NOT use for full build= s. This profile allows to manually copy all necessary templates to relevant= module. Usage is from within specific module:

=20
yes-car=
t/manager/jam$ mvn validate -Ptemplates,derby,ftEmbededLucene,connREST=20

3D"(warning)" Use this profile for sup= porting IDE builds to copy extra resources that IDE does not "see". 

connREST connWS, connJGIPv4, connJGIPv6 jam, sf, api 3.6.0+ REST API connector for internal co= mmunication between application in the cluster
connWS connREST, = connJGIPv4, connJGIPv6   jam, sf, api 3.6.0+ WebServices connector for in= ternal communication between application in the cluster
connJGIPv4 connREST, connW= S, connJGIPv4   jam, sf, api 3.6.0+ JGroups IPv4 connector for i= nternal communication between application in the cluster
connJGIPv6 connREST, connW= S, connJGIPv6   jam, sf, api 3.6.0+ JGroups IPv6 connector for i= nternal communication between application in the cluster
paymentBase  paymentAll  3D"(tick)" 3D"(tick)" payment modules  3.0.0+  Disabled all additional payment modules 
paymentAll  paymentBase    3D"(tick)" payment modules 3.0.0+  Enables all additional payment modules 
paymentLiqPay  paymentLiqPayOff      payment modules 3.0.0+  Enables LiqPay additional payment module 
paymentLiqPayOff  paymentLiqPay      payment modules 3.0.0+  Disables LiqPay additional payment module <= /td>
paymentCybersource  paymentCybersourceOff    3D"(tick)"  payment modules  3.0.0+  Enables Cybersource additional payment module&nb= sp;
paymentCybersourceOff  paymentCybersource      payment modules  3.0.0+  Disables Cybersource additional payment module&n= bsp;
paymentAuthorize  paymentAuthorizeOff    3D"(tick)" payment modules 3.0.0+  Enables Authorize.NET additional payment module&= nbsp;
paymentAuthorizeOff  paymentAuthorize      payment modules 3.0.0+  Disables Authorize.NET additional payment module=  
paymentPaypal  paymentPaypalOff    3D"(tick)" payment modules 3.0.0+  Enables PayPal additional payment module (PayPal= NVP, Payflow and Express) 
paymentPaypalOff  paymentPaypal      payment modules 3.0.0+  Disables PayPal additional payment module (PayPa= l NVP, Payflow and Express) 
paymentSwissbilling paymentSwissbillingOff   payment modules 3.7.0+ Enables Swissbilling additio= nal payment module 
paymentSwissbillingOff paymentSwissbilling   &nbs= p; payment modules 3.7.0+ Disables Swissb= illing additional payment module 

1 Dependency profiles are used to inject additional Ma= ven dependencies during build. If at least one Maven profile i= s specified in build command all applicable dependency profiles must be exp= licitly stated. For example "mysql" profile adds MySQL driver jar = file to WEB-INF/lib thus if we use "-PdevIntellijIDEA" we need to use eithe= r "-PdevIntellijIDEA,mysql" or "-PdevIntellijIDEA,derby" to add either MSQL= or Derby driver. Note that all jar files are preserved betwee= n builds in WEB-INF/lib unless a "mvn clean install" is performed.=  

Variables

The platform defines several build variables in pom files. However becau= se of the dependency management mechanism using only variable is not enough= . Thus you must not manipulate those manually but rather define correct val= ues in custom profiles within pom.xml files.

<= span>Environment specific builds

 

As mentioned in the "Basic build" section above, by default development = configuration is used. This configuration is defined by env variable.

This variable specified which configuration location to use in: /dev/yc/= maven directory.

Each configuration is grouped into a directory. For example development = is located in "dev" and special configuration for Intellij IDEA in "dev-ide= a" etc.

Custom configuration for other environments can be crafted to your speci= fication and controlled through env variable.

For example for continuous integration server you may run the following = maven build:

=20
/dev/yc=
$ mvn install -Pci
=20

Which would read configurations from:

=20
/dev/yc=
/maven/ci
=20

This gives a very flexible and simple mechanism to configure environment= specific builds.

Prepa= re database

 

Default setup provides two choices: derby to = use for development environments, or use MySQL s= erver. The connection configurations are defined in the environment specifi= c configuration files. However because RDMBS requires specific driver relev= ant profiles must be used to include driver dependency in the build.

If you want to use other RDBMS or change some of the configuration you will= need to either change existing maven profile or add a new profile.

Derby

 

&= nbsp; 

If you encounter  java.security.AccessControlException: access denied ("java.net.Socket= Permission" "localhost:1527" "listen,resolve") refer to  Der= by quick startguide.

 

Navigate to YC_HOME from command line and startup Derby server (in backg= round mode)

*nix

=20
/dev/yc=
$ ./yc.sh derbygob
=20

 

Windows

=20
C:\yc\&=
gt; yc.bat derbygob
=20

 

Run the database initialisation script

*nix

=20
/dev/yc=
$ ./yc.sh dbiderby
=20

 

Windows

=20
C:\yc\&=
gt; yc.bat dbiderby
=20

 

Follow instructions to complete the setup.

  *nix
Unix users can use grep to quickly check the derby log for errors


=20
grep -i=
 'error' ./derbyinit.log
=20
If you experience problems, try to setup  dat= abases manually.

MySQL

 

Make sure your MySQL server is running (try connecting to it through com= mand line 'mysql' command)

Navigate to YC_HOME from another command line and execute

*nix

=20
/dev/yc=
$ ./yc.sh dbimysql
=20

 

Windows

=20
C:\yc\&=
gt; yc.bat dbimysql
=20

Follow instructions to complete the setup.

 If you experience problems, try to setup  dat= abases manually.

Other RDBMS's and configuring existing

 

The hibernate connection properties are defined in environment specific = configuration files in YC_HOME/env/maven, which you c= an add or modify. YesCart provides derby and mysql profiles by default, whi= ch are located in main POM in YC_HOME/pom.xml.

Profiles look like this:

MySQL profile example

=20
...
       <!-- Variable definition in ma=
in pom.xml that allows to include relevant configuration file through maven=
 filters -->
       <profile>
           <id>=
;mysql</id>
           <prope=
rties>
            &nb=
sp;  <env.db>mysql</env.db>
           </prop=
erties>
       </profile>
...
       <!-- Module specific dependenc=
ies (drivers) -->
       <profile>
           <id>=
;mysql</id>
           <depen=
dencies>
            &nb=
sp;  <dependency>
            &nb=
sp;      <groupId>mysql</groupId>
            &nb=
sp;      <artifactId>mysql-connector-ja=
va</artifactId>
            &nb=
sp;      <version>${mysql-connector.ver=
sion}</version>
            &nb=
sp;  </dependency>
           </depe=
ndencies>
       </profile>
...
=20

mysql profile above sets variable env= .db to mysql which causes maven to= pick up config-db-mysql.properties file and then insert provided configura= tions into META-INF/context.xml for all web apps.

 To add your own RDMBS profile just follow the same principle (e.g. en= v.db=3Doracle) and then create config-db-oracle.properties which would have= definition of all configuration properties. Then in web app modules add de= pendency to the necessary driver dependencies

File paths configuration

 

Image= repository

 

Image repository is set via system preferences (SYSTEM_IMAGE_VAULT). Def= ault locations are defined in the environment specific file yc-config.prope= rties in the following properties:

=20
imageva=
ult.default=3Dfile://${basedir}/../../theme/imagevault/src/main/resources/d=
efault/imagevault/
filevault.default=3Dfile://${basedir}/../../theme/imagevault/src/main/resou=
rces/default/filevault/
sysfilevault.default=3Dfile://${basedir}/../../theme/imagevault/src/main/re=
sources/default/sysfilevault/
=20

This default configuration points to the theme module default directory = layout in the root of your project. We highly recommend setting this to dir= ectory outside of your code base. Note that this directory is shared by all= YC web apps 

Deploying

 

Once maven build is completed several JAR/WAR files will be built in tar= get directories of each module.

You need to copy the sh= op manager, storefront and REST API war files into the $TOMCAT_HOME/webapps=

=20
/dev/yc=
$ cp ./manager/jam/target/yes-manager.war $TOMCAT_HOME/webapps
/dev/yc$ cp ./web/store-wicket/target/ROOT.war $TOMCAT_HOME/webapps
/dev/yc$ cp ./web/api/target/yes-api.war $TOMCAT_HOME/webapps
=20
 If you are using  mysql  you may have problems during tomcat sta= rtup because of mysql-connector. The symptom is  javax.naming.NamingException: com.mysql.jdb= c.Driver  in your catalina.out log. In order to r= esolve this copy /yes-shop/WEB-INF/lib/mysql-connector-java-5.1.13.jar to s= hare lib directory of your tomcat

Make sure your SQL server is running and start the tomcat i= nstance as you would normally either through services, catali= na.bat or catalina.sh depending on the type of installation of your tomcat = instance.

If you are setting up tomcat from scratch please have a look at some things= on our  Tomcat page that you should be aware of.

Open your browser and navigate to the following url for the storefront:

http://localhost:8080/

Or open your browser and navigate to the following url for the manager application:

https://localhost:8443/yes= -manager/

Default user/password to connect is:

username  admin@yes-cart.com 
password  1234567 

Or use REST client to access API:

http://localhost:8080/yes-api/=

IDE setup

 

Inte= llij IDEA

Import= demo data

 

Follow steps on Demo Data Import

------=_Part_0_1006376499.1711647596890 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: file:///C:/0e2b444ce6a28820bb6a764f6315df29 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABFklEQVQ4EWPkYWEW7NLVWGUhIujC QAI48eb9nrLLN8IYpxlq7yZVM8wekCGM51xt/sMEyKGZyNGErAfDAGYeHgbRwFAGEA0DILZcSSWK GEwOwwAhV08Gmcw8BpWeSWANIM0gtrCbFwNIDh2woAu8Xr+agVNZBawBpBEEuJRUGd7u2sYAkkMH GAaAFDzqaQerA9kKAiDNMDGwABKB4QWQHMjZnCqqSMpwMzEMgPkZ5uxv926DvQMKRGwAwwDpjFy4 n0HOvlOSxwAzBBQ76AAjIYFcwG9pw/Bu9w64WpAYyOCnMyYz/P3yBS4OYmAYgCJLBAfDC0ToQVHC BMoQKCIkcEB6mQ++ebdFk5fHWIaLU4kEvQyw7AwANERa0Te1fdYAAAAASUVORK5CYII= ------=_Part_0_1006376499.1711647596890 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: file:///C:/e83f6da0d8a355c484753912b907425f iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABjklEQVQ4EWNkQAPcpkJp7Kp8Ltx6 gqHIUl8vvV/98/anPV9Pv5uFLM4I4zByMAmKpajsZpPhNoaJYaN/Pfl69tWcO67/f/x7D5IHGwDS LFmmfZeZi0UQmyZ0sb/f/rx/3nVVGWQIE0gSZDOxmkHqQWpBesBskJ95LETTQBx8gIedh4GNhY3h 199fYGXMfGxSfz/+es7M7ynVwSrMroRPs7qYGsPCkAlADzMznH92CaGUlYmTiRMY4ggRBgaQTcgA pHlD9DwGDVFVhjjDYGQpBpBecBggi8YYhjJ0ezWAhQJ1fBh2J65g4GbjYrjy8jqD/awAZKVgNgu6 SKF1KgMnCwdYOFzXD0wvvbieoXJHM7pSMB/DBeuubkfRXLe3B6dmkEJmNnluG+RA3HvnEMPNt/cY bBUsGAq21jGsvrQRbCA24jswZTKColEoWH4mNgWExN6tfZjOBErboORJSDG6PEgPSC84DEBpG5Q8 0RXh4oPUgvSA5MEGgNI0KG0T4xKQGlg+ABkAz40gDgiQmp0BQ16bzd1IdeoAAAAASUVORK5CYII= ------=_Part_0_1006376499.1711647596890 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: file:///C:/d18fdc7dd56e1c5a8ab7da91cf683386 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAA3NCSVQICAjb4U/gAAAAY1BMVEX/ ///ht0zds0vds0vds0vds0vds0vds0vbsUrZr0rZr0rZr0rXrUr/01H90VH7z1D5zVD3y0/1yk/z x0/wxE7swU7rwE3pvk3nvE3nu0zlukzjuUzftUvds0vZr0rXrUqBWzo+M1gKAAAAIXRSTlMAESJE VWZ3maq7zO7u//////////////////////////9zCPjNAAAACXBIWXMAAAsSAAALEgHS3X78AAAA HHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABR0RVh0Q3JlYXRpb24gVGlt ZQA2LzEvMTM4qUXQAAAAe0lEQVQYlV2N2RaDIAwFo6LWNhdsrV1wif//lUUownHeMmeSEHkqZkUZ BVvLZSZaMVi6NJf8BB6SlroFjul2BDJg29BL8xfXGbvAlws/K7kHoaUNwYQgMPqklj4Kve4JWxy8 XNKsBrGAcYm/EAXe7H7qtGI+Qool50Jnfgc2C3zDPO17AAAAAElFTkSuQmCC ------=_Part_0_1006376499.1711647596890--