├── Utils
├── devcon.exe
├── README.rst
└── devcon.LICENSE
├── images
├── dlgbmp.bmp
└── bannrbmp.bmp
├── Microsoft_VC142_CRT_x64.msm
├── BuildUtils.ps1
├── BinariesFilter.xsl
├── ceph-windows-installer.sln
├── Dialogs
├── UserExit.wxs
├── MaintenanceWelcomeDlg.wxs
├── WelcomeDlg.wxs
└── ExitDialog.wxs
├── CustomActions.wxs
├── README.rst
├── UI.wxs
├── .gitignore
├── ceph-windows-installer.wixproj
├── Build.ps1
├── LICENSE
├── Actions
└── CephActions.js
├── Product.wxs
└── License.rtf
/Utils/devcon.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cloudbase/ceph-windows-installer/HEAD/Utils/devcon.exe
--------------------------------------------------------------------------------
/images/dlgbmp.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cloudbase/ceph-windows-installer/HEAD/images/dlgbmp.bmp
--------------------------------------------------------------------------------
/images/bannrbmp.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cloudbase/ceph-windows-installer/HEAD/images/bannrbmp.bmp
--------------------------------------------------------------------------------
/Utils/README.rst:
--------------------------------------------------------------------------------
1 | DevCon sources:
2 | https://github.com/microsoft/Windows-driver-samples/tree/main/setup/devcon
3 |
--------------------------------------------------------------------------------
/Microsoft_VC142_CRT_x64.msm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cloudbase/ceph-windows-installer/HEAD/Microsoft_VC142_CRT_x64.msm
--------------------------------------------------------------------------------
/BuildUtils.ps1:
--------------------------------------------------------------------------------
1 | function ExecRetry($command, $maxRetryCount = 10, $retryInterval=2)
2 | {
3 | $currErrorActionPreference = $ErrorActionPreference
4 | $ErrorActionPreference = "Continue"
5 |
6 | $retryCount = 0
7 | while ($true) {
8 | try {
9 | & $command
10 | break
11 | }
12 | catch [System.Exception] {
13 | $retryCount++
14 | if ($retryCount -ge $maxRetryCount) {
15 | $ErrorActionPreference = $currErrorActionPreference
16 | throw
17 | } else {
18 | Write-Error $_.Exception
19 | Start-Sleep $retryInterval
20 | }
21 | }
22 | }
23 |
24 | $ErrorActionPreference = $currErrorActionPreference
25 | }
26 |
--------------------------------------------------------------------------------
/BinariesFilter.xsl:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/ceph-windows-installer.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 2019
4 | VisualStudioVersion = 12.0.31101.0
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{930C7802-8A8C-48F9-8165-68863BCCD9EE}") = "ceph-windows-installer", "ceph-windows-installer.wixproj", "{259905A2-7434-4190-8A33-8FBA67171DD7}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Release|x64 = Release|x64
11 | EndGlobalSection
12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
13 | {259905A2-7434-4190-8A33-8FBA67171DD7}.Release|x64.ActiveCfg = Release|x64
14 | {259905A2-7434-4190-8A33-8FBA67171DD7}.Release|x64.Build.0 = Release|x64
15 | EndGlobalSection
16 | GlobalSection(SolutionProperties) = preSolution
17 | HideSolutionNode = FALSE
18 | EndGlobalSection
19 | EndGlobal
20 |
--------------------------------------------------------------------------------
/Dialogs/UserExit.wxs:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
12 |
13 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/Dialogs/MaintenanceWelcomeDlg.wxs:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
12 |
13 |
26 |
27 |
28 | Installed AND NOT RESUME AND NOT Preselected AND NOT PATCH
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/Dialogs/WelcomeDlg.wxs:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
12 |
13 |
33 |
34 |
35 | NOT Installed OR PATCH
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/Dialogs/ExitDialog.wxs:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
12 |
13 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/CustomActions.wxs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
12 |
13 |
16 |
19 |
20 |
23 |
26 |
27 |
30 |
33 |
34 |
37 |
40 |
41 |
--------------------------------------------------------------------------------
/Utils/devcon.LICENSE:
--------------------------------------------------------------------------------
1 | The Microsoft Public License (MS-PL)
2 | Copyright (c) 2015 Microsoft
3 |
4 | This license governs use of the accompanying software. If you use the software, you
5 | accept this license. If you do not accept the license, do not use the software.
6 |
7 | 1. Definitions
8 | The terms "reproduce," "reproduction," "derivative works," and "distribution" have the
9 | same meaning here as under U.S. copyright law.
10 | A "contribution" is the original software, or any additions or changes to the software.
11 | A "contributor" is any person that distributes its contribution under this license.
12 | "Licensed patents" are a contributor's patent claims that read directly on its contribution.
13 |
14 | 2. Grant of Rights
15 | (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
16 | (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
17 |
18 | 3. Conditions and Limitations
19 | (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
20 | (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
21 | (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
22 | (D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
23 | (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
24 |
--------------------------------------------------------------------------------
/README.rst:
--------------------------------------------------------------------------------
1 | Ceph Windows Installer
2 | ======================
3 |
4 | This project generates a MSI installer for Ceph on Windows.
5 |
6 | Requirements
7 | ------------
8 |
9 | Visual Studio 2019 Community, Professional, Premium or Ultimate edition
10 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11 |
12 | Visual Studio Community 2019 is freely available at:
13 | https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx
14 |
15 | WiX Toolset 3.11
16 | ^^^^^^^^^^^^^^^^
17 |
18 | Download and install from:
19 | http://wixtoolset.org/releases/v3.11/stable
20 |
21 | Copy the driver files built using the instructions from https://github.com/cloudbase/wnbd#how-to-build to the ``ceph-windows-installer/Driver`` folder.
22 | Copy also the ``*.pdb`` files generated when building the driver in the ``ceph-windows-installer/Symbols`` folder. Optionally Ceph
23 | symbols might be included as well. ``wnbd-client.exe`` as well as ``libwnbd.dll`` must be copied to the ``ceph-windows-installer/Binaries``
24 | folder.
25 |
26 | Copy the binaries built using the instructions from https://github.com/petrutlucian94/ceph/blob/windows.12/README.windows.rst#building
27 | to the ``ceph-windows-installer/Binaries`` folder.
28 |
29 | For the ceph-rbd service to work, additional steps are required after installation:
30 |
31 | * Create the C:\\ProgramData folder. Inside, create a ceph.conf file with the required configuration (you can copy it from an osd server).
32 | * Create a ceph.client.admin.keyring file with the required configuration (you can copy it from an osd server).
33 | * Restart the service: :code:`Restart-Service ceph-rbd`
34 |
35 | Build instructions
36 | ------------------
37 |
38 | Build the solution in the Visual Studio IDE or via command line:
39 | ::
40 |
41 | msbuild ceph-windows-installer.sln /p:Platform=x64 /p:Configuration=Release
42 |
43 | A complete build script that handles the Ceph and WNBD dependencies, plus the digital signature of both driver and MSI is also included.
44 |
45 | To perform a full build with digital signature, using WSL for building Ceph:
46 | ::
47 |
48 | .\Build.ps1 -UseWSL`
49 | -SignX509Thumbprint 1234...`
50 | -SignCrossCertPath path\to\the\cross\cert.cer`
51 | -SignTimestampUrl http://timestampurl
52 |
53 | To perform a full build with digital signature, copying the Ceph binaries from a separate location (can be a SSH, local or UNC path):
54 | ::
55 |
56 | .\Build.ps1 -CephZipPath user@host:ceph/build/ceph.zip`
57 | -SignX509Thumbprint 1234...`
58 | -SignCrossCertPath path\to\the\cross\cert.cer`
59 | -SignTimestampUrl http://timestampurl
60 |
61 | By default, the dependencies build directory is removed before every build. To retain it, please use the ``-RetainDependenciesBuildDir`` argument.
62 |
63 | To get a full list of the available command line arguments:
64 | ::
65 |
66 | help .\Build.ps1
67 |
68 | Automated installation
69 | ----------------------
70 |
71 | For automated deployments, this package can be installed with the standard MSI silent mode, for example:
72 | ::
73 |
74 | msiexec.exe /i Ceph.msi /l*v log.txt /qn
75 |
--------------------------------------------------------------------------------
/UI.wxs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | 1
22 |
23 | NOT Installed
24 | Installed AND PATCH
25 |
26 | 1
27 | LicenseAccepted = "1"
28 |
29 | NOT Installed OR WixUI_InstallMode = "Change"
30 | Installed AND NOT PATCH
31 | Installed AND PATCH
32 |
33 | 1
34 |
35 |
36 | 1
37 | 1
38 |
39 |
40 | 1
41 | 1
42 | 1
43 | 1
44 |
45 | Installed
46 | NOT Installed
47 |
48 | 1
49 | 1
50 |
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 |
4 | # User-specific files
5 | *.suo
6 | *.user
7 | *.sln.docstates
8 |
9 | Binaries.wxs
10 | Symbols.wxs
11 |
12 | Binaries/
13 | Symbols/
14 | Driver/
15 | Dependencies/
16 |
17 | # Build results
18 | [Dd]ebug/
19 | [Dd]ebugPublic/
20 | [Rr]elease/
21 | x64/
22 | build/
23 | bld/
24 | [Bb]in/
25 | [Oo]bj/
26 |
27 | # MSTest test Results
28 | [Tt]est[Rr]esult*/
29 | [Bb]uild[Ll]og.*
30 |
31 | #NUNIT
32 | *.VisualState.xml
33 | TestResult.xml
34 |
35 | # Build Results of an ATL Project
36 | [Dd]ebugPS/
37 | [Rr]eleasePS/
38 | dlldata.c
39 |
40 | *_i.c
41 | *_p.c
42 | *_i.h
43 | *.ilk
44 | *.meta
45 | *.obj
46 | *.pch
47 | *.pdb
48 | *.pgc
49 | *.pgd
50 | *.rsp
51 | *.sbr
52 | *.tlb
53 | *.tli
54 | *.tlh
55 | *.tmp
56 | *.tmp_proj
57 | *.log
58 | *.vspscc
59 | *.vssscc
60 | .builds
61 | *.pidb
62 | *.svclog
63 | *.scc
64 |
65 | # Chutzpah Test files
66 | _Chutzpah*
67 |
68 | # Visual C++ cache files
69 | ipch/
70 | *.aps
71 | *.ncb
72 | *.opensdf
73 | *.sdf
74 | *.cachefile
75 |
76 | # Visual Studio profiler
77 | *.psess
78 | *.vsp
79 | *.vspx
80 |
81 | # TFS 2012 Local Workspace
82 | $tf/
83 |
84 | # Guidance Automation Toolkit
85 | *.gpState
86 |
87 | # ReSharper is a .NET coding add-in
88 | _ReSharper*/
89 | *.[Rr]e[Ss]harper
90 | *.DotSettings.user
91 |
92 | # JustCode is a .NET coding addin-in
93 | .JustCode
94 |
95 | # TeamCity is a build add-in
96 | _TeamCity*
97 |
98 | # DotCover is a Code Coverage Tool
99 | *.dotCover
100 |
101 | # NCrunch
102 | *.ncrunch*
103 | _NCrunch_*
104 | .*crunch*.local.xml
105 |
106 | # MightyMoose
107 | *.mm.*
108 | AutoTest.Net/
109 |
110 | # Web workbench (sass)
111 | .sass-cache/
112 |
113 | # Installshield output folder
114 | [Ee]xpress/
115 |
116 | # DocProject is a documentation generator add-in
117 | DocProject/buildhelp/
118 | DocProject/Help/*.HxT
119 | DocProject/Help/*.HxC
120 | DocProject/Help/*.hhc
121 | DocProject/Help/*.hhk
122 | DocProject/Help/*.hhp
123 | DocProject/Help/Html2
124 | DocProject/Help/html
125 |
126 | # Click-Once directory
127 | publish/
128 |
129 | # Publish Web Output
130 | *.[Pp]ublish.xml
131 | *.azurePubxml
132 |
133 | # NuGet Packages Directory
134 | packages/*
135 | ## TODO: If the tool you use requires repositories.config uncomment the next line
136 | #!packages/repositories.config
137 |
138 | # Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets
139 | # This line needs to be after the ignore of the build folder (and the packages folder if the line above has been uncommented)
140 | !packages/build/
141 |
142 | # Windows Azure Build Output
143 | csx/
144 | *.build.csdef
145 |
146 | # Windows Store app package directory
147 | AppPackages/
148 |
149 | # Others
150 | sql/
151 | *.Cache
152 | ClientBin/
153 | [Ss]tyle[Cc]op.*
154 | ~$*
155 | *~
156 | *.dbmdl
157 | *.dbproj.schemaview
158 | *.pfx
159 | *.publishsettings
160 | node_modules/
161 |
162 | # RIA/Silverlight projects
163 | Generated_Code/
164 |
165 | # Backup & report files from converting an old project file to a newer
166 | # Visual Studio version. Backup files are not needed, because we have git ;-)
167 | _UpgradeReport_Files/
168 | Backup*/
169 | UpgradeLog*.XML
170 | UpgradeLog*.htm
171 |
172 | # SQL Server files
173 | *.mdf
174 | *.ldf
175 |
176 | # Business Intelligence projects
177 | *.rdl.data
178 | *.bim.layout
179 | *.bim_*.settings
180 |
181 | # Microsoft Fakes
182 | FakesAssemblies/
183 |
184 | # =========================
185 | # Windows detritus
186 | # =========================
187 |
188 | # Windows image file caches
189 | Thumbs.db
190 | ehthumbs.db
191 |
192 | # Folder config file
193 | Desktop.ini
194 |
195 | # Recycle Bin used on file shares
196 | $RECYCLE.BIN/
197 |
--------------------------------------------------------------------------------
/ceph-windows-installer.wixproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | x64
6 | 3.8
7 | {259905a2-7434-4190-8a33-8fba67171dd7}
8 | 2.0
9 | Ceph
10 | Package
11 | false
12 |
13 |
14 | bin\$(Configuration)\
15 | obj\$(Configuration)\
16 | Debug
17 |
18 |
19 | bin\$(Configuration)\
20 | obj\$(Configuration)\
21 |
22 |
23 | 1.0.0.0
24 | $(CephMsiVersion)
25 | Ceph for Windows
26 | Ceph for Windows ($(CephRelease))
27 | BinariesPath=Binaries;SymbolsPath=Symbols;CephMsiVersion=$(CephMsiVersionSafe);CephProductName=$(CephProductName)
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 | $(WixExtDir)\WixUtilExtension.dll
59 | WixUtilExtension
60 |
61 |
62 | $(WixExtDir)\WixUIExtension.dll
63 | WixUIExtension
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
--------------------------------------------------------------------------------
/Build.ps1:
--------------------------------------------------------------------------------
1 | [CmdletBinding(DefaultParameterSetName='None')]
2 | Param(
3 | # Builds Ceph using WSL
4 | [Parameter(ParameterSetName="CephWSL", Mandatory=$true)]
5 | [Parameter(ParameterSetName="CephWSLSign", Mandatory=$true)]
6 | [switch]$UseWSL = $false,
7 | [Parameter(ParameterSetName="CephWSL")]
8 | [Parameter(ParameterSetName="CephWSLSign")]
9 | [ValidateNotNullOrEmpty()]
10 | [string]$WSLDistro = "Ubuntu-20.04",
11 | [Parameter(ParameterSetName="CephWSL")]
12 | [Parameter(ParameterSetName="CephWSLSign")]
13 | [ValidateNotNullOrEmpty()]
14 | [string]$CephRepoUrl = "https://github.com/ceph/ceph",
15 | [Parameter(ParameterSetName="CephWSL")]
16 | [Parameter(ParameterSetName="CephWSLSign")]
17 | [ValidateNotNullOrEmpty()]
18 | [string]$CephRepoBranch = "pacific",
19 |
20 | # Example: 16.0.0.0, default: 1.0.0.0.
21 | [string]$CephMsiVersion,
22 | # Example: Reef. If specified, it will be included in the product name.
23 | [string]$CephRelease,
24 |
25 | # Archive containing the Ceph Windows binaries, will be fetched using scp.
26 | # Can be a local path, a UNC path or a remote scp path.
27 | [Parameter(ParameterSetName="CephZipPath", Mandatory=$true)]
28 | [Parameter(ParameterSetName="CephZipPathSign", Mandatory=$true)]
29 | [ValidateNotNullOrEmpty()]
30 | [string]$CephZipPath,
31 |
32 | # The thumbprint of the X509 certificate used for signing the WNBD driver
33 | # and the MSI installer
34 | [Parameter(ParameterSetName="CephZipPathSign", Mandatory=$true)]
35 | [Parameter(ParameterSetName="CephWSLSign", Mandatory=$true)]
36 | [ValidateNotNullOrEmpty()]
37 | [string]$SignX509Thumbprint,
38 | [Parameter(ParameterSetName="CephZipPathSign", Mandatory=$true)]
39 | [Parameter(ParameterSetName="CephWSLSign", Mandatory=$true)]
40 | [ValidateNotNullOrEmpty()]
41 | [string]$SignTimestampUrl,
42 | [Parameter(ParameterSetName="CephZipPathSign")]
43 | [Parameter(ParameterSetName="CephWSLSign")]
44 | [ValidateNotNullOrEmpty()]
45 | [string]$SignCrossCertPath,
46 |
47 | # Don't remove the dependencies build directory if it exists.
48 | # This can be useful during development
49 | [switch]$RetainDependenciesBuildDir = $false,
50 |
51 | [switch]$IncludeCephDebugSymbols = $false,
52 | [switch]$MinimalCephDebugInfo = $true
53 | )
54 |
55 | $ErrorActionPreference = "Stop"
56 | . "$PSScriptRoot\BuildUtils.ps1"
57 |
58 | function SetVCVars($version="2019", $platform="x86_amd64") {
59 | pushd "$ENV:ProgramFiles (x86)\Microsoft Visual Studio\$version\Community\VC\Auxiliary\Build"
60 | try {
61 | cmd /c "vcvarsall.bat $platform & set" |
62 | foreach {
63 | if ($_ -match "=") {
64 | $v = $_.split("="); set-item -force -path "ENV:\$($v[0])" -value "$($v[1])"
65 | }
66 | }
67 | }
68 | finally {
69 | popd
70 | }
71 | }
72 |
73 | function Sign($x509thumbprint, $crossCertPath, $timestampUrl, $path) {
74 | $crosscert_args = @()
75 | if ($crossCertPath) {
76 | $crosscert_args = @("/ac", $crossCertPath)
77 | }
78 |
79 | ExecRetry {
80 | & signtool.exe sign $crosscert_args /sha1 $x509thumbprint `
81 | /tr $timestampUrl /td SHA256 /v $path
82 | if ($LASTEXITCODE) { throw "signtool failed" }
83 | }
84 | }
85 |
86 | function BuildWnbd() {
87 | pushd $depsBuildDir
88 | if (!(Test-Path wnbd)) {
89 | & git.exe clone https://github.com/cloudbase/wnbd
90 | if($LASTEXITCODE) {
91 | throw "git failed"
92 | }
93 | }
94 | cd wnbd
95 |
96 | & msbuild.exe vstudio\wnbd.sln /p:Configuration=Release
97 | if($LASTEXITCODE) {
98 | throw "msbuild failed"
99 | }
100 |
101 | if($SignX509Thumbprint) {
102 | Sign $SignX509Thumbprint $SignCrossCertPath $SignTimestampUrl .\vstudio\x64\Release\driver\wnbd.sys
103 | Sign $SignX509Thumbprint $SignCrossCertPath $SignTimestampUrl .\vstudio\x64\Release\driver\wnbd.cat
104 | }
105 |
106 | copy vstudio\x64\Release\driver\* ..\..\Driver\
107 | copy vstudio\x64\Release\libwnbd.dll ..\..\Binaries\
108 | copy vstudio\x64\Release\wnbd-client.exe ..\..\Binaries\
109 | copy vstudio\wnbdevents.xml ..\..\Binaries\
110 | copy vstudio\x64\Release\pdb\driver\* ..\..\Symbols\
111 | copy vstudio\x64\Release\pdb\libwnbd\* ..\..\Symbols\
112 | copy vstudio\x64\Release\pdb\wnbd-client\* ..\..\Symbols\
113 |
114 | popd
115 | }
116 |
117 | function CopyCephBinaries($sourcePath, $targetPath) {
118 | $targetFullPath = (Get-Item $targetPath).FullName
119 |
120 | pushd $sourcePath
121 | copy -Recurse -Force -Path `
122 | *.dll,`
123 | *.debug,`
124 | ceph-conf.exe,`
125 | rados.exe,`
126 | rbd.exe,`
127 | rbd-wnbd.exe,`
128 | ceph-dokan.exe `
129 | -Destination $targetFullPath
130 | popd
131 | }
132 |
133 | function GetCephBinaries($cephZipPath) {
134 | pushd $depsBuildDir
135 |
136 | if (!(Test-Path cephzip)) {
137 | & scp.exe $cephZipPath ceph.zip
138 | if($LASTEXITCODE) {
139 | throw "scp failed"
140 | }
141 |
142 | Expand-Archive ceph.zip -DestinationPath cephzip
143 | rm ceph.zip
144 | }
145 |
146 | CopyCephBinaries "cephzip\ceph" "..\Binaries\"
147 | popd
148 | }
149 |
150 | function BuildCephWSL($includeDebugSymbols, $minimalDebugInfo) {
151 | pushd $depsBuildDir
152 |
153 | if (!(Test-Path ceph)) {
154 | & wsl.exe -d $WSLDistro -u root -e bash -c "git -c core.symlinks=true clone --recurse-submodules $CephRepoUrl -b $CephRepoBranch"
155 | if($LASTEXITCODE) {
156 | throw "git failed"
157 | }
158 | }
159 | cd ceph
160 |
161 | if ($includeDebugSymbols) {
162 | if ($minimalDebugInfo) {
163 | $buildModeFlags = "CFLAGS=-g1 CXXFLAGS=-g1 CMAKE_BUILD_TYPE=Release"
164 | }
165 | else {
166 | $buildModeFlags = "CMAKE_BUILD_TYPE=RelWithDebInfo"
167 | }
168 | }
169 | else {
170 | $buildModeFlags = "CMAKE_BUILD_TYPE=Release"
171 | }
172 |
173 | $buildCmd = (
174 | "time ENABLE_SHARED=ON SKIP_TESTS=1 SKIP_BINDIR_CLEAN=1 " +
175 | "$buildModeFlags ./win32_build.sh")
176 | & wsl.exe -d $WSLDistro -u root -e bash -c $buildCmd
177 | if($LASTEXITCODE) {
178 | throw "Ceph WSL build failed"
179 | }
180 |
181 | $CephZipPath = (Resolve-Path "build\ceph.zip").Path
182 | GetCephBinaries -cephZipPath $CephZipPath
183 |
184 | popd
185 | }
186 |
187 | cd $PSScriptRoot
188 | $depsBuildDir = "${PSScriptRoot}\Dependencies"
189 |
190 | SetVCVars
191 |
192 | if ((Test-Path $depsBuildDir) -and !$RetainDependenciesBuildDir) {
193 | Write-Output "Removing dependencies build dir"
194 | cmd /c rmdir /s /q $depsBuildDir\
195 | }
196 |
197 | mkdir -Force $depsBuildDir
198 |
199 | $RequiredDirs = "Driver", "Binaries", "Symbols"
200 | foreach ($dir in $RequiredDirs)
201 | {
202 | mkdir -Force $dir
203 | del -Recurse $dir\*
204 | }
205 |
206 | if($UseWSL) {
207 | BuildCephWSL -includeDebugSymbols $IncludeCephDebugSymbols `
208 | -minimalDebugInfo $MinimalCephDebugInfo
209 | } else {
210 | GetCephBinaries -cephZipPath $CephZipPath
211 | }
212 |
213 | BuildWnbd
214 |
215 | $configuration = "Release"
216 | & msbuild.exe ceph-windows-installer.sln `
217 | /p:Platform=x64 /p:Configuration=$configuration `
218 | /p:CephMsiVersion=$CephMsiVersion /p:CephRelease=$CephRelease
219 | if($LASTEXITCODE) {
220 | throw "msbuild failed"
221 | }
222 |
223 | if($SignX509Thumbprint) {
224 | Sign $SignX509Thumbprint $SignCrossCertPath $SignTimestampUrl .\bin\Release\Ceph.msi
225 | }
226 |
227 | Write-Output ""
228 | Write-Output "Success! MSI location: $((Get-Item .\bin\$configuration\Ceph.msi).FullName)"
229 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | GNU LESSER GENERAL PUBLIC LICENSE
2 | Version 3, 29 June 2007
3 |
4 | Copyright (C) 2007 Free Software Foundation, Inc.
5 | Everyone is permitted to copy and distribute verbatim copies
6 | of this license document, but changing it is not allowed.
7 |
8 |
9 | This version of the GNU Lesser General Public License incorporates
10 | the terms and conditions of version 3 of the GNU General Public
11 | License, supplemented by the additional permissions listed below.
12 |
13 | 0. Additional Definitions.
14 |
15 | As used herein, "this License" refers to version 3 of the GNU Lesser
16 | General Public License, and the "GNU GPL" refers to version 3 of the GNU
17 | General Public License.
18 |
19 | "The Library" refers to a covered work governed by this License,
20 | other than an Application or a Combined Work as defined below.
21 |
22 | An "Application" is any work that makes use of an interface provided
23 | by the Library, but which is not otherwise based on the Library.
24 | Defining a subclass of a class defined by the Library is deemed a mode
25 | of using an interface provided by the Library.
26 |
27 | A "Combined Work" is a work produced by combining or linking an
28 | Application with the Library. The particular version of the Library
29 | with which the Combined Work was made is also called the "Linked
30 | Version".
31 |
32 | The "Minimal Corresponding Source" for a Combined Work means the
33 | Corresponding Source for the Combined Work, excluding any source code
34 | for portions of the Combined Work that, considered in isolation, are
35 | based on the Application, and not on the Linked Version.
36 |
37 | The "Corresponding Application Code" for a Combined Work means the
38 | object code and/or source code for the Application, including any data
39 | and utility programs needed for reproducing the Combined Work from the
40 | Application, but excluding the System Libraries of the Combined Work.
41 |
42 | 1. Exception to Section 3 of the GNU GPL.
43 |
44 | You may convey a covered work under sections 3 and 4 of this License
45 | without being bound by section 3 of the GNU GPL.
46 |
47 | 2. Conveying Modified Versions.
48 |
49 | If you modify a copy of the Library, and, in your modifications, a
50 | facility refers to a function or data to be supplied by an Application
51 | that uses the facility (other than as an argument passed when the
52 | facility is invoked), then you may convey a copy of the modified
53 | version:
54 |
55 | a) under this License, provided that you make a good faith effort to
56 | ensure that, in the event an Application does not supply the
57 | function or data, the facility still operates, and performs
58 | whatever part of its purpose remains meaningful, or
59 |
60 | b) under the GNU GPL, with none of the additional permissions of
61 | this License applicable to that copy.
62 |
63 | 3. Object Code Incorporating Material from Library Header Files.
64 |
65 | The object code form of an Application may incorporate material from
66 | a header file that is part of the Library. You may convey such object
67 | code under terms of your choice, provided that, if the incorporated
68 | material is not limited to numerical parameters, data structure
69 | layouts and accessors, or small macros, inline functions and templates
70 | (ten or fewer lines in length), you do both of the following:
71 |
72 | a) Give prominent notice with each copy of the object code that the
73 | Library is used in it and that the Library and its use are
74 | covered by this License.
75 |
76 | b) Accompany the object code with a copy of the GNU GPL and this license
77 | document.
78 |
79 | 4. Combined Works.
80 |
81 | You may convey a Combined Work under terms of your choice that,
82 | taken together, effectively do not restrict modification of the
83 | portions of the Library contained in the Combined Work and reverse
84 | engineering for debugging such modifications, if you also do each of
85 | the following:
86 |
87 | a) Give prominent notice with each copy of the Combined Work that
88 | the Library is used in it and that the Library and its use are
89 | covered by this License.
90 |
91 | b) Accompany the Combined Work with a copy of the GNU GPL and this license
92 | document.
93 |
94 | c) For a Combined Work that displays copyright notices during
95 | execution, include the copyright notice for the Library among
96 | these notices, as well as a reference directing the user to the
97 | copies of the GNU GPL and this license document.
98 |
99 | d) Do one of the following:
100 |
101 | 0) Convey the Minimal Corresponding Source under the terms of this
102 | License, and the Corresponding Application Code in a form
103 | suitable for, and under terms that permit, the user to
104 | recombine or relink the Application with a modified version of
105 | the Linked Version to produce a modified Combined Work, in the
106 | manner specified by section 6 of the GNU GPL for conveying
107 | Corresponding Source.
108 |
109 | 1) Use a suitable shared library mechanism for linking with the
110 | Library. A suitable mechanism is one that (a) uses at run time
111 | a copy of the Library already present on the user's computer
112 | system, and (b) will operate properly with a modified version
113 | of the Library that is interface-compatible with the Linked
114 | Version.
115 |
116 | e) Provide Installation Information, but only if you would otherwise
117 | be required to provide such information under section 6 of the
118 | GNU GPL, and only to the extent that such information is
119 | necessary to install and execute a modified version of the
120 | Combined Work produced by recombining or relinking the
121 | Application with a modified version of the Linked Version. (If
122 | you use option 4d0, the Installation Information must accompany
123 | the Minimal Corresponding Source and Corresponding Application
124 | Code. If you use option 4d1, you must provide the Installation
125 | Information in the manner specified by section 6 of the GNU GPL
126 | for conveying Corresponding Source.)
127 |
128 | 5. Combined Libraries.
129 |
130 | You may place library facilities that are a work based on the
131 | Library side by side in a single library together with other library
132 | facilities that are not Applications and are not covered by this
133 | License, and convey such a combined library under terms of your
134 | choice, if you do both of the following:
135 |
136 | a) Accompany the combined library with a copy of the same work based
137 | on the Library, uncombined with any other library facilities,
138 | conveyed under the terms of this License.
139 |
140 | b) Give prominent notice with the combined library that part of it
141 | is a work based on the Library, and explaining where to find the
142 | accompanying uncombined form of the same work.
143 |
144 | 6. Revised Versions of the GNU Lesser General Public License.
145 |
146 | The Free Software Foundation may publish revised and/or new versions
147 | of the GNU Lesser General Public License from time to time. Such new
148 | versions will be similar in spirit to the present version, but may
149 | differ in detail to address new problems or concerns.
150 |
151 | Each version is given a distinguishing version number. If the
152 | Library as you received it specifies that a certain numbered version
153 | of the GNU Lesser General Public License "or any later version"
154 | applies to it, you have the option of following the terms and
155 | conditions either of that published version or of any later version
156 | published by the Free Software Foundation. If the Library as you
157 | received it does not specify a version number of the GNU Lesser
158 | General Public License, you may choose any version of the GNU Lesser
159 | General Public License ever published by the Free Software Foundation.
160 |
161 | If the Library as you received it specifies that a proxy can decide
162 | whether future versions of the GNU Lesser General Public License shall
163 | apply, that proxy's public statement of acceptance of any version is
164 | permanent authorization for you to choose that version for the
165 | Library.
166 |
--------------------------------------------------------------------------------
/Actions/CephActions.js:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2015 Cloudbase Solutions Srl
3 | All Rights Reserved.
4 |
5 | Licensed under the Apache License, Version 2.0 (the "License"); you may
6 | not use this file except in compliance with the License. You may obtain
7 | a copy of the License at
8 |
9 | http://www.apache.org/licenses/LICENSE-2.0
10 |
11 | Unless required by applicable law or agreed to in writing, software
12 | distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13 | WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14 | License for the specific language governing permissions and limitations
15 | under the License.
16 | */
17 |
18 | // http://msdn.microsoft.com/en-us/library/sfw6660x(VS.85).aspx
19 | var Buttons =
20 | {
21 | OkOnly: 0,
22 | OkCancel: 1,
23 | AbortRetryIgnore: 2,
24 | YesNoCancel: 3
25 | };
26 |
27 | var Icons =
28 | {
29 | Critical: 16,
30 | Question: 32,
31 | Exclamation: 48,
32 | Information: 64
33 | }
34 |
35 | var MsgKind =
36 | {
37 | Error: 0x01000000,
38 | Warning: 0x02000000,
39 | User: 0x03000000,
40 | Log: 0x04000000
41 | };
42 |
43 | // http://msdn.microsoft.com/en-us/library/aa371254(VS.85).aspx
44 | var MsiActionStatus =
45 | {
46 | None: 0,
47 | Ok: 1, // success
48 | Cancel: 2,
49 | Abort: 3,
50 | Retry: 4, // aka suspend?
51 | Ignore: 5 // skip remaining actions; this is not an error.
52 | };
53 |
54 | var ServiceStartAction = {
55 | Stop: "Stop",
56 | Start: "Start",
57 | Restart: "Restart"
58 | };
59 |
60 | var ServiceStartMode = {
61 | Boot: "Boot",
62 | System: "System",
63 | Auto: "Auto",
64 | Manual: "Manual",
65 | Disabled: "Disabled"
66 | };
67 |
68 | function throwException(num, msg) {
69 | throw {
70 | number: num,
71 | message: msg
72 | };
73 | }
74 |
75 | function decimalToHexString(number) {
76 | if (number < 0)
77 | number = 0xFFFFFFFF + number + 1;
78 | return number.toString(16).toUpperCase();
79 | }
80 |
81 | function logMessage(msg) {
82 | var record = Session.Installer.CreateRecord(0);
83 | record.StringData(0) = "CustomActions: " + msg;
84 | Session.Message(MsgKind.Log, record);
85 | }
86 |
87 | function logMessageEx(msg, type) {
88 | var record = Session.Installer.CreateRecord(0);
89 | record.StringData(0) = msg;
90 | Session.Message(type, record);
91 | }
92 |
93 | function logException(exc) {
94 | var record = Session.Installer.CreateRecord(0);
95 | record.StringData(0) = exc.message == "" ? "An exception occurred: 0x" + decimalToHexString(exc.number) : exc.message;
96 | Session.Message(MsgKind.Error + Icons.Critical + Buttons.OkOnly, record);
97 |
98 | // Log the full exception as well
99 | record.StringData(0) = "CustomAction exception details: 0x" + decimalToHexString(exc.number) + " : " + exc.message;
100 | Session.Message(MsgKind.Log, record);
101 | }
102 |
103 | function runCommand(cmd, expectedReturnValue, envVars, windowStyle, waitOnReturn, workingDir) {
104 | var shell = new ActiveXObject("WScript.Shell");
105 | logMessage("Running command: " + cmd);
106 |
107 | if (envVars) {
108 | var env = shell.Environment("Process");
109 | for (var k in envVars)
110 | env(k) = envVars[k];
111 | }
112 |
113 | if (typeof windowStyle == 'undefined')
114 | windowStyle = 0;
115 |
116 | if (typeof waitOnReturn == 'undefined')
117 | waitOnReturn = true;
118 |
119 | if (typeof workingDir == 'undefined')
120 | workingDir = null;
121 |
122 | if (workingDir) {
123 | shell.CurrentDirectory = workingDir;
124 | }
125 |
126 | var retVal = shell.run(cmd, windowStyle, waitOnReturn);
127 |
128 | if (waitOnReturn && expectedReturnValue != undefined && expectedReturnValue != null && retVal != expectedReturnValue)
129 | throwException(-1, "Command failed. Return value: " + retVal.toString());
130 |
131 | logMessage("Command completed. Return value: " + retVal);
132 |
133 | return retVal;
134 | }
135 |
136 | function getWmiCimV2Svc() {
137 | return GetObject("winmgmts:\\\\.\\root\\cimv2");
138 | }
139 |
140 | function getSafeArray(jsArr) {
141 | var dict = new ActiveXObject("Scripting.Dictionary");
142 | for (var i = 0; i < jsArr.length; i++)
143 | dict.add(i, jsArr[i]);
144 | return dict.Items();
145 | }
146 |
147 | function invokeWMIMethod(svc, methodName, inParamsValues, wmiSvc, jobOutParamName) {
148 | logMessage("Invoking " + methodName);
149 |
150 | var inParams = null;
151 | if (inParamsValues) {
152 | for (var k in inParamsValues) {
153 | if (!inParams)
154 | inParams = svc.Methods_(methodName).InParameters.SpawnInstance_();
155 | var val = inParamsValues[k];
156 | if (val instanceof Array)
157 | inParams[k] = getSafeArray(val);
158 | else
159 | inParams[k] = val;
160 | }
161 | }
162 |
163 | var outParams = svc.ExecMethod_(methodName, inParams);
164 | if (outParams.ReturnValue == 4096) {
165 | var job = wmiSvc.Get(outParams[jobOutParamName]);
166 | waitForJob(wmiSvc, job);
167 | }
168 | else if (outParams.ReturnValue != 0)
169 | throwException(-1, methodName + " failed. Return value: " + outParams.ReturnValue.toString());
170 |
171 | return outParams;
172 | }
173 |
174 | function sleep(interval) {
175 | // WScript.Sleep is not supported in MSI's WSH. Here's a workaround for the moment.
176 |
177 | // interval is ignored
178 | var numPings = 2;
179 | cmd = "ping -n " + numPings + " 127.0.0.1";
180 |
181 | var shell = new ActiveXObject("WScript.Shell");
182 | shell.run(cmd, 0, true);
183 | }
184 |
185 | function getService(serviceName) {
186 | var wmiSvc = getWmiCimV2Svc();
187 | return wmiSvc.ExecQuery("SELECT * FROM Win32_Service WHERE Name='" + serviceName + "'").ItemIndex(0);
188 | }
189 |
190 | function changeService(serviceName, startMode, startAction) {
191 | var svc = getService(serviceName);
192 |
193 | if ((startAction == ServiceStartAction.Stop || startAction == ServiceStartAction.Restart) && svc.Started)
194 | invokeWMIMethod(svc, "StopService");
195 |
196 | if (startMode && svc.StartMode != startMode)
197 | invokeWMIMethod(svc, "ChangeStartMode",
198 | {
199 | "StartMode": (startMode == ServiceStartMode.Auto ? "Automatic" : startMode)
200 | });
201 |
202 | if (startAction == ServiceStartAction.Restart && svc.Started) {
203 | var wmiSvc = getWmiCimV2Svc();
204 | do {
205 | sleep(200);
206 | svc = wmiSvc.Get(svc.Path_);
207 | } while (svc.Started);
208 | }
209 |
210 | if ((startAction == ServiceStartAction.Start || startAction == ServiceStartAction.Restart) && !svc.Started)
211 | invokeWMIMethod(svc, "StartService");
212 | }
213 |
214 | function runCommandAction() {
215 | var exceptionMsg = null;
216 |
217 | try {
218 | var data = Session.Property("CustomActionData").split('|');
219 | var i = 0;
220 | var cmd = data[i++];
221 | var expectedRetValue = data.length > i ? data[i++] : 0;
222 | var exceptionMsg = data.length > i ? data[i++] : null;
223 | var workingDir = data.length > i ? data[i++] : null;
224 |
225 | runCommand(cmd, expectedRetValue, null, 0, true, workingDir);
226 | return MsiActionStatus.Ok;
227 | }
228 | catch (ex) {
229 | if (exceptionMsg) {
230 | logMessageEx(exceptionMsg, MsgKind.Error + Icons.Critical + Buttons.OkOnly);
231 | // log also the original exception
232 | logMessage(ex.message);
233 | }
234 | else
235 | logException(ex);
236 |
237 | return MsiActionStatus.Abort;
238 | }
239 | }
240 |
241 | function changeServiceAction() {
242 | try {
243 | var data = Session.Property("CustomActionData").split('|');
244 | var serviceName = data[0];
245 | var startMode = data[1];
246 | var startAction = data[2];
247 |
248 | logMessage("Changing service " + serviceName + ", startMode: " + startMode + ", startAction: " + startAction);
249 |
250 | changeService(serviceName, startMode, startAction);
251 |
252 | return MsiActionStatus.Ok;
253 | }
254 | catch (ex) {
255 | logMessage(ex.message);
256 | return MsiActionStatus.Abort;
257 | }
258 | }
259 |
--------------------------------------------------------------------------------
/Product.wxs:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
22 |
23 |
24 |
26 |
27 |
28 |
32 |
37 |
42 |
47 |
48 |
49 |
50 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 | "ALL" AND (&WindowsCephDriver = 3)]]>
68 | "ALL" AND (&WindowsCephDriver = 3)]]>
69 |
70 | "ALL" AND (&WindowsCephDriver = 3)]]>
71 | "ALL" AND (&WindowsCephDriver = 3)]]>
72 |
73 | "ALL" AND (&WindowsCephDriver = 3)]]>
74 | "ALL" AND (&WindowsCephDriver = 3)]]>
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 | "ALL" AND (&WindowsCephDriver = 3)) OR ((&WindowsCephDriver=2) AND (!WindowsCephDriver=3))]]>
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
147 |
148 |
154 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
--------------------------------------------------------------------------------
/License.rtf:
--------------------------------------------------------------------------------
1 | {\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang2057\deflangfe2057\themelang3072\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
2 | {\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\fbidi \fdecor\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f10\fbidi \fdecor\fcharset77\fprq2{\*\panose 05000000000000000000}Wingdings;}
3 | {\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
4 | {\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;}
5 | {\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
6 | {\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}
7 | {\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f55\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f56\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
8 | {\f58\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f59\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f60\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f61\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
9 | {\f62\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f63\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f65\fbidi \fswiss\fcharset238\fprq2 Arial CE;}{\f66\fbidi \fswiss\fcharset204\fprq2 Arial Cyr;}
10 | {\f68\fbidi \fswiss\fcharset161\fprq2 Arial Greek;}{\f69\fbidi \fswiss\fcharset162\fprq2 Arial Tur;}{\f70\fbidi \fswiss\fcharset177\fprq2 Arial (Hebrew);}{\f71\fbidi \fswiss\fcharset178\fprq2 Arial (Arabic);}
11 | {\f72\fbidi \fswiss\fcharset186\fprq2 Arial Baltic;}{\f73\fbidi \fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f75\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}{\f76\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;}
12 | {\f78\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f79\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f80\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f81\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);}
13 | {\f82\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f83\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f395\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}{\f396\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}
14 | {\f398\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f399\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f402\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}{\f403\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);}
15 | {\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
16 | {\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
17 | {\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
18 | {\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
19 | {\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
20 | {\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;}
21 | {\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31533\fbidi \fswiss\fcharset177\fprq2 Calibri Light (Hebrew);}
22 | {\fhimajor\f31534\fbidi \fswiss\fcharset178\fprq2 Calibri Light (Arabic);}{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;}{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}
23 | {\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
24 | {\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
25 | {\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
26 | {\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
27 | {\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
28 | {\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
29 | {\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
30 | {\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
31 | {\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
32 | {\fhiminor\f31573\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\fhiminor\f31574\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}
33 | {\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
34 | {\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
35 | {\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}
36 | {\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;
37 | \red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red0\green0\blue0;\red0\green0\blue0;\caccentone\ctint255\cshade127\red31\green55\blue99;
38 | \caccentone\ctint255\cshade191\red47\green84\blue150;}{\*\defchp }{\*\defpap \ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{
39 | \ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang3072\langfe2057\loch\f0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 \snext0 \sqformat \spriority0 Normal;}
40 | {\s3\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs27\alang1025 \ltrch\fcs0
41 | \b\fs27\lang3072\langfe2057\loch\f0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 \sbasedon0 \snext3 \slink16 \sqformat \spriority9 heading 3;}{
42 | \s4\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs24\alang1025 \ltrch\fcs0
43 | \b\fs24\lang3072\langfe2057\loch\f0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 \sbasedon0 \snext4 \slink20 \sqformat \spriority9 heading 4;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*
44 | \ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv
45 | \ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang3072\langfe2057\cgrid\langnp3072\langfenp2057 \snext11 \ssemihidden \sunhideused Normal Table;}{
46 | \s15\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang3072\langfe2057\loch\f0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057
47 | \sbasedon0 \snext15 \spriority0 msonormal;}{\*\cs16 \additive \rtlch\fcs1 \af31503\afs24 \ltrch\fcs0 \fs24\cf19\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink3 \slocked \ssemihidden \spriority9 Heading 3 Char;}{
48 | \s17\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang3072\langfe2057\loch\f0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057
49 | \sbasedon0 \snext17 \ssemihidden \sunhideused Normal (Web);}{\*\cs18 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \ul\cf2 \sbasedon10 \ssemihidden \sunhideused Hyperlink;}{\*\cs19 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \ul\cf12
50 | \sbasedon10 \ssemihidden \sunhideused FollowedHyperlink;}{\*\cs20 \additive \rtlch\fcs1 \ai\af31503\afs24 \ltrch\fcs0 \i\fs24\cf20\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink4 \slocked \ssemihidden \spriority9 Heading 4 Char;}}{\*\listtable
51 | {\list\listtemplateid2124822528{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 _;}{\levelnumbers;}\f3\fs20\fbias0\hres0\chhres0 \fi-360\li720\jclisttab\tx720\lin720 }
52 | {\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fs20\fbias0\hres0\chhres0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0
53 | \leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}\f10\fs20\fbias0\hres0\chhres0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0
54 | \levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}\f10\fs20\fbias0\hres0\chhres0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
55 | \lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}\f10\fs20\fbias0\hres0\chhres0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative
56 | \levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}\f10\fs20\fbias0\hres0\chhres0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0
57 | \levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}\f10\fs20\fbias0\hres0\chhres0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0
58 | {\leveltext\'01\u-3929 _;}{\levelnumbers;}\f10\fs20\fbias0\hres0\chhres0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext
59 | \'01\u-3929 _;}{\levelnumbers;}\f10\fs20\fbias0\hres0\chhres0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid320819566}{\list\listtemplateid741474482{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
60 | \levelindent0{\leveltext\'01\u-3913 _;}{\levelnumbers;}\f3\fs20\fbias0\hres0\chhres0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext
61 | \'01o;}{\levelnumbers;}\f2\fs20\fbias0\hres0\chhres0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}
62 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}
63 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}
64 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}
65 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}
66 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}
67 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}
68 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1236552178}{\list\listtemplateid601392650{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
69 | \'01\u-3913 _;}{\levelnumbers;}\f3\fs20\fbias0\hres0\chhres0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}
70 | \f2\fs20\fbias0\hres0\chhres0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}
71 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}
72 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}
73 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}
74 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}
75 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}
76 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}
77 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1398475543}{\list\listtemplateid-2007717828{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
78 | \'01\u-3913 _;}{\levelnumbers;}\f3\fs20\fbias0\hres0\chhres0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}
79 | \f2\fs20\fbias0\hres0\chhres0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}
80 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}
81 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}
82 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}
83 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}
84 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}
85 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}
86 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1902714816}}{\*\listoverridetable{\listoverride\listid1902714816\listoverridecount0\ls1}{\listoverride\listid1236552178\listoverridecount0\ls2}
87 | {\listoverride\listid320819566\listoverridecount0\ls3}{\listoverride\listid1398475543\listoverridecount0\ls4}}{\*\rsidtbl \rsid592286\rsid12473182}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440
88 | \mintLim0\mnaryLim1}{\info{\title GNU Lesser General Public License v3.0 - GNU Project - Free Software Foundation (FSF)}{\author Alessandro Pilotti}{\operator Alessandro Pilotti}{\creatim\yr2020\mo6\dy17\hr1\min18}{\revtim\yr2020\mo6\dy17\hr1\min18}
89 | {\version2}{\edmins1}{\nofpages2}{\nofwords1097}{\nofchars6253}{\nofcharsws7336}{\vern4747}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw11906\paperh16838\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect
90 | \widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen
91 | \expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1440\dgvorigin1440\dghshow1\dgvshow1
92 | \jexpand\viewkind1\viewscale258\viewzk2\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\allowfieldendsel\nojkernpunct
93 | \rsidroot12473182\newtblstyruls\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0{\*\wgrffmtfilter 2450}
94 | \nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\pgbrdropt32\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2
95 | \pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6
96 | \pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang
97 | {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\s3\qc \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs27\alang1025 \ltrch\fcs0
98 | \b\fs27\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 GNU LESSER GENERAL PUBLIC LICENSE
99 | \par }\pard\plain \ltrpar\s17\qc \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
100 | \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 \hich\af1\dbch\af31505\loch\f1 Version 3, 29 June 2007
101 | \par }\pard \ltrpar\s17\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182
102 | \hich\af1\dbch\af31505\loch\f1 \hich\f1 Copyright \'a9\loch\f1 2007 Free Software Foundation, Inc. <}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182
103 | \hich\af1\dbch\af31505\loch\f1 \hich\af1\dbch\af31505\loch\f1 HYPERLINK "https://fsf.org/"\hich\af1\dbch\af31505\loch\f1 }}{\fldrslt {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \cs18\f1\fs18\ul\cf2\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182
104 | \hich\af1\dbch\af31505\loch\f1 https://fsf.org/}}}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\pgbrdropt32\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0
105 | \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 \hich\af1\dbch\af31505\loch\f1 >
106 | \par \hich\af1\dbch\af31505\loch\f1 Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
107 | \par \hich\af1\dbch\af31505\loch\f1 This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public Licens\hich\af1\dbch\af31505\loch\f1
108 | e, supplemented by the additional permissions listed below.
109 | \par }\pard\plain \ltrpar\s4\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs24\alang1025 \ltrch\fcs0
110 | \b\fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 {\*\bkmkstart section0}{\*\bkmkend section0}
111 | 0. Additional Definitions.
112 | \par }\pard\plain \ltrpar\s17\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
113 | \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 \hich\af1\dbch\af31505\loch\f1 \hich\f1 As used herein, \'93
114 | \loch\f1 \hich\f1 this License\'94\loch\f1 \hich\f1 refers to version 3 of the GNU Lesser General Public License, and the \'93\loch\f1 \hich\f1 GNU GPL\'94\loch\f1 refers to version 3 of the GNU General Public License.
115 | \par \loch\af1\dbch\af31505\hich\f1 \'93\loch\f1 Th\hich\af1\dbch\af31505\loch\f1 \hich\f1 e Library\'94\loch\f1 refers to a covered work governed by this License, other than an Application or a Combined Work as defined below.
116 | \par \hich\af1\dbch\af31505\loch\f1 \hich\f1 An \'93\loch\f1 \hich\f1 Application\'94\loch\f1 is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Librar\hich\af1\dbch\af31505\loch\f1
117 | y. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library.
118 | \par \hich\af1\dbch\af31505\loch\f1 \hich\f1 A \'93\loch\f1 \hich\f1 Combined Work\'94\loch\f1 is a work produced by combining or linking an Application with the Library. The particular version of the Library wit\hich\af1\dbch\af31505\loch\f1 \hich\f1
119 | h which the Combined Work was made is also called the \'93\loch\f1 \hich\f1 Linked Version\'94.
120 | \par \hich\af1\dbch\af31505\loch\f1 \hich\f1 The \'93\loch\f1 \hich\f1 Minimal Corresponding Source\'94\loch\f1
121 | for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considere\hich\af1\dbch\af31505\loch\f1
122 | d in isolation, are based on the Application, and not on the Linked Version.
123 | \par \hich\af1\dbch\af31505\loch\f1 \hich\f1 The \'93\loch\f1 \hich\f1 Corresponding Application Code\'94\loch\f1 for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproduci
124 | \hich\af1\dbch\af31505\loch\f1 ng the Combined Work from the Application, but excluding the System Libraries of the Combined Work.
125 | \par }\pard\plain \ltrpar\s4\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs24\alang1025 \ltrch\fcs0
126 | \b\fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 {\*\bkmkstart section1}{\*\bkmkend section1}
127 | 1. Exception to Section 3 of the GNU GPL.
128 | \par }\pard\plain \ltrpar\s17\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
129 | \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 \hich\af1\dbch\af31505\loch\f1
130 | You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU G\hich\af1\dbch\af31505\loch\f1 PL.
131 | \par }\pard\plain \ltrpar\s4\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs24\alang1025 \ltrch\fcs0
132 | \b\fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 {\*\bkmkstart section2}{\*\bkmkend section2}
133 | 2. Conveying Modified Versions.
134 | \par }\pard\plain \ltrpar\s17\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
135 | \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 \hich\af1\dbch\af31505\loch\f1
136 | If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invo\hich\af1\dbch\af31505\loch\f1
137 | ked), then you may convey a copy of the modified version:
138 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f3\fs20\lang9\langfe2057\langnp9\charrsid12473182 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \ltrpar\ql \fi-360\li720\ri0\sb100\sa100\sbauto1\saauto1\widctlpar
139 | \jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls1\adjustright\rin0\lin720\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0
140 | \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182
141 | a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or
142 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f3\fs20\lang9\langfe2057\langnp9\charrsid12473182 \loch\af3\dbch\af0\hich\f3 \'b7\tab}b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy.
143 |
144 | \par }\pard\plain \ltrpar\s4\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs24\alang1025 \ltrch\fcs0
145 | \b\fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 {\*\bkmkstart section3}{\*\bkmkend section3}
146 | 3. Object Code Incorporating Material from Library Header Files.
147 | \par }\pard\plain \ltrpar\s17\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
148 | \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 \hich\af1\dbch\af31505\loch\f1
149 | The object code form of an Application may i\hich\af1\dbch\af31505\loch\f1
150 | ncorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or sm
151 | \hich\af1\dbch\af31505\loch\f1 a\hich\af1\dbch\af31505\loch\f1 ll macros, inline functions and templates (ten or fewer lines in length), you do both of the following:
152 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f3\fs20\lang9\langfe2057\langnp9\charrsid12473182 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \ltrpar\ql \fi-360\li720\ri0\sb100\sa100\sbauto1\saauto1\widctlpar
153 | \jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin720\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0
154 | \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License.
155 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f3\fs20\lang9\langfe2057\langnp9\charrsid12473182 \loch\af3\dbch\af0\hich\f3 \'b7\tab}b) Accompany the object code with a copy of the GNU GPL and this license document.
156 | \par }\pard\plain \ltrpar\s4\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs24\alang1025 \ltrch\fcs0
157 | \b\fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 {\*\bkmkstart section4}{\*\bkmkend section4}4. Combined Works.
158 |
159 | \par }\pard\plain \ltrpar\s17\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
160 | \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 \hich\af1\dbch\af31505\loch\f1
161 | You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library co\hich\af1\dbch\af31505\loch\f1
162 | ntained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following:
163 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f3\fs20\lang9\langfe2057\langnp9\charrsid12473182 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \ltrpar\ql \fi-360\li720\ri0\sb100\sa100\sbauto1\saauto1\widctlpar
164 | \jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls3\adjustright\rin0\lin720\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0
165 | \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License.
166 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f3\fs20\lang9\langfe2057\langnp9\charrsid12473182 \loch\af3\dbch\af0\hich\f3 \'b7\tab}b) Accompany the Combined Work with a copy of the GNU GPL and this license document.
167 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f3\fs20\lang9\langfe2057\langnp9\charrsid12473182 \loch\af3\dbch\af0\hich\f3 \'b7\tab}c) For a Combined Work that displays copyright notices during
168 | execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document.
169 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f3\fs20\lang9\langfe2057\langnp9\charrsid12473182 \loch\af3\dbch\af0\hich\f3 \'b7\tab}d) Do one of the following:
170 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f2\fs20\lang9\langfe2057\langnp9\charrsid12473182 \hich\af2\dbch\af0\loch\f2 o\tab}}\pard \ltrpar\ql \fi-360\li1440\ri0\sb100\sa100\sbauto1\saauto1\widctlpar
171 | \jclisttab\tx1440\wrapdefault\aspalpha\aspnum\faauto\ls3\ilvl1\adjustright\rin0\lin1440\itap0 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 0) Convey the Minimal Corresponding Source under the
172 | terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the m
173 | anner specified by section 6 of the GNU GPL for conveying Corresponding Source.
174 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f2\fs20\lang9\langfe2057\langnp9\charrsid12473182 \hich\af2\dbch\af0\loch\f2 o\tab}
175 | 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user'
176 | s computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version.
177 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f3\fs20\lang9\langfe2057\langnp9\charrsid12473182 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\ql \fi-360\li720\ri0\sb100\sa100\sbauto1\saauto1\widctlpar
178 | \jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls3\adjustright\rin0\lin720\itap0 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182
179 | e) Provide Installation Information, but only if you would otherwise be required to provide such information under
180 | section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you
181 |
182 | use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for c
183 | onveying Corresponding Source.)
184 | \par }\pard\plain \ltrpar\s4\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs24\alang1025 \ltrch\fcs0
185 | \b\fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 {\*\bkmkstart section5}{\*\bkmkend section5}
186 | 5. Combined Libraries.
187 | \par }\pard\plain \ltrpar\s17\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
188 | \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 \hich\af1\dbch\af31505\loch\f1
189 | You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this Licens\hich\af1\dbch\af31505\loch\f1
190 | e, and convey such a combined library under terms of your choice, if you do both of the following:
191 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f3\fs20\lang9\langfe2057\langnp9\charrsid12473182 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \ltrpar\ql \fi-360\li720\ri0\sb100\sa100\sbauto1\saauto1\widctlpar
192 | \jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin720\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0
193 | \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License.
194 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f3\fs20\lang9\langfe2057\langnp9\charrsid12473182 \loch\af3\dbch\af0\hich\f3 \'b7\tab}
195 | b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.
196 | \par }\pard\plain \ltrpar\s4\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs24\alang1025 \ltrch\fcs0
197 | \b\fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 {\*\bkmkstart section6}{\*\bkmkend section6}
198 | 6. Revised Versions of the GNU Lesser General Public License.
199 | \par }\pard\plain \ltrpar\s17\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
200 | \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 \hich\af1\dbch\af31505\loch\f1
201 | The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concer
202 | \hich\af1\dbch\af31505\loch\f1 ns.
203 | \par \hich\af1\dbch\af31505\loch\f1 \hich\f1 Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License \'93\loch\f1 \hich\f1 or any later version
204 | \'94\loch\f1 applies to it, you have the option of following the terms\hich\af1\dbch\af31505\loch\f1
205 | and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of
206 | \hich\af1\dbch\af31505\loch\f1 \hich\af1\dbch\af31505\loch\f1 the GNU Lesser General Public License ever published by the Free Software Foundation.
207 | \par \hich\af1\dbch\af31505\loch\f1 If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public stat\hich\af1\dbch\af31505\loch\f1
208 | ement of acceptance of any version is permanent authorization for you to choose that version for the Library.}{\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182
209 | \par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a
210 | 9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad
211 | 5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6
212 | b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0
213 | 0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6
214 | a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f
215 | c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512
216 | 0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462
217 | a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865
218 | 6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b
219 | 4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b
220 | 4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100b6f4679893070000c9200000160000007468656d652f7468656d652f
221 | 7468656d65312e786d6cec59cd8b1bc915bf07f23f347d97f5d5ad8fc1f2a24fcfda33b6b164873dd648a5eef2547789aad28cc56208de532e81c026e49085bd
222 | ed21842cecc22eb9e48f31d8249b3f22afaa5bdd5552c99e191c3061463074977eefd5afde7bf5de53d5ddcf5e26d4bbc05c1096f6fcfa9d9aefe174ce16248d
223 | 7afeb3d9a4d2f13d2151ba4094a5b8e76fb0f03fbbf7eb5fdd454732c609f6403e1547a8e7c752ae8eaa5531876124eeb0154ee1bb25e30992f0caa3ea82a34b
224 | d09bd06aa3566b55134452df4b51026a1f2f97648ebd9952e9dfdb2a1f53784da5500373caa74a35b6243476715e5708b11143cabd0b447b3eccb3609733fc52
225 | fa1e4542c2173dbfa6fffceabdbb5574940b517940d6909be8bf5c2e17589c37f49c3c3a2b260d823068f50bfd1a40e53e6edc1eb7c6ad429f06a0f91c569a71
226 | b175b61bc320c71aa0ecd1a17bd41e35eb16ded0dfdce3dc0fd5c7c26b50a63fd8c34f2643b0a285d7a00c1feee1c3417730b2f56b50866fede1dbb5fe28685b
227 | fa3528a6243ddf43d7c25673b85d6d0159327aec8477c360d26ee4ca4b144443115d6a8a254be5a1584bd00bc6270050408a24493db959e1259a43140f112567
228 | 9c7827248a21f056286502866b8ddaa4d684ffea13e827ed5174849121ad780113b137a4f87862cec94af6fc07a0d537206f7ffef9cdeb1fdfbcfee9cd575fbd
229 | 79fdf77c6eadca923b466964cafdf2dd1ffef3cd6fbd7ffff0ed2f5fff319b7a172f4cfcbbbffdeedd3ffef93ef5b0e2d2146ffff4fdbb1fbf7ffbe7dfffebaf
230 | 5f3bb4f7393a33e1339260e13dc297de5396c0021dfcf119bf9ec42c46c494e8a791402952b338f48f656ca11f6d10450edc00db767cce21d5b880f7d72f2cc2
231 | d398af2571687c182716f094313a60dc6985876a2ec3ccb3751ab927e76b13f714a10bd7dc43945a5e1eaf579063894be530c616cd2714a5124538c5d253dfb1
232 | 738c1dabfb8210cbaea764ce99604be97d41bc01224e93ccc899154da5d03149c02f1b1741f0b7659bd3e7de8051d7aa47f8c246c2de40d4417e86a965c6fb68
233 | 2d51e252394309350d7e8264ec2239ddf0b9891b0b099e8e3065de78818570c93ce6b05ec3e90f21cdb8dd7e4a37898de4929cbb749e20c64ce4889d0f6394ac
234 | 5cd829496313fbb938871045de13265df05366ef10f50e7e40e941773f27d872f787b3c133c8b026a53240d4376beef0e57dccacf89d6ee8126157aae9f3c44a
235 | b17d4e9cd131584756689f604cd1255a60ec3dfbdcc160c05696cd4bd20f62c82ac7d815580f901dabea3dc5027a25d5dcece7c91322ac909de2881de073bad9
236 | 493c1b9426881fd2fc08bc6eda7c0ca52e7105c0633a3f37818f08f480102f4ea33c16a0c308ee835a9fc4c82a60ea5db8e375c32dff5d658fc1be7c61d1b8c2
237 | be04197c6d1948eca6cc7b6d3343d49aa00c9819822ec3956e41c4727f29a28aab165b3be596f6a62ddd00dd91d5f42424fd6007b4d3fb84ffbbde073a8cb77f
238 | f9c6b10f3e4ebfe3566c25ab6b763a8792c9f14e7f7308b7dbd50c195f904fbfa919a175fa04431dd9cf58b73dcd6d4fe3ffdff73487f6f36d2773a8dfb8ed64
239 | 7ce8306e3b99fc70e5e3743265f3027d8d3af0c80e7af4b14f72f0d46749289dca0dc527421ffc08f83db398c0a092d3279eb838055cc5f0a8ca1c4c60e1228e
240 | b48cc799fc0d91f134462b381daafb4a492472d591f0564cc0a1911e76ea5678ba4e4ed9223becacd7d5c16656590592e5782d2cc6e1a04a66e856bb3cc02bd4
241 | 6bb6913e68dd1250b2d721614c6693683a48b4b783ca48fa58178ce620a157f65158741d2c3a4afdd6557b2c805ae115f8c1edc1cff49e1f06200242701e07cd
242 | f942f92973f5d6bbda991fd3d3878c69450034d8db08283ddd555c0f2e4fad2e0bb52b78da2261849b4d425b46377822869fc17974aad1abd0b8aeafbba54b2d
243 | 7aca147a3e08ad9246bbf33e1637f535c8ede6069a9a9982a6de65cf6f35430899395af5fc251c1ac363b282d811ea3717a211dcbccc25cf36fc4d32cb8a0b39
244 | 4222ce0cae934e960d122231f728497abe5a7ee1069aea1ca2b9d51b90103e59725d482b9f1a3970baed64bc5ce2b934dd6e8c284b67af90e1b35ce1fc568bdf
245 | 1cac24d91adc3d8d1797de195df3a708422c6cd795011744c0dd413db3e682c0655891c8caf8db294c79da356fa3740c65e388ae62945714339967709dca0b3a
246 | faadb081f196af190c6a98242f8467912ab0a651ad6a5a548d8cc3c1aafb6121653923699635d3ca2aaa6abab39835c3b60cecd8f26645de60b53531e434b3c2
247 | 67a97b37e576b7b96ea74f28aa0418bcb09fa3ea5ea12018d4cac92c6a8af17e1a56393b1fb56bc776811fa07695226164fdd656ed8edd8a1ae19c0e066f54f9
248 | 416e376a6168b9ed2bb5a5f5adb979b1cdce5e40f2184197bba6526857c2c92e47d0104d754f92a50dd8222f65be35e0c95b73d2f3bfac85fd60d80887955a27
249 | 1c57826650ab74c27eb3d20fc3667d1cd66ba341e31514161927f530bbb19fc00506dde4f7f67a7cefee3ed9ded1dc99b3a4caf4dd7c5513d777f7f5c6e1bb7b
250 | 8f40d2f9b2d598749bdd41abd26df627956034e854bac3d6a0326a0ddba3c9681876ba9357be77a1c141bf390c5ae34ea5551f0e2b41aba6e877ba9576d068f4
251 | 8376bf330efaaff23606569ea58fdc16605ecdebde7f010000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d65
252 | 2f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d36
253 | 3f2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e
254 | 3198720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d985
255 | 0528a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c020000130000000000000000000000
256 | 0000000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000
257 | 000000300100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c0000000000000000000000000019020000
258 | 7468656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d0014000600080000002100b6f4679893070000c92000001600000000000000
259 | 000000000000d60200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01000027000000
260 | 000000000000000000009d0a00007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000980b00000000}
261 | {\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
262 | 617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
263 | 6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
264 | 656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
265 | {\*\latentstyles\lsdstimax376\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;
266 | \lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;
267 | \lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;
268 | \lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1;
269 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5;
270 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9;
271 | \lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3;
272 | \lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6;
273 | \lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent;
274 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer;
275 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures;
276 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference;
277 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text;
278 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List;
279 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3;
280 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3;
281 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3;
282 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing;
283 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent;
284 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4;
285 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation;
286 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading;
287 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3;
288 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;
289 | \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature;
290 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym;
291 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition;
292 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter;
293 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Table;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List;
294 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1;
295 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2;
296 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2;
297 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3;
298 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2;
299 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6;
300 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2;
301 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6;
302 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2;
303 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional;
304 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 2;
305 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text;
306 | \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2;
307 | \lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List;
308 | \lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1;
309 | \lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision;
310 | \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;
311 | \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1;
312 | \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;
313 | \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;
314 | \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;
315 | \lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;
316 | \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;
317 | \lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4;
318 | \lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;
319 | \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4;
320 | \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5;
321 | \lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;
322 | \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;
323 | \lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6;
324 | \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;
325 | \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;
326 | \lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;
327 | \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography;
328 | \lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4;
329 | \lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4;
330 | \lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1;
331 | \lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1;
332 | \lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2;
333 | \lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2;
334 | \lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3;
335 | \lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4;
336 | \lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4;
337 | \lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5;
338 | \lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5;
339 | \lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6;
340 | \lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6;
341 | \lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark;
342 | \lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1;
343 | \lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1;
344 | \lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2;
345 | \lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3;
346 | \lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3;
347 | \lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4;
348 | \lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4;
349 | \lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5;
350 | \lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5;
351 | \lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6;
352 | \lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Mention;
353 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hashtag;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Unresolved Mention;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Link;}}{\*\datastore }}
--------------------------------------------------------------------------------