internal/templates/dscclass-1.0.0.0.xml

<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04">
  <Obj RefId="0">
    <TN RefId="0">
      <T>PSModuleDevelopment.Template.Template</T>
      <T>System.Object</T>
    </TN>
    <ToString>PSModuleDevelopment.Template.Template</ToString>
    <Props>
      <S N="Name">dscclass</S>
      <Obj N="Type" RefId="1">
        <TN RefId="1">
          <T>PSModuleDevelopment.Template.TemplateType</T>
          <T>System.Enum</T>
          <T>System.ValueType</T>
          <T>System.Object</T>
        </TN>
        <ToString>Project</ToString>
        <I32>1</I32>
      </Obj>
      <Version N="Version">1.0.0.0</Version>
      <S N="Description">Basic class-based DSC resource template with support for Azure Guest Configuration</S>
      <S N="Author">Jan-Hendrik Peters</S>
      <DT N="CreatedOn">2024-02-25T00:00:00+00:00</DT>
      <Obj N="Tags" RefId="2">
        <TN RefId="2">
          <T>System.Collections.Generic.List`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]</T>
          <T>System.Object</T>
        </TN>
        <LST>
          <S>dscresource</S>
        </LST>
      </Obj>
      <Obj N="Parameters" RefId="3">
        <TNRef RefId="2" />
        <LST>
          <S>name</S>
          <S>author</S>
          <S>company</S>
          <S>description</S>
        </LST>
      </Obj>
      <Obj N="Scripts" RefId="4">
        <TN RefId="3">
          <T>System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[PSModuleDevelopment.Template.ParameterScript, PSModuleDevelopment, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]]</T>
          <T>System.Object</T>
        </TN>
        <DCT>
          <En>
            <S N="Key">guid</S>
            <Obj N="Value" RefId="5">
              <TN RefId="4">
                <T>PSModuleDevelopment.Template.ParameterScript</T>
                <T>System.Object</T>
              </TN>
              <ToString>PSModuleDevelopment.Template.ParameterScript</ToString>
              <Props>
                <S N="StringScript">_x000D__x000A__x0009__x0009__x0009_[System.Guid]::NewGuid().ToString()_x000D__x000A__x0009__x0009_</S>
                <S N="Name">guid</S>
                <SBK N="ScriptBlock">_x000D__x000A__x0009__x0009__x0009_[System.Guid]::NewGuid().ToString()_x000D__x000A__x0009__x0009_</SBK>
              </Props>
              <MS>
                <BA N="SerializationData">AAEAAAD/////AQAAAAAAAAAMAgAAAEpQU01vZHVsZURldmVsb3BtZW50LCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAwDAAAAX1N5c3RlbS5NYW5hZ2VtZW50LkF1dG9tYXRpb24sIFZlcnNpb249My4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0zMWJmMzg1NmFkMzY0ZTM1BQEAAAAsUFNNb2R1bGVEZXZlbG9wbWVudC5UZW1wbGF0ZS5QYXJhbWV0ZXJTY3JpcHQCAAAABE5hbWULU2NyaXB0QmxvY2sBBDtTeXN0ZW0uTWFuYWdlbWVudC5BdXRvbWF0aW9uLlNjcmlwdEJsb2NrU2VyaWFsaXphdGlvbkhlbHBlcgMAAAACAAAABgQAAAAEZ3VpZAkFAAAABQUAAAA7U3lzdGVtLk1hbmFnZW1lbnQuQXV0b21hdGlvbi5TY3JpcHRCbG9ja1NlcmlhbGl6YXRpb25IZWxwZXIBAAAAClNjcmlwdFRleHQBAwAAAAYGAAAALA0KCQkJW1N5c3RlbS5HdWlkXTo6TmV3R3VpZCgpLlRvU3RyaW5nKCkNCgkJCw==</BA>
              </MS>
            </Obj>
          </En>
          <En>
            <S N="Key">year</S>
            <Obj N="Value" RefId="6">
              <TNRef RefId="4" />
              <ToString>PSModuleDevelopment.Template.ParameterScript</ToString>
              <Props>
                <S N="StringScript">_x000D__x000A__x0009__x0009__x0009_Get-Date -Format "yyyy"_x000D__x000A__x0009__x0009_</S>
                <S N="Name">year</S>
                <SBK N="ScriptBlock">_x000D__x000A__x0009__x0009__x0009_Get-Date -Format "yyyy"_x000D__x000A__x0009__x0009_</SBK>
              </Props>
              <MS>
                <BA N="SerializationData">AAEAAAD/////AQAAAAAAAAAMAgAAAEpQU01vZHVsZURldmVsb3BtZW50LCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAwDAAAAX1N5c3RlbS5NYW5hZ2VtZW50LkF1dG9tYXRpb24sIFZlcnNpb249My4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0zMWJmMzg1NmFkMzY0ZTM1BQEAAAAsUFNNb2R1bGVEZXZlbG9wbWVudC5UZW1wbGF0ZS5QYXJhbWV0ZXJTY3JpcHQCAAAABE5hbWULU2NyaXB0QmxvY2sBBDtTeXN0ZW0uTWFuYWdlbWVudC5BdXRvbWF0aW9uLlNjcmlwdEJsb2NrU2VyaWFsaXphdGlvbkhlbHBlcgMAAAACAAAABgQAAAAEeWVhcgkFAAAABQUAAAA7U3lzdGVtLk1hbmFnZW1lbnQuQXV0b21hdGlvbi5TY3JpcHRCbG9ja1NlcmlhbGl6YXRpb25IZWxwZXIBAAAAClNjcmlwdFRleHQBAwAAAAYGAAAAIA0KCQkJR2V0LURhdGUgLUZvcm1hdCAieXl5eSINCgkJCw==</BA>
              </MS>
            </Obj>
          </En>
        </DCT>
      </Obj>
      <Obj N="Parameters2" RefId="7">
        <TN RefId="5">
          <T>System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[PSModuleDevelopment.Template.Parameter.ParameterBase, PSModuleDevelopment, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]]</T>
          <T>System.Object</T>
        </TN>
        <DCT />
      </Obj>
      <Obj N="Children" RefId="8">
        <TN RefId="6">
          <T>System.Collections.Generic.List`1[[PSModuleDevelopment.Template.TemplateItemBase, PSModuleDevelopment, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null]]</T>
          <T>System.Object</T>
        </TN>
        <LST>
          <Obj RefId="9">
            <TN RefId="7">
              <T>PSModuleDevelopment.Template.TemplateItemFile</T>
              <T>PSModuleDevelopment.Template.TemplateItemBase</T>
              <T>System.Object</T>
            </TN>
            <ToString>PSModuleDevelopment.Template.TemplateItemFile</ToString>
            <Props>
              <S N="Value">@{_x000D__x000A__x0009_# Script module or binary module file associated with this manifest_x000D__x000A__x0009_RootModule = 'þnameþ.psm1'_x000D__x000A__x0009__x000D__x000A__x0009_# Version number of this module._x000D__x000A__x0009_ModuleVersion = '1.0.0'_x000D__x000A__x0009__x000D__x000A__x0009_# ID used to uniquely identify this module_x000D__x000A__x0009_GUID = 'þ!guid!þ'_x000D__x000A__x0009__x000D__x000A__x0009_# Author of this module_x000D__x000A__x0009_Author = 'þauthorþ'_x000D__x000A__x0009__x000D__x000A__x0009_# Company or vendor of this module_x000D__x000A__x0009_CompanyName = 'þcompanyþ'_x000D__x000A__x0009__x000D__x000A__x0009_# Copyright statement for this module_x000D__x000A__x0009_Copyright = 'Copyright (c) þ!year!þ þauthorþ'_x000D__x000A__x0009__x000D__x000A__x0009_# Description of the functionality provided by this module_x000D__x000A__x0009_Description = 'þdescriptionþ'_x000D__x000A__x0009__x000D__x000A__x0009_# Minimum version of the Windows PowerShell engine required by this module_x000D__x000A__x0009_PowerShellVersion = '5.0'_x000D__x000A__x0009__x000D__x000A__x0009_# Modules that must be imported into the global environment prior to importing_x000D__x000A__x0009_# this module_x000D__x000A__x0009_# RequiredModules = @()_x000D__x000A__x0009__x000D__x000A__x0009_# Assemblies that must be loaded prior to importing this module_x000D__x000A__x0009_# RequiredAssemblies = @('bin\þnameþ.dll')_x000D__x000A__x0009__x000D__x000A__x0009_# Type files (.ps1xml) to be loaded when importing this module_x000D__x000A__x0009_# TypesToProcess = @('xml\þnameþ.Types.ps1xml')_x000D__x000A__x0009__x000D__x000A__x0009_# Format files (.ps1xml) to be loaded when importing this module_x000D__x000A__x0009_# FormatsToProcess = @('xml\þnameþ.Format.ps1xml')_x000D__x000A__x0009__x000D__x000A__x0009_# Functions to export from this module_x000D__x000A__x0009_FunctionsToExport = ''_x000D__x000A__x0009__x000D__x000A__x0009_# Cmdlets to export from this module_x000D__x000A__x0009_# CmdletsToExport = ''_x000D__x000A__x0009__x000D__x000A__x0009_# Variables to export from this module_x000D__x000A__x0009_# VariablesToExport = ''_x000D__x000A__x0009__x000D__x000A__x0009_# Aliases to export from this module_x000D__x000A__x0009_# AliasesToExport = ''_x000D__x000A__x000D__x000A__x0009_DscResourcesToExport = @(_x000D__x000A__x0009__x0009_'þnameþ'_x000D__x000A__x0009_)_x000D__x000A__x0009__x000D__x000A__x0009_# List of all modules packaged with this module_x000D__x000A__x0009_ModuleList = @()_x000D__x000A__x0009__x000D__x000A__x0009_# List of all files packaged with this module_x000D__x000A__x0009_FileList = @()_x000D__x000A__x0009__x000D__x000A__x0009_# Private data to pass to the module specified in ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell._x000D__x000A__x0009_PrivateData = @{_x000D__x000A__x0009__x0009__x000D__x000A__x0009__x0009_#Support for PowerShellGet galleries._x000D__x000A__x0009__x0009_PSData = @{_x000D__x000A__x0009__x0009__x0009__x000D__x000A__x0009__x0009__x0009_# Tags applied to this module. These help with module discovery in online galleries._x000D__x000A__x0009__x0009__x0009_# Tags = @()_x000D__x000A__x0009__x0009__x0009__x000D__x000A__x0009__x0009__x0009_# A URL to the license for this module._x000D__x000A__x0009__x0009__x0009_# LicenseUri = ''_x000D__x000A__x0009__x0009__x0009__x000D__x000A__x0009__x0009__x0009_# A URL to the main website for this project._x000D__x000A__x0009__x0009__x0009_# ProjectUri = ''_x000D__x000A__x0009__x0009__x0009__x000D__x000A__x0009__x0009__x0009_# A URL to an icon representing this module._x000D__x000A__x0009__x0009__x0009_# IconUri = ''_x000D__x000A__x0009__x0009__x0009__x000D__x000A__x0009__x0009__x0009_# ReleaseNotes of this module_x000D__x000A__x0009__x0009__x0009_# ReleaseNotes = ''_x000D__x000A__x0009__x0009__x0009__x000D__x000A__x0009__x0009_} # End of PSData hashtable_x000D__x000A__x0009__x0009__x000D__x000A__x0009_} # End of PrivateData hashtable_x000D__x000A_}</S>
              <B N="PlainText">true</B>
              <Obj N="ContentParameterFlat" RefId="10">
                <TNRef RefId="2" />
                <LST>
                  <S>name</S>
                  <S>author</S>
                  <S>company</S>
                  <S>description</S>
                </LST>
              </Obj>
              <Obj N="ContentParameterScript" RefId="11">
                <TNRef RefId="2" />
                <LST>
                  <S>guid</S>
                  <S>year</S>
                </LST>
              </Obj>
              <S N="Name">þnameþ.psd1</S>
              <S N="RelativePath">þnameþ.psd1</S>
              <S N="Identifier">þ</S>
              <Obj N="FileSystemParameterFlat" RefId="12">
                <TNRef RefId="2" />
                <LST>
                  <S>name</S>
                </LST>
              </Obj>
              <Obj N="FileSystemParameterScript" RefId="13">
                <TNRef RefId="2" />
                <LST />
              </Obj>
            </Props>
            <MS>
              <BA N="SerializationData">AAEAAAD/////AQAAAAAAAAAMAgAAAEpQU01vZHVsZURldmVsb3BtZW50LCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAALVBTTW9kdWxlRGV2ZWxvcG1lbnQuVGVtcGxhdGUuVGVtcGxhdGVJdGVtRmlsZQkAAAAFVmFsdWUJUGxhaW5UZXh0FENvbnRlbnRQYXJhbWV0ZXJGbGF0FkNvbnRlbnRQYXJhbWV0ZXJTY3JpcHQETmFtZQxSZWxhdGl2ZVBhdGgKSWRlbnRpZmllchdGaWxlU3lzdGVtUGFyYW1ldGVyRmxhdBlGaWxlU3lzdGVtUGFyYW1ldGVyU2NyaXB0AQADAwEBAQMDAX9TeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1N5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV1df1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV1/U3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXX9TeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1N5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV1dAgAAAAYDAAAAlxJAew0KCSMgU2NyaXB0IG1vZHVsZSBvciBiaW5hcnkgbW9kdWxlIGZpbGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbWFuaWZlc3QNCglSb290TW9kdWxlID0gJ8O+bmFtZcO+LnBzbTEnDQoJDQoJIyBWZXJzaW9uIG51bWJlciBvZiB0aGlzIG1vZHVsZS4NCglNb2R1bGVWZXJzaW9uID0gJzEuMC4wJw0KCQ0KCSMgSUQgdXNlZCB0byB1bmlxdWVseSBpZGVudGlmeSB0aGlzIG1vZHVsZQ0KCUdVSUQgPSAnw74hZ3VpZCHDvicNCgkNCgkjIEF1dGhvciBvZiB0aGlzIG1vZHVsZQ0KCUF1dGhvciA9ICfDvmF1dGhvcsO+Jw0KCQ0KCSMgQ29tcGFueSBvciB2ZW5kb3Igb2YgdGhpcyBtb2R1bGUNCglDb21wYW55TmFtZSA9ICfDvmNvbXBhbnnDvicNCgkNCgkjIENvcHlyaWdodCBzdGF0ZW1lbnQgZm9yIHRoaXMgbW9kdWxlDQoJQ29weXJpZ2h0ID0gJ0NvcHlyaWdodCAoYykgw74heWVhciHDviDDvmF1dGhvcsO+Jw0KCQ0KCSMgRGVzY3JpcHRpb24gb2YgdGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgYnkgdGhpcyBtb2R1bGUNCglEZXNjcmlwdGlvbiA9ICfDvmRlc2NyaXB0aW9uw74nDQoJDQoJIyBNaW5pbXVtIHZlcnNpb24gb2YgdGhlIFdpbmRvd3MgUG93ZXJTaGVsbCBlbmdpbmUgcmVxdWlyZWQgYnkgdGhpcyBtb2R1bGUNCglQb3dlclNoZWxsVmVyc2lvbiA9ICc1LjAnDQoJDQoJIyBNb2R1bGVzIHRoYXQgbXVzdCBiZSBpbXBvcnRlZCBpbnRvIHRoZSBnbG9iYWwgZW52aXJvbm1lbnQgcHJpb3IgdG8gaW1wb3J0aW5nDQoJIyB0aGlzIG1vZHVsZQ0KCSMgUmVxdWlyZWRNb2R1bGVzID0gQCgpDQoJDQoJIyBBc3NlbWJsaWVzIHRoYXQgbXVzdCBiZSBsb2FkZWQgcHJpb3IgdG8gaW1wb3J0aW5nIHRoaXMgbW9kdWxlDQoJIyBSZXF1aXJlZEFzc2VtYmxpZXMgPSBAKCdiaW5cw75uYW1lw74uZGxsJykNCgkNCgkjIFR5cGUgZmlsZXMgKC5wczF4bWwpIHRvIGJlIGxvYWRlZCB3aGVuIGltcG9ydGluZyB0aGlzIG1vZHVsZQ0KCSMgVHlwZXNUb1Byb2Nlc3MgPSBAKCd4bWxcw75uYW1lw74uVHlwZXMucHMxeG1sJykNCgkNCgkjIEZvcm1hdCBmaWxlcyAoLnBzMXhtbCkgdG8gYmUgbG9hZGVkIHdoZW4gaW1wb3J0aW5nIHRoaXMgbW9kdWxlDQoJIyBGb3JtYXRzVG9Qcm9jZXNzID0gQCgneG1sXMO+bmFtZcO+LkZvcm1hdC5wczF4bWwnKQ0KCQ0KCSMgRnVuY3Rpb25zIHRvIGV4cG9ydCBmcm9tIHRoaXMgbW9kdWxlDQoJRnVuY3Rpb25zVG9FeHBvcnQgPSAnJw0KCQ0KCSMgQ21kbGV0cyB0byBleHBvcnQgZnJvbSB0aGlzIG1vZHVsZQ0KCSMgQ21kbGV0c1RvRXhwb3J0ID0gJycNCgkNCgkjIFZhcmlhYmxlcyB0byBleHBvcnQgZnJvbSB0aGlzIG1vZHVsZQ0KCSMgVmFyaWFibGVzVG9FeHBvcnQgPSAnJw0KCQ0KCSMgQWxpYXNlcyB0byBleHBvcnQgZnJvbSB0aGlzIG1vZHVsZQ0KCSMgQWxpYXNlc1RvRXhwb3J0ID0gJycNCg0KCURzY1Jlc291cmNlc1RvRXhwb3J0ID0gQCgNCgkJJ8O+bmFtZcO+Jw0KCSkNCgkNCgkjIExpc3Qgb2YgYWxsIG1vZHVsZXMgcGFja2FnZWQgd2l0aCB0aGlzIG1vZHVsZQ0KCU1vZHVsZUxpc3QgPSBAKCkNCgkNCgkjIExpc3Qgb2YgYWxsIGZpbGVzIHBhY2thZ2VkIHdpdGggdGhpcyBtb2R1bGUNCglGaWxlTGlzdCA9IEAoKQ0KCQ0KCSMgUHJpdmF0ZSBkYXRhIHRvIHBhc3MgdG8gdGhlIG1vZHVsZSBzcGVjaWZpZWQgaW4gTW9kdWxlVG9Qcm9jZXNzLiBUaGlzIG1heSBhbHNvIGNvbnRhaW4gYSBQU0RhdGEgaGFzaHRhYmxlIHdpdGggYWRkaXRpb25hbCBtb2R1bGUgbWV0YWRhdGEgdXNlZCBieSBQb3dlclNoZWxsLg0KCVByaXZhdGVEYXRhID0gQHsNCgkJDQoJCSNTdXBwb3J0IGZvciBQb3dlclNoZWxsR2V0IGdhbGxlcmllcy4NCgkJUFNEYXRhID0gQHsNCgkJCQ0KCQkJIyBUYWdzIGFwcGxpZWQgdG8gdGhpcyBtb2R1bGUuIFRoZXNlIGhlbHAgd2l0aCBtb2R1bGUgZGlzY292ZXJ5IGluIG9ubGluZSBnYWxsZXJpZXMuDQoJCQkjIFRhZ3MgPSBAKCkNCgkJCQ0KCQkJIyBBIFVSTCB0byB0aGUgbGljZW5zZSBmb3IgdGhpcyBtb2R1bGUuDQoJCQkjIExpY2Vuc2VVcmkgPSAnJw0KCQkJDQoJCQkjIEEgVVJMIHRvIHRoZSBtYWluIHdlYnNpdGUgZm9yIHRoaXMgcHJvamVjdC4NCgkJCSMgUHJvamVjdFVyaSA9ICcnDQoJCQkNCgkJCSMgQSBVUkwgdG8gYW4gaWNvbiByZXByZXNlbnRpbmcgdGhpcyBtb2R1bGUuDQoJCQkjIEljb25VcmkgPSAnJw0KCQkJDQoJCQkjIFJlbGVhc2VOb3RlcyBvZiB0aGlzIG1vZHVsZQ0KCQkJIyBSZWxlYXNlTm90ZXMgPSAnJw0KCQkJDQoJCX0gIyBFbmQgb2YgUFNEYXRhIGhhc2h0YWJsZQ0KCQkNCgl9ICMgRW5kIG9mIFByaXZhdGVEYXRhIGhhc2h0YWJsZQ0KfQEJBAAAAAkFAAAABgYAAAANw75uYW1lw74ucHNkMQYHAAAADcO+bmFtZcO+LnBzZDEGCAAAAALDvgkJAAAACQoAAAAEBAAAAH9TeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1N5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24GAAAICAkLAAAABAAAAAQAAAABBQAAAAQAAAAJDAAAAAIAAAACAAAAAQkAAAAEAAAACQ0AAAABAAAAAQAAAAEKAAAABAAAAAkOAAAAAAAAAAAAAAARCwAAAAQAAAAGDwAAAARuYW1lBhAAAAAGYXV0aG9yBhEAAAAHY29tcGFueQYSAAAAC2Rlc2NyaXB0aW9uEQwAAAAEAAAABhMAAAAEZ3VpZAYUAAAABHllYXINAhENAAAABAAAAAYVAAAABG5hbWUNAxEOAAAAAAAAAAs=</BA>
            </MS>
          </Obj>
          <Obj RefId="14">
            <TNRef RefId="7" />
            <ToString>PSModuleDevelopment.Template.TemplateItemFile</ToString>
            <Props>
              <S N="Value">enum Ensure_x000D__x000A_{_x000D__x000A_ Present_x000D__x000A_ Absent_x000D__x000A_}_x000D__x000A_ _x000D__x000A_# Support for DSC v3, or Azure Guest Configuration_x000D__x000A_class Reason_x000D__x000A_{_x000D__x000A_ [DscProperty()]_x000D__x000A_ [string] $Code_x000D__x000A_ _x000D__x000A_ [DscProperty()]_x000D__x000A_ [string] $Phrase_x000D__x000A_}_x000D__x000A__x000D__x000A_function Get-Resource_x000D__x000A_{_x000D__x000A_ [OutputType([hashtable])]_x000D__x000A_ [CmdletBinding()]_x000D__x000A_ param_x000D__x000A_ (_x000D__x000A_ )_x000D__x000A__x000D__x000A_ $reasonList = @()_x000D__x000A__x000D__x000A_ if ($Ensure -eq 'Present' -and -not $successfulTests)_x000D__x000A_ {_x000D__x000A_ $reasonList += @{_x000D__x000A_ Code = 'þnameþ:þnameþ:SomethingAwfulHappened'_x000D__x000A_ Phrase = "Extend the reasonList with all errors"_x000D__x000A_ }_x000D__x000A_ }_x000D__x000A_ _x000D__x000A_ return @{_x000D__x000A_ Reasons = $reasonList_x000D__x000A_ }_x000D__x000A_}_x000D__x000A__x000D__x000A_function Set-Resource_x000D__x000A_{_x000D__x000A_ [CmdletBinding()]_x000D__x000A_ param_x000D__x000A_ (_x000D__x000A_ )_x000D__x000A__x000D__x000A_}_x000D__x000A__x000D__x000A_function Test-Resource_x000D__x000A_{_x000D__x000A_ [OutputType([bool])]_x000D__x000A_ [CmdletBinding()]_x000D__x000A_ param_x000D__x000A_ (_x000D__x000A__x000D__x000A_ )_x000D__x000A_ _x000D__x000A_ return $true_x000D__x000A_}_x000D__x000A_ _x000D__x000A_[DscResource()]_x000D__x000A_class þnameþ_x000D__x000A_{_x000D__x000A_ [DscProperty(Key)] [string] $YourKeyProperty_x000D__x000A_ [DscProperty(Mandatory)] [string] $YourRequiredProperty_x000D__x000A_ [DscProperty()] [string[]] $YourStandardProperty_x000D__x000A_ [DscProperty()] [Ensure] $Ensure # Usually a good idea to include_x000D__x000A_ [DscProperty(NotConfigurable)] [Reason[]] $Reasons # Reserved for Azure Guest Configuration_x000D__x000A_ _x000D__x000A_ þnameþ ()_x000D__x000A_ {_x000D__x000A_ $this.Ensure = 'Present' # Set up defaults_x000D__x000A_ }_x000D__x000A__x000D__x000A_ [þnameþ] Get()_x000D__x000A_ {_x000D__x000A_ $parameter = $this.GetConfigurableDscProperties()_x000D__x000A_ return (Get-Resource @parameter) _x000D__x000A_ }_x000D__x000A__x000D__x000A_ [void] Set()_x000D__x000A_ {_x000D__x000A_ $parameter = $this.GetConfigurableDscProperties()_x000D__x000A_ Set-Resource @parameter _x000D__x000A_ }_x000D__x000A__x000D__x000A_ [bool] Test()_x000D__x000A_ {_x000D__x000A_ $parameter = $this.GetConfigurableDscProperties()_x000D__x000A_ return (Test-Resource @parameter)_x000D__x000A_ }_x000D__x000A__x000D__x000A_ [Hashtable] GetConfigurableDscProperties()_x000D__x000A_ {_x000D__x000A_ # This method returns a hashtable of properties with two special workarounds_x000D__x000A_ # The hashtable will not include any properties marked as "NotConfigurable"_x000D__x000A_ # Any properties with a ValidateSet of "True","False" will beconverted to Boolean type_x000D__x000A_ # The intent is to simplify splatting to functions_x000D__x000A_ # Source: https://gist.github.com/mgreenegit/e3a9b4e136fc2d510cf87e20390daa44_x000D__x000A_ $DscProperties = @{}_x000D__x000A_ foreach ($property in [þnameþ].GetProperties().Name)_x000D__x000A_ {_x000D__x000A_ # Checks if "NotConfigurable" attribute is set_x000D__x000A_ $notConfigurable = [þnameþ].GetProperty($property).GetCustomAttributes($false).Where({ $_ -is [System.Management.Automation.DscPropertyAttribute] }).NotConfigurable_x000D__x000A_ if (!$notConfigurable)_x000D__x000A_ {_x000D__x000A_ $value = $this.$property_x000D__x000A_ # Gets the list of valid values from the ValidateSet attribute_x000D__x000A_ $validateSet = [þnameþ].GetProperty($property).GetCustomAttributes($false).Where({ $_ -is [System.Management.Automation.ValidateSetAttribute] }).ValidValues_x000D__x000A_ if ($validateSet)_x000D__x000A_ {_x000D__x000A_ # Workaround for boolean types_x000D__x000A_ if ($null -eq (Compare-Object @('True', 'False') $validateSet))_x000D__x000A_ {_x000D__x000A_ $value = [System.Convert]::ToBoolean($this.$property)_x000D__x000A_ }_x000D__x000A_ }_x000D__x000A_ # Add property to new_x000D__x000A_ $DscProperties.add($property, $value)_x000D__x000A_ } _x000D__x000A_ }_x000D__x000A_ return $DscProperties_x000D__x000A_ }_x000D__x000A_}_x000D__x000A_</S>
              <B N="PlainText">true</B>
              <Obj N="ContentParameterFlat" RefId="15">
                <TNRef RefId="2" />
                <LST>
                  <S>name</S>
                </LST>
              </Obj>
              <Obj N="ContentParameterScript" RefId="16">
                <TNRef RefId="2" />
                <LST />
              </Obj>
              <S N="Name">þnameþ.psm1</S>
              <S N="RelativePath">þnameþ.psm1</S>
              <S N="Identifier">þ</S>
              <Obj N="FileSystemParameterFlat" RefId="17">
                <TNRef RefId="2" />
                <LST>
                  <S>name</S>
                </LST>
              </Obj>
              <Obj N="FileSystemParameterScript" RefId="18">
                <TNRef RefId="2" />
                <LST />
              </Obj>
            </Props>
            <MS>
              <BA N="SerializationData">AAEAAAD/////AQAAAAAAAAAMAgAAAEpQU01vZHVsZURldmVsb3BtZW50LCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAALVBTTW9kdWxlRGV2ZWxvcG1lbnQuVGVtcGxhdGUuVGVtcGxhdGVJdGVtRmlsZQkAAAAFVmFsdWUJUGxhaW5UZXh0FENvbnRlbnRQYXJhbWV0ZXJGbGF0FkNvbnRlbnRQYXJhbWV0ZXJTY3JpcHQETmFtZQxSZWxhdGl2ZVBhdGgKSWRlbnRpZmllchdGaWxlU3lzdGVtUGFyYW1ldGVyRmxhdBlGaWxlU3lzdGVtUGFyYW1ldGVyU2NyaXB0AQADAwEBAQMDAX9TeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1N5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV1df1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV1/U3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXX9TeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1N5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV1dAgAAAAYDAAAA2RplbnVtIEVuc3VyZQ0Kew0KICAgIFByZXNlbnQNCiAgICBBYnNlbnQNCn0NCiAgICAgIA0KIyBTdXBwb3J0IGZvciBEU0MgdjMsIG9yIEF6dXJlIEd1ZXN0IENvbmZpZ3VyYXRpb24NCmNsYXNzIFJlYXNvbg0Kew0KICAgIFtEc2NQcm9wZXJ0eSgpXQ0KICAgIFtzdHJpbmddICRDb2RlDQogICAgICAgIA0KICAgIFtEc2NQcm9wZXJ0eSgpXQ0KICAgIFtzdHJpbmddICRQaHJhc2UNCn0NCg0KZnVuY3Rpb24gR2V0LVJlc291cmNlDQp7DQogICAgW091dHB1dFR5cGUoW2hhc2h0YWJsZV0pXQ0KICAgIFtDbWRsZXRCaW5kaW5nKCldDQogICAgcGFyYW0NCiAgICAoDQogICAgKQ0KDQogICAgJHJlYXNvbkxpc3QgPSBAKCkNCg0KICAgIGlmICgkRW5zdXJlIC1lcSAnUHJlc2VudCcgLWFuZCAtbm90ICRzdWNjZXNzZnVsVGVzdHMpDQogICAgew0KICAgICAgICAkcmVhc29uTGlzdCArPSBAew0KICAgICAgICAgICAgQ29kZSAgID0gJ8O+bmFtZcO+OsO+bmFtZcO+OlNvbWV0aGluZ0F3ZnVsSGFwcGVuZWQnDQogICAgICAgICAgICBQaHJhc2UgPSAiRXh0ZW5kIHRoZSByZWFzb25MaXN0IHdpdGggYWxsIGVycm9ycyINCiAgICAgICAgfQ0KICAgIH0NCiAgIA0KICAgIHJldHVybiBAew0KICAgICAgICBSZWFzb25zICAgICAgICAgPSAkcmVhc29uTGlzdA0KICAgIH0NCn0NCg0KZnVuY3Rpb24gU2V0LVJlc291cmNlDQp7DQogICAgW0NtZGxldEJpbmRpbmcoKV0NCiAgICBwYXJhbQ0KICAgICgNCiAgICApDQoNCn0NCg0KZnVuY3Rpb24gVGVzdC1SZXNvdXJjZQ0Kew0KICAgIFtPdXRwdXRUeXBlKFtib29sXSldDQogICAgW0NtZGxldEJpbmRpbmcoKV0NCiAgICBwYXJhbQ0KICAgICgNCg0KICAgICkNCiAgICANCiAgICByZXR1cm4gJHRydWUNCn0NCiAgICAgIA0KW0RzY1Jlc291cmNlKCldDQpjbGFzcyDDvm5hbWXDvg0Kew0KICAgIFtEc2NQcm9wZXJ0eShLZXkpXSBbc3RyaW5nXSAkWW91cktleVByb3BlcnR5DQogICAgW0RzY1Byb3BlcnR5KE1hbmRhdG9yeSldIFtzdHJpbmddICRZb3VyUmVxdWlyZWRQcm9wZXJ0eQ0KICAgIFtEc2NQcm9wZXJ0eSgpXSBbc3RyaW5nW11dICRZb3VyU3RhbmRhcmRQcm9wZXJ0eQ0KICAgIFtEc2NQcm9wZXJ0eSgpXSBbRW5zdXJlXSAkRW5zdXJlICMgVXN1YWxseSBhIGdvb2QgaWRlYSB0byBpbmNsdWRlDQogICAgW0RzY1Byb3BlcnR5KE5vdENvbmZpZ3VyYWJsZSldIFtSZWFzb25bXV0gJFJlYXNvbnMgIyBSZXNlcnZlZCBmb3IgQXp1cmUgR3Vlc3QgQ29uZmlndXJhdGlvbg0KICAgDQogICAgw75uYW1lw74gKCkNCiAgICB7DQogICAgICAgICR0aGlzLkVuc3VyZSA9ICdQcmVzZW50JyAjIFNldCB1cCBkZWZhdWx0cw0KICAgIH0NCg0KICAgIFvDvm5hbWXDvl0gR2V0KCkNCiAgICB7DQogICAgICAgICRwYXJhbWV0ZXIgPSAkdGhpcy5HZXRDb25maWd1cmFibGVEc2NQcm9wZXJ0aWVzKCkNCiAgICAgICAgcmV0dXJuIChHZXQtUmVzb3VyY2UgQHBhcmFtZXRlcikgICAgICAgIA0KICAgIH0NCg0KICAgIFt2b2lkXSBTZXQoKQ0KICAgIHsNCiAgICAgICAgJHBhcmFtZXRlciA9ICR0aGlzLkdldENvbmZpZ3VyYWJsZURzY1Byb3BlcnRpZXMoKQ0KICAgICAgICBTZXQtUmVzb3VyY2UgQHBhcmFtZXRlciAgICAgICAgDQogICAgfQ0KDQogICAgW2Jvb2xdIFRlc3QoKQ0KICAgIHsNCiAgICAgICAgJHBhcmFtZXRlciA9ICR0aGlzLkdldENvbmZpZ3VyYWJsZURzY1Byb3BlcnRpZXMoKQ0KICAgICAgICByZXR1cm4gKFRlc3QtUmVzb3VyY2UgQHBhcmFtZXRlcikNCiAgICB9DQoNCiAgICBbSGFzaHRhYmxlXSBHZXRDb25maWd1cmFibGVEc2NQcm9wZXJ0aWVzKCkNCiAgICB7DQogICAgICAgICMgVGhpcyBtZXRob2QgcmV0dXJucyBhIGhhc2h0YWJsZSBvZiBwcm9wZXJ0aWVzIHdpdGggdHdvIHNwZWNpYWwgd29ya2Fyb3VuZHMNCiAgICAgICAgIyBUaGUgaGFzaHRhYmxlIHdpbGwgbm90IGluY2x1ZGUgYW55IHByb3BlcnRpZXMgbWFya2VkIGFzICJOb3RDb25maWd1cmFibGUiDQogICAgICAgICMgQW55IHByb3BlcnRpZXMgd2l0aCBhIFZhbGlkYXRlU2V0IG9mICJUcnVlIiwiRmFsc2UiIHdpbGwgYmVjb252ZXJ0ZWQgdG8gQm9vbGVhbiB0eXBlDQogICAgICAgICMgVGhlIGludGVudCBpcyB0byBzaW1wbGlmeSBzcGxhdHRpbmcgdG8gZnVuY3Rpb25zDQogICAgICAgICMgU291cmNlOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9tZ3JlZW5lZ2l0L2UzYTliNGUxMzZmYzJkNTEwY2Y4N2UyMDM5MGRhYTQ0DQogICAgICAgICREc2NQcm9wZXJ0aWVzID0gQHt9DQogICAgICAgIGZvcmVhY2ggKCRwcm9wZXJ0eSBpbiBbw75uYW1lw75dLkdldFByb3BlcnRpZXMoKS5OYW1lKQ0KICAgICAgICB7DQogICAgICAgICAgICAjIENoZWNrcyBpZiAiTm90Q29uZmlndXJhYmxlIiBhdHRyaWJ1dGUgaXMgc2V0DQogICAgICAgICAgICAkbm90Q29uZmlndXJhYmxlID0gW8O+bmFtZcO+XS5HZXRQcm9wZXJ0eSgkcHJvcGVydHkpLkdldEN1c3RvbUF0dHJpYnV0ZXMoJGZhbHNlKS5XaGVyZSh7ICRfIC1pcyBbU3lzdGVtLk1hbmFnZW1lbnQuQXV0b21hdGlvbi5Ec2NQcm9wZXJ0eUF0dHJpYnV0ZV0gfSkuTm90Q29uZmlndXJhYmxlDQogICAgICAgICAgICBpZiAoISRub3RDb25maWd1cmFibGUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgJHZhbHVlID0gJHRoaXMuJHByb3BlcnR5DQogICAgICAgICAgICAgICAgIyBHZXRzIHRoZSBsaXN0IG9mIHZhbGlkIHZhbHVlcyBmcm9tIHRoZSBWYWxpZGF0ZVNldCBhdHRyaWJ1dGUNCiAgICAgICAgICAgICAgICAkdmFsaWRhdGVTZXQgPSBbw75uYW1lw75dLkdldFByb3BlcnR5KCRwcm9wZXJ0eSkuR2V0Q3VzdG9tQXR0cmlidXRlcygkZmFsc2UpLldoZXJlKHsgJF8gLWlzIFtTeXN0ZW0uTWFuYWdlbWVudC5BdXRvbWF0aW9uLlZhbGlkYXRlU2V0QXR0cmlidXRlXSB9KS5WYWxpZFZhbHVlcw0KICAgICAgICAgICAgICAgIGlmICgkdmFsaWRhdGVTZXQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAjIFdvcmthcm91bmQgZm9yIGJvb2xlYW4gdHlwZXMNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAoQ29tcGFyZS1PYmplY3QgQCgnVHJ1ZScsICdGYWxzZScpICR2YWxpZGF0ZVNldCkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZSA9IFtTeXN0ZW0uQ29udmVydF06OlRvQm9vbGVhbigkdGhpcy4kcHJvcGVydHkpDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgIyBBZGQgcHJvcGVydHkgdG8gbmV3DQogICAgICAgICAgICAgICAgJERzY1Byb3BlcnRpZXMuYWRkKCRwcm9wZXJ0eSwgJHZhbHVlKQ0KICAgICAgICAgICAgfSANCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gJERzY1Byb3BlcnRpZXMNCiAgICB9DQp9DQoBCQQAAAAJBQAAAAYGAAAADcO+bmFtZcO+LnBzbTEGBwAAAA3Dvm5hbWXDvi5wc20xBggAAAACw74JCQAAAAkKAAAABAQAAAB/U3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXQMAAAAGX2l0ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgJCwAAAAEAAAABAAAAAQUAAAAEAAAACQwAAAAAAAAAAAAAAAEJAAAABAAAAAkNAAAAAQAAAAEAAAABCgAAAAQAAAAJDAAAAAAAAAAAAAAAEQsAAAAEAAAABg8AAAAEbmFtZQ0DEQwAAAAAAAAAEQ0AAAAEAAAABhAAAAAEbmFtZQ0DCw==</BA>
            </MS>
          </Obj>
        </LST>
      </Obj>
      <I32 N="Generation">1</I32>
    </Props>
    <MS>
      <BA N="SerializationData">AAEAAAD/////AQAAAAAAAAAMAgAAAEpQU01vZHVsZURldmVsb3BtZW50LCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJVBTTW9kdWxlRGV2ZWxvcG1lbnQuVGVtcGxhdGUuVGVtcGxhdGUMAAAABE5hbWUEVHlwZQdWZXJzaW9uC0Rlc2NyaXB0aW9uBkF1dGhvcglDcmVhdGVkT24EVGFncwpQYXJhbWV0ZXJzB1NjcmlwdHMLUGFyYW1ldGVyczIIQ2hpbGRyZW4KR2VuZXJhdGlvbgEEAwEBAAMDAwMDAClQU01vZHVsZURldmVsb3BtZW50LlRlbXBsYXRlLlRlbXBsYXRlVHlwZQIAAAAOU3lzdGVtLlZlcnNpb24Nf1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV1/U3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXYACU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuRGljdGlvbmFyeWAyW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldLFtQU01vZHVsZURldmVsb3BtZW50LlRlbXBsYXRlLlBhcmFtZXRlclNjcmlwdCwgUFNNb2R1bGVEZXZlbG9wbWVudCwgVmVyc2lvbj0yLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXYgCU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuRGljdGlvbmFyeWAyW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldLFtQU01vZHVsZURldmVsb3BtZW50LlRlbXBsYXRlLlBhcmFtZXRlci5QYXJhbWV0ZXJCYXNlLCBQU01vZHVsZURldmVsb3BtZW50LCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dngFTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1BTTW9kdWxlRGV2ZWxvcG1lbnQuVGVtcGxhdGUuVGVtcGxhdGVJdGVtQmFzZSwgUFNNb2R1bGVEZXZlbG9wbWVudCwgVmVyc2lvbj0yLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXQgCAAAABgMAAAAIZHNjY2xhc3MF/P///ylQU01vZHVsZURldmVsb3BtZW50LlRlbXBsYXRlLlRlbXBsYXRlVHlwZQEAAAAHdmFsdWVfXwAIAgAAAAEAAAAJBQAAAAYGAAAAUkJhc2ljIGNsYXNzLWJhc2VkIERTQyByZXNvdXJjZSB0ZW1wbGF0ZSB3aXRoIHN1cHBvcnQgZm9yIEF6dXJlIEd1ZXN0IENvbmZpZ3VyYXRpb24GBwAAABJKYW4tSGVuZHJpayBQZXRlcnMAALm1lDXciAkIAAAACQkAAAAJCgAAAAkLAAAACQwAAAABAAAABAUAAAAOU3lzdGVtLlZlcnNpb24EAAAABl9NYWpvcgZfTWlub3IGX0J1aWxkCV9SZXZpc2lvbgAAAAAICAgIAQAAAAAAAAAAAAAAAAAAAAQIAAAAf1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgYAAAgICQ0AAAABAAAAAAAAAAEJAAAACAAAAAkOAAAABAAAAAQAAAAECgAAAIACU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuRGljdGlvbmFyeWAyW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldLFtQU01vZHVsZURldmVsb3BtZW50LlRlbXBsYXRlLlBhcmFtZXRlclNjcmlwdCwgUFNNb2R1bGVEZXZlbG9wbWVudCwgVmVyc2lvbj0yLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXQQAAAAHVmVyc2lvbghDb21wYXJlcghIYXNoU2l6ZQ1LZXlWYWx1ZVBhaXJzAAMAAwgWU3lzdGVtLk9yZGluYWxDb21wYXJlcgiEAlN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLktleVZhbHVlUGFpcmAyW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldLFtQU01vZHVsZURldmVsb3BtZW50LlRlbXBsYXRlLlBhcmFtZXRlclNjcmlwdCwgUFNNb2R1bGVEZXZlbG9wbWVudCwgVmVyc2lvbj0yLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXVtdAgAAAAkPAAAAAwAAAAkQAAAABAsAAACIAlN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkRpY3Rpb25hcnlgMltbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XSxbUFNNb2R1bGVEZXZlbG9wbWVudC5UZW1wbGF0ZS5QYXJhbWV0ZXIuUGFyYW1ldGVyQmFzZSwgUFNNb2R1bGVEZXZlbG9wbWVudCwgVmVyc2lvbj0yLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXQMAAAAHVmVyc2lvbghDb21wYXJlcghIYXNoU2l6ZQADAAgWU3lzdGVtLk9yZGluYWxDb21wYXJlcggAAAAACQ8AAAAAAAAABAwAAACeAVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbUFNNb2R1bGVEZXZlbG9wbWVudC5UZW1wbGF0ZS5UZW1wbGF0ZUl0ZW1CYXNlLCBQU01vZHVsZURldmVsb3BtZW50LCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAvUFNNb2R1bGVEZXZlbG9wbWVudC5UZW1wbGF0ZS5UZW1wbGF0ZUl0ZW1CYXNlW10CAAAACAgJEgAAAAIAAAACAAAAEQ0AAAABAAAABhMAAAALZHNjcmVzb3VyY2URDgAAAAQAAAAGFAAAAARuYW1lBhUAAAAGYXV0aG9yBhYAAAAHY29tcGFueQYXAAAAC2Rlc2NyaXB0aW9uBA8AAAAWU3lzdGVtLk9yZGluYWxDb21wYXJlcgEAAAALX2lnbm9yZUNhc2UAAQEHEAAAAAABAAAAAgAAAAOCAlN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLktleVZhbHVlUGFpcmAyW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldLFtQU01vZHVsZURldmVsb3BtZW50LlRlbXBsYXRlLlBhcmFtZXRlclNjcmlwdCwgUFNNb2R1bGVEZXZlbG9wbWVudCwgVmVyc2lvbj0yLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXQTo////ggJTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5LZXlWYWx1ZVBhaXJgMltbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XSxbUFNNb2R1bGVEZXZlbG9wbWVudC5UZW1wbGF0ZS5QYXJhbWV0ZXJTY3JpcHQsIFBTTW9kdWxlRGV2ZWxvcG1lbnQsIFZlcnNpb249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0CAAAAA2tleQV2YWx1ZQEELFBTTW9kdWxlRGV2ZWxvcG1lbnQuVGVtcGxhdGUuUGFyYW1ldGVyU2NyaXB0AgAAAAYZAAAABGd1aWQJGgAAAAHl////6P///wYcAAAABHllYXIJHQAAAAcSAAAAAAEAAAAEAAAABC1QU01vZHVsZURldmVsb3BtZW50LlRlbXBsYXRlLlRlbXBsYXRlSXRlbUJhc2UCAAAACR4AAAAJHwAAAA0CDCAAAABfU3lzdGVtLk1hbmFnZW1lbnQuQXV0b21hdGlvbiwgVmVyc2lvbj0zLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTMxYmYzODU2YWQzNjRlMzUFGgAAACxQU01vZHVsZURldmVsb3BtZW50LlRlbXBsYXRlLlBhcmFtZXRlclNjcmlwdAIAAAAETmFtZQtTY3JpcHRCbG9jawEEO1N5c3RlbS5NYW5hZ2VtZW50LkF1dG9tYXRpb24uU2NyaXB0QmxvY2tTZXJpYWxpemF0aW9uSGVscGVyIAAAAAIAAAAJGQAAAAkiAAAAAR0AAAAaAAAACRwAAAAJJAAAAAUeAAAALVBTTW9kdWxlRGV2ZWxvcG1lbnQuVGVtcGxhdGUuVGVtcGxhdGVJdGVtRmlsZQkAAAAFVmFsdWUJUGxhaW5UZXh0FENvbnRlbnRQYXJhbWV0ZXJGbGF0FkNvbnRlbnRQYXJhbWV0ZXJTY3JpcHQETmFtZQxSZWxhdGl2ZVBhdGgKSWRlbnRpZmllchdGaWxlU3lzdGVtUGFyYW1ldGVyRmxhdBlGaWxlU3lzdGVtUGFyYW1ldGVyU2NyaXB0AQADAwEBAQMDAX9TeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1N5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV1df1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV1/U3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXX9TeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1N5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV1dAgAAAAYlAAAAlxJAew0KCSMgU2NyaXB0IG1vZHVsZSBvciBiaW5hcnkgbW9kdWxlIGZpbGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbWFuaWZlc3QNCglSb290TW9kdWxlID0gJ8O+bmFtZcO+LnBzbTEnDQoJDQoJIyBWZXJzaW9uIG51bWJlciBvZiB0aGlzIG1vZHVsZS4NCglNb2R1bGVWZXJzaW9uID0gJzEuMC4wJw0KCQ0KCSMgSUQgdXNlZCB0byB1bmlxdWVseSBpZGVudGlmeSB0aGlzIG1vZHVsZQ0KCUdVSUQgPSAnw74hZ3VpZCHDvicNCgkNCgkjIEF1dGhvciBvZiB0aGlzIG1vZHVsZQ0KCUF1dGhvciA9ICfDvmF1dGhvcsO+Jw0KCQ0KCSMgQ29tcGFueSBvciB2ZW5kb3Igb2YgdGhpcyBtb2R1bGUNCglDb21wYW55TmFtZSA9ICfDvmNvbXBhbnnDvicNCgkNCgkjIENvcHlyaWdodCBzdGF0ZW1lbnQgZm9yIHRoaXMgbW9kdWxlDQoJQ29weXJpZ2h0ID0gJ0NvcHlyaWdodCAoYykgw74heWVhciHDviDDvmF1dGhvcsO+Jw0KCQ0KCSMgRGVzY3JpcHRpb24gb2YgdGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgYnkgdGhpcyBtb2R1bGUNCglEZXNjcmlwdGlvbiA9ICfDvmRlc2NyaXB0aW9uw74nDQoJDQoJIyBNaW5pbXVtIHZlcnNpb24gb2YgdGhlIFdpbmRvd3MgUG93ZXJTaGVsbCBlbmdpbmUgcmVxdWlyZWQgYnkgdGhpcyBtb2R1bGUNCglQb3dlclNoZWxsVmVyc2lvbiA9ICc1LjAnDQoJDQoJIyBNb2R1bGVzIHRoYXQgbXVzdCBiZSBpbXBvcnRlZCBpbnRvIHRoZSBnbG9iYWwgZW52aXJvbm1lbnQgcHJpb3IgdG8gaW1wb3J0aW5nDQoJIyB0aGlzIG1vZHVsZQ0KCSMgUmVxdWlyZWRNb2R1bGVzID0gQCgpDQoJDQoJIyBBc3NlbWJsaWVzIHRoYXQgbXVzdCBiZSBsb2FkZWQgcHJpb3IgdG8gaW1wb3J0aW5nIHRoaXMgbW9kdWxlDQoJIyBSZXF1aXJlZEFzc2VtYmxpZXMgPSBAKCdiaW5cw75uYW1lw74uZGxsJykNCgkNCgkjIFR5cGUgZmlsZXMgKC5wczF4bWwpIHRvIGJlIGxvYWRlZCB3aGVuIGltcG9ydGluZyB0aGlzIG1vZHVsZQ0KCSMgVHlwZXNUb1Byb2Nlc3MgPSBAKCd4bWxcw75uYW1lw74uVHlwZXMucHMxeG1sJykNCgkNCgkjIEZvcm1hdCBmaWxlcyAoLnBzMXhtbCkgdG8gYmUgbG9hZGVkIHdoZW4gaW1wb3J0aW5nIHRoaXMgbW9kdWxlDQoJIyBGb3JtYXRzVG9Qcm9jZXNzID0gQCgneG1sXMO+bmFtZcO+LkZvcm1hdC5wczF4bWwnKQ0KCQ0KCSMgRnVuY3Rpb25zIHRvIGV4cG9ydCBmcm9tIHRoaXMgbW9kdWxlDQoJRnVuY3Rpb25zVG9FeHBvcnQgPSAnJw0KCQ0KCSMgQ21kbGV0cyB0byBleHBvcnQgZnJvbSB0aGlzIG1vZHVsZQ0KCSMgQ21kbGV0c1RvRXhwb3J0ID0gJycNCgkNCgkjIFZhcmlhYmxlcyB0byBleHBvcnQgZnJvbSB0aGlzIG1vZHVsZQ0KCSMgVmFyaWFibGVzVG9FeHBvcnQgPSAnJw0KCQ0KCSMgQWxpYXNlcyB0byBleHBvcnQgZnJvbSB0aGlzIG1vZHVsZQ0KCSMgQWxpYXNlc1RvRXhwb3J0ID0gJycNCg0KCURzY1Jlc291cmNlc1RvRXhwb3J0ID0gQCgNCgkJJ8O+bmFtZcO+Jw0KCSkNCgkNCgkjIExpc3Qgb2YgYWxsIG1vZHVsZXMgcGFja2FnZWQgd2l0aCB0aGlzIG1vZHVsZQ0KCU1vZHVsZUxpc3QgPSBAKCkNCgkNCgkjIExpc3Qgb2YgYWxsIGZpbGVzIHBhY2thZ2VkIHdpdGggdGhpcyBtb2R1bGUNCglGaWxlTGlzdCA9IEAoKQ0KCQ0KCSMgUHJpdmF0ZSBkYXRhIHRvIHBhc3MgdG8gdGhlIG1vZHVsZSBzcGVjaWZpZWQgaW4gTW9kdWxlVG9Qcm9jZXNzLiBUaGlzIG1heSBhbHNvIGNvbnRhaW4gYSBQU0RhdGEgaGFzaHRhYmxlIHdpdGggYWRkaXRpb25hbCBtb2R1bGUgbWV0YWRhdGEgdXNlZCBieSBQb3dlclNoZWxsLg0KCVByaXZhdGVEYXRhID0gQHsNCgkJDQoJCSNTdXBwb3J0IGZvciBQb3dlclNoZWxsR2V0IGdhbGxlcmllcy4NCgkJUFNEYXRhID0gQHsNCgkJCQ0KCQkJIyBUYWdzIGFwcGxpZWQgdG8gdGhpcyBtb2R1bGUuIFRoZXNlIGhlbHAgd2l0aCBtb2R1bGUgZGlzY292ZXJ5IGluIG9ubGluZSBnYWxsZXJpZXMuDQoJCQkjIFRhZ3MgPSBAKCkNCgkJCQ0KCQkJIyBBIFVSTCB0byB0aGUgbGljZW5zZSBmb3IgdGhpcyBtb2R1bGUuDQoJCQkjIExpY2Vuc2VVcmkgPSAnJw0KCQkJDQoJCQkjIEEgVVJMIHRvIHRoZSBtYWluIHdlYnNpdGUgZm9yIHRoaXMgcHJvamVjdC4NCgkJCSMgUHJvamVjdFVyaSA9ICcnDQoJCQkNCgkJCSMgQSBVUkwgdG8gYW4gaWNvbiByZXByZXNlbnRpbmcgdGhpcyBtb2R1bGUuDQoJCQkjIEljb25VcmkgPSAnJw0KCQkJDQoJCQkjIFJlbGVhc2VOb3RlcyBvZiB0aGlzIG1vZHVsZQ0KCQkJIyBSZWxlYXNlTm90ZXMgPSAnJw0KCQkJDQoJCX0gIyBFbmQgb2YgUFNEYXRhIGhhc2h0YWJsZQ0KCQkNCgl9ICMgRW5kIG9mIFByaXZhdGVEYXRhIGhhc2h0YWJsZQ0KfQEJJgAAAAknAAAABigAAAANw75uYW1lw74ucHNkMQYpAAAADcO+bmFtZcO+LnBzZDEGKgAAAALDvgkrAAAACSwAAAABHwAAAB4AAAAGLQAAANkaZW51bSBFbnN1cmUNCnsNCiAgICBQcmVzZW50DQogICAgQWJzZW50DQp9DQogICAgICANCiMgU3VwcG9ydCBmb3IgRFNDIHYzLCBvciBBenVyZSBHdWVzdCBDb25maWd1cmF0aW9uDQpjbGFzcyBSZWFzb24NCnsNCiAgICBbRHNjUHJvcGVydHkoKV0NCiAgICBbc3RyaW5nXSAkQ29kZQ0KICAgICAgICANCiAgICBbRHNjUHJvcGVydHkoKV0NCiAgICBbc3RyaW5nXSAkUGhyYXNlDQp9DQoNCmZ1bmN0aW9uIEdldC1SZXNvdXJjZQ0Kew0KICAgIFtPdXRwdXRUeXBlKFtoYXNodGFibGVdKV0NCiAgICBbQ21kbGV0QmluZGluZygpXQ0KICAgIHBhcmFtDQogICAgKA0KICAgICkNCg0KICAgICRyZWFzb25MaXN0ID0gQCgpDQoNCiAgICBpZiAoJEVuc3VyZSAtZXEgJ1ByZXNlbnQnIC1hbmQgLW5vdCAkc3VjY2Vzc2Z1bFRlc3RzKQ0KICAgIHsNCiAgICAgICAgJHJlYXNvbkxpc3QgKz0gQHsNCiAgICAgICAgICAgIENvZGUgICA9ICfDvm5hbWXDvjrDvm5hbWXDvjpTb21ldGhpbmdBd2Z1bEhhcHBlbmVkJw0KICAgICAgICAgICAgUGhyYXNlID0gIkV4dGVuZCB0aGUgcmVhc29uTGlzdCB3aXRoIGFsbCBlcnJvcnMiDQogICAgICAgIH0NCiAgICB9DQogICANCiAgICByZXR1cm4gQHsNCiAgICAgICAgUmVhc29ucyAgICAgICAgID0gJHJlYXNvbkxpc3QNCiAgICB9DQp9DQoNCmZ1bmN0aW9uIFNldC1SZXNvdXJjZQ0Kew0KICAgIFtDbWRsZXRCaW5kaW5nKCldDQogICAgcGFyYW0NCiAgICAoDQogICAgKQ0KDQp9DQoNCmZ1bmN0aW9uIFRlc3QtUmVzb3VyY2UNCnsNCiAgICBbT3V0cHV0VHlwZShbYm9vbF0pXQ0KICAgIFtDbWRsZXRCaW5kaW5nKCldDQogICAgcGFyYW0NCiAgICAoDQoNCiAgICApDQogICAgDQogICAgcmV0dXJuICR0cnVlDQp9DQogICAgICANCltEc2NSZXNvdXJjZSgpXQ0KY2xhc3Mgw75uYW1lw74NCnsNCiAgICBbRHNjUHJvcGVydHkoS2V5KV0gW3N0cmluZ10gJFlvdXJLZXlQcm9wZXJ0eQ0KICAgIFtEc2NQcm9wZXJ0eShNYW5kYXRvcnkpXSBbc3RyaW5nXSAkWW91clJlcXVpcmVkUHJvcGVydHkNCiAgICBbRHNjUHJvcGVydHkoKV0gW3N0cmluZ1tdXSAkWW91clN0YW5kYXJkUHJvcGVydHkNCiAgICBbRHNjUHJvcGVydHkoKV0gW0Vuc3VyZV0gJEVuc3VyZSAjIFVzdWFsbHkgYSBnb29kIGlkZWEgdG8gaW5jbHVkZQ0KICAgIFtEc2NQcm9wZXJ0eShOb3RDb25maWd1cmFibGUpXSBbUmVhc29uW11dICRSZWFzb25zICMgUmVzZXJ2ZWQgZm9yIEF6dXJlIEd1ZXN0IENvbmZpZ3VyYXRpb24NCiAgIA0KICAgIMO+bmFtZcO+ICgpDQogICAgew0KICAgICAgICAkdGhpcy5FbnN1cmUgPSAnUHJlc2VudCcgIyBTZXQgdXAgZGVmYXVsdHMNCiAgICB9DQoNCiAgICBbw75uYW1lw75dIEdldCgpDQogICAgew0KICAgICAgICAkcGFyYW1ldGVyID0gJHRoaXMuR2V0Q29uZmlndXJhYmxlRHNjUHJvcGVydGllcygpDQogICAgICAgIHJldHVybiAoR2V0LVJlc291cmNlIEBwYXJhbWV0ZXIpICAgICAgICANCiAgICB9DQoNCiAgICBbdm9pZF0gU2V0KCkNCiAgICB7DQogICAgICAgICRwYXJhbWV0ZXIgPSAkdGhpcy5HZXRDb25maWd1cmFibGVEc2NQcm9wZXJ0aWVzKCkNCiAgICAgICAgU2V0LVJlc291cmNlIEBwYXJhbWV0ZXIgICAgICAgIA0KICAgIH0NCg0KICAgIFtib29sXSBUZXN0KCkNCiAgICB7DQogICAgICAgICRwYXJhbWV0ZXIgPSAkdGhpcy5HZXRDb25maWd1cmFibGVEc2NQcm9wZXJ0aWVzKCkNCiAgICAgICAgcmV0dXJuIChUZXN0LVJlc291cmNlIEBwYXJhbWV0ZXIpDQogICAgfQ0KDQogICAgW0hhc2h0YWJsZV0gR2V0Q29uZmlndXJhYmxlRHNjUHJvcGVydGllcygpDQogICAgew0KICAgICAgICAjIFRoaXMgbWV0aG9kIHJldHVybnMgYSBoYXNodGFibGUgb2YgcHJvcGVydGllcyB3aXRoIHR3byBzcGVjaWFsIHdvcmthcm91bmRzDQogICAgICAgICMgVGhlIGhhc2h0YWJsZSB3aWxsIG5vdCBpbmNsdWRlIGFueSBwcm9wZXJ0aWVzIG1hcmtlZCBhcyAiTm90Q29uZmlndXJhYmxlIg0KICAgICAgICAjIEFueSBwcm9wZXJ0aWVzIHdpdGggYSBWYWxpZGF0ZVNldCBvZiAiVHJ1ZSIsIkZhbHNlIiB3aWxsIGJlY29udmVydGVkIHRvIEJvb2xlYW4gdHlwZQ0KICAgICAgICAjIFRoZSBpbnRlbnQgaXMgdG8gc2ltcGxpZnkgc3BsYXR0aW5nIHRvIGZ1bmN0aW9ucw0KICAgICAgICAjIFNvdXJjZTogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vbWdyZWVuZWdpdC9lM2E5YjRlMTM2ZmMyZDUxMGNmODdlMjAzOTBkYWE0NA0KICAgICAgICAkRHNjUHJvcGVydGllcyA9IEB7fQ0KICAgICAgICBmb3JlYWNoICgkcHJvcGVydHkgaW4gW8O+bmFtZcO+XS5HZXRQcm9wZXJ0aWVzKCkuTmFtZSkNCiAgICAgICAgew0KICAgICAgICAgICAgIyBDaGVja3MgaWYgIk5vdENvbmZpZ3VyYWJsZSIgYXR0cmlidXRlIGlzIHNldA0KICAgICAgICAgICAgJG5vdENvbmZpZ3VyYWJsZSA9IFvDvm5hbWXDvl0uR2V0UHJvcGVydHkoJHByb3BlcnR5KS5HZXRDdXN0b21BdHRyaWJ1dGVzKCRmYWxzZSkuV2hlcmUoeyAkXyAtaXMgW1N5c3RlbS5NYW5hZ2VtZW50LkF1dG9tYXRpb24uRHNjUHJvcGVydHlBdHRyaWJ1dGVdIH0pLk5vdENvbmZpZ3VyYWJsZQ0KICAgICAgICAgICAgaWYgKCEkbm90Q29uZmlndXJhYmxlKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICR2YWx1ZSA9ICR0aGlzLiRwcm9wZXJ0eQ0KICAgICAgICAgICAgICAgICMgR2V0cyB0aGUgbGlzdCBvZiB2YWxpZCB2YWx1ZXMgZnJvbSB0aGUgVmFsaWRhdGVTZXQgYXR0cmlidXRlDQogICAgICAgICAgICAgICAgJHZhbGlkYXRlU2V0ID0gW8O+bmFtZcO+XS5HZXRQcm9wZXJ0eSgkcHJvcGVydHkpLkdldEN1c3RvbUF0dHJpYnV0ZXMoJGZhbHNlKS5XaGVyZSh7ICRfIC1pcyBbU3lzdGVtLk1hbmFnZW1lbnQuQXV0b21hdGlvbi5WYWxpZGF0ZVNldEF0dHJpYnV0ZV0gfSkuVmFsaWRWYWx1ZXMNCiAgICAgICAgICAgICAgICBpZiAoJHZhbGlkYXRlU2V0KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgIyBXb3JrYXJvdW5kIGZvciBib29sZWFuIHR5cGVzDQogICAgICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgKENvbXBhcmUtT2JqZWN0IEAoJ1RydWUnLCAnRmFsc2UnKSAkdmFsaWRhdGVTZXQpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkdmFsdWUgPSBbU3lzdGVtLkNvbnZlcnRdOjpUb0Jvb2xlYW4oJHRoaXMuJHByb3BlcnR5KQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICMgQWRkIHByb3BlcnR5IHRvIG5ldw0KICAgICAgICAgICAgICAgICREc2NQcm9wZXJ0aWVzLmFkZCgkcHJvcGVydHksICR2YWx1ZSkNCiAgICAgICAgICAgIH0gDQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuICREc2NQcm9wZXJ0aWVzDQogICAgfQ0KfQ0KAQkuAAAACS8AAAAGMAAAAA3Dvm5hbWXDvi5wc20xBjEAAAANw75uYW1lw74ucHNtMQkqAAAACTMAAAAJNAAAAAUiAAAAO1N5c3RlbS5NYW5hZ2VtZW50LkF1dG9tYXRpb24uU2NyaXB0QmxvY2tTZXJpYWxpemF0aW9uSGVscGVyAQAAAApTY3JpcHRUZXh0ASAAAAAGNQAAACwNCgkJCVtTeXN0ZW0uR3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmluZygpDQoJCQEkAAAAIgAAAAY2AAAAIA0KCQkJR2V0LURhdGUgLUZvcm1hdCAieXl5eSINCgkJASYAAAAIAAAACTcAAAAEAAAABAAAAAEnAAAACAAAAAk4AAAAAgAAAAIAAAABKwAAAAgAAAAJOQAAAAEAAAABAAAAASwAAAAIAAAACToAAAAAAAAAAAAAAAEuAAAACAAAAAk7AAAAAQAAAAEAAAABLwAAAAgAAAAJOgAAAAAAAAAAAAAAATMAAAAIAAAACT0AAAABAAAAAQAAAAE0AAAACAAAAAk6AAAAAAAAAAAAAAARNwAAAAQAAAAGPwAAAARuYW1lBkAAAAAGYXV0aG9yBkEAAAAHY29tcGFueQZCAAAAC2Rlc2NyaXB0aW9uETgAAAAEAAAABkMAAAAEZ3VpZAZEAAAABHllYXINAhE5AAAABAAAAAZFAAAABG5hbWUNAxE6AAAAAAAAABE7AAAABAAAAAZGAAAABG5hbWUNAxE9AAAABAAAAAZHAAAABG5hbWUNAws=</BA>
    </MS>
  </Obj>
</Objs>