目前格式:HTML/XML
<?xml version="1.0" encoding="UTF-8"?>
<project>
<!-- Default lifecycle (23 Phase) : validate -> compile -> Test -> package
-> verify -> install -> deploy -> (finish) Command format : mvn or mvnw goals
[-Dpackaging.type=war,jar] [-Dspring-boot.run.profiles=dev] [-Pprod] [....]
Maven Command : mvn or mvnw Monitor : [-q] Arguments : *Note* optional [-Dpackaging.type=war,jar]
[-Dspring-boot.run.profiles=dev] [-Dit.skip=false] [-Pprod] [....] Packaging
: arg : pom, war, jar [-Dpackaging.type=war,jar] Tests : arg : true, false
*Note* testing [-Dit.skip=false] *Note* none testing [-Dit.skip=true] Profile
: arg : default, sit-internal, uat-internal, prod-internal, sit-external,
uat-external, prod-external *Note* package or install EX : mvn package -Dit.skip=true
-Dpackaging.type=jar -Pprod-internal System : *Note* Delete the dependency
package of the current project in the local warehouse mvn dependency:purge-local-repository
mvn dependency:purge-local-repository -DreResolve=false mvn dependency:purge-local-repository
-DactTransitively=false -DreResolve=false Environment : mvn -version mvn
-h mvn archetype:generate mvn wrapper:wrapper mvn dependency:tree Execution
: mvn compile [war:war] [jar:jar] mvn test mvn assembly or mvn assembly:single
mvn package mvn install [-Dpackaging.type=war,jar] [-Pdev -DprofileIdEnabled=true]
or mvn install -N ( build a project without building it's sub-modules ) mvn
tomcat:run mvn source:jar mvn javadoc:javadoc mvn javadoc:jar mvn exec:exec
mvn site or mvn site:site mvn verify [-Dit.skip=false] mvn -X install > C:/java-workspace/teamwalk-web-app/my_error.log
Spring Boot : *Note* Springboot plugin limited use parameters :[-Dspring-boot.run.profiles=XXX]
mvn package spring-boot:repackage mvn -X spring-boot:start > C:/java-workspace/teamwalk-web-app/error.log
mvn [-q] spring-boot:run [-Dspring-boot.run.profiles=XXX] mvn clean package
spring-boot:repackage Executable file ( Use Spring Boot Plugin ) : Jar :
*Note* spring.profiles.active : default, sit, uat, prod java -jar -Dspring.profiles.active=XXX
teamwalk-admin-0.0.1-SNAPSHOT.jar War : *Note* spring.profiles.active : default,
sit, uat, prod java -jar -Dspring.profiles.active=XXX teamwalk-api-0.0.1-SNAPSHOT.war -->
<modelVersion>4.0.0</modelVersion>
<artifactId>teamwalk-admin</artifactId>
<version>2.X-SNAPSHOT</version>
<name>teamwalk-admin</name>
<description>teamwalk of taiwanlife - admin</description>
<!-- FIXME change it to the project's website -->
<!--<url>http://maven.apache.org</url>-->
<packaging>${packaging.type}</packaging>
<parent>
<groupId>com.taiwanlife.teamwalk</groupId>
<artifactId>teamwalk-web-app</artifactId>
<version>2.X-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<properties>
<mainClassName>com.taiwanlife.teamwalk.admin.Application</mainClassName>
<timestamp>${maven.build.timestamp}</timestamp>
<maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss</maven.build.timestamp.format>
</properties>
<build>
<!-- compile, package, spring-boot:run -->
<defaultGoal>spring-boot:run</defaultGoal>
<finalName>${deploy.war.name}</finalName>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<executions>
<execution>
<id>auto-clean</id>
<phase>initialize</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
<configuration>
<filesets>
<fileset>
<directory>${basedir}/output</directory>
<includes>
<include>*.*</include>
</includes>
<followSymlinks>false</followSymlinks>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<phase>compile</phase>
</execution>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<outputDirectory>${project.build.directory}/resources</outputDirectory>
</configuration>
</execution>
<execution>
<id>package-prepare</id>
<!-- here the phase you need -->
<phase>generate-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<overwrite>true</overwrite>
<resources>
<resource>
<directory>configs/resources/${package.environment}</directory>
</resource>
</resources>
<outputDirectory>src/main/resources/config</outputDirectory>
</configuration>
</execution>
</executions>
<configuration>
<tasks>
<echo>parse resources</echo>
</tasks>
<encoding>${project.encoding}</encoding>
<useDefaultDelimiters>false</useDefaultDelimiters>
<delimiters>
<delimiter>${resource.delimiter}</delimiter>
</delimiters>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<release>${java.version}</release>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>base-jar</id>
<!--<phase>compile</phase> <goals> <goal>jar</goal> </goals> -->
</execution>
</executions>
<configuration>
<archive>
<manifest>
<mainClass>${mainClassName}</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warName>${project.artifactId}-${project.version}.${project.packaging}</warName>
<packagingExcludes>
WEB-INF/lib/tomcat-embed-*.jar,
<!-- WEB-INF/lib/swagger-*.jar,-->
<!-- WEB-INF/lib/springdoc-openapi-*.jar,-->
<!-- WEB-INF/lib/webjars-locator-core-*.jar,-->
<!-- WEB-INF/lib/jackson-dataformat-yaml-*.jar,-->
<!-- WEB-INF/lib/classgraph-*.jar-->
</packagingExcludes>
<!--<includeEmptyDirs>true</includeEmptyDirs> -->
<webXml>src/main/webapp/WEB-INF/web.xml</webXml>
<filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>${mainClassName}</mainClass>
<!--<manifestFile>META-INF/MANIFEST.MF</manifestFile> -->
</manifest>
</archive>
<finalName>${project.artifactId}-${project.version}</finalName>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<phase>verify</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<skip>${it.skip}</skip>
</configuration>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<executions>
<execution>
<id>install-component</id>
<!--<phase>package</phase> -->
<phase>install</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<artifactId>${project.artifactId}</artifactId>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
<packaging>${project.packaging}</packaging>
<createChecksum>true</createChecksum>
<file>${project.build.directory}/${project.artifactId}-${project.version}.${project.packaging}</file>
</configuration>
</execution>
</executions>
</plugin>
<!-- <plugin>-->
<!-- <groupId>org.apache.maven.plugins</groupId>-->
<!-- <artifactId>maven-surefire-plugin</artifactId>-->
<!-- <version>3.0.0-M5</version>-->
<!-- <configuration>-->
<!-- <forkCount>3</forkCount>-->
<!-- <reuseForks>true</reuseForks>-->
<!-- <argLine>-Xmx1024m</argLine>-->
<!-- </configuration>-->
<!-- </plugin>-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-artifact</id>
<phase>install</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
<type>${project.packaging}</type>
<outputDirectory>${session.executionRootDirectory}/output/</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<executions>
<execution>
<id>deploy-moudle</id>
<phase>deploy</phase>
<goals>
<goal>deploy-file</goal>
</goals>
<configuration>
<generatePom>true</generatePom>
<artifactId>${project.artifactId}</artifactId>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
<packaging>${project.packaging}</packaging>
<repositoryId>${project.distributionManagement.repository.id}</repositoryId>
<url>${project.distributionManagement.repository.url}</url>
<file>${project.build.directory}/${project.artifactId}-${project.version}.${project.packaging}</file>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<executions>
<execution>
<id>test-showing-the-execution-id</id>
<phase>clean</phase>
<goals>
<goal>dependency-info</goal>
<goal>dependencies</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Spring Boot -->
<!-- Command : -Dspring-boot.run.profiles=? -->
<!-- Mansun 不需要repackage 參考下面網址 -->
<!-- https://stackoverflow.com/questions/43641664/why-spring-boot-generates-jar-or-war-file-with-original-extension -->
<!--
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<id>repackage-moudle</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
<execution>
<id>pre-integration-test</id>
<goals>
<goal>start</goal>
</goals>
<configuration>
<skip>${it.skip}</skip>
</configuration>
</execution>
<execution>
<id>post-integration-test</id>
<goals>
<goal>stop</goal>
</goals>
<configuration>
<skip>${it.skip}</skip>
</configuration>
</execution>
</executions>
<configuration>
<addResources>true</addResources>
<includeSystemScope>true</includeSystemScope>
<jmxPort>${jmx.port}</jmxPort>
</configuration>
</plugin>
-->
<!--<plugin>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-maven-plugin</artifactId>
<version>0.2</version>
<executions>
<execution>
<id>generate-doc</id>
<phase>integration-test</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<apiDocsUrl>http://localhost:8080/v3/api-docs</apiDocsUrl>
<outputFileName>openapi.json</outputFileName>
<outputDir>${project.build.directory}</outputDir>
</configuration>
</plugin>
-->
</plugins>
<pluginManagement>
<plugins />
</pluginManagement>
<resources>
<resource>
<directory>src/main/resources/</directory>
<filtering>false</filtering>
<excludes>
<exclude>**/bootstrap-*.yml</exclude>
<exclude>**/application-*.yml</exclude>
<exclude>**/bootstrap-*.properties</exclude>
<exclude>**/application-*.properties</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources/</directory>
<filtering>true</filtering>
<includes>
<include>**/logback-spring.xml</include>
<include>**/bootstrap.yml</include>
<include>**/bootstrap-${maven.profiles.active:default}.yml</include>
<include>**/application.yml</include>
<include>**/application-${maven.profiles.active:default}.yml</include>
<include>**/bootstrap.properties</include>
<include>**/bootstrap-${maven.profiles.active:default}.properties</include>
<include>**/application.properties</include>
<include>**/application-${maven.profiles.active:default}.properties</include>
</includes>
</resource>
</resources>
<testResources>
<testResource>
<directory>src/test/resources/</directory>
<filtering>false</filtering>
<excludes>
<exclude>**/bootstrap-*.yml</exclude>
<exclude>**/application-*.yml</exclude>
<exclude>**/bootstrap-*.properties</exclude>
<exclude>**/application-*.properties</exclude>
</excludes>
</testResource>
<testResource>
<directory>src/test/resources/</directory>
<filtering>true</filtering>
<includes>
<include>**/logback-spring.xml</include>
<include>**/bootstrap.yml</include>
<include>**/bootstrap-${maven.profiles.active:default}.yml</include>
<include>**/application.yml</include>
<include>**/application-${maven.profiles.active:default}.yml</include>
<include>**/bootstrap.properties</include>
<include>**/bootstrap-${maven.profiles.active:default}.properties</include>
<include>**/application.properties</include>
<include>**/application-${maven.profiles.active:default}.properties</include>
</includes>
</testResource>
</testResources>
</build>
<!--
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
</pluginRepository>
</pluginRepositories>
<repositories>
<repository>
<id>jcenter-releases</id>
<name>jcenter</name>
<url>http://jcenter.bintray.com</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
</repository>
</repositories>
-->
<repositories>
<repository>
<id>central</id>
<name>Central Repository</name>
<url>https://nexus.taiwanlife.com/repository/taiwanlife-teamwalk</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>
<!-- Sub Module -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>teamwalk-common</artifactId>
</dependency>
<!-- Spring Framework -->
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- <exclusions> <exclusion> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId> </exclusion> <exclusion>
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion> </exclusions> -->
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-actuator -->
<!--<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</exclusion>
</exclusions>
</dependency>
-->
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-security -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<scope>compile</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-thymeleaf -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-mail -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-quartz -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
<!-- <version>2.3.5.RELEASE</version>-->
<version>3.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-hateoas -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-hateoas</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.springframework</groupId>-->
<!-- <artifactId>spring-instrument</artifactId>-->
<!-- <version>3.0.0</version>-->
<!-- </dependency>-->
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-devtools -->
<!--<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>provided</scope>
</dependency>
-->
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-tomcat -->
<!-- <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope> </dependency> -->
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-ldap -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-ldap</artifactId>
</dependency>
<!-- Spring -->
<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-test -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.retry/spring-retry -->
<dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-oxm -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.springframework</groupId>-->
<!-- <artifactId>spring-instrument</artifactId>-->
<!-- <version>5.3.22</version> 確保版本與你的 Spring 框架版本匹配 -->
<!-- </dependency>-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-instrument</artifactId>
</dependency>
<!-- Javax -->
<!-- https://mvnrepository.com/artifact/javax.validation/validation-api
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</dependency>
-->
<!-- https://mvnrepository.com/artifact/jakarta.validation/jakarta.validation-api -->
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
</dependency>
<!-- Hibernate -->
<!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator -->
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>
<!-- Apache Commons -->
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<!-- Excel -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.15</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.15</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>12.8.1.jre11</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
<!-- Firebase -->
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-admin</artifactId>
<version>9.4.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.thymeleaf.extras/thymeleaf-extras-springsecurity5 -->
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity5</artifactId>
<version>3.0.4.RELEASE</version>
</dependency>
<dependency>
<groupId>nz.net.ultraq.thymeleaf</groupId>
<artifactId>thymeleaf-layout-dialect</artifactId>
</dependency>
<dependency>
<groupId>com.github.wenhao</groupId>
<artifactId>jpa-spec</artifactId>
<version>3.2.1</version>
</dependency>
<!-- JUnit -->
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<!-- Informix -->
<dependency>
<groupId>com.ibm.informix</groupId>
<artifactId>jdbc</artifactId>
<version>4.50.3</version>
</dependency>
<dependency>
<groupId>org.reactivestreams</groupId>
<artifactId>reactive-streams</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
<!-- kaptcha -->
<dependency>
<groupId>com.github.penggle</groupId>
<artifactId>kaptcha</artifactId>
<version>2.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-hibernate5</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<!-- <dependency>-->
<!-- <groupId>com.fasterxml.jackson.core</groupId>-->
<!-- <artifactId>jackson-databind</artifactId>-->
<!-- <version>2.15.3</version>-->
<!-- </dependency>-->
<!-- sftp -->
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.55</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.github.ziplet</groupId>-->
<!--<!– <artifactId>ziplet</artifactId>–>-->
<!-- <artifactId>gzip-servlet-filter</artifactId>-->
<!-- <version>2.4.0</version>-->
<!-- </dependency>-->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.24.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/log4j-over-slf4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version>2.0.16</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.16</version>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-broker</artifactId>
<version>6.1.5</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-client</artifactId>
<version>6.1.5</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.5.16</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.5.16</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.22</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.39</version>
<scope>compile</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/net.minidev/json-smart -->
<dependency>
<groupId>net.minidev</groupId>
<artifactId>json-smart</artifactId>
<version>2.5.1</version>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-community-dialects</artifactId>
<version>6.5.3.Final</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
</dependency>
<dependency>
<groupId>io.github.classgraph</groupId>
<artifactId>classgraph</artifactId>
<version>4.8.157</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
</dependency>
</dependencies>
<!-- Construction procedure -->
<profiles>
<profile>
<id>default</id>
<activation>
<activeByDefault>true</activeByDefault>
<property>
<name>env</name>
<value>default</value>
</property>
</activation>
<properties>
<maven.profiles.active:default>default</maven.profiles.active:default>
<maven.app.name>${project.name}</maven.app.name>
<maven.app.version>${project.version}</maven.app.version>
<maven.app.packagingType:war>${packaging.type}</maven.app.packagingType:war>
</properties>
<dependencies />
<build>
<filters>
<filter>${basedir}/configs/resources/application.yml</filter>
</filters>
</build>
</profile>
<profile>
<id>sit-internal</id>
<activation>
<activeByDefault>false</activeByDefault>
<property>
<name>env</name>
<value>sit-internal</value>
</property>
</activation>
<properties>
<package.environment>sit</package.environment>
<deploy.war.name>teamwalk-admin-AD</deploy.war.name>
<maven.profiles.active:default>sit-internal</maven.profiles.active:default>
<maven.app.name>${project.name}</maven.app.name>
<maven.app.version>${project.version}</maven.app.version>
<maven.app.packagingType:war>${packaging.type}</maven.app.packagingType:war>
</properties>
<dependencies />
<build>
<filters>
<filter>${basedir}/configs/resources/application-sit-internal.yml</filter>
</filters>
</build>
</profile>
<profile>
<id>uat-internal</id>
<activation>
<activeByDefault>false</activeByDefault>
<property>
<name>env</name>
<value>uat-internal</value>
</property>
</activation>
<properties>
<package.environment>uat</package.environment>
<deploy.war.name>teamwalk-admin-AD</deploy.war.name>
<maven.profiles.active:default>uat-internal</maven.profiles.active:default>
<maven.app.name>${project.name}</maven.app.name>
<maven.app.version>${project.version}</maven.app.version>
<maven.app.packagingType:war>${packaging.type}</maven.app.packagingType:war>
</properties>
<dependencies />
<build>
<filters>
<filter>${basedir}/configs/resources/application-uat-internal.yml</filter>
</filters>
</build>
</profile>
<profile>
<id>prod-internal</id>
<activation>
<activeByDefault>false</activeByDefault>
<property>
<name>env</name>
<value>prod-internal</value>
</property>
</activation>
<properties>
<package.environment>prod</package.environment>
<deploy.war.name>teamwalk-admin-AD</deploy.war.name>
<maven.profiles.active:default>prod-internal</maven.profiles.active:default>
<maven.app.name>${project.name}</maven.app.name>
<maven.app.version>${project.version}</maven.app.version>
<maven.app.packagingType:war>${packaging.type}</maven.app.packagingType:war>
</properties>
<dependencies />
<build>
<filters>
<filter>${basedir}/configs/resources/application-prod-internal.yml</filter>
</filters>
</build>
</profile>
<profile>
<id>sit-external</id>
<activation>
<activeByDefault>false</activeByDefault>
<property>
<name>env</name>
<value>sit-external</value>
</property>
</activation>
<properties>
<package.environment>sit</package.environment>
<deploy.war.name>teamwalk-admin</deploy.war.name>
<maven.profiles.active:default>sit-external</maven.profiles.active:default>
<maven.app.name>${project.name}</maven.app.name>
<maven.app.version>${project.version}</maven.app.version>
<maven.app.packagingType:war>${packaging.type}</maven.app.packagingType:war>
</properties>
<dependencies />
<build>
<filters>
<filter>${basedir}/configs/resources/application-sit-external.yml</filter>
</filters>
</build>
</profile>
<profile>
<id>uat-external</id>
<activation>
<activeByDefault>false</activeByDefault>
<property>
<name>env</name>
<value>uat-external</value>
</property>
</activation>
<properties>
<package.environment>uat</package.environment>
<deploy.war.name>teamwalk-admin</deploy.war.name>
<maven.profiles.active:default>uat-external</maven.profiles.active:default>
<maven.app.name>${project.name}</maven.app.name>
<maven.app.version>${project.version}</maven.app.version>
<maven.app.packagingType:war>${packaging.type}</maven.app.packagingType:war>
</properties>
<dependencies />
<build>
<filters>
<filter>${basedir}/configs/resources/application-uat-external.yml</filter>
</filters>
</build>
</profile>
<profile>
<id>prod-external</id>
<activation>
<activeByDefault>false</activeByDefault>
<property>
<name>env</name>
<value>prod-external</value>
</property>
</activation>
<properties>
<package.environment>prod</package.environment>
<deploy.war.name>teamwalk-admin</deploy.war.name>
<maven.profiles.active:default>prod-external</maven.profiles.active:default>
<maven.app.name>${project.name}</maven.app.name>
<maven.app.version>${project.version}</maven.app.version>
<maven.app.packagingType:war>${packaging.type}</maven.app.packagingType:war>
</properties>
<dependencies />
<build>
<filters>
<filter>${basedir}/configs/resources/application-prod-external.yml</filter>
</filters>
</build>
</profile>
</profiles>
<reporting>
<plugins />
</reporting>
<distributionManagement>
<repository>
<id>local-repository</id>
<name>Local Release Repository</name>
<url>file:${project.basedir}/repository/</url>
<!--<url>http://127.0.0.1:8080/nexus/content/repositories/releases/</url> -->
</repository>
<snapshotRepository>
<id>local-snapshots</id>
<name>Local Snapshot Repository</name>
<url>file:${project.basedir}/repository/</url>
<!--<url>http://127.0.0.1:8080/nexus/content/repositories/snapshots/</url> -->
</snapshotRepository>
</distributionManagement>
</project>
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KCgoKPHByb2plY3Q+CgoKCgk8IS0tIERlZmF1bHQgbGlmZWN5Y2xlICgyMyBQaGFzZSkgOiB2YWxpZGF0ZSAtPiBjb21waWxlIC0+IFRlc3QgLT4gcGFja2FnZSAKCgkJLT4gdmVyaWZ5IC0+IGluc3RhbGwgLT4gZGVwbG95IC0+IChmaW5pc2gpIENvbW1hbmQgZm9ybWF0IDogbXZuIG9yIG12bncgZ29hbHMgCgoJCVstRHBhY2thZ2luZy50eXBlPXdhcixqYXJdIFstRHNwcmluZy1ib290LnJ1bi5wcm9maWxlcz1kZXZdIFstUHByb2RdIFsuLi4uXSAKCgkJTWF2ZW4gQ29tbWFuZCA6IG12biBvciBtdm53IE1vbml0b3IgOiBbLXFdIEFyZ3VtZW50cyA6ICpOb3RlKiBvcHRpb25hbCBbLURwYWNrYWdpbmcudHlwZT13YXIsamFyXSAKCgkJWy1Ec3ByaW5nLWJvb3QucnVuLnByb2ZpbGVzPWRldl0gWy1EaXQuc2tpcD1mYWxzZV0gWy1QcHJvZF0gWy4uLi5dIFBhY2thZ2luZyAKCgkJOiBhcmcgOiBwb20sIHdhciwgamFyIFstRHBhY2thZ2luZy50eXBlPXdhcixqYXJdIFRlc3RzIDogYXJnIDogdHJ1ZSwgZmFsc2UgCgoJCSpOb3RlKiB0ZXN0aW5nIFstRGl0LnNraXA9ZmFsc2VdICpOb3RlKiBub25lIHRlc3RpbmcgWy1EaXQuc2tpcD10cnVlXSBQcm9maWxlIAoKCQk6IGFyZyA6IGRlZmF1bHQsIHNpdC1pbnRlcm5hbCwgdWF0LWludGVybmFsLCBwcm9kLWludGVybmFsLCBzaXQtZXh0ZXJuYWwsIAoKCQl1YXQtZXh0ZXJuYWwsIHByb2QtZXh0ZXJuYWwgKk5vdGUqIHBhY2thZ2Ugb3IgaW5zdGFsbCBFWCA6IG12biBwYWNrYWdlIC1EaXQuc2tpcD10cnVlIAoKCQktRHBhY2thZ2luZy50eXBlPWphciAtUHByb2QtaW50ZXJuYWwgU3lzdGVtIDogKk5vdGUqIERlbGV0ZSB0aGUgZGVwZW5kZW5jeSAKCgkJcGFja2FnZSBvZiB0aGUgY3VycmVudCBwcm9qZWN0IGluIHRoZSBsb2NhbCB3YXJlaG91c2UgbXZuIGRlcGVuZGVuY3k6cHVyZ2UtbG9jYWwtcmVwb3NpdG9yeSAKCgkJbXZuIGRlcGVuZGVuY3k6cHVyZ2UtbG9jYWwtcmVwb3NpdG9yeSAtRHJlUmVzb2x2ZT1mYWxzZSBtdm4gZGVwZW5kZW5jeTpwdXJnZS1sb2NhbC1yZXBvc2l0b3J5IAoKCQktRGFjdFRyYW5zaXRpdmVseT1mYWxzZSAtRHJlUmVzb2x2ZT1mYWxzZSBFbnZpcm9ubWVudCA6IG12biAtdmVyc2lvbiBtdm4gCgoJCS1oIG12biBhcmNoZXR5cGU6Z2VuZXJhdGUgbXZuIHdyYXBwZXI6d3JhcHBlciBtdm4gZGVwZW5kZW5jeTp0cmVlIEV4ZWN1dGlvbiAKCgkJOiBtdm4gY29tcGlsZSBbd2FyOndhcl0gW2phcjpqYXJdIG12biB0ZXN0IG12biBhc3NlbWJseSBvciBtdm4gYXNzZW1ibHk6c2luZ2xlIAoKCQltdm4gcGFja2FnZSBtdm4gaW5zdGFsbCBbLURwYWNrYWdpbmcudHlwZT13YXIsamFyXSBbLVBkZXYgLURwcm9maWxlSWRFbmFibGVkPXRydWVdIAoKCQlvciBtdm4gaW5zdGFsbCAtTiAoIGJ1aWxkIGEgcHJvamVjdCB3aXRob3V0IGJ1aWxkaW5nIGl0J3Mgc3ViLW1vZHVsZXMgKSBtdm4gCgoJCXRvbWNhdDpydW4gbXZuIHNvdXJjZTpqYXIgbXZuIGphdmFkb2M6amF2YWRvYyBtdm4gamF2YWRvYzpqYXIgbXZuIGV4ZWM6ZXhlYyAKCgkJbXZuIHNpdGUgb3IgbXZuIHNpdGU6c2l0ZSBtdm4gdmVyaWZ5IFstRGl0LnNraXA9ZmFsc2VdIG12biAtWCBpbnN0YWxsID4gQzovamF2YS13b3Jrc3BhY2UvdGVhbXdhbGstd2ViLWFwcC9teV9lcnJvci5sb2cgCgoJCVNwcmluZyBCb290IDogKk5vdGUqIFNwcmluZ2Jvb3QgcGx1Z2luIGxpbWl0ZWQgdXNlIHBhcmFtZXRlcnMgOlstRHNwcmluZy1ib290LnJ1bi5wcm9maWxlcz1YWFhdIAoKCQltdm4gcGFja2FnZSBzcHJpbmctYm9vdDpyZXBhY2thZ2UgbXZuIC1YIHNwcmluZy1ib290OnN0YXJ0ID4gQzovamF2YS13b3Jrc3BhY2UvdGVhbXdhbGstd2ViLWFwcC9lcnJvci5sb2cgCgoJCW12biBbLXFdIHNwcmluZy1ib290OnJ1biBbLURzcHJpbmctYm9vdC5ydW4ucHJvZmlsZXM9WFhYXSBtdm4gY2xlYW4gcGFja2FnZSAKCgkJc3ByaW5nLWJvb3Q6cmVwYWNrYWdlIEV4ZWN1dGFibGUgZmlsZSAoIFVzZSBTcHJpbmcgQm9vdCBQbHVnaW4gKSA6IEphciA6IAoKCQkqTm90ZSogc3ByaW5nLnByb2ZpbGVzLmFjdGl2ZSA6IGRlZmF1bHQsIHNpdCwgdWF0LCBwcm9kIGphdmEgLWphciAtRHNwcmluZy5wcm9maWxlcy5hY3RpdmU9WFhYIAoKCQl0ZWFtd2Fsay1hZG1pbi0wLjAuMS1TTkFQU0hPVC5qYXIgV2FyIDogKk5vdGUqIHNwcmluZy5wcm9maWxlcy5hY3RpdmUgOiBkZWZhdWx0LCAKCgkJc2l0LCB1YXQsIHByb2QgamF2YSAtamFyIC1Ec3ByaW5nLnByb2ZpbGVzLmFjdGl2ZT1YWFggdGVhbXdhbGstYXBpLTAuMC4xLVNOQVBTSE9ULndhciAtLT4KCgk8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CgoKCgk8YXJ0aWZhY3RJZD50ZWFtd2Fsay1hZG1pbjwvYXJ0aWZhY3RJZD4KCgk8dmVyc2lvbj4yLlgtU05BUFNIT1Q8L3ZlcnNpb24+CgoJPG5hbWU+dGVhbXdhbGstYWRtaW48L25hbWU+CgoJPGRlc2NyaXB0aW9uPnRlYW13YWxrIG9mIHRhaXdhbmxpZmUgLSBhZG1pbjwvZGVzY3JpcHRpb24+CgoJPCEtLSBGSVhNRSBjaGFuZ2UgaXQgdG8gdGhlIHByb2plY3QncyB3ZWJzaXRlIC0tPgoKCTwhLS08dXJsPmh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnPC91cmw+LS0+CgoKCgk8cGFja2FnaW5nPiR7cGFja2FnaW5nLnR5cGV9PC9wYWNrYWdpbmc+CgoKCgk8cGFyZW50PgoKCQk8Z3JvdXBJZD5jb20udGFpd2FubGlmZS50ZWFtd2FsazwvZ3JvdXBJZD4KCgkJPGFydGlmYWN0SWQ+dGVhbXdhbGstd2ViLWFwcDwvYXJ0aWZhY3RJZD4KCgkJPHZlcnNpb24+Mi5YLVNOQVBTSE9UPC92ZXJzaW9uPgoKCQk8cmVsYXRpdmVQYXRoPi4uLy4uL3BvbS54bWw8L3JlbGF0aXZlUGF0aD4KCgk8L3BhcmVudD4KCgoKCTxwcm9wZXJ0aWVzPgoKCQk8bWFpbkNsYXNzTmFtZT5jb20udGFpd2FubGlmZS50ZWFtd2Fsay5hZG1pbi5BcHBsaWNhdGlvbjwvbWFpbkNsYXNzTmFtZT4KCgoKICAgICAgICA8dGltZXN0YW1wPiR7bWF2ZW4uYnVpbGQudGltZXN0YW1wfTwvdGltZXN0YW1wPgoKICAgICAgICA8bWF2ZW4uYnVpbGQudGltZXN0YW1wLmZvcm1hdD55eXl5LU1NLWRkIEhIOm1tOnNzPC9tYXZlbi5idWlsZC50aW1lc3RhbXAuZm9ybWF0PgoKCgoJPC9wcm9wZXJ0aWVzPgoKCgoJPGJ1aWxkPgoKCgoJCTwhLS0gY29tcGlsZSwgcGFja2FnZSwgc3ByaW5nLWJvb3Q6cnVuIC0tPgoKCQk8ZGVmYXVsdEdvYWw+c3ByaW5nLWJvb3Q6cnVuPC9kZWZhdWx0R29hbD4KCgkJPGZpbmFsTmFtZT4ke2RlcGxveS53YXIubmFtZX08L2ZpbmFsTmFtZT4KCgoKCQk8cGx1Z2lucz4KCgoKCQkJPHBsdWdpbj4KCgkJCQk8YXJ0aWZhY3RJZD5tYXZlbi1jbGVhbi1wbHVnaW48L2FydGlmYWN0SWQ+CgoJCQkJPGV4ZWN1dGlvbnM+CgoJCQkJCTxleGVjdXRpb24+CgoJCQkJCQk8aWQ+YXV0by1jbGVhbjwvaWQ+CgoJCQkJCQk8cGhhc2U+aW5pdGlhbGl6ZTwvcGhhc2U+CgoJCQkJCQk8Z29hbHM+CgoJCQkJCQkJPGdvYWw+Y2xlYW48L2dvYWw+CgoJCQkJCQk8L2dvYWxzPgoKCQkJCQk8L2V4ZWN1dGlvbj4KCgkJCQk8L2V4ZWN1dGlvbnM+CgoJCQkJPGNvbmZpZ3VyYXRpb24+CgoJCQkJCTxmaWxlc2V0cz4KCgkJCQkJCTxmaWxlc2V0PgoKCQkJCQkJCTxkaXJlY3Rvcnk+JHtiYXNlZGlyfS9vdXRwdXQ8L2RpcmVjdG9yeT4KCgkJCQkJCQk8aW5jbHVkZXM+CgoJCQkJCQkJCTxpbmNsdWRlPiouKjwvaW5jbHVkZT4KCgkJCQkJCQk8L2luY2x1ZGVzPgoKCQkJCQkJCTxmb2xsb3dTeW1saW5rcz5mYWxzZTwvZm9sbG93U3ltbGlua3M+CgoJCQkJCQk8L2ZpbGVzZXQ+CgoJCQkJCTwvZmlsZXNldHM+CgoJCQkJPC9jb25maWd1cmF0aW9uPgoKCQkJPC9wbHVnaW4+CgoKCgkJCTxwbHVnaW4+CgoJCQkJPGFydGlmYWN0SWQ+bWF2ZW4tcmVzb3VyY2VzLXBsdWdpbjwvYXJ0aWZhY3RJZD4KCgkJCQk8ZXhlY3V0aW9ucz4KCgoKCQkJCQk8ZXhlY3V0aW9uPgoKCQkJCQkJPHBoYXNlPmNvbXBpbGU8L3BoYXNlPgoKCQkJCQk8L2V4ZWN1dGlvbj4KCgoKCQkJCQk8ZXhlY3V0aW9uPgoKCQkJCQkJPGlkPmNvcHktcmVzb3VyY2VzPC9pZD4KCgkJCQkJCTxwaGFzZT52YWxpZGF0ZTwvcGhhc2U+CgoJCQkJCQk8Z29hbHM+CgoJCQkJCQkJPGdvYWw+Y29weS1yZXNvdXJjZXM8L2dvYWw+CgoJCQkJCQk8L2dvYWxzPgoKCQkJCQkJPGNvbmZpZ3VyYXRpb24+CgoJCQkJCQkJPHJlc291cmNlcz4KCgkJCQkJCQkJPHJlc291cmNlPgoKCQkJCQkJCQkJPGRpcmVjdG9yeT5zcmMvbWFpbi9yZXNvdXJjZXM8L2RpcmVjdG9yeT4KCgkJCQkJCQkJCTxmaWx0ZXJpbmc+dHJ1ZTwvZmlsdGVyaW5nPgoKCQkJCQkJCQk8L3Jlc291cmNlPgoKCQkJCQkJCTwvcmVzb3VyY2VzPgoKCQkJCQkJCTxvdXRwdXREaXJlY3Rvcnk+JHtwcm9qZWN0LmJ1aWxkLmRpcmVjdG9yeX0vcmVzb3VyY2VzPC9vdXRwdXREaXJlY3Rvcnk+CgoJCQkJCQk8L2NvbmZpZ3VyYXRpb24+CgoJCQkJCTwvZXhlY3V0aW9uPgoKCgoJCQkJCTxleGVjdXRpb24+CgogICAgICAgICAgICAgICAgICAgICAgICA8aWQ+cGFja2FnZS1wcmVwYXJlPC9pZD4KCiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gaGVyZSB0aGUgcGhhc2UgeW91IG5lZWQgLS0+CgogICAgICAgICAgICAgICAgICAgICAgICA8cGhhc2U+Z2VuZXJhdGUtc291cmNlczwvcGhhc2U+CgogICAgICAgICAgICAgICAgICAgICAgICA8Z29hbHM+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGdvYWw+Y29weS1yZXNvdXJjZXM8L2dvYWw+CgogICAgICAgICAgICAgICAgICAgICAgICA8L2dvYWxzPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG92ZXJ3cml0ZT50cnVlPC9vdmVyd3JpdGU+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlcz4gICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXJlY3Rvcnk+Y29uZmlncy9yZXNvdXJjZXMvJHtwYWNrYWdlLmVudmlyb25tZW50fTwvZGlyZWN0b3J5PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Jlc291cmNlPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVzb3VyY2VzPiAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG91dHB1dERpcmVjdG9yeT5zcmMvbWFpbi9yZXNvdXJjZXMvY29uZmlnPC9vdXRwdXREaXJlY3Rvcnk+CgogICAgICAgICAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+ICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9uPgoKCgoJCQkJPC9leGVjdXRpb25zPgoKCQkJCTxjb25maWd1cmF0aW9uPgoKCQkJCQk8dGFza3M+CgoJCQkJCQk8ZWNobz5wYXJzZSByZXNvdXJjZXM8L2VjaG8+CgoJCQkJCTwvdGFza3M+CgoJCQkJCTxlbmNvZGluZz4ke3Byb2plY3QuZW5jb2Rpbmd9PC9lbmNvZGluZz4KCgkJCQkJPHVzZURlZmF1bHREZWxpbWl0ZXJzPmZhbHNlPC91c2VEZWZhdWx0RGVsaW1pdGVycz4KCgkJCQkJPGRlbGltaXRlcnM+CgoJCQkJCQk8ZGVsaW1pdGVyPiR7cmVzb3VyY2UuZGVsaW1pdGVyfTwvZGVsaW1pdGVyPgoKCQkJCQk8L2RlbGltaXRlcnM+CgoJCQkJPC9jb25maWd1cmF0aW9uPgoKCQkJPC9wbHVnaW4+CgoKCgkJCTxwbHVnaW4+CgoJCQkJPGFydGlmYWN0SWQ+bWF2ZW4tY29tcGlsZXItcGx1Z2luPC9hcnRpZmFjdElkPgoKCQkJCTxjb25maWd1cmF0aW9uPgoKCQkJCQk8cmVsZWFzZT4ke2phdmEudmVyc2lvbn08L3JlbGVhc2U+CgoJCQkJCTxlbmNvZGluZz4ke3Byb2plY3QuYnVpbGQuc291cmNlRW5jb2Rpbmd9PC9lbmNvZGluZz4KCgkJCQk8L2NvbmZpZ3VyYXRpb24+CgoJCQk8L3BsdWdpbj4KCgoKCQkJPHBsdWdpbj4KCgkJCQk8YXJ0aWZhY3RJZD5tYXZlbi1qYXItcGx1Z2luPC9hcnRpZmFjdElkPgoKCQkJCTxleGVjdXRpb25zPgoKCQkJCQk8ZXhlY3V0aW9uPgoKCQkJCQkJPGlkPmJhc2UtamFyPC9pZD4KCgkJCQkJCTwhLS08cGhhc2U+Y29tcGlsZTwvcGhhc2U+IDxnb2Fscz4gPGdvYWw+amFyPC9nb2FsPiA8L2dvYWxzPiAtLT4KCgkJCQkJPC9leGVjdXRpb24+CgoJCQkJPC9leGVjdXRpb25zPgoKCQkJCTxjb25maWd1cmF0aW9uPgoKCQkJCQk8YXJjaGl2ZT4KCgkJCQkJCTxtYW5pZmVzdD4KCgkJCQkJCQk8bWFpbkNsYXNzPiR7bWFpbkNsYXNzTmFtZX08L21haW5DbGFzcz4KCgkJCQkJCQk8YWRkQ2xhc3NwYXRoPnRydWU8L2FkZENsYXNzcGF0aD4KCgkJCQkJCQk8Y2xhc3NwYXRoUHJlZml4PmxpYi88L2NsYXNzcGF0aFByZWZpeD4KCgkJCQkJCTwvbWFuaWZlc3Q+CgoJCQkJCTwvYXJjaGl2ZT4KCgkJCQk8L2NvbmZpZ3VyYXRpb24+CgoJCQk8L3BsdWdpbj4KCgoKCQkJPHBsdWdpbj4KCgkJCQk8YXJ0aWZhY3RJZD5tYXZlbi13YXItcGx1Z2luPC9hcnRpZmFjdElkPgoKCQkJCTxjb25maWd1cmF0aW9uPgoKCQkJCQk8d2FyTmFtZT4ke3Byb2plY3QuYXJ0aWZhY3RJZH0tJHtwcm9qZWN0LnZlcnNpb259LiR7cHJvamVjdC5wYWNrYWdpbmd9PC93YXJOYW1lPgoKCQkJCQk8cGFja2FnaW5nRXhjbHVkZXM+CgoJCQkJCSAgICBXRUItSU5GL2xpYi90b21jYXQtZW1iZWQtKi5qYXIsCgo8IS0tCQkJCQkgICAgV0VCLUlORi9saWIvc3dhZ2dlci0qLmphciwtLT4KCjwhLS0JCQkJCSAgICBXRUItSU5GL2xpYi9zcHJpbmdkb2Mtb3BlbmFwaS0qLmphciwtLT4KCjwhLS0JCQkJCQlXRUItSU5GL2xpYi93ZWJqYXJzLWxvY2F0b3ItY29yZS0qLmphciwtLT4KCjwhLS0JCQkJCQlXRUItSU5GL2xpYi9qYWNrc29uLWRhdGFmb3JtYXQteWFtbC0qLmphciwtLT4KCjwhLS0JCQkJCQlXRUItSU5GL2xpYi9jbGFzc2dyYXBoLSouamFyLS0+CgoJCQkJCTwvcGFja2FnaW5nRXhjbHVkZXM+CgoJCQkJCTwhLS08aW5jbHVkZUVtcHR5RGlycz50cnVlPC9pbmNsdWRlRW1wdHlEaXJzPiAtLT4KCgkJCQkJPHdlYlhtbD5zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi93ZWIueG1sPC93ZWJYbWw+CgoJCQkJCTxmaWx0ZXJpbmdEZXBsb3ltZW50RGVzY3JpcHRvcnM+dHJ1ZTwvZmlsdGVyaW5nRGVwbG95bWVudERlc2NyaXB0b3JzPgoKCQkJCTwvY29uZmlndXJhdGlvbj4KCgkJCTwvcGx1Z2luPgoKCgoJCQk8cGx1Z2luPgoKCQkJCTxhcnRpZmFjdElkPm1hdmVuLWFzc2VtYmx5LXBsdWdpbjwvYXJ0aWZhY3RJZD4KCgkJCQk8Y29uZmlndXJhdGlvbj4KCgkJCQkJPGFyY2hpdmU+CgoJCQkJCQk8bWFuaWZlc3Q+CgoJCQkJCQkJPG1haW5DbGFzcz4ke21haW5DbGFzc05hbWV9PC9tYWluQ2xhc3M+CgoJCQkJCQkJPCEtLTxtYW5pZmVzdEZpbGU+TUVUQS1JTkYvTUFOSUZFU1QuTUY8L21hbmlmZXN0RmlsZT4gLS0+CgoJCQkJCQk8L21hbmlmZXN0PgoKCQkJCQk8L2FyY2hpdmU+CgoJCQkJCTxmaW5hbE5hbWU+JHtwcm9qZWN0LmFydGlmYWN0SWR9LSR7cHJvamVjdC52ZXJzaW9ufTwvZmluYWxOYW1lPgoKCQkJCQk8ZGVzY3JpcHRvclJlZnM+CgoJCQkJCQk8ZGVzY3JpcHRvclJlZj5qYXItd2l0aC1kZXBlbmRlbmNpZXM8L2Rlc2NyaXB0b3JSZWY+CgoJCQkJCTwvZGVzY3JpcHRvclJlZnM+CgoJCQkJPC9jb25maWd1cmF0aW9uPgoKCQkJPC9wbHVnaW4+CgoKCgkJCTxwbHVnaW4+CgoJCQkJPGFydGlmYWN0SWQ+bWF2ZW4tc291cmNlLXBsdWdpbjwvYXJ0aWZhY3RJZD4KCgkJCQk8ZXhlY3V0aW9ucz4KCgkJCQkJPGV4ZWN1dGlvbj4KCgkJCQkJCTxpZD5hdHRhY2gtc291cmNlczwvaWQ+CgoJCQkJCQk8cGhhc2U+dmVyaWZ5PC9waGFzZT4KCgkJCQkJCTxnb2Fscz4KCgkJCQkJCQk8Z29hbD5qYXItbm8tZm9yazwvZ29hbD4KCgkJCQkJCTwvZ29hbHM+CgoJCQkJCTwvZXhlY3V0aW9uPgoKCQkJCTwvZXhlY3V0aW9ucz4KCgkJCTwvcGx1Z2luPgoKCgoJCQk8cGx1Z2luPgoKCQkJCTxhcnRpZmFjdElkPm1hdmVuLWZhaWxzYWZlLXBsdWdpbjwvYXJ0aWZhY3RJZD4KCgkJCQk8Y29uZmlndXJhdGlvbj4KCgkJCQkJPHNraXA+JHtpdC5za2lwfTwvc2tpcD4KCgkJCQk8L2NvbmZpZ3VyYXRpb24+CgoJCQk8L3BsdWdpbj4KCgoKCQkJPHBsdWdpbj4KCgkJCQk8YXJ0aWZhY3RJZD5tYXZlbi1pbnN0YWxsLXBsdWdpbjwvYXJ0aWZhY3RJZD4KCgkJCQk8ZXhlY3V0aW9ucz4KCgkJCQkJPGV4ZWN1dGlvbj4KCgkJCQkJCTxpZD5pbnN0YWxsLWNvbXBvbmVudDwvaWQ+CgoJCQkJCQk8IS0tPHBoYXNlPnBhY2thZ2U8L3BoYXNlPiAtLT4KCgkJCQkJCTxwaGFzZT5pbnN0YWxsPC9waGFzZT4KCgkJCQkJCTxnb2Fscz4KCgkJCQkJCQk8Z29hbD5pbnN0YWxsLWZpbGU8L2dvYWw+CgoJCQkJCQk8L2dvYWxzPgoKCQkJCQkJPGNvbmZpZ3VyYXRpb24+CgoJCQkJCQkJPGFydGlmYWN0SWQ+JHtwcm9qZWN0LmFydGlmYWN0SWR9PC9hcnRpZmFjdElkPgoKCQkJCQkJCTxncm91cElkPiR7cHJvamVjdC5ncm91cElkfTwvZ3JvdXBJZD4KCgkJCQkJCQk8dmVyc2lvbj4ke3Byb2plY3QudmVyc2lvbn08L3ZlcnNpb24+CgoJCQkJCQkJPHBhY2thZ2luZz4ke3Byb2plY3QucGFja2FnaW5nfTwvcGFja2FnaW5nPgoKCQkJCQkJCTxjcmVhdGVDaGVja3N1bT50cnVlPC9jcmVhdGVDaGVja3N1bT4KCgkJCQkJCQk8ZmlsZT4ke3Byb2plY3QuYnVpbGQuZGlyZWN0b3J5fS8ke3Byb2plY3QuYXJ0aWZhY3RJZH0tJHtwcm9qZWN0LnZlcnNpb259LiR7cHJvamVjdC5wYWNrYWdpbmd9PC9maWxlPgoKCQkJCQkJPC9jb25maWd1cmF0aW9uPgoKCQkJCQk8L2V4ZWN1dGlvbj4KCgkJCQk8L2V4ZWN1dGlvbnM+CgoJCQk8L3BsdWdpbj4KCgoKPCEtLQkJCTxwbHVnaW4+LS0+Cgo8IS0tCQkJCTxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4tLT4KCjwhLS0JCQkJPGFydGlmYWN0SWQ+bWF2ZW4tc3VyZWZpcmUtcGx1Z2luPC9hcnRpZmFjdElkPi0tPgoKPCEtLQkJCQk8dmVyc2lvbj4zLjAuMC1NNTwvdmVyc2lvbj4tLT4KCjwhLS0JCQkJPGNvbmZpZ3VyYXRpb24+LS0+Cgo8IS0tCQkJCQk8Zm9ya0NvdW50PjM8L2ZvcmtDb3VudD4tLT4KCjwhLS0JCQkJCTxyZXVzZUZvcmtzPnRydWU8L3JldXNlRm9ya3M+LS0+Cgo8IS0tCQkJCQk8YXJnTGluZT4tWG14MTAyNG08L2FyZ0xpbmU+LS0+Cgo8IS0tCQkJCTwvY29uZmlndXJhdGlvbj4tLT4KCjwhLS0JCQk8L3BsdWdpbj4tLT4KCgoKCQkJPHBsdWdpbj4KCgkJCQk8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CgoJCQkJPGFydGlmYWN0SWQ+bWF2ZW4tZGVwZW5kZW5jeS1wbHVnaW48L2FydGlmYWN0SWQ+CgoJCQkJPGV4ZWN1dGlvbnM+CgoJCQkJCTxleGVjdXRpb24+CgoJCQkJCQk8aWQ+Y29weS1hcnRpZmFjdDwvaWQ+CgoJCQkJCQk8cGhhc2U+aW5zdGFsbDwvcGhhc2U+CgoJCQkJCQk8Z29hbHM+CgoJCQkJCQkJPGdvYWw+Y29weTwvZ29hbD4KCgkJCQkJCTwvZ29hbHM+CgoJCQkJCQk8Y29uZmlndXJhdGlvbj4KCgkJCQkJCQk8YXJ0aWZhY3RJdGVtcz4KCgkJCQkJCQkJPGFydGlmYWN0SXRlbT4KCgkJCQkJCQkJCTxncm91cElkPiR7cHJvamVjdC5ncm91cElkfTwvZ3JvdXBJZD4KCgkJCQkJCQkJCTxhcnRpZmFjdElkPiR7cHJvamVjdC5hcnRpZmFjdElkfTwvYXJ0aWZhY3RJZD4KCgkJCQkJCQkJCTx2ZXJzaW9uPiR7cHJvamVjdC52ZXJzaW9ufTwvdmVyc2lvbj4KCgkJCQkJCQkJCTx0eXBlPiR7cHJvamVjdC5wYWNrYWdpbmd9PC90eXBlPgoKCQkJCQkJCQkJPG91dHB1dERpcmVjdG9yeT4ke3Nlc3Npb24uZXhlY3V0aW9uUm9vdERpcmVjdG9yeX0vb3V0cHV0Lzwvb3V0cHV0RGlyZWN0b3J5PgoKCQkJCQkJCQk8L2FydGlmYWN0SXRlbT4KCgkJCQkJCQk8L2FydGlmYWN0SXRlbXM+CgoJCQkJCQk8L2NvbmZpZ3VyYXRpb24+CgoJCQkJCTwvZXhlY3V0aW9uPgoKCQkJCTwvZXhlY3V0aW9ucz4KCgkJCTwvcGx1Z2luPgoKCgoJCQk8cGx1Z2luPgoKCQkJCTxhcnRpZmFjdElkPm1hdmVuLWRlcGxveS1wbHVnaW48L2FydGlmYWN0SWQ+CgoJCQkJPGV4ZWN1dGlvbnM+CgoJCQkJCTxleGVjdXRpb24+CgoJCQkJCQk8aWQ+ZGVwbG95LW1vdWRsZTwvaWQ+CgoJCQkJCQk8cGhhc2U+ZGVwbG95PC9waGFzZT4KCgkJCQkJCTxnb2Fscz4KCgkJCQkJCQk8Z29hbD5kZXBsb3ktZmlsZTwvZ29hbD4KCgkJCQkJCTwvZ29hbHM+CgoJCQkJCQk8Y29uZmlndXJhdGlvbj4KCgkJCQkJCQk8Z2VuZXJhdGVQb20+dHJ1ZTwvZ2VuZXJhdGVQb20+CgoJCQkJCQkJPGFydGlmYWN0SWQ+JHtwcm9qZWN0LmFydGlmYWN0SWR9PC9hcnRpZmFjdElkPgoKCQkJCQkJCTxncm91cElkPiR7cHJvamVjdC5ncm91cElkfTwvZ3JvdXBJZD4KCgkJCQkJCQk8dmVyc2lvbj4ke3Byb2plY3QudmVyc2lvbn08L3ZlcnNpb24+CgoJCQkJCQkJPHBhY2thZ2luZz4ke3Byb2plY3QucGFja2FnaW5nfTwvcGFja2FnaW5nPgoKCQkJCQkJCTxyZXBvc2l0b3J5SWQ+JHtwcm9qZWN0LmRpc3RyaWJ1dGlvbk1hbmFnZW1lbnQucmVwb3NpdG9yeS5pZH08L3JlcG9zaXRvcnlJZD4KCgkJCQkJCQk8dXJsPiR7cHJvamVjdC5kaXN0cmlidXRpb25NYW5hZ2VtZW50LnJlcG9zaXRvcnkudXJsfTwvdXJsPgoKCQkJCQkJCTxmaWxlPiR7cHJvamVjdC5idWlsZC5kaXJlY3Rvcnl9LyR7cHJvamVjdC5hcnRpZmFjdElkfS0ke3Byb2plY3QudmVyc2lvbn0uJHtwcm9qZWN0LnBhY2thZ2luZ308L2ZpbGU+CgoJCQkJCQk8L2NvbmZpZ3VyYXRpb24+CgoJCQkJCTwvZXhlY3V0aW9uPgoKCQkJCTwvZXhlY3V0aW9ucz4KCgkJCTwvcGx1Z2luPgoKCgoJCQk8cGx1Z2luPgoKCQkJCTxhcnRpZmFjdElkPm1hdmVuLXByb2plY3QtaW5mby1yZXBvcnRzLXBsdWdpbjwvYXJ0aWZhY3RJZD4KCgkJCQk8ZXhlY3V0aW9ucz4KCgkJCQkJPGV4ZWN1dGlvbj4KCgkJCQkJCTxpZD50ZXN0LXNob3dpbmctdGhlLWV4ZWN1dGlvbi1pZDwvaWQ+CgoJCQkJCQk8cGhhc2U+Y2xlYW48L3BoYXNlPgoKCQkJCQkJPGdvYWxzPgoKCQkJCQkJCTxnb2FsPmRlcGVuZGVuY3ktaW5mbzwvZ29hbD4KCgkJCQkJCQk8Z29hbD5kZXBlbmRlbmNpZXM8L2dvYWw+CgoJCQkJCQk8L2dvYWxzPgoKCQkJCQk8L2V4ZWN1dGlvbj4KCgkJCQk8L2V4ZWN1dGlvbnM+CgoJCQk8L3BsdWdpbj4KCgoKCQkJPCEtLSBTcHJpbmcgQm9vdCAtLT4KCgkJCTwhLS0gQ29tbWFuZCA6IC1Ec3ByaW5nLWJvb3QucnVuLnByb2ZpbGVzPT8gLS0+CgoJCQk8IS0tIE1hbnN1biDkuI3pnIDopoFyZXBhY2thZ2Ug5Y+D6ICD5LiL6Z2i57ay5Z2AIC0tPgoKCQkJPCEtLSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80MzY0MTY2NC93aHktc3ByaW5nLWJvb3QtZ2VuZXJhdGVzLWphci1vci13YXItZmlsZS13aXRoLW9yaWdpbmFsLWV4dGVuc2lvbiAtLT4KCgkJCTwhLS0KCgkJCTxwbHVnaW4+CgoJCQkJPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5ib290PC9ncm91cElkPgoKCQkJCTxhcnRpZmFjdElkPnNwcmluZy1ib290LW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KCgkJCQk8ZXhlY3V0aW9ucz4KCgoKCQkJCQk8ZXhlY3V0aW9uPgoKCQkJCQkJPGlkPnJlcGFja2FnZS1tb3VkbGU8L2lkPgoKCQkJCQkJPGdvYWxzPgoKCQkJCQkJCTxnb2FsPnJlcGFja2FnZTwvZ29hbD4KCgkJCQkJCTwvZ29hbHM+CgoJCQkJCTwvZXhlY3V0aW9uPgoKCgoJCQkJCTxleGVjdXRpb24+CgoJCQkJCQk8aWQ+cHJlLWludGVncmF0aW9uLXRlc3Q8L2lkPgoKCQkJCQkJPGdvYWxzPgoKCQkJCQkJCTxnb2FsPnN0YXJ0PC9nb2FsPgoKCQkJCQkJPC9nb2Fscz4KCgkJCQkJCTxjb25maWd1cmF0aW9uPgoKCQkJCQkJCTxza2lwPiR7aXQuc2tpcH08L3NraXA+CgoJCQkJCQk8L2NvbmZpZ3VyYXRpb24+CgoJCQkJCTwvZXhlY3V0aW9uPgoKCgoJCQkJCTxleGVjdXRpb24+CgoJCQkJCQk8aWQ+cG9zdC1pbnRlZ3JhdGlvbi10ZXN0PC9pZD4KCgkJCQkJCTxnb2Fscz4KCgkJCQkJCQk8Z29hbD5zdG9wPC9nb2FsPgoKCQkJCQkJPC9nb2Fscz4KCgkJCQkJCTxjb25maWd1cmF0aW9uPgoKCQkJCQkJCTxza2lwPiR7aXQuc2tpcH08L3NraXA+CgoJCQkJCQk8L2NvbmZpZ3VyYXRpb24+CgoJCQkJCTwvZXhlY3V0aW9uPgoKCgoJCQkJPC9leGVjdXRpb25zPgoKCgoJCQkJPGNvbmZpZ3VyYXRpb24+CgoJCQkJCTxhZGRSZXNvdXJjZXM+dHJ1ZTwvYWRkUmVzb3VyY2VzPgoKCQkJCQk8aW5jbHVkZVN5c3RlbVNjb3BlPnRydWU8L2luY2x1ZGVTeXN0ZW1TY29wZT4KCgkJCQkJPGpteFBvcnQ+JHtqbXgucG9ydH08L2pteFBvcnQ+CgoJCQkJPC9jb25maWd1cmF0aW9uPgoKCgoJCQk8L3BsdWdpbj4KCgkJCS0tPgoKCgoJCQk8IS0tPHBsdWdpbj4KCgkJCQk8Z3JvdXBJZD5vcmcuc3ByaW5nZG9jPC9ncm91cElkPgoKCQkJCTxhcnRpZmFjdElkPnNwcmluZ2RvYy1vcGVuYXBpLW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KCgkJCQk8dmVyc2lvbj4wLjI8L3ZlcnNpb24+CgoJCQkJPGV4ZWN1dGlvbnM+CgoJCQkJCTxleGVjdXRpb24+CgoJCQkJCQk8aWQ+Z2VuZXJhdGUtZG9jPC9pZD4KCgkJCQkJCTxwaGFzZT5pbnRlZ3JhdGlvbi10ZXN0PC9waGFzZT4KCgkJCQkJCTxnb2Fscz4KCgkJCQkJCQk8Z29hbD5nZW5lcmF0ZTwvZ29hbD4KCgkJCQkJCTwvZ29hbHM+CgoJCQkJCTwvZXhlY3V0aW9uPgoKCQkJCTwvZXhlY3V0aW9ucz4KCgkJCQk8Y29uZmlndXJhdGlvbj4KCgkJCQkJPGFwaURvY3NVcmw+aHR0cDovL2xvY2FsaG9zdDo4MDgwL3YzL2FwaS1kb2NzPC9hcGlEb2NzVXJsPgoKCQkJCQk8b3V0cHV0RmlsZU5hbWU+b3BlbmFwaS5qc29uPC9vdXRwdXRGaWxlTmFtZT4KCgkJCQkJPG91dHB1dERpcj4ke3Byb2plY3QuYnVpbGQuZGlyZWN0b3J5fTwvb3V0cHV0RGlyPgoKCQkJCTwvY29uZmlndXJhdGlvbj4KCgkJCTwvcGx1Z2luPgoKCQkJLS0+CgoJCTwvcGx1Z2lucz4KCgoKCQk8cGx1Z2luTWFuYWdlbWVudD4KCgkJCTxwbHVnaW5zIC8+CgoJCTwvcGx1Z2luTWFuYWdlbWVudD4KCgoKCQk8cmVzb3VyY2VzPgoKCgoJCQk8cmVzb3VyY2U+CgoJCQkJPGRpcmVjdG9yeT5zcmMvbWFpbi9yZXNvdXJjZXMvPC9kaXJlY3Rvcnk+CgoJCQkJPGZpbHRlcmluZz5mYWxzZTwvZmlsdGVyaW5nPgoKCQkJCTxleGNsdWRlcz4KCgkJCQkJPGV4Y2x1ZGU+KiovYm9vdHN0cmFwLSoueW1sPC9leGNsdWRlPgoKCQkJCQk8ZXhjbHVkZT4qKi9hcHBsaWNhdGlvbi0qLnltbDwvZXhjbHVkZT4KCgkJCQkJPGV4Y2x1ZGU+KiovYm9vdHN0cmFwLSoucHJvcGVydGllczwvZXhjbHVkZT4KCgkJCQkJPGV4Y2x1ZGU+KiovYXBwbGljYXRpb24tKi5wcm9wZXJ0aWVzPC9leGNsdWRlPgoKCQkJCTwvZXhjbHVkZXM+CgoJCQk8L3Jlc291cmNlPgoKCgoJCQk8cmVzb3VyY2U+CgoJCQkJPGRpcmVjdG9yeT5zcmMvbWFpbi9yZXNvdXJjZXMvPC9kaXJlY3Rvcnk+CgoJCQkJPGZpbHRlcmluZz50cnVlPC9maWx0ZXJpbmc+CgoJCQkJPGluY2x1ZGVzPgoKCQkJCQk8aW5jbHVkZT4qKi9sb2diYWNrLXNwcmluZy54bWw8L2luY2x1ZGU+CgoJCQkJCTxpbmNsdWRlPioqL2Jvb3RzdHJhcC55bWw8L2luY2x1ZGU+CgoJCQkJCTxpbmNsdWRlPioqL2Jvb3RzdHJhcC0ke21hdmVuLnByb2ZpbGVzLmFjdGl2ZTpkZWZhdWx0fS55bWw8L2luY2x1ZGU+CgoJCQkJCTxpbmNsdWRlPioqL2FwcGxpY2F0aW9uLnltbDwvaW5jbHVkZT4KCgkJCQkJPGluY2x1ZGU+KiovYXBwbGljYXRpb24tJHttYXZlbi5wcm9maWxlcy5hY3RpdmU6ZGVmYXVsdH0ueW1sPC9pbmNsdWRlPgoKCQkJCQk8aW5jbHVkZT4qKi9ib290c3RyYXAucHJvcGVydGllczwvaW5jbHVkZT4KCgkJCQkJPGluY2x1ZGU+KiovYm9vdHN0cmFwLSR7bWF2ZW4ucHJvZmlsZXMuYWN0aXZlOmRlZmF1bHR9LnByb3BlcnRpZXM8L2luY2x1ZGU+CgoJCQkJCTxpbmNsdWRlPioqL2FwcGxpY2F0aW9uLnByb3BlcnRpZXM8L2luY2x1ZGU+CgoJCQkJCTxpbmNsdWRlPioqL2FwcGxpY2F0aW9uLSR7bWF2ZW4ucHJvZmlsZXMuYWN0aXZlOmRlZmF1bHR9LnByb3BlcnRpZXM8L2luY2x1ZGU+CgoJCQkJPC9pbmNsdWRlcz4KCgkJCTwvcmVzb3VyY2U+CgoKCgkJPC9yZXNvdXJjZXM+CgoKCgkJPHRlc3RSZXNvdXJjZXM+CgoKCgkJCTx0ZXN0UmVzb3VyY2U+CgoJCQkJPGRpcmVjdG9yeT5zcmMvdGVzdC9yZXNvdXJjZXMvPC9kaXJlY3Rvcnk+CgoJCQkJPGZpbHRlcmluZz5mYWxzZTwvZmlsdGVyaW5nPgoKCQkJCTxleGNsdWRlcz4KCgkJCQkJPGV4Y2x1ZGU+KiovYm9vdHN0cmFwLSoueW1sPC9leGNsdWRlPgoKCQkJCQk8ZXhjbHVkZT4qKi9hcHBsaWNhdGlvbi0qLnltbDwvZXhjbHVkZT4KCgkJCQkJPGV4Y2x1ZGU+KiovYm9vdHN0cmFwLSoucHJvcGVydGllczwvZXhjbHVkZT4KCgkJCQkJPGV4Y2x1ZGU+KiovYXBwbGljYXRpb24tKi5wcm9wZXJ0aWVzPC9leGNsdWRlPgoKCQkJCTwvZXhjbHVkZXM+CgoJCQk8L3Rlc3RSZXNvdXJjZT4KCgoKCQkJPHRlc3RSZXNvdXJjZT4KCgkJCQk8ZGlyZWN0b3J5PnNyYy90ZXN0L3Jlc291cmNlcy88L2RpcmVjdG9yeT4KCgkJCQk8ZmlsdGVyaW5nPnRydWU8L2ZpbHRlcmluZz4KCgkJCQk8aW5jbHVkZXM+CgoJCQkJCTxpbmNsdWRlPioqL2xvZ2JhY2stc3ByaW5nLnhtbDwvaW5jbHVkZT4KCgkJCQkJPGluY2x1ZGU+KiovYm9vdHN0cmFwLnltbDwvaW5jbHVkZT4KCgkJCQkJPGluY2x1ZGU+KiovYm9vdHN0cmFwLSR7bWF2ZW4ucHJvZmlsZXMuYWN0aXZlOmRlZmF1bHR9LnltbDwvaW5jbHVkZT4KCgkJCQkJPGluY2x1ZGU+KiovYXBwbGljYXRpb24ueW1sPC9pbmNsdWRlPgoKCQkJCQk8aW5jbHVkZT4qKi9hcHBsaWNhdGlvbi0ke21hdmVuLnByb2ZpbGVzLmFjdGl2ZTpkZWZhdWx0fS55bWw8L2luY2x1ZGU+CgoJCQkJCTxpbmNsdWRlPioqL2Jvb3RzdHJhcC5wcm9wZXJ0aWVzPC9pbmNsdWRlPgoKCQkJCQk8aW5jbHVkZT4qKi9ib290c3RyYXAtJHttYXZlbi5wcm9maWxlcy5hY3RpdmU6ZGVmYXVsdH0ucHJvcGVydGllczwvaW5jbHVkZT4KCgkJCQkJPGluY2x1ZGU+KiovYXBwbGljYXRpb24ucHJvcGVydGllczwvaW5jbHVkZT4KCgkJCQkJPGluY2x1ZGU+KiovYXBwbGljYXRpb24tJHttYXZlbi5wcm9maWxlcy5hY3RpdmU6ZGVmYXVsdH0ucHJvcGVydGllczwvaW5jbHVkZT4KCgkJCQk8L2luY2x1ZGVzPgoKCQkJPC90ZXN0UmVzb3VyY2U+CgoKCgkJPC90ZXN0UmVzb3VyY2VzPgoKCgoJPC9idWlsZD4KCgoKICAgIDwhLS0KCgk8cGx1Z2luUmVwb3NpdG9yaWVzPgoKCgoJCTxwbHVnaW5SZXBvc2l0b3J5PgoKCQkJPGlkPnNwcmluZy1zbmFwc2hvdHM8L2lkPgoKCQkJPG5hbWU+U3ByaW5nIFNuYXBzaG90czwvbmFtZT4KCgkJCTx1cmw+aHR0cHM6Ly9yZXBvLnNwcmluZy5pby9zbmFwc2hvdDwvdXJsPgoKCQkJPHJlbGVhc2VzPgoKCQkJCTxlbmFibGVkPnRydWU8L2VuYWJsZWQ+CgoJCQk8L3JlbGVhc2VzPgoKCQkJPHNuYXBzaG90cz4KCgkJCQk8ZW5hYmxlZD50cnVlPC9lbmFibGVkPgoKCQkJPC9zbmFwc2hvdHM+CgoJCTwvcGx1Z2luUmVwb3NpdG9yeT4KCgoKCQk8cGx1Z2luUmVwb3NpdG9yeT4KCgkJCTxpZD5zcHJpbmctbWlsZXN0b25lczwvaWQ+CgoJCQk8bmFtZT5TcHJpbmcgTWlsZXN0b25lczwvbmFtZT4KCgkJCTx1cmw+aHR0cHM6Ly9yZXBvLnNwcmluZy5pby9taWxlc3RvbmU8L3VybD4KCgkJPC9wbHVnaW5SZXBvc2l0b3J5PgoKCgoJPC9wbHVnaW5SZXBvc2l0b3JpZXM+CgoKCgk8cmVwb3NpdG9yaWVzPgoKCgoJCTxyZXBvc2l0b3J5PgoKCQkJPGlkPmpjZW50ZXItcmVsZWFzZXM8L2lkPgoKCQkJPG5hbWU+amNlbnRlcjwvbmFtZT4KCgkJCTx1cmw+aHR0cDovL2pjZW50ZXIuYmludHJheS5jb208L3VybD4KCgkJCTxyZWxlYXNlcz4KCgkJCQk8ZW5hYmxlZD50cnVlPC9lbmFibGVkPgoKCQkJPC9yZWxlYXNlcz4KCgkJCTxzbmFwc2hvdHM+CgoJCQkJPGVuYWJsZWQ+ZmFsc2U8L2VuYWJsZWQ+CgoJCQk8L3NuYXBzaG90cz4KCgkJPC9yZXBvc2l0b3J5PgoKCgoJCTxyZXBvc2l0b3J5PgoKCQkJPGlkPnNwcmluZy1zbmFwc2hvdHM8L2lkPgoKCQkJPG5hbWU+U3ByaW5nIFNuYXBzaG90czwvbmFtZT4KCgkJCTx1cmw+aHR0cHM6Ly9yZXBvLnNwcmluZy5pby9zbmFwc2hvdDwvdXJsPgoKCQkJPHNuYXBzaG90cz4KCgkJCQk8ZW5hYmxlZD50cnVlPC9lbmFibGVkPgoKCQkJPC9zbmFwc2hvdHM+CgoJCTwvcmVwb3NpdG9yeT4KCgoKCQk8cmVwb3NpdG9yeT4KCgkJCTxpZD5zcHJpbmctbWlsZXN0b25lczwvaWQ+CgoJCQk8bmFtZT5TcHJpbmcgTWlsZXN0b25lczwvbmFtZT4KCgkJCTx1cmw+aHR0cHM6Ly9yZXBvLnNwcmluZy5pby9taWxlc3RvbmU8L3VybD4KCgkJPC9yZXBvc2l0b3J5PgoKCgoJPC9yZXBvc2l0b3JpZXM+CgogICAgLS0+CgoJCgoJPHJlcG9zaXRvcmllcz4KCgkJPHJlcG9zaXRvcnk+CgoJCQk8aWQ+Y2VudHJhbDwvaWQ+CgogICAgICAgICAgICA8bmFtZT5DZW50cmFsIFJlcG9zaXRvcnk8L25hbWU+CgoJCQk8dXJsPmh0dHBzOi8vbmV4dXMudGFpd2FubGlmZS5jb20vcmVwb3NpdG9yeS90YWl3YW5saWZlLXRlYW13YWxrPC91cmw+CgoJCQk8cmVsZWFzZXM+CgoJCQkJPGVuYWJsZWQ+dHJ1ZTwvZW5hYmxlZD4KCgkJCTwvcmVsZWFzZXM+CgoJCQk8c25hcHNob3RzPgoKCQkJCTxlbmFibGVkPmZhbHNlPC9lbmFibGVkPgoKCQkJPC9zbmFwc2hvdHM+CgoJCTwvcmVwb3NpdG9yeT4KCiAgICA8L3JlcG9zaXRvcmllcz4KCgkKCgk8ZGVwZW5kZW5jaWVzPgoKCgoJCTwhLS0gU3ViIE1vZHVsZSAtLT4KCgkJPGRlcGVuZGVuY3k+CgoJCQk8Z3JvdXBJZD4ke3Byb2plY3QuZ3JvdXBJZH08L2dyb3VwSWQ+CgoJCQk8YXJ0aWZhY3RJZD50ZWFtd2Fsay1jb21tb248L2FydGlmYWN0SWQ+CgoJCTwvZGVwZW5kZW5jeT4KCgoKCQk8IS0tIFNwcmluZyBGcmFtZXdvcmsgLS0+CgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Qvc3ByaW5nLWJvb3Qtc3RhcnRlci13ZWIgLS0+CgoJCTxkZXBlbmRlbmN5PgoKCQkJPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5ib290PC9ncm91cElkPgoKCQkJPGFydGlmYWN0SWQ+c3ByaW5nLWJvb3Qtc3RhcnRlci13ZWI8L2FydGlmYWN0SWQ+CgoJCQk8IS0tIDxleGNsdXNpb25zPiA8ZXhjbHVzaW9uPiA8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Q8L2dyb3VwSWQ+IAoKCQkJCTxhcnRpZmFjdElkPnNwcmluZy1ib290LXN0YXJ0ZXItbG9nZ2luZzwvYXJ0aWZhY3RJZD4gPC9leGNsdXNpb24+IDxleGNsdXNpb24+IAoKCQkJCTxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdDwvZ3JvdXBJZD4gPGFydGlmYWN0SWQ+c3ByaW5nLWJvb3Qtc3RhcnRlci10b21jYXQ8L2FydGlmYWN0SWQ+IAoKCQkJCTwvZXhjbHVzaW9uPiA8L2V4Y2x1c2lvbnM+IC0tPgoKCQk8L2RlcGVuZGVuY3k+CgoKCgkJPCEtLSBodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L29yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdC9zcHJpbmctYm9vdC1zdGFydGVyLWFjdHVhdG9yIC0tPgoKCQk8IS0tPGRlcGVuZGVuY3k+CgoJCQk8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Q8L2dyb3VwSWQ+CgoJCQk8YXJ0aWZhY3RJZD5zcHJpbmctYm9vdC1zdGFydGVyLWFjdHVhdG9yPC9hcnRpZmFjdElkPgoKCQkJPGV4Y2x1c2lvbnM+CgoJCQkJPGV4Y2x1c2lvbj4KCgkJCQkJPGdyb3VwSWQ+Y29tLmZhc3RlcnhtbC5qYWNrc29uLmNvcmU8L2dyb3VwSWQ+CgoJCQkJCTxhcnRpZmFjdElkPmphY2tzb24tZGF0YWJpbmQ8L2FydGlmYWN0SWQ+CgoJCQkJPC9leGNsdXNpb24+CgoJCQk8L2V4Y2x1c2lvbnM+CgoJCTwvZGVwZW5kZW5jeT4KCiAgICAgICAgLS0+CgoJCQoKCQk8IS0tIGh0dHBzOi8vbXZucmVwb3NpdG9yeS5jb20vYXJ0aWZhY3Qvb3JnLnNwcmluZ2ZyYW1ld29yay5ib290L3NwcmluZy1ib290LXN0YXJ0ZXItc2VjdXJpdHkgLS0+CgoJCTxkZXBlbmRlbmN5PgoKCQkJPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5ib290PC9ncm91cElkPgoKCQkJPGFydGlmYWN0SWQ+c3ByaW5nLWJvb3Qtc3RhcnRlci1zZWN1cml0eTwvYXJ0aWZhY3RJZD4KCgkJPC9kZXBlbmRlbmN5PgoKCgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Qvc3ByaW5nLWJvb3Qtc3RhcnRlci1kYXRhLWpwYSAtLT4KCgkJPGRlcGVuZGVuY3k+CgoJCQk8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Q8L2dyb3VwSWQ+CgoJCQk8YXJ0aWZhY3RJZD5zcHJpbmctYm9vdC1zdGFydGVyLWRhdGEtanBhPC9hcnRpZmFjdElkPgoKCQkJPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgoKCQk8L2RlcGVuZGVuY3k+CgoKCgkJPCEtLSBodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L29yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdC9zcHJpbmctYm9vdC1zdGFydGVyLXRoeW1lbGVhZiAtLT4KCgkJPGRlcGVuZGVuY3k+CgoJCQk8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Q8L2dyb3VwSWQ+CgoJCQk8YXJ0aWZhY3RJZD5zcHJpbmctYm9vdC1zdGFydGVyLXRoeW1lbGVhZjwvYXJ0aWZhY3RJZD4KCgkJPC9kZXBlbmRlbmN5PgoKCgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Qvc3ByaW5nLWJvb3Qtc3RhcnRlci1tYWlsIC0tPgoKCQk8ZGVwZW5kZW5jeT4KCgkJCTxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdDwvZ3JvdXBJZD4KCgkJCTxhcnRpZmFjdElkPnNwcmluZy1ib290LXN0YXJ0ZXItbWFpbDwvYXJ0aWZhY3RJZD4KCgkJPC9kZXBlbmRlbmN5PgoKCgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Qvc3ByaW5nLWJvb3Qtc3RhcnRlci1xdWFydHogLS0+CgoJCTxkZXBlbmRlbmN5PgoKCQkJPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5ib290PC9ncm91cElkPgoKCQkJPGFydGlmYWN0SWQ+c3ByaW5nLWJvb3Qtc3RhcnRlci1xdWFydHo8L2FydGlmYWN0SWQ+Cgo8IS0tCQkJPHZlcnNpb24+Mi4zLjUuUkVMRUFTRTwvdmVyc2lvbj4tLT4KCgkJCTx2ZXJzaW9uPjMuMC4wPC92ZXJzaW9uPgoKCQk8L2RlcGVuZGVuY3k+CgoKCgkJPCEtLSBodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L29yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdC9zcHJpbmctYm9vdC1zdGFydGVyLWhhdGVvYXMgLS0+CgoJCTxkZXBlbmRlbmN5PgoKCQkJPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5ib290PC9ncm91cElkPgoKCQkJPGFydGlmYWN0SWQ+c3ByaW5nLWJvb3Qtc3RhcnRlci1oYXRlb2FzPC9hcnRpZmFjdElkPgoKCQk8L2RlcGVuZGVuY3k+CgoJCQoKPCEtLQkJPGRlcGVuZGVuY3k+LS0+Cgo8IS0tCQkgICAgPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yazwvZ3JvdXBJZD4tLT4KCjwhLS0JCSAgICA8YXJ0aWZhY3RJZD5zcHJpbmctaW5zdHJ1bWVudDwvYXJ0aWZhY3RJZD4tLT4KCjwhLS0JCSAgICA8dmVyc2lvbj4zLjAuMDwvdmVyc2lvbj4tLT4KCjwhLS0JCTwvZGVwZW5kZW5jeT4tLT4KCgoKCQk8IS0tIGh0dHBzOi8vbXZucmVwb3NpdG9yeS5jb20vYXJ0aWZhY3Qvb3JnLnNwcmluZ2ZyYW1ld29yay5ib290L3NwcmluZy1ib290LWRldnRvb2xzIC0tPgoKCQk8IS0tPGRlcGVuZGVuY3k+CgoJCQk8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Q8L2dyb3VwSWQ+CgoJCQk8YXJ0aWZhY3RJZD5zcHJpbmctYm9vdC1kZXZ0b29sczwvYXJ0aWZhY3RJZD4KCgkJCTxvcHRpb25hbD50cnVlPC9vcHRpb25hbD4KCgkJCTxzY29wZT5wcm92aWRlZDwvc2NvcGU+CgoJCTwvZGVwZW5kZW5jeT4KCgkJLS0+CgoKCgkJPCEtLSBodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L29yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdC9zcHJpbmctYm9vdC1zdGFydGVyLXRvbWNhdCAtLT4KCgkJPCEtLSA8ZGVwZW5kZW5jeT4gPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5ib290PC9ncm91cElkPiA8YXJ0aWZhY3RJZD5zcHJpbmctYm9vdC1zdGFydGVyLXRvbWNhdDwvYXJ0aWZhY3RJZD4gCgoJCQk8c2NvcGU+cHJvdmlkZWQ8L3Njb3BlPiA8L2RlcGVuZGVuY3k+IC0tPgoKCgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Qvc3ByaW5nLWJvb3Qtc3RhcnRlci10ZXN0IC0tPgoKCQk8ZGVwZW5kZW5jeT4KCgkJCTxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdDwvZ3JvdXBJZD4KCgkJCTxhcnRpZmFjdElkPnNwcmluZy1ib290LXN0YXJ0ZXItdGVzdDwvYXJ0aWZhY3RJZD4KCgkJCTxzY29wZT50ZXN0PC9zY29wZT4KCgkJCTxleGNsdXNpb25zPgoKCQkJCTxleGNsdXNpb24+CgoJCQkJCTxncm91cElkPm9yZy5qdW5pdC52aW50YWdlPC9ncm91cElkPgoKCQkJCQk8YXJ0aWZhY3RJZD5qdW5pdC12aW50YWdlLWVuZ2luZTwvYXJ0aWZhY3RJZD4KCgkJCQk8L2V4Y2x1c2lvbj4KCgkJCTwvZXhjbHVzaW9ucz4KCgkJPC9kZXBlbmRlbmN5PgoKCgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcuc3ByaW5nZnJhbWV3b3JrLnNlY3VyaXR5L3NwcmluZy1zZWN1cml0eS1sZGFwIC0tPgoKCQk8ZGVwZW5kZW5jeT4KCgkJCTxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsuc2VjdXJpdHk8L2dyb3VwSWQ+CgoJCQk8YXJ0aWZhY3RJZD5zcHJpbmctc2VjdXJpdHktbGRhcDwvYXJ0aWZhY3RJZD4KCgkJPC9kZXBlbmRlbmN5PgoKCgoJCTwhLS0gU3ByaW5nIC0tPgoKCQk8IS0tIGh0dHBzOi8vbXZucmVwb3NpdG9yeS5jb20vYXJ0aWZhY3Qvb3JnLnNwcmluZ2ZyYW1ld29yay5zZWN1cml0eS9zcHJpbmctc2VjdXJpdHktdGVzdCAtLT4KCgkJPGRlcGVuZGVuY3k+CgoJCQk8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLnNlY3VyaXR5PC9ncm91cElkPgoKCQkJPGFydGlmYWN0SWQ+c3ByaW5nLXNlY3VyaXR5LXRlc3Q8L2FydGlmYWN0SWQ+CgoJCQk8c2NvcGU+dGVzdDwvc2NvcGU+CgoJCTwvZGVwZW5kZW5jeT4KCgoKCQk8IS0tIGh0dHBzOi8vbXZucmVwb3NpdG9yeS5jb20vYXJ0aWZhY3Qvb3JnLnNwcmluZ2ZyYW1ld29yay5yZXRyeS9zcHJpbmctcmV0cnkgLS0+CgoJCTxkZXBlbmRlbmN5PgoKCQkJPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yay5yZXRyeTwvZ3JvdXBJZD4KCgkJCTxhcnRpZmFjdElkPnNwcmluZy1yZXRyeTwvYXJ0aWZhY3RJZD4KCgkJPC9kZXBlbmRlbmN5PgoKCgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcuc3ByaW5nZnJhbWV3b3JrL3NwcmluZy1veG0gLS0+CgoJCTxkZXBlbmRlbmN5PgoKCQkJPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yazwvZ3JvdXBJZD4KCgkJCTxhcnRpZmFjdElkPnNwcmluZy1veG08L2FydGlmYWN0SWQ+CgoJCTwvZGVwZW5kZW5jeT4KCgoKPCEtLQkJPGRlcGVuZGVuY3k+LS0+Cgo8IS0tCQkJPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yazwvZ3JvdXBJZD4tLT4KCjwhLS0JCQk8YXJ0aWZhY3RJZD5zcHJpbmctaW5zdHJ1bWVudDwvYXJ0aWZhY3RJZD4tLT4KCjwhLS0JCQk8dmVyc2lvbj41LjMuMjI8L3ZlcnNpb24+ICDnorrkv53niYjmnKzoiIfkvaDnmoQgU3ByaW5nIOahhuaetueJiOacrOWMuemFjSAtLT4KCjwhLS0JCTwvZGVwZW5kZW5jeT4tLT4KCgoKCQk8ZGVwZW5kZW5jeT4KCgkJICAgIDxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcms8L2dyb3VwSWQ+CgoJCSAgICA8YXJ0aWZhY3RJZD5zcHJpbmctaW5zdHJ1bWVudDwvYXJ0aWZhY3RJZD4KCgkJPC9kZXBlbmRlbmN5PgoKCgoJCTwhLS0gSmF2YXggLS0+CgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9qYXZheC52YWxpZGF0aW9uL3ZhbGlkYXRpb24tYXBpCgoJCTxkZXBlbmRlbmN5PgoKCQkJPGdyb3VwSWQ+amF2YXgudmFsaWRhdGlvbjwvZ3JvdXBJZD4KCgkJCTxhcnRpZmFjdElkPnZhbGlkYXRpb24tYXBpPC9hcnRpZmFjdElkPgoKCQk8L2RlcGVuZGVuY3k+CgoJCSAtLT4KCgkJIAoKCQk8IS0tIGh0dHBzOi8vbXZucmVwb3NpdG9yeS5jb20vYXJ0aWZhY3QvamFrYXJ0YS52YWxpZGF0aW9uL2pha2FydGEudmFsaWRhdGlvbi1hcGkgLS0+CgoJCTxkZXBlbmRlbmN5PgoKCQkgICAgPGdyb3VwSWQ+amFrYXJ0YS52YWxpZGF0aW9uPC9ncm91cElkPgoKCQkgICAgPGFydGlmYWN0SWQ+amFrYXJ0YS52YWxpZGF0aW9uLWFwaTwvYXJ0aWZhY3RJZD4KCgkJPC9kZXBlbmRlbmN5PgoKCgoJCTwhLS0gSGliZXJuYXRlIC0tPgoKCQk8IS0tIGh0dHBzOi8vbXZucmVwb3NpdG9yeS5jb20vYXJ0aWZhY3Qvb3JnLmhpYmVybmF0ZS52YWxpZGF0b3IvaGliZXJuYXRlLXZhbGlkYXRvciAtLT4KCgkJPGRlcGVuZGVuY3k+CgoJCQk8Z3JvdXBJZD5vcmcuaGliZXJuYXRlLnZhbGlkYXRvcjwvZ3JvdXBJZD4KCgkJCTxhcnRpZmFjdElkPmhpYmVybmF0ZS12YWxpZGF0b3I8L2FydGlmYWN0SWQ+CgoJCTwvZGVwZW5kZW5jeT4KCgoKCQk8IS0tIEFwYWNoZSBDb21tb25zIC0tPgoKCQk8IS0tIGh0dHBzOi8vbXZucmVwb3NpdG9yeS5jb20vYXJ0aWZhY3Qvb3JnLmFwYWNoZS5jb21tb25zL2NvbW1vbnMtbGFuZzMgLS0+CgoJCTxkZXBlbmRlbmN5PgoKCQkJPGdyb3VwSWQ+b3JnLmFwYWNoZS5jb21tb25zPC9ncm91cElkPgoKCQkJPGFydGlmYWN0SWQ+Y29tbW9ucy1sYW5nMzwvYXJ0aWZhY3RJZD4KCgkJPC9kZXBlbmRlbmN5PgoKCgoJCTwhLS0gRXhjZWwgLS0+CgoJCTxkZXBlbmRlbmN5PgoKCQkJPGdyb3VwSWQ+b3JnLmFwYWNoZS5wb2k8L2dyb3VwSWQ+CgoJCQk8YXJ0aWZhY3RJZD5wb2k8L2FydGlmYWN0SWQ+CgoJCQk8dmVyc2lvbj4zLjE1PC92ZXJzaW9uPgoKCQk8L2RlcGVuZGVuY3k+CgoKCgkJPGRlcGVuZGVuY3k+CgoJCQk8Z3JvdXBJZD5vcmcuYXBhY2hlLnBvaTwvZ3JvdXBJZD4KCgkJCTxhcnRpZmFjdElkPnBvaS1vb3htbDwvYXJ0aWZhY3RJZD4KCgkJCTx2ZXJzaW9uPjMuMTU8L3ZlcnNpb24+CgoJCTwvZGVwZW5kZW5jeT4KCgoKCQk8IS0tIGh0dHBzOi8vbXZucmVwb3NpdG9yeS5jb20vYXJ0aWZhY3QvY29tLm1pY3Jvc29mdC5zcWxzZXJ2ZXIvbXNzcWwtamRiYyAtLT4KCgkJPGRlcGVuZGVuY3k+CgoJCQk8Z3JvdXBJZD5jb20ubWljcm9zb2Z0LnNxbHNlcnZlcjwvZ3JvdXBJZD4KCgkJCTxhcnRpZmFjdElkPm1zc3FsLWpkYmM8L2FydGlmYWN0SWQ+CgoJCQk8dmVyc2lvbj4xMi44LjEuanJlMTE8L3ZlcnNpb24+CgoJCTwvZGVwZW5kZW5jeT4KCgoKCQk8IS0tIGh0dHBzOi8vbXZucmVwb3NpdG9yeS5jb20vYXJ0aWZhY3Qvb3JnLnByb2plY3Rsb21ib2svbG9tYm9rIC0tPgoKCQk8ZGVwZW5kZW5jeT4KCgkJCTxncm91cElkPm9yZy5wcm9qZWN0bG9tYm9rPC9ncm91cElkPgoKCQkJPGFydGlmYWN0SWQ+bG9tYm9rPC9hcnRpZmFjdElkPgoKCQkJPHNjb3BlPnByb3ZpZGVkPC9zY29wZT4KCgkJPC9kZXBlbmRlbmN5PgoKCgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9jb20uZ29vZ2xlLmNvZGUuZ3Nvbi9nc29uIC0tPgoKCQk8ZGVwZW5kZW5jeT4KCgkJCTxncm91cElkPmNvbS5nb29nbGUuY29kZS5nc29uPC9ncm91cElkPgoKCQkJPGFydGlmYWN0SWQ+Z3NvbjwvYXJ0aWZhY3RJZD4KCgkJCTx2ZXJzaW9uPjIuOC42PC92ZXJzaW9uPgoKCQk8L2RlcGVuZGVuY3k+CgoKCgkJPCEtLSBGaXJlYmFzZSAtLT4KCgkJPGRlcGVuZGVuY3k+CgoJCQk8Z3JvdXBJZD5jb20uZ29vZ2xlLmZpcmViYXNlPC9ncm91cElkPgoKCQkJPGFydGlmYWN0SWQ+ZmlyZWJhc2UtYWRtaW48L2FydGlmYWN0SWQ+CgoJCQk8dmVyc2lvbj45LjQuMTwvdmVyc2lvbj4KCgkJPC9kZXBlbmRlbmN5PgoKCgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcudGh5bWVsZWFmLmV4dHJhcy90aHltZWxlYWYtZXh0cmFzLXNwcmluZ3NlY3VyaXR5NSAtLT4KCgkJPGRlcGVuZGVuY3k+CgoJCQk8Z3JvdXBJZD5vcmcudGh5bWVsZWFmLmV4dHJhczwvZ3JvdXBJZD4KCgkJCTxhcnRpZmFjdElkPnRoeW1lbGVhZi1leHRyYXMtc3ByaW5nc2VjdXJpdHk1PC9hcnRpZmFjdElkPgoKCQkJPHZlcnNpb24+My4wLjQuUkVMRUFTRTwvdmVyc2lvbj4KCgkJPC9kZXBlbmRlbmN5PgoKCgoJCTxkZXBlbmRlbmN5PgoKCQkJPGdyb3VwSWQ+bnoubmV0LnVsdHJhcS50aHltZWxlYWY8L2dyb3VwSWQ+CgoJCQk8YXJ0aWZhY3RJZD50aHltZWxlYWYtbGF5b3V0LWRpYWxlY3Q8L2FydGlmYWN0SWQ+CgoJCTwvZGVwZW5kZW5jeT4KCgoKCQk8ZGVwZW5kZW5jeT4KCgkJCTxncm91cElkPmNvbS5naXRodWIud2VuaGFvPC9ncm91cElkPgoKCQkJPGFydGlmYWN0SWQ+anBhLXNwZWM8L2FydGlmYWN0SWQ+CgoJCQk8dmVyc2lvbj4zLjIuMTwvdmVyc2lvbj4KCgkJPC9kZXBlbmRlbmN5PgoKCgoJCTwhLS0gSlVuaXQgLS0+CgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9qdW5pdC9qdW5pdCAtLT4KCgkJPGRlcGVuZGVuY3k+CgoJCQk8Z3JvdXBJZD5qdW5pdDwvZ3JvdXBJZD4KCgkJCTxhcnRpZmFjdElkPmp1bml0PC9hcnRpZmFjdElkPgoKCQkJPHNjb3BlPnRlc3Q8L3Njb3BlPgoKCQk8L2RlcGVuZGVuY3k+CgoKCgkJPCEtLSBJbmZvcm1peCAtLT4KCgkJPGRlcGVuZGVuY3k+CgoJCQk8Z3JvdXBJZD5jb20uaWJtLmluZm9ybWl4PC9ncm91cElkPgoKCQkJPGFydGlmYWN0SWQ+amRiYzwvYXJ0aWZhY3RJZD4KCgkJCTx2ZXJzaW9uPjQuNTAuMzwvdmVyc2lvbj4KCgkJPC9kZXBlbmRlbmN5PgoKCgoJCTxkZXBlbmRlbmN5PgoKCQkJPGdyb3VwSWQ+b3JnLnJlYWN0aXZlc3RyZWFtczwvZ3JvdXBJZD4KCgkJCTxhcnRpZmFjdElkPnJlYWN0aXZlLXN0cmVhbXM8L2FydGlmYWN0SWQ+CgoJCQk8dmVyc2lvbj4xLjAuMzwvdmVyc2lvbj4KCgkJPC9kZXBlbmRlbmN5PgoKCgoJCTxkZXBlbmRlbmN5PgoKCQkJPGdyb3VwSWQ+Y29tLmdpdGh1Yi51bGlzZXNib2NjaGlvPC9ncm91cElkPgoKCQkJPGFydGlmYWN0SWQ+amFzeXB0LXNwcmluZy1ib290LXN0YXJ0ZXI8L2FydGlmYWN0SWQ+CgoJCQk8dmVyc2lvbj4zLjAuNTwvdmVyc2lvbj4KCgkJPC9kZXBlbmRlbmN5PgoKCgoJCTwhLS0ga2FwdGNoYSAtLT4KCgkJPGRlcGVuZGVuY3k+CgoJCQk8Z3JvdXBJZD5jb20uZ2l0aHViLnBlbmdnbGU8L2dyb3VwSWQ+CgoJCQk8YXJ0aWZhY3RJZD5rYXB0Y2hhPC9hcnRpZmFjdElkPgoKCQkJPHZlcnNpb24+Mi4zLjI8L3ZlcnNpb24+CgoJCTwvZGVwZW5kZW5jeT4KCgoKCQk8ZGVwZW5kZW5jeT4KCgkJCTxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdDwvZ3JvdXBJZD4KCgkJCTxhcnRpZmFjdElkPnNwcmluZy1ib290LXN0YXJ0ZXItYW9wPC9hcnRpZmFjdElkPgoKCQk8L2RlcGVuZGVuY3k+CgoJCTxkZXBlbmRlbmN5PgoKCQkJPGdyb3VwSWQ+b3JnLmFzcGVjdGo8L2dyb3VwSWQ+CgoJCQk8YXJ0aWZhY3RJZD5hc3BlY3RqcnQ8L2FydGlmYWN0SWQ+CgoJCTwvZGVwZW5kZW5jeT4KCgkJPGRlcGVuZGVuY3k+CgoJCQk8Z3JvdXBJZD5jb20uZmFzdGVyeG1sLmphY2tzb24uZGF0YXR5cGU8L2dyb3VwSWQ+CgoJCQk8YXJ0aWZhY3RJZD5qYWNrc29uLWRhdGF0eXBlLWhpYmVybmF0ZTU8L2FydGlmYWN0SWQ+CgoJCTwvZGVwZW5kZW5jeT4KCgkJCgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9jb20uZmFzdGVyeG1sLmphY2tzb24uY29yZS9qYWNrc29uLWRhdGFiaW5kIC0tPgoKPCEtLQkJPGRlcGVuZGVuY3k+LS0+Cgo8IS0tICAgICAgICAgIAk8Z3JvdXBJZD5jb20uZmFzdGVyeG1sLmphY2tzb24uY29yZTwvZ3JvdXBJZD4tLT4KCjwhLS0gICAgICAgICAgCTxhcnRpZmFjdElkPmphY2tzb24tZGF0YWJpbmQ8L2FydGlmYWN0SWQ+LS0+Cgo8IS0tICAgICAgICAgIAk8dmVyc2lvbj4yLjE1LjM8L3ZlcnNpb24+LS0+Cgo8IS0tCQk8L2RlcGVuZGVuY3k+LS0+CgoJCQoKCQk8IS0tIHNmdHAgLS0+CgoJCTxkZXBlbmRlbmN5PgoKICAgIAkJPGdyb3VwSWQ+Y29tLmpjcmFmdDwvZ3JvdXBJZD4KCiAgICAJCTxhcnRpZmFjdElkPmpzY2g8L2FydGlmYWN0SWQ+CgogICAJIAkJPHZlcnNpb24+MC4xLjU1PC92ZXJzaW9uPgoKCQk8L2RlcGVuZGVuY3k+CgoJCQoKPCEtLQkJPGRlcGVuZGVuY3k+LS0+Cgo8IS0tICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLmdpdGh1Yi56aXBsZXQ8L2dyb3VwSWQ+LS0+Cgo8IS0tJmx0OyEmbmRhc2g7ICAgICAgICAgICAgPGFydGlmYWN0SWQ+emlwbGV0PC9hcnRpZmFjdElkPiZuZGFzaDsmZ3Q7LS0+Cgo8IS0tCQkJPGFydGlmYWN0SWQ+Z3ppcC1zZXJ2bGV0LWZpbHRlcjwvYXJ0aWZhY3RJZD4tLT4KCjwhLS0JCQk8dmVyc2lvbj4yLjQuMDwvdmVyc2lvbj4tLT4KCjwhLS0gICAgICAgIDwvZGVwZW5kZW5jeT4tLT4KCgoKCQk8ZGVwZW5kZW5jeT4KCgkJCTxncm91cElkPm9yZy5hcGFjaGUubG9nZ2luZy5sb2c0ajwvZ3JvdXBJZD4KCgkJCTxhcnRpZmFjdElkPmxvZzRqLWFwaTwvYXJ0aWZhY3RJZD4KCgkJCTx2ZXJzaW9uPjIuMjQuMzwvdmVyc2lvbj4KCgkJPC9kZXBlbmRlbmN5PgoKCgoJCTwhLS0gaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9vcmcuc2xmNGovbG9nNGotb3Zlci1zbGY0aiAtLT4KCgkJPGRlcGVuZGVuY3k+CgoJCQk8Z3JvdXBJZD5vcmcuc2xmNGo8L2dyb3VwSWQ+CgoJCQk8YXJ0aWZhY3RJZD5sb2c0ai1vdmVyLXNsZjRqPC9hcnRpZmFjdElkPgoKCQkJPHZlcnNpb24+Mi4wLjE2PC92ZXJzaW9uPgoKCQk8L2RlcGVuZGVuY3k+CgoKCgkJPCEtLSBodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L29yZy5zbGY0ai9zbGY0ai1hcGkgLS0+CgoJCTxkZXBlbmRlbmN5PgoKCQkJPGdyb3VwSWQ+b3JnLnNsZjRqPC9ncm91cElkPgoKCQkJPGFydGlmYWN0SWQ+c2xmNGotYXBpPC9hcnRpZmFjdElkPgoKCQkJPHZlcnNpb24+Mi4wLjE2PC92ZXJzaW9uPgoKCQk8L2RlcGVuZGVuY3k+CgoKCiAgICAgICAgPGRlcGVuZGVuY3k+CgogICAgICAgICAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLnNlc3Npb248L2dyb3VwSWQ+CgogICAgICAgICAgICA8YXJ0aWZhY3RJZD5zcHJpbmctc2Vzc2lvbi1jb3JlPC9hcnRpZmFjdElkPgoKICAgICAgICA8L2RlcGVuZGVuY3k+CgoKCgkJPGRlcGVuZGVuY3k+CgoJCQk8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Q8L2dyb3VwSWQ+CgoJCQk8YXJ0aWZhY3RJZD5zcHJpbmctYm9vdC1zdGFydGVyLWFjdGl2ZW1xPC9hcnRpZmFjdElkPgoKCQkJPHZlcnNpb24+My40LjI8L3ZlcnNpb24+CgoJCTwvZGVwZW5kZW5jeT4KCgoKCQk8ZGVwZW5kZW5jeT4KCgkJCTxncm91cElkPm9yZy5hcGFjaGUuYWN0aXZlbXE8L2dyb3VwSWQ+CgoJCQk8YXJ0aWZhY3RJZD5hY3RpdmVtcS1icm9rZXI8L2FydGlmYWN0SWQ+CgoJCQk8dmVyc2lvbj42LjEuNTwvdmVyc2lvbj4KCgkJPC9kZXBlbmRlbmN5PgoKCgoJCTxkZXBlbmRlbmN5PgoKCQkJPGdyb3VwSWQ+b3JnLmFwYWNoZS5hY3RpdmVtcTwvZ3JvdXBJZD4KCgkJCTxhcnRpZmFjdElkPmFjdGl2ZW1xLWNsaWVudDwvYXJ0aWZhY3RJZD4KCgkJCTx2ZXJzaW9uPjYuMS41PC92ZXJzaW9uPgoKCQk8L2RlcGVuZGVuY3k+CgoJCQoKCQk8ZGVwZW5kZW5jeT4KCiAgICAgICAgICAgIDxncm91cElkPmNoLnFvcy5sb2diYWNrPC9ncm91cElkPgoKICAgICAgICAgICAgPGFydGlmYWN0SWQ+bG9nYmFjay1jbGFzc2ljPC9hcnRpZmFjdElkPgoKICAgICAgICAgICAgPHZlcnNpb24+MS41LjE2PC92ZXJzaW9uPgoKICAgICAgICA8L2RlcGVuZGVuY3k+CgoKCgkJPGRlcGVuZGVuY3k+CgogICAgICAgICAgICA8Z3JvdXBJZD5jaC5xb3MubG9nYmFjazwvZ3JvdXBJZD4KCiAgICAgICAgICAgIDxhcnRpZmFjdElkPmxvZ2JhY2stY29yZTwvYXJ0aWZhY3RJZD4KCiAgICAgICAgICAgIDx2ZXJzaW9uPjEuNS4xNjwvdmVyc2lvbj4KCiAgICAgICAgPC9kZXBlbmRlbmN5PgoKCQkKCgkJPGRlcGVuZGVuY3k+CgogICAgICAgICAgICA8Z3JvdXBJZD5jbi5odXRvb2w8L2dyb3VwSWQ+CgogICAgICAgICAgICA8YXJ0aWZhY3RJZD5odXRvb2wtYWxsPC9hcnRpZmFjdElkPgoKICAgICAgICAgICAgPHZlcnNpb24+NS44LjIyPC92ZXJzaW9uPgoKICAgICAgICA8L2RlcGVuZGVuY3k+CgoJCQoKICAgICAgICA8ZGVwZW5kZW5jeT4KCiAgICAgICAgICAgIDxncm91cElkPmNvbS5hbGliYWJhPC9ncm91cElkPgoKICAgICAgICAgICAgPGFydGlmYWN0SWQ+ZmFzdGpzb248L2FydGlmYWN0SWQ+CgogICAgICAgICAgICA8dmVyc2lvbj4yLjAuMzk8L3ZlcnNpb24+CgogICAgICAgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CgogICAgICAgIDwvZGVwZW5kZW5jeT4KCgoKCQk8IS0tIGh0dHBzOi8vbXZucmVwb3NpdG9yeS5jb20vYXJ0aWZhY3QvbmV0Lm1pbmlkZXYvanNvbi1zbWFydCAtLT4KCgkJPGRlcGVuZGVuY3k+CgoJCQk8Z3JvdXBJZD5uZXQubWluaWRldjwvZ3JvdXBJZD4KCgkJCTxhcnRpZmFjdElkPmpzb24tc21hcnQ8L2FydGlmYWN0SWQ+CgoJCQk8dmVyc2lvbj4yLjUuMTwvdmVyc2lvbj4KCgkJPC9kZXBlbmRlbmN5PgoKCgoJCTxkZXBlbmRlbmN5PgoKCQkgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZG9jPC9ncm91cElkPgoKCQkgICA8YXJ0aWZhY3RJZD5zcHJpbmdkb2Mtb3BlbmFwaS1zdGFydGVyLXdlYm12Yy11aTwvYXJ0aWZhY3RJZD4KCgkJICAgPHZlcnNpb24+Mi41LjA8L3ZlcnNpb24+CgoJCTwvZGVwZW5kZW5jeT4KCgoKCQk8ZGVwZW5kZW5jeT4KCgkJICAgIDxncm91cElkPm9yZy5oaWJlcm5hdGUub3JtPC9ncm91cElkPgoKCQkgICAgPGFydGlmYWN0SWQ+aGliZXJuYXRlLWNvbW11bml0eS1kaWFsZWN0czwvYXJ0aWZhY3RJZD4KCgkJICAgIDx2ZXJzaW9uPjYuNS4zLkZpbmFsPC92ZXJzaW9uPgoKCQk8L2RlcGVuZGVuY3k+CgoKCgkJPGRlcGVuZGVuY3k+CgoJCSAgICA8Z3JvdXBJZD5jb20uZmFzdGVyeG1sLmphY2tzb24uZGF0YWZvcm1hdDwvZ3JvdXBJZD4KCgkJICAgIDxhcnRpZmFjdElkPmphY2tzb24tZGF0YWZvcm1hdC15YW1sPC9hcnRpZmFjdElkPgoKCQk8L2RlcGVuZGVuY3k+CgoKCgkJPGRlcGVuZGVuY3k+CgoJCQk8Z3JvdXBJZD5pby5naXRodWIuY2xhc3NncmFwaDwvZ3JvdXBJZD4KCgkJCTxhcnRpZmFjdElkPmNsYXNzZ3JhcGg8L2FydGlmYWN0SWQ+CgoJCQk8dmVyc2lvbj40LjguMTU3PC92ZXJzaW9uPgoKCQk8L2RlcGVuZGVuY3k+CgoKCgkJPGRlcGVuZGVuY3k+CgoJCSAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLnNlY3VyaXR5PC9ncm91cElkPgoKCQkgICAgPGFydGlmYWN0SWQ+c3ByaW5nLXNlY3VyaXR5LXdlYjwvYXJ0aWZhY3RJZD4KCgkJPC9kZXBlbmRlbmN5PgoKCgoJPC9kZXBlbmRlbmNpZXM+CgoKCgk8IS0tIENvbnN0cnVjdGlvbiBwcm9jZWR1cmUgLS0+CgoJPHByb2ZpbGVzPgoKCgoJCTxwcm9maWxlPgoKCQkJPGlkPmRlZmF1bHQ8L2lkPgoKCgoJCQk8YWN0aXZhdGlvbj4KCgkJCQk8YWN0aXZlQnlEZWZhdWx0PnRydWU8L2FjdGl2ZUJ5RGVmYXVsdD4KCgkJCQk8cHJvcGVydHk+CgoJCQkJCTxuYW1lPmVudjwvbmFtZT4KCgkJCQkJPHZhbHVlPmRlZmF1bHQ8L3ZhbHVlPgoKCQkJCTwvcHJvcGVydHk+CgoJCQk8L2FjdGl2YXRpb24+CgoKCgkJCTxwcm9wZXJ0aWVzPgoKCQkJCTxtYXZlbi5wcm9maWxlcy5hY3RpdmU6ZGVmYXVsdD5kZWZhdWx0PC9tYXZlbi5wcm9maWxlcy5hY3RpdmU6ZGVmYXVsdD4KCgkJCQk8bWF2ZW4uYXBwLm5hbWU+JHtwcm9qZWN0Lm5hbWV9PC9tYXZlbi5hcHAubmFtZT4KCgkJCQk8bWF2ZW4uYXBwLnZlcnNpb24+JHtwcm9qZWN0LnZlcnNpb259PC9tYXZlbi5hcHAudmVyc2lvbj4KCgkJCQk8bWF2ZW4uYXBwLnBhY2thZ2luZ1R5cGU6d2FyPiR7cGFja2FnaW5nLnR5cGV9PC9tYXZlbi5hcHAucGFja2FnaW5nVHlwZTp3YXI+CgoJCQk8L3Byb3BlcnRpZXM+CgoKCgkJCTxkZXBlbmRlbmNpZXMgLz4KCgoKCQkJPGJ1aWxkPgoKCQkJCTxmaWx0ZXJzPgoKCQkJCQk8ZmlsdGVyPiR7YmFzZWRpcn0vY29uZmlncy9yZXNvdXJjZXMvYXBwbGljYXRpb24ueW1sPC9maWx0ZXI+CgoJCQkJPC9maWx0ZXJzPgoKCQkJPC9idWlsZD4KCgkJPC9wcm9maWxlPgoKCgoJCTxwcm9maWxlPgoKCQkJPGlkPnNpdC1pbnRlcm5hbDwvaWQ+CgoKCgkJCTxhY3RpdmF0aW9uPgoKCQkJCTxhY3RpdmVCeURlZmF1bHQ+ZmFsc2U8L2FjdGl2ZUJ5RGVmYXVsdD4KCgkJCQk8cHJvcGVydHk+CgoJCQkJCTxuYW1lPmVudjwvbmFtZT4KCgkJCQkJPHZhbHVlPnNpdC1pbnRlcm5hbDwvdmFsdWU+CgoJCQkJPC9wcm9wZXJ0eT4KCgkJCTwvYWN0aXZhdGlvbj4KCgoKCQkJPHByb3BlcnRpZXM+CgoJCQkJPHBhY2thZ2UuZW52aXJvbm1lbnQ+c2l0PC9wYWNrYWdlLmVudmlyb25tZW50PgoKCQkJCTxkZXBsb3kud2FyLm5hbWU+dGVhbXdhbGstYWRtaW4tQUQ8L2RlcGxveS53YXIubmFtZT4KCgkJCQk8bWF2ZW4ucHJvZmlsZXMuYWN0aXZlOmRlZmF1bHQ+c2l0LWludGVybmFsPC9tYXZlbi5wcm9maWxlcy5hY3RpdmU6ZGVmYXVsdD4KCgkJCQk8bWF2ZW4uYXBwLm5hbWU+JHtwcm9qZWN0Lm5hbWV9PC9tYXZlbi5hcHAubmFtZT4KCgkJCQk8bWF2ZW4uYXBwLnZlcnNpb24+JHtwcm9qZWN0LnZlcnNpb259PC9tYXZlbi5hcHAudmVyc2lvbj4KCgkJCQk8bWF2ZW4uYXBwLnBhY2thZ2luZ1R5cGU6d2FyPiR7cGFja2FnaW5nLnR5cGV9PC9tYXZlbi5hcHAucGFja2FnaW5nVHlwZTp3YXI+CgoJCQk8L3Byb3BlcnRpZXM+CgoKCgkJCTxkZXBlbmRlbmNpZXMgLz4KCgoKCQkJPGJ1aWxkPgoKCQkJCTxmaWx0ZXJzPgoKCQkJCQk8ZmlsdGVyPiR7YmFzZWRpcn0vY29uZmlncy9yZXNvdXJjZXMvYXBwbGljYXRpb24tc2l0LWludGVybmFsLnltbDwvZmlsdGVyPgoKCQkJCTwvZmlsdGVycz4KCgkJCTwvYnVpbGQ+CgoJCTwvcHJvZmlsZT4KCgoKCQk8cHJvZmlsZT4KCgkJCTxpZD51YXQtaW50ZXJuYWw8L2lkPgoKCgoJCQk8YWN0aXZhdGlvbj4KCgkJCQk8YWN0aXZlQnlEZWZhdWx0PmZhbHNlPC9hY3RpdmVCeURlZmF1bHQ+CgoJCQkJPHByb3BlcnR5PgoKCQkJCQk8bmFtZT5lbnY8L25hbWU+CgoJCQkJCTx2YWx1ZT51YXQtaW50ZXJuYWw8L3ZhbHVlPgoKCQkJCTwvcHJvcGVydHk+CgoJCQk8L2FjdGl2YXRpb24+CgoKCgkJCTxwcm9wZXJ0aWVzPgoKCQkJCTxwYWNrYWdlLmVudmlyb25tZW50PnVhdDwvcGFja2FnZS5lbnZpcm9ubWVudD4KCgkJCQk8ZGVwbG95Lndhci5uYW1lPnRlYW13YWxrLWFkbWluLUFEPC9kZXBsb3kud2FyLm5hbWU+CgoJCQkJPG1hdmVuLnByb2ZpbGVzLmFjdGl2ZTpkZWZhdWx0PnVhdC1pbnRlcm5hbDwvbWF2ZW4ucHJvZmlsZXMuYWN0aXZlOmRlZmF1bHQ+CgoJCQkJPG1hdmVuLmFwcC5uYW1lPiR7cHJvamVjdC5uYW1lfTwvbWF2ZW4uYXBwLm5hbWU+CgoJCQkJPG1hdmVuLmFwcC52ZXJzaW9uPiR7cHJvamVjdC52ZXJzaW9ufTwvbWF2ZW4uYXBwLnZlcnNpb24+CgoJCQkJPG1hdmVuLmFwcC5wYWNrYWdpbmdUeXBlOndhcj4ke3BhY2thZ2luZy50eXBlfTwvbWF2ZW4uYXBwLnBhY2thZ2luZ1R5cGU6d2FyPgoKCQkJPC9wcm9wZXJ0aWVzPgoKCgoJCQk8ZGVwZW5kZW5jaWVzIC8+CgoKCgkJCTxidWlsZD4KCgkJCQk8ZmlsdGVycz4KCgkJCQkJPGZpbHRlcj4ke2Jhc2VkaXJ9L2NvbmZpZ3MvcmVzb3VyY2VzL2FwcGxpY2F0aW9uLXVhdC1pbnRlcm5hbC55bWw8L2ZpbHRlcj4KCgkJCQk8L2ZpbHRlcnM+CgoJCQk8L2J1aWxkPgoKCQk8L3Byb2ZpbGU+CgoKCgkJPHByb2ZpbGU+CgoJCQk8aWQ+cHJvZC1pbnRlcm5hbDwvaWQ+CgoKCgkJCTxhY3RpdmF0aW9uPgoKCQkJCTxhY3RpdmVCeURlZmF1bHQ+ZmFsc2U8L2FjdGl2ZUJ5RGVmYXVsdD4KCgkJCQk8cHJvcGVydHk+CgoJCQkJCTxuYW1lPmVudjwvbmFtZT4KCgkJCQkJPHZhbHVlPnByb2QtaW50ZXJuYWw8L3ZhbHVlPgoKCQkJCTwvcHJvcGVydHk+CgoJCQk8L2FjdGl2YXRpb24+CgoKCgkJCTxwcm9wZXJ0aWVzPgoKCQkJCTxwYWNrYWdlLmVudmlyb25tZW50PnByb2Q8L3BhY2thZ2UuZW52aXJvbm1lbnQ+CgoJCQkJPGRlcGxveS53YXIubmFtZT50ZWFtd2Fsay1hZG1pbi1BRDwvZGVwbG95Lndhci5uYW1lPgoKCQkJCTxtYXZlbi5wcm9maWxlcy5hY3RpdmU6ZGVmYXVsdD5wcm9kLWludGVybmFsPC9tYXZlbi5wcm9maWxlcy5hY3RpdmU6ZGVmYXVsdD4KCgkJCQk8bWF2ZW4uYXBwLm5hbWU+JHtwcm9qZWN0Lm5hbWV9PC9tYXZlbi5hcHAubmFtZT4KCgkJCQk8bWF2ZW4uYXBwLnZlcnNpb24+JHtwcm9qZWN0LnZlcnNpb259PC9tYXZlbi5hcHAudmVyc2lvbj4KCgkJCQk8bWF2ZW4uYXBwLnBhY2thZ2luZ1R5cGU6d2FyPiR7cGFja2FnaW5nLnR5cGV9PC9tYXZlbi5hcHAucGFja2FnaW5nVHlwZTp3YXI+CgoJCQk8L3Byb3BlcnRpZXM+CgoKCgkJCTxkZXBlbmRlbmNpZXMgLz4KCgoKCQkJPGJ1aWxkPgoKCQkJCTxmaWx0ZXJzPgoKCQkJCQk8ZmlsdGVyPiR7YmFzZWRpcn0vY29uZmlncy9yZXNvdXJjZXMvYXBwbGljYXRpb24tcHJvZC1pbnRlcm5hbC55bWw8L2ZpbHRlcj4KCgkJCQk8L2ZpbHRlcnM+CgoJCQk8L2J1aWxkPgoKCQk8L3Byb2ZpbGU+CgoKCgkJPHByb2ZpbGU+CgoJCQk8aWQ+c2l0LWV4dGVybmFsPC9pZD4KCgoKCQkJPGFjdGl2YXRpb24+CgoJCQkJPGFjdGl2ZUJ5RGVmYXVsdD5mYWxzZTwvYWN0aXZlQnlEZWZhdWx0PgoKCQkJCTxwcm9wZXJ0eT4KCgkJCQkJPG5hbWU+ZW52PC9uYW1lPgoKCQkJCQk8dmFsdWU+c2l0LWV4dGVybmFsPC92YWx1ZT4KCgkJCQk8L3Byb3BlcnR5PgoKCQkJPC9hY3RpdmF0aW9uPgoKCgoJCQk8cHJvcGVydGllcz4KCgkJCQk8cGFja2FnZS5lbnZpcm9ubWVudD5zaXQ8L3BhY2thZ2UuZW52aXJvbm1lbnQ+CgoJCQkJPGRlcGxveS53YXIubmFtZT50ZWFtd2Fsay1hZG1pbjwvZGVwbG95Lndhci5uYW1lPgoKCQkJCTxtYXZlbi5wcm9maWxlcy5hY3RpdmU6ZGVmYXVsdD5zaXQtZXh0ZXJuYWw8L21hdmVuLnByb2ZpbGVzLmFjdGl2ZTpkZWZhdWx0PgoKCQkJCTxtYXZlbi5hcHAubmFtZT4ke3Byb2plY3QubmFtZX08L21hdmVuLmFwcC5uYW1lPgoKCQkJCTxtYXZlbi5hcHAudmVyc2lvbj4ke3Byb2plY3QudmVyc2lvbn08L21hdmVuLmFwcC52ZXJzaW9uPgoKCQkJCTxtYXZlbi5hcHAucGFja2FnaW5nVHlwZTp3YXI+JHtwYWNrYWdpbmcudHlwZX08L21hdmVuLmFwcC5wYWNrYWdpbmdUeXBlOndhcj4KCgkJCTwvcHJvcGVydGllcz4KCgoKCQkJPGRlcGVuZGVuY2llcyAvPgoKCgoJCQk8YnVpbGQ+CgoJCQkJPGZpbHRlcnM+CgoJCQkJCTxmaWx0ZXI+JHtiYXNlZGlyfS9jb25maWdzL3Jlc291cmNlcy9hcHBsaWNhdGlvbi1zaXQtZXh0ZXJuYWwueW1sPC9maWx0ZXI+CgoJCQkJPC9maWx0ZXJzPgoKCQkJPC9idWlsZD4KCgkJPC9wcm9maWxlPgoKCgoJCTxwcm9maWxlPgoKCQkJPGlkPnVhdC1leHRlcm5hbDwvaWQ+CgoKCgkJCTxhY3RpdmF0aW9uPgoKCQkJCTxhY3RpdmVCeURlZmF1bHQ+ZmFsc2U8L2FjdGl2ZUJ5RGVmYXVsdD4KCgkJCQk8cHJvcGVydHk+CgoJCQkJCTxuYW1lPmVudjwvbmFtZT4KCgkJCQkJPHZhbHVlPnVhdC1leHRlcm5hbDwvdmFsdWU+CgoJCQkJPC9wcm9wZXJ0eT4KCgkJCTwvYWN0aXZhdGlvbj4KCgoKCQkJPHByb3BlcnRpZXM+CgoJCQkJPHBhY2thZ2UuZW52aXJvbm1lbnQ+dWF0PC9wYWNrYWdlLmVudmlyb25tZW50PgoKCQkJCTxkZXBsb3kud2FyLm5hbWU+dGVhbXdhbGstYWRtaW48L2RlcGxveS53YXIubmFtZT4KCgkJCQk8bWF2ZW4ucHJvZmlsZXMuYWN0aXZlOmRlZmF1bHQ+dWF0LWV4dGVybmFsPC9tYXZlbi5wcm9maWxlcy5hY3RpdmU6ZGVmYXVsdD4KCgkJCQk8bWF2ZW4uYXBwLm5hbWU+JHtwcm9qZWN0Lm5hbWV9PC9tYXZlbi5hcHAubmFtZT4KCgkJCQk8bWF2ZW4uYXBwLnZlcnNpb24+JHtwcm9qZWN0LnZlcnNpb259PC9tYXZlbi5hcHAudmVyc2lvbj4KCgkJCQk8bWF2ZW4uYXBwLnBhY2thZ2luZ1R5cGU6d2FyPiR7cGFja2FnaW5nLnR5cGV9PC9tYXZlbi5hcHAucGFja2FnaW5nVHlwZTp3YXI+CgoJCQk8L3Byb3BlcnRpZXM+CgoKCgkJCTxkZXBlbmRlbmNpZXMgLz4KCgoKCQkJPGJ1aWxkPgoKCQkJCTxmaWx0ZXJzPgoKCQkJCQk8ZmlsdGVyPiR7YmFzZWRpcn0vY29uZmlncy9yZXNvdXJjZXMvYXBwbGljYXRpb24tdWF0LWV4dGVybmFsLnltbDwvZmlsdGVyPgoKCQkJCTwvZmlsdGVycz4KCgkJCTwvYnVpbGQ+CgoJCTwvcHJvZmlsZT4KCgoKCQk8cHJvZmlsZT4KCgkJCTxpZD5wcm9kLWV4dGVybmFsPC9pZD4KCgoKCQkJPGFjdGl2YXRpb24+CgoJCQkJPGFjdGl2ZUJ5RGVmYXVsdD5mYWxzZTwvYWN0aXZlQnlEZWZhdWx0PgoKCQkJCTxwcm9wZXJ0eT4KCgkJCQkJPG5hbWU+ZW52PC9uYW1lPgoKCQkJCQk8dmFsdWU+cHJvZC1leHRlcm5hbDwvdmFsdWU+CgoJCQkJPC9wcm9wZXJ0eT4KCgkJCTwvYWN0aXZhdGlvbj4KCgoKCQkJPHByb3BlcnRpZXM+CgoJCQkJPHBhY2thZ2UuZW52aXJvbm1lbnQ+cHJvZDwvcGFja2FnZS5lbnZpcm9ubWVudD4KCgkJCQk8ZGVwbG95Lndhci5uYW1lPnRlYW13YWxrLWFkbWluPC9kZXBsb3kud2FyLm5hbWU+CgoJCQkJPG1hdmVuLnByb2ZpbGVzLmFjdGl2ZTpkZWZhdWx0PnByb2QtZXh0ZXJuYWw8L21hdmVuLnByb2ZpbGVzLmFjdGl2ZTpkZWZhdWx0PgoKCQkJCTxtYXZlbi5hcHAubmFtZT4ke3Byb2plY3QubmFtZX08L21hdmVuLmFwcC5uYW1lPgoKCQkJCTxtYXZlbi5hcHAudmVyc2lvbj4ke3Byb2plY3QudmVyc2lvbn08L21hdmVuLmFwcC52ZXJzaW9uPgoKCQkJCTxtYXZlbi5hcHAucGFja2FnaW5nVHlwZTp3YXI+JHtwYWNrYWdpbmcudHlwZX08L21hdmVuLmFwcC5wYWNrYWdpbmdUeXBlOndhcj4KCgkJCTwvcHJvcGVydGllcz4KCgoKCQkJPGRlcGVuZGVuY2llcyAvPgoKCgoJCQk8YnVpbGQ+CgoJCQkJPGZpbHRlcnM+CgoJCQkJCTxmaWx0ZXI+JHtiYXNlZGlyfS9jb25maWdzL3Jlc291cmNlcy9hcHBsaWNhdGlvbi1wcm9kLWV4dGVybmFsLnltbDwvZmlsdGVyPgoKCQkJCTwvZmlsdGVycz4KCgkJCTwvYnVpbGQ+CgoJCTwvcHJvZmlsZT4KCgoKCTwvcHJvZmlsZXM+CgoKCgk8cmVwb3J0aW5nPgoKCQk8cGx1Z2lucyAvPgoKCTwvcmVwb3J0aW5nPgoKCgoJPGRpc3RyaWJ1dGlvbk1hbmFnZW1lbnQ+CgoKCgkJPHJlcG9zaXRvcnk+CgoJCQk8aWQ+bG9jYWwtcmVwb3NpdG9yeTwvaWQ+CgoJCQk8bmFtZT5Mb2NhbCBSZWxlYXNlIFJlcG9zaXRvcnk8L25hbWU+CgoJCQk8dXJsPmZpbGU6JHtwcm9qZWN0LmJhc2VkaXJ9L3JlcG9zaXRvcnkvPC91cmw+CgoJCQk8IS0tPHVybD5odHRwOi8vMTI3LjAuMC4xOjgwODAvbmV4dXMvY29udGVudC9yZXBvc2l0b3JpZXMvcmVsZWFzZXMvPC91cmw+IC0tPgoKCQk8L3JlcG9zaXRvcnk+CgoKCgkJPHNuYXBzaG90UmVwb3NpdG9yeT4KCgkJCTxpZD5sb2NhbC1zbmFwc2hvdHM8L2lkPgoKCQkJPG5hbWU+TG9jYWwgU25hcHNob3QgUmVwb3NpdG9yeTwvbmFtZT4KCgkJCTx1cmw+ZmlsZToke3Byb2plY3QuYmFzZWRpcn0vcmVwb3NpdG9yeS88L3VybD4KCgkJCTwhLS08dXJsPmh0dHA6Ly8xMjcuMC4wLjE6ODA4MC9uZXh1cy9jb250ZW50L3JlcG9zaXRvcmllcy9zbmFwc2hvdHMvPC91cmw+IC0tPgoKCQk8L3NuYXBzaG90UmVwb3NpdG9yeT4KCgoKCTwvZGlzdHJpYnV0aW9uTWFuYWdlbWVudD4KCgoKPC9wcm9qZWN0Pgo=