<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>143084</bug_id>
          
          <creation_ts>2015-03-25 23:14:27 -0700</creation_ts>
          <short_desc>Support building WTF on Windows without Cygwin</short_desc>
          <delta_ts>2015-03-27 16:09:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1080217</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-03-25 23:14:27 -0700</bug_when>
    <thetext>Support building WTF on Windows without Cygwin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080218</commentid>
    <comment_count>1</comment_count>
      <attachid>249476</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-03-25 23:16:33 -0700</bug_when>
    <thetext>Created attachment 249476
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080225</commentid>
    <comment_count>2</comment_count>
      <attachid>249476</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-03-25 23:49:03 -0700</bug_when>
    <thetext>Comment on attachment 249476
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=249476&amp;action=review

This looks really good. I want to see these various paths changed to use File::Spec so we can avoid problems flipping between UNIX and Windows path styles.

&gt; Source/WTF/WTF.vcxproj/WTFGenerated.make:2
&gt; +    type NUL &gt; &quot;%ConfigurationBuildDir%\buildfailed&quot;

Please precede the line with &apos;@&apos; so we don&apos;t get output in the build log.

&gt; Tools/Scripts/update-webkit-support-libs:-47
&gt; -my $zipDirectory = toUnixPath($ENV{&apos;WEBKITSUPPORTLIBRARIESZIPDIR&apos;}) || $sourceDir;

We should use File::Spec on these paths so that they are Unix-y on Unix, windows on windows, and cygwin-y on cygwin.

We should make that same change elsewhere, too.

&gt; Tools/Scripts/update-webkit-support-libs:52
&gt; +my $webkitLibrariesDir = $ENV{&apos;WEBKIT_LIBRARIES&apos;} || &quot;$sourceDir/WebKitLibraries/win&quot;;

Ditto. We should have something like:

File::

&gt; Tools/Scripts/update-webkit-support-libs:53
&gt;  my $versionFile = $file . &quot;Version&quot;;

... File::Spec-&gt;catdir($source, &apos;WebKitLibraries&apos;, &apos;win&apos;).

Sorry for the bad formatting, I&apos;m doing this via iPad!

&gt; Tools/Scripts/update-webkit-support-libs:93
&gt; +    copy($_, $destination);

Nice!

&gt; Tools/Scripts/update-webkit-support-libs:121
&gt; +    chomp(my $zipFileVersion = $zip-&gt;contents(&quot;$file/win/$versionFile&quot;));

Nice! But let&apos;s switch to File::Spec.

&gt; Tools/Scripts/webkitdirs.pm:1466
&gt; +        }

This is no longer true. We should remove this warning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080226</commentid>
    <comment_count>3</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-03-25 23:52:59 -0700</bug_when>
    <thetext>EWS says it hates this patch. :)

Let me try using it on my machine tomorrow and I&apos;ll see if I using the File::Spec changed makes it happy again.

Thanks for working on this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080536</commentid>
    <comment_count>4</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-03-26 20:35:30 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; EWS says it hates this patch. :)

Wrong! EWS is the problem. It appears to be using an old support library. I&apos;ll fix that tomorrow.

I still stand behind my other suggestions, but I think the patch is fundamentally good. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080617</commentid>
    <comment_count>5</comment_count>
      <attachid>249476</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-03-27 09:34:42 -0700</bug_when>
    <thetext>Comment on attachment 249476
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=249476&amp;action=review

Overall comments

&gt;&gt; Tools/Scripts/update-webkit-support-libs:121
&gt;&gt; +    chomp(my $zipFileVersion = $zip-&gt;contents(&quot;$file/win/$versionFile&quot;));
&gt; 
&gt; Nice! But let&apos;s switch to File::Spec.

This path is actually inside the .zip file, where paths are defined to be using / instead of whatever the platform uses. Changing this to File::Spec actually breaks it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080631</commentid>
    <comment_count>6</comment_count>
      <attachid>249576</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-03-27 10:08:21 -0700</bug_when>
    <thetext>Created attachment 249576
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080634</commentid>
    <comment_count>7</comment_count>
      <attachid>249578</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-03-27 10:13:18 -0700</bug_when>
    <thetext>Created attachment 249578
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080651</commentid>
    <comment_count>8</comment_count>
      <attachid>249578</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-03-27 10:40:23 -0700</bug_when>
    <thetext>Comment on attachment 249578
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=249578&amp;action=review

&gt; Source/WTF/ChangeLog:1
&gt; +2015-03-27  S. Litherum  &lt;litherum@gmail.com&gt;

???</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080656</commentid>
    <comment_count>9</comment_count>
      <attachid>249578</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-03-27 10:46:21 -0700</bug_when>
    <thetext>Comment on attachment 249578
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=249578&amp;action=review

&gt;&gt; Source/WTF/ChangeLog:1
&gt;&gt; +2015-03-27  S. Litherum  &lt;litherum@gmail.com&gt;
&gt; 
&gt; ???

Whoops</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080736</commentid>
    <comment_count>10</comment_count>
      <attachid>249578</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-03-27 13:52:36 -0700</bug_when>
    <thetext>Comment on attachment 249578
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=249578&amp;action=review

Looks great! I think you should change the catfile-&gt;catdir when dealing with directories just to future-proof things, and to deal with cases where the shell variables are empty strings (catdir handles that properly, catfile may or may not).

&gt; Tools/Scripts/update-webkit-dependency:73
&gt; +my $webkitLibrariesDir = $ENV{&apos;WEBKIT_LIBRARIES&apos;} || File::Spec-&gt;catfile($sourceDir, &quot;WebKitLibraries&quot;, &quot;win&quot;);

Nit: This should be &quot;catdir&quot; since it&apos;s not a file. But I don&apos;t think it matters in practice.

&gt; Tools/Scripts/update-webkit-support-libs:85
&gt; +    my $relativeName = File::Spec-&gt;abs2rel($File::Find::name, File::Spec-&gt;catfile($tmpAbsDir, &quot;$file&quot;, &quot;win&quot;));

This should be catdir.

&gt; Tools/Scripts/update-webkit-support-libs:121
&gt; +    chomp(my $zipFileVersion = $zip-&gt;contents(&quot;$file/win/$versionFile&quot;));

This should be a File::Spec-&gt;catfile.

&gt; Tools/Scripts/webkitdirs.pm:147
&gt; +    until ((-d File::Spec-&gt;catfile($sourceDir, &quot;Source&quot;) &amp;&amp; -d File::Spec-&gt;catfile($sourceDir, &quot;Source&quot;, &quot;WebCore&quot;) &amp;&amp; -d File::Spec-&gt;catfile($sourceDir, &quot;Source&quot;, &quot;WebKit&quot;)) || (-d File::Spec-&gt;catfile($sourceDir, &quot;Internal&quot;) &amp;&amp; -d File::Spec-&gt;catfile($sourceDir, &quot;OpenSource&quot;)))

These should be catdir.

&gt; Tools/Scripts/webkitdirs.pm:154
&gt; +    $sourceDir = File::Spec-&gt;catfile($sourceDir, &quot;OpenSource&quot;) if -d File::Spec-&gt;catfile($sourceDir, &quot;OpenSource&quot;);

these should be catdir.

&gt; Tools/Scripts/webkitdirs.pm:1436
&gt; +    return File::Spec-&gt;catfile(windowsSourceDir(), &quot;Source&quot;);

catdir

&gt; Tools/Scripts/webkitdirs.pm:1441
&gt; +    return File::Spec-&gt;catfile(windowsSourceDir(), &quot;WebKitLibraries&quot;, &quot;win&quot;);

catdir

&gt; Tools/Scripts/webkitdirs.pm:1446
&gt; +    return File::Spec-&gt;catfile(windowsSourceDir(), &quot;WebKitBuild&quot;);

catdir

&gt; Tools/Scripts/webkitdirs.pm:-1466
&gt; -

Yay!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080743</commentid>
    <comment_count>11</comment_count>
      <attachid>249578</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-03-27 14:12:28 -0700</bug_when>
    <thetext>Comment on attachment 249578
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=249578&amp;action=review

&gt;&gt; Tools/Scripts/update-webkit-support-libs:121
&gt;&gt; +    chomp(my $zipFileVersion = $zip-&gt;contents(&quot;$file/win/$versionFile&quot;));
&gt; 
&gt; This should be a File::Spec-&gt;catfile.

See my reply to you in the previous version of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080763</commentid>
    <comment_count>12</comment_count>
      <attachid>249578</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-03-27 14:54:34 -0700</bug_when>
    <thetext>Comment on attachment 249578
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=249578&amp;action=review

&gt;&gt;&gt; Tools/Scripts/update-webkit-support-libs:121
&gt;&gt;&gt; +    chomp(my $zipFileVersion = $zip-&gt;contents(&quot;$file/win/$versionFile&quot;));
&gt;&gt; 
&gt;&gt; This should be a File::Spec-&gt;catfile.
&gt; 
&gt; See my reply to you in the previous version of this patch.

Ah! Ok. Sounds good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080795</commentid>
    <comment_count>13</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-03-27 16:09:24 -0700</bug_when>
    <thetext>https://trac.webkit.org/r182089</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249476</attachid>
            <date>2015-03-25 23:16:33 -0700</date>
            <delta_ts>2015-03-27 10:08:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143084-20150325231611.patch</filename>
            <type>text/plain</type>
            <size>7441</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZiMDU4M2Y5YTI0MmU2YzVhYzRkNTYw
ZTJlZjczYzQ3MzNhOGU4OTkuLmQ5ODMyNGEwZmExYjNjMjExYmI0MzM3ZDE1OGNlNzkxYTg4YmFk
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTUtMDMtMjUgIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGJ1aWxkaW5nIFdURiBvbiBX
aW5kb3dzIHdpdGhvdXQgQ3lnd2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDMwODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXaW5kb3dzIGRvZXNuJ3QgaGF2ZSAidG91Y2giLgorCisgICAgICAgICog
V1RGLnZjeHByb2ovV1RGR2VuZXJhdGVkLm1ha2U6CisKIDIwMTUtMDMtMjUgIEZpbGlwIFBpemxv
ICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCB3ZSBoYXZlIGVkaXRl
ZCB0aGlzIGZpbGUgaW4gMjAxNS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ov
V1RGR2VuZXJhdGVkLm1ha2UgYi9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURkdlbmVyYXRlZC5t
YWtlCmluZGV4IGQ4ZmFhYzY4NDcxN2VmNWNiODllNzkyOTI1Y2NmYzA5Y2IxMmQ3ZDUuLjRlZTAw
Njc1OThlMjZlMDcyMDBhMTllZTlkZjFiZDE1ODBhYTk1YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvV1RGLnZjeHByb2ovV1RGR2VuZXJhdGVkLm1ha2UKKysrIGIvU291cmNlL1dURi9XVEYudmN4
cHJvai9XVEZHZW5lcmF0ZWQubWFrZQpAQCAtMSw1ICsxLDUgQEAKIGFsbDogV1RGSGVhZGVyRGV0
ZWN0aW9uLmgKLSAgICBAdG91Y2ggIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGJ1aWxkZmFpbGVk
IgorICAgIHR5cGUgTlVMID4gIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGJ1aWxkZmFpbGVkIgog
ICAgIEBwZXJsIGJ1aWxkLWdlbmVyYXRlZC1maWxlcy5wbCAiJUNvbmZpZ3VyYXRpb25CdWlsZERp
ciUiICIkKFdFQktJVF9MSUJSQVJJRVMpIiAiJChERUJVR1NVRkZJWCkiICIlUGxhdGZvcm1BcmNo
aXRlY3R1cmUlIgogIUlGICIkKE9GRklDSUFMX0JVSUxEKSIhPSIxIgogICAgIC1AcHl0aG9uMi43
IHdvcmstYXJvdW5kLXZzLWRlcGVuZGVuY3ktdHJhY2tpbmctYnVncy5weQpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDliMjg0ZWIxZjhmODNhZDMy
NDE5ZTIyMDUyYTI2ZTMzMDk1NjNiMTEuLmU5NmNlMzMwNGZhOTJkYzA4YTc1MDk0Zjk4MjQ4NjMw
NGVjNzFmZWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNS0wMy0yNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4
ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgYnVpbGRpbmcgV1RGIG9uIFdpbmRv
d3Mgd2l0aG91dCBDeWd3aW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0MzA4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFdpbmRvd3Mgd2l0aG91dCBDeWd3aW4gZG9lc24ndCBoYXZlIGN1cmwsIHVuemlw
LCBvciBncmVwLiBMdWNraWx5LCBQZXJsIGRvZXMgYWxsIG9mIHRoZXNlIHRoaW5ncy4KKworICAg
ICAgICAqIFNjcmlwdHMvdXBkYXRlLXdlYmtpdC1zdXBwb3J0LWxpYnM6CisgICAgICAgICh3YW50
ZWQpOgorICAgICAgICAoZG93bmxvYWRFeHBlY3RlZFZlcnNpb25OdW1iZXIpOgorICAgICAgICAo
emlwRmlsZVZlcnNpb24pOgorICAgICAgICAodG9Vbml4UGF0aCk6IERlbGV0ZWQuCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRkaXJzLnBtOgorICAgICAgICAoY2hlY2tJbnN0YWxsZWRUb29scyk6
CisKIDIwMTUtMDMtMjUgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVcGRhdGUgcHJlcGFyZS1DaGFuZ2VMb2cgdG8gd29yayB3aXRoIEVTNiBDbGFzcyBz
eW50YXgKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1zdXBwb3J0LWxp
YnMgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtc3VwcG9ydC1saWJzCmluZGV4IDQwZTk4
NWM3NDYxYzFmYzdjMTc4MWJkZjc3MDc1MmE1Njg3MzQyMWQuLjgwYzE2OTcyZDgyZGJmZGY2YmJh
Njg2YmJhMTM2NGRmMzA3ZThiNWQgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdl
YmtpdC1zdXBwb3J0LWxpYnMKKysrIGIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LXN1cHBv
cnQtbGlicwpAQCAtMzIsMTEgKzMyLDE0IEBACiB1c2Ugc3RyaWN0OwogdXNlIHdhcm5pbmdzOwog
Cit1c2UgQXJjaGl2ZTo6WmlwIHF3KCA6RVJST1JfQ09ERVMgKTsKK3VzZSBGaWxlOjpDb3B5Owog
dXNlIEZpbGU6OkZpbmQ7CiB1c2UgRmlsZTo6VGVtcCAoKTsKIHVzZSBGaWxlOjpTcGVjOwogdXNl
IEZpbmRCaW47CiB1c2UgbGliICRGaW5kQmluOjpCaW47Cit1c2UgTFdQOjpTaW1wbGU7CiB1c2Ug
d2Via2l0ZGlyczsKIAogdXNlIGNvbnN0YW50IE5PVEFWRVJTSU9OID0+ICItMSI7CkBAIC00NCw5
ICs0Nyw5IEBAIHVzZSBjb25zdGFudCBOT1RBVkVSU0lPTiA9PiAiLTEiOwogbXkgJHNvdXJjZURp
ciA9IHNvdXJjZURpcigpOwogbXkgJGZpbGUgPSAiV2ViS2l0U3VwcG9ydExpYnJhcnkiOwogbXkg
JHppcEZpbGUgPSAiJGZpbGUuemlwIjsgCi1teSAkemlwRGlyZWN0b3J5ID0gdG9Vbml4UGF0aCgk
RU5WeydXRUJLSVRTVVBQT1JUTElCUkFSSUVTWklQRElSJ30pIHx8ICRzb3VyY2VEaXI7CitteSAk
emlwRGlyZWN0b3J5ID0gJEVOVnsnV0VCS0lUU1VQUE9SVExJQlJBUklFU1pJUERJUid9IHx8ICRz
b3VyY2VEaXI7CiBteSAkcGF0aFRvWmlwID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkemlwRGlyZWN0
b3J5LCAkemlwRmlsZSk7Ci1teSAkd2Via2l0TGlicmFyaWVzRGlyID0gdG9Vbml4UGF0aCgkRU5W
eydXRUJLSVRfTElCUkFSSUVTJ30pIHx8ICIkc291cmNlRGlyL1dlYktpdExpYnJhcmllcy93aW4i
OworbXkgJHdlYmtpdExpYnJhcmllc0RpciA9ICRFTlZ7J1dFQktJVF9MSUJSQVJJRVMnfSB8fCAi
JHNvdXJjZURpci9XZWJLaXRMaWJyYXJpZXMvd2luIjsKIG15ICR2ZXJzaW9uRmlsZSA9ICRmaWxl
IC4gIlZlcnNpb24iOwogbXkgJHBhdGhUb1ZlcnNpb25GaWxlID0gRmlsZTo6U3BlYy0+Y2F0Zmls
ZSgkd2Via2l0TGlicmFyaWVzRGlyLCAkdmVyc2lvbkZpbGUpOwogbXkgJHRtcFJlbGF0aXZlRGly
ID0gRmlsZTo6VGVtcDo6dGVtcGRpcigid2Via2l0bGlic1hYWFhYWFgiLCBUTVBESVIgPT4gMSwg
Q0xFQU5VUCA9PiAxKTsKQEAgLTcxLDggKzc0LDkgQEAgaWYgKCR6aXBGaWxlVmVyc2lvbiBlcSAk
ZXh0cmFjdGVkVmVyc2lvbikgewogICAgIGV4aXQ7CiB9CiAKLW15ICRyZXN1bHQgPSBzeXN0ZW0g
InVuemlwIiwgIi1xIiwgIi1kIiwgJHRtcEFic0RpciwgJHBhdGhUb1ppcDsKLWRpZSAiQ291bGRu
J3QgdW56aXAgJHppcEZpbGUuIiBpZiAkcmVzdWx0OworbXkgJHppcCA9IEFyY2hpdmU6OlppcC0+
bmV3KCRwYXRoVG9aaXApOworbXkgJHJlc3VsdCA9ICR6aXAtPmV4dHJhY3RUcmVlKCIiLCAkdG1w
QWJzRGlyKTsKK2RpZSAiQ291bGRuJ3QgdW56aXAgJHppcEZpbGUuIiBpZiAkcmVzdWx0ICE9IEFa
X09LOwogCiBwcmludCAiXG5JbnN0YWxsaW5nICRmaWxlLi4uXG4iOwogCkBAIC04Niw3ICs5MCw3
IEBAIHN1YiB3YW50ZWQKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHN5c3RlbSAiY3Ai
LCAkXywgJGRlc3RpbmF0aW9uOworICAgIGNvcHkoJF8sICRkZXN0aW5hdGlvbik7CiB9CiAKIEZp
bGU6OkZpbmQ6OmZpbmQoXCZ3YW50ZWQsICIkdG1wQWJzRGlyLyRmaWxlIik7CkBAIC05NCwxNCAr
OTgsNiBAQCBGaWxlOjpGaW5kOjpmaW5kKFwmd2FudGVkLCAiJHRtcEFic0Rpci8kZmlsZSIpOwog
cHJpbnQgIlRoZSAkZmlsZSBoYXMgYmVlbiBzdWNlc3NmdWxseSBpbnN0YWxsZWQgaW5cbiAkd2Vi
a2l0TGlicmFyaWVzRGlyXG4iOwogZXhpdDsKIAotc3ViIHRvVW5peFBhdGgKLXsKLSAgICBteSAk
cGF0aCA9IHNoaWZ0OwotICAgIHJldHVybiB1bmxlc3MgJHBhdGg7Ci0gICAgY2hvbXAoJHBhdGgg
PSBgY3lncGF0aCAtdSAnJHBhdGgnYCk7Ci0gICAgcmV0dXJuICRwYXRoOwotfQotCiBzdWIgZXh0
cmFjdGVkVmVyc2lvbgogewogICAgIGlmIChvcGVuIFZFUlNJT04sICI8IiwgJHBhdGhUb1ZlcnNp
b25GaWxlKSB7CkBAIC0xMTQsMTQgKzExMCwxNSBAQCBzdWIgZXh0cmFjdGVkVmVyc2lvbgogCiBz
dWIgZG93bmxvYWRFeHBlY3RlZFZlcnNpb25OdW1iZXIKIHsKLSAgICBjaG9tcChteSAkZXhwZWN0
ZWRWZXJzaW9uID0gYGN1cmwgLXMgLS1zc2x2MyAtayAkdmVyc2lvbkZpbGVVUkxgKTsKLSAgICBy
ZXR1cm4gV0VYSVRTVEFUVVMoJD8pID8gTk9UQVZFUlNJT04gOiAkZXhwZWN0ZWRWZXJzaW9uOwor
ICAgIGNob21wKG15ICRleHBlY3RlZFZlcnNpb24gPSBnZXQoJHZlcnNpb25GaWxlVVJMKSk7Cisg
ICAgcmV0dXJuIGRlZmluZWQgJGV4cGVjdGVkVmVyc2lvbiA/ICRleHBlY3RlZFZlcnNpb24gOiBO
T1RBVkVSU0lPTjsKIH0KIAogc3ViIHppcEZpbGVWZXJzaW9uCiB7CiAgICAgcmV0dXJuIE5PVEFW
RVJTSU9OIHVubGVzcyAtZiAkcGF0aFRvWmlwOwotICAgIGNob21wKG15ICR6aXBGaWxlVmVyc2lv
biA9IGB1bnppcCAtcCAiJHBhdGhUb1ppcCIgJGZpbGUvd2luLyR2ZXJzaW9uRmlsZWApOworICAg
IG15ICR6aXAgPSBBcmNoaXZlOjpaaXAtPm5ldygkcGF0aFRvWmlwKTsKKyAgICBjaG9tcChteSAk
emlwRmlsZVZlcnNpb24gPSAkemlwLT5jb250ZW50cygiJGZpbGUvd2luLyR2ZXJzaW9uRmlsZSIp
KTsKICAgICByZXR1cm4gJHppcEZpbGVWZXJzaW9uOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdGRpcnMucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KaW5kZXgg
ZDU5NWM2MTZlZDIzOGNhZmZhN2E0YzJkMWU2MmViNjViODNmYTdiZi4uNDMwMDM1M2M3ZDk1MGMw
YmQ1MGQzNmIzODU3OGJjNjhhMmEwMGEwZSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRkaXJzLnBtCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQpAQCAtMTQ1OCwxMCAr
MTQ1OCwxMiBAQCBzdWIgY2hlY2tJbnN0YWxsZWRUb29scygpCiB7CiAgICAgIyBTVk4gMS43LjEw
IGlzIGtub3duIHRvIGJlIGNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNlcnZlcnMuIFNWTiAxLjgu
eCBzZWVtcyB0byBiZSBtaXNzaW5nIHNvbWUgYXV0aGVudGljYXRpb24KICAgICAjIHByb3RvY29s
cyB3ZSB1c2UgZm9yIHN2bi53ZWJraXQub3JnOgotICAgIG15ICRzdm5WZXJzaW9uID0gYHN2biAt
LXZlcnNpb24gMj4gTlVMIHwgZ3JlcCAiXFxzdmVyc2lvbiJgOwotICAgIGNob21wKCRzdm5WZXJz
aW9uKTsKLSAgICBpZiAoISQ/IGFuZCAkc3ZuVmVyc2lvbiA9fiAvMVwuOFwuLykgewotICAgICAg
ICBwcmludCAic3ZuIDEuNy4xMCBpcyBrbm93biB0byBiZSBjb21wYXRpYmxlIHdpdGggb3VyIHNl
cnZlcnMuIFlvdSBhcmUgcnVubmluZyAkc3ZuVmVyc2lvbixcbndoaWNoIG1heSBub3Qgd29yayBw
cm9wZXJseS5cbiIKKyAgICBteSAkc3ZuVmVyc2lvbiA9IGBzdm4gLS12ZXJzaW9uIDI+IE5VTGA7
CisgICAgaWYgKCEkPyBhbmQgJHN2blZlcnNpb24gPX4gIiguKlxcc3ZlcnNpb24uKikiKSB7Cisg
ICAgICAgICRzdm5WZXJzaW9uID0gJDE7CisgICAgICAgIGlmICgkc3ZuVmVyc2lvbiA9fiAvMVwu
OFwuLykgeworICAgICAgICAgICAgcHJpbnQgInN2biAxLjcuMTAgaXMga25vd24gdG8gYmUgY29t
cGF0aWJsZSB3aXRoIG91ciBzZXJ2ZXJzLiBZb3UgYXJlIHJ1bm5pbmcgJHN2blZlcnNpb24sXG53
aGljaCBtYXkgbm90IHdvcmsgcHJvcGVybHkuXG4iCisgICAgICAgIH0KICAgICB9CiAKICAgICAj
IGVudmlyb25tZW50IHZhcmlhYmxlcy4gQXZvaWQgdW50aWwgdGhpcyBpcyBjb3JyZWN0ZWQuCkBA
IC0xNDY5LDEzICsxNDcxLDE1IEBAIHN1YiBjaGVja0luc3RhbGxlZFRvb2xzKCkKICAgICBkaWUg
IllvdSBtdXN0IGhhdmUgUHl0aG9uIGluc3RhbGxlZCB0byBidWlsZCBXZWJLaXQuXG4iIGlmICgk
Pyk7CiAKICAgICAjIGNVUkwgNy4zNC4wIGhhcyBhIGJ1ZyB0aGF0IHByZXZlbnRzIGF1dGhlbnRp
Y2F0aW9uIHdpdGggb3BlbnNvdXJjZS5hcHBsZS5jb20gKGFuZCBvdGhlciB0aGluZ3MgdXNpbmcg
U1NMMykuCi0gICAgbXkgJGN1cmxWZXIgPSBgY3VybCAtLXZlcnNpb24gMj4gTlVMIHwgZ3JlcCAi
Y3VybCJgOwotICAgIGNob21wKCRjdXJsVmVyKTsKLSAgICBpZiAoISQ/IGFuZCAkY3VybFZlciA9
fiAvbGliY3VybFwvN1wuMzRcLjAvKSB7Ci0gICAgICAgIHByaW50ICJjVVJMIHZlcnNpb24gNy4z
NC4wIGhhcyBhIGJ1ZyB0aGF0IHByZXZlbnRzIGF1dGhlbnRpY2F0aW9uIHdpdGggU1NMIHYyIG9y
IHYzLlxuIjsKLSAgICAgICAgcHJpbnQgImNVUkwgNy4zMy4wIGlzIGtub3duIHRvIHdvcmsuIFRo
ZSBjVVJMIHByb2plY3RzIGlzIHByZXBhcmluZyBhbiB1cGRhdGUgdG9cbiI7Ci0gICAgICAgIHBy
aW50ICJjb3JyZWN0IHRoaXMgcHJvYmxlbS5cblxuIjsKLSAgICAgICAgZGllICJQbGVhc2UgaW5z
dGFsbCBhIHdvcmtpbmcgY1VSTCBhbmQgdHJ5IGFnYWluLlxuIjsKKyAgICBteSAkY3VybFZlciA9
IGBjdXJsIC0tdmVyc2lvbiAyPiBOVUxgOworICAgIGlmICghJD8gYW5kICRjdXJsVmVyID1+ICIo
LipjdXJsLiopIikgeworICAgICAgICAkY3VybFZlciA9ICQxOworICAgICAgICBpZiAoJGN1cmxW
ZXIgPX4gL2xpYmN1cmxcLzdcLjM0XC4wLykgeworICAgICAgICAgICAgcHJpbnQgImNVUkwgdmVy
c2lvbiA3LjM0LjAgaGFzIGEgYnVnIHRoYXQgcHJldmVudHMgYXV0aGVudGljYXRpb24gd2l0aCBT
U0wgdjIgb3IgdjMuXG4iOworICAgICAgICAgICAgcHJpbnQgImNVUkwgNy4zMy4wIGlzIGtub3du
IHRvIHdvcmsuIFRoZSBjVVJMIHByb2plY3RzIGlzIHByZXBhcmluZyBhbiB1cGRhdGUgdG9cbiI7
CisgICAgICAgICAgICBwcmludCAiY29ycmVjdCB0aGlzIHByb2JsZW0uXG5cbiI7CisgICAgICAg
ICAgICBkaWUgIlBsZWFzZSBpbnN0YWxsIGEgd29ya2luZyBjVVJMIGFuZCB0cnkgYWdhaW4uXG4i
OworICAgICAgICB9CiAgICAgfQogCiAgICAgIyBNYXRoTUwgcmVxdWlyZXMgZm9udHMgdGhhdCBk
byBub3Qgc2hpcCB3aXRoIFdpbmRvd3MgKGF0IGxlYXN0IHRocm91Z2ggV2luZG93cyA4KS4gV2Fy
biB0aGUgdXNlciBpZiB0aGV5IGFyZSBtaXNzaW5nCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249576</attachid>
            <date>2015-03-27 10:08:21 -0700</date>
            <delta_ts>2015-03-27 10:13:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>13630</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">Y29tbWl0IDMxNGMyNGY2MDQxNDM5NzE4ZGY5ODdkYWEyMjBjMDc2ODcwZjBjODYKQXV0aG9yOiBT
LiBMaXRoZXJ1bSA8bGl0aGVydW1AZ21haWwuY29tPgpEYXRlOiAgIEZyaSBNYXIgMjcgMDk6Mzk6
NDEgMjAxNSAtMDcwMAoKICAgIFdJUAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
IGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggYmZlY2JjNC4uNzAwNzIzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNS0wMy0yNyAgUy4gTGl0aGVydW0gIDxsaXRoZXJ1bUBnbWFpbC5jb20+
CisKKyAgICAgICAgU3VwcG9ydCBidWlsZGluZyBXVEYgb24gV2luZG93cyB3aXRob3V0IEN5Z3dp
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzMDg0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2luZG93
cyBkb2Vzbid0IGhhdmUgInRvdWNoIi4KKworICAgICAgICAqIFdURi52Y3hwcm9qL1dURkdlbmVy
YXRlZC5tYWtlOgorCiAyMDE1LTAzLTI2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUHJvZ3Jlc3MgdG93YXJkcyBDTWFrZSBvbiBNYWMuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURkdlbmVyYXRlZC5tYWtlIGIvU291
cmNlL1dURi9XVEYudmN4cHJvai9XVEZHZW5lcmF0ZWQubWFrZQppbmRleCBkOGZhYWM2Li42OGY2
Yzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURkdlbmVyYXRlZC5tYWtl
CisrKyBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGR2VuZXJhdGVkLm1ha2UKQEAgLTEsNSAr
MSw1IEBACiBhbGw6IFdURkhlYWRlckRldGVjdGlvbi5oCi0gICAgQHRvdWNoICIlQ29uZmlndXJh
dGlvbkJ1aWxkRGlyJVxidWlsZGZhaWxlZCIKKyAgICBAdHlwZSBOVUwgPiAiJUNvbmZpZ3VyYXRp
b25CdWlsZERpciVcYnVpbGRmYWlsZWQiCiAgICAgQHBlcmwgYnVpbGQtZ2VuZXJhdGVkLWZpbGVz
LnBsICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJSIgIiQoV0VCS0lUX0xJQlJBUklFUykiICIkKERF
QlVHU1VGRklYKSIgIiVQbGF0Zm9ybUFyY2hpdGVjdHVyZSUiCiAhSUYgIiQoT0ZGSUNJQUxfQlVJ
TEQpIiE9IjEiCiAgICAgLUBweXRob24yLjcgd29yay1hcm91bmQtdnMtZGVwZW5kZW5jeS10cmFj
a2luZy1idWdzLnB5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggMmY2NjcwOS4uNGEwNTY0YyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE1LTAzLTI3ICBTLiBMaXRo
ZXJ1bSAgPGxpdGhlcnVtQGdtYWlsLmNvbT4KKworICAgICAgICBTdXBwb3J0IGJ1aWxkaW5nIFdU
RiBvbiBXaW5kb3dzIHdpdGhvdXQgQ3lnd2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDMwODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXaW5kb3dzIHdpdGhvdXQgQ3lnd2luIGRvZXNuJ3QgaGF2ZSBj
dXJsLCB1bnppcCwgb3IgZ3JlcC4gTHVja2lseSwgUGVybCBkb2VzIGFsbCBvZiB0aGVzZSB0aGlu
Z3MuCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBtaWdyYXRlcyB0byB1c2luZyBGaWxlOjpTcGVj
LT5jYXRmaWxlKCkgZm9yIGRpcmVjdG9yeSBzZXBhcmF0b3JzLgorCisgICAgICAgICogU2NyaXB0
cy91cGRhdGUtd2Via2l0LWRlcGVuZGVuY3k6CisgICAgICAgICh3YW50ZWQpOgorICAgICAgICAq
IFNjcmlwdHMvdXBkYXRlLXdlYmtpdC1zdXBwb3J0LWxpYnM6CisgICAgICAgICh3YW50ZWQpOgor
ICAgICAgICAoZG93bmxvYWRFeHBlY3RlZFZlcnNpb25OdW1iZXIpOgorICAgICAgICAoemlwRmls
ZVZlcnNpb24pOgorICAgICAgICAodG9Vbml4UGF0aCk6IERlbGV0ZWQuCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRkaXJzLnBtOgorICAgICAgICAoZGV0ZXJtaW5lU291cmNlRGlyKToKKyAgICAg
ICAgKHdpbmRvd3NTb3VyY2VTb3VyY2VEaXIpOgorICAgICAgICAod2luZG93c0xpYnJhcmllc0Rp
cik6CisgICAgICAgICh3aW5kb3dzT3V0cHV0RGlyKToKKyAgICAgICAgKGNoZWNrSW5zdGFsbGVk
VG9vbHMpOgorICAgICAgICAoYnVpbGRWaXN1YWxTdHVkaW9Qcm9qZWN0KToKKwogMjAxNS0wMy0y
NyAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVSVEJG
IGFmdGVyIHIxODIwNTkgdG8gZml4IHRoZSBFRkwgYnVpbGQuCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3VwZGF0ZS13ZWJraXQtZGVwZW5kZW5jeSBiL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdl
YmtpdC1kZXBlbmRlbmN5CmluZGV4IGJiNWVkMjQuLjVlNmUyMGQgMTAwNzU1Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1kZXBlbmRlbmN5CisrKyBiL1Rvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmtpdC1kZXBlbmRlbmN5CkBAIC03MCw3ICs3MCw3IEBAIG15ICRwcmVmaXhJblppcCA9
IHNoaWZ0OwogbXkgJHNvdXJjZURpciA9IHNvdXJjZURpcigpOwogbXkgJGZpbGUgPSBnZXRMaWJy
YXJ5TmFtZSgkbGlic1VSTCk7CiBteSAkemlwRmlsZSA9ICIkZmlsZS56aXAiOyAKLW15ICR3ZWJr
aXRMaWJyYXJpZXNEaXIgPSAkRU5WeydXRUJLSVRfTElCUkFSSUVTJ30gfHwgIiRzb3VyY2VEaXIv
V2ViS2l0TGlicmFyaWVzL3dpbiI7CitteSAkd2Via2l0TGlicmFyaWVzRGlyID0gJEVOVnsnV0VC
S0lUX0xJQlJBUklFUyd9IHx8IEZpbGU6OlNwZWMtPmNhdGZpbGUoJHNvdXJjZURpciwgIldlYktp
dExpYnJhcmllcyIsICJ3aW4iKTsKIG15ICR0bXBSZWxhdGl2ZURpciA9IEZpbGU6OlRlbXA6OnRl
bXBkaXIoIndlYmtpdGxpYnNYWFhYWFhYIiwgVE1QRElSID0+IDEsIENMRUFOVVAgPT4gMSk7CiBt
eSAkdG1wQWJzRGlyID0gRmlsZTo6U3BlYy0+cmVsMmFicygkdG1wUmVsYXRpdmVEaXIpOwogCkBA
IC04MCw3ICs4MCw3IEBAIG15ICgkY29udGVudF90eXBlLCAkZG9jdW1lbnRfbGVuZ3RoLCAkbW9k
aWZpZWRfdGltZSwgJGV4cGlyZXMsICRzZXJ2ZXIpID0gaGVhZCgkCiAKIGlmIChkZWZpbmVkICRt
b2RpZmllZF90aW1lKSB7CiAKLSAgICBvcGVuIE5FVywgIj4iLCAiJHRtcEFic0Rpci8kZmlsZS5o
ZWFkZXJzIjsKKyAgICBvcGVuIE5FVywgIj4iLCBGaWxlOjpTcGVjLT5jYXRmaWxlKCR0bXBBYnNE
aXIsICIkZmlsZS5oZWFkZXJzIik7CiAgICAgcHJpbnQgTkVXICJMYXN0LU1vZGlmaWVkOiAiIC4g
dGltZTJzdHIoJG1vZGlmaWVkX3RpbWUpIC4gIlxuIjsKICAgICBjbG9zZSBORVc7CiAKQEAgLTkx
LDE0ICs5MSwxNCBAQCBpZiAoZGVmaW5lZCAkbW9kaWZpZWRfdGltZSkgewogICAgIG15ICRoZWFk
ZXJVUkwgPSAkbGlic1VSTDsKICAgICAkaGVhZGVyVVJMID1+IHMvXC56aXAkL1wuaGVhZGVycy87
CiAKLSAgICBteSAkcmVzdWx0ID0gZ2V0c3RvcmUoJGhlYWRlclVSTCwgIiR0bXBBYnNEaXIvJGZp
bGUuaGVhZGVycyIpOworICAgIG15ICRyZXN1bHQgPSBnZXRzdG9yZSgkaGVhZGVyVVJMLCBGaWxl
OjpTcGVjLT5jYXRmaWxlKCR0bXBBYnNEaXIsICIkZmlsZS5oZWFkZXJzIikpOwogCiAgICAgaWYg
KCFpc19zdWNjZXNzKCRyZXN1bHQpKSB7CiAgICAgICAgIHByaW50IFNUREVSUiAiQ291bGRuJ3Qg
Y2hlY2sgTGFzdC1Nb2RpZmllZCBkYXRlIG9mIG5ldyAkemlwRmlsZS5cbiI7CiAgICAgICAgIHBy
aW50IFNUREVSUiAiUGxlYXNlIGVuc3VyZSB0aGF0IFBlcmwgY2FuIHVzZSBMV1A6OlNpbXBsZSB0
byBjb25uZWN0IHRvIEhUVFBTIHVybHMsIGFuZCB0aGF0ICRsaWJzVVJMIGlzIHJlYWNoYWJsZS5c
biI7CiAgICAgICAgIHByaW50IFNUREVSUiAiWW91IG1heSBoYXZlIHRvIHJ1biBcJCBjcGFuIExX
UDo6UHJvdG9jb2w6Omh0dHBzXG4iOwogCi0gICAgICAgIGlmICghIC1mICIkd2Via2l0TGlicmFy
aWVzRGlyLyRmaWxlLmhlYWRlcnMiKSB7CisgICAgICAgIGlmICghIC1mIEZpbGU6OlNwZWMtPmNh
dGZpbGUoJHdlYmtpdExpYnJhcmllc0RpciwgIiRmaWxlLmhlYWRlcnMiKSkgewogICAgICAgICAg
ICAgcHJpbnQgU1RERVJSICJVbmFibGUgdG8gY2hlY2sgTGFzdC1Nb2RpZmllZCBkYXRlIGFuZCBu
byB2ZXJzaW9uIG9mICRmaWxlIHRvIGZhbGwgYmFjayB0by5cbiI7CiAgICAgICAgICAgICBleGl0
IDE7CiAgICAgICAgIH0KQEAgLTEwOCwxMSArMTA4LDExIEBAIGlmIChkZWZpbmVkICRtb2RpZmll
ZF90aW1lKSB7CiAgICAgfQogfQogCi1pZiAob3BlbiBORVcsICIkdG1wQWJzRGlyLyRmaWxlLmhl
YWRlcnMiKSB7CitpZiAob3BlbiBORVcsIEZpbGU6OlNwZWMtPmNhdGZpbGUoJHRtcEFic0Rpciwg
IiRmaWxlLmhlYWRlcnMiKSkgewogICAgIG15ICRuZXcgPSBsYXN0TW9kaWZpZWRUb1VuaXhUaW1l
KDxORVc+KTsKICAgICBjbG9zZSBORVc7CiAKLSAgICBpZiAoZGVmaW5lZCAkbmV3ICYmIG9wZW4g
T0xELCAiJHdlYmtpdExpYnJhcmllc0Rpci8kZmlsZS5oZWFkZXJzIikgeworICAgIGlmIChkZWZp
bmVkICRuZXcgJiYgb3BlbiBPTEQsIEZpbGU6OlNwZWMtPmNhdGZpbGUoJHdlYmtpdExpYnJhcmll
c0RpciwgIiRmaWxlLmhlYWRlcnMiKSkgewogICAgICAgICBteSAkb2xkID0gbGFzdE1vZGlmaWVk
VG9Vbml4VGltZSg8T0xEPik7CiAgICAgICAgIGNsb3NlIE9MRDsKICAgICAgICAgaWYgKGRlZmlu
ZWQgJG9sZCAmJiBhYnMoJG5ldyAtICRvbGQpIDwgJG5ld25lc3NUaHJlc2hvbGQpIHsKQEAgLTEy
NCwxMCArMTI0LDEwIEBAIGlmIChvcGVuIE5FVywgIiR0bXBBYnNEaXIvJGZpbGUuaGVhZGVycyIp
IHsKIAogcHJpbnQgIkRvd25sb2FkaW5nICR6aXBGaWxlLi4uXG5cbiI7CiBwcmludCAiJGxpYnNV
UkxcbiI7Ci1teSAkcmVzdWx0ID0gZ2V0c3RvcmUoJGxpYnNVUkwsICIkdG1wQWJzRGlyLyR6aXBG
aWxlIik7CitteSAkcmVzdWx0ID0gZ2V0c3RvcmUoJGxpYnNVUkwsIEZpbGU6OlNwZWMtPmNhdGZp
bGUoJHRtcEFic0RpciwgJHppcEZpbGUpKTsKIGRpZSAiQ291bGRuJ3QgZG93bmxvYWQgJHppcEZp
bGUhIiBpZiBpc19lcnJvcigkcmVzdWx0KTsKIAotbXkgJHppcCA9IEFyY2hpdmU6OlppcC0+bmV3
KCIkdG1wQWJzRGlyLyR6aXBGaWxlIik7CitteSAkemlwID0gQXJjaGl2ZTo6WmlwLT5uZXcoRmls
ZTo6U3BlYy0+Y2F0ZmlsZSgkdG1wQWJzRGlyLCAkemlwRmlsZSkpOwogJHJlc3VsdCA9ICR6aXAt
PmV4dHJhY3RUcmVlKCIiLCAkdG1wQWJzRGlyKTsKIGRpZSAiQ291bGRuJ3QgdW56aXAgJHppcEZp
bGUuIiBpZiAkcmVzdWx0ICE9IEFaX09LOwogCkBAIC0xMzUsOCArMTM1LDggQEAgcHJpbnQgIlxu
SW5zdGFsbGluZyAkZmlsZS4uLlxuIjsKIAogc3ViIHdhbnRlZAogewotICAgIG15ICRyZWxhdGl2
ZU5hbWUgPSBGaWxlOjpTcGVjLT5hYnMycmVsKCRGaWxlOjpGaW5kOjpuYW1lLCAiJHRtcEFic0Rp
ci8kZmlsZS8kcHJlZml4SW5aaXAiKTsKLSAgICBteSAkZGVzdGluYXRpb24gPSAiJHdlYmtpdExp
YnJhcmllc0Rpci8kcmVsYXRpdmVOYW1lIjsKKyAgICBteSAkcmVsYXRpdmVOYW1lID0gRmlsZTo6
U3BlYy0+YWJzMnJlbCgkRmlsZTo6RmluZDo6bmFtZSwgRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkdG1w
QWJzRGlyLCAkZmlsZSwgJHByZWZpeEluWmlwKSk7CisgICAgbXkgJGRlc3RpbmF0aW9uID0gRmls
ZTo6U3BlYy0+Y2F0ZmlsZSgkd2Via2l0TGlicmFyaWVzRGlyLCAkcmVsYXRpdmVOYW1lKTsKIAog
ICAgIGlmICgtZCAkXykgewogICAgICAgICBta2RpciAkZGVzdGluYXRpb247CkBAIC0xNDYsOSAr
MTQ2LDkgQEAgc3ViIHdhbnRlZAogICAgIGNvcHkoJF8sICRkZXN0aW5hdGlvbik7CiB9CiAKLUZp
bGU6OkZpbmQ6OmZpbmQoXCZ3YW50ZWQsICIkdG1wQWJzRGlyLyRmaWxlIik7CitGaWxlOjpGaW5k
OjpmaW5kKFwmd2FudGVkLCBGaWxlOjpTcGVjLT5jYXRmaWxlKCR0bXBBYnNEaXIsICRmaWxlKSk7
CiAKLSRyZXN1bHQgPSBtb3ZlKCIkdG1wQWJzRGlyLyRmaWxlLmhlYWRlcnMiLCAkd2Via2l0TGli
cmFyaWVzRGlyKTsKKyRyZXN1bHQgPSBtb3ZlKEZpbGU6OlNwZWMtPmNhdGZpbGUoJHRtcEFic0Rp
ciwgIiRmaWxlLmhlYWRlcnMiKSwgJHdlYmtpdExpYnJhcmllc0Rpcik7CiBwcmludCBTVERFUlIg
IkNvdWxkbid0IG1vdmUgJGZpbGUuaGVhZGVycyB0byAkd2Via2l0TGlicmFyaWVzRGlyIiAuICIu
XG4iIGlmICRyZXN1bHQgPT0gMDsKIAogcHJpbnQgIlRoZSAkZmlsZSBoYXMgYmVlbiBzdWNlc3Nm
dWxseSBpbnN0YWxsZWQgaW5cbiAkd2Via2l0TGlicmFyaWVzRGlyXG4iOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LXN1cHBvcnQtbGlicyBiL1Rvb2xzL1NjcmlwdHMv
dXBkYXRlLXdlYmtpdC1zdXBwb3J0LWxpYnMKaW5kZXggNDBlOTg1Yy4uY2Q1YTNmNSAxMDA3NTUK
LS0tIGEvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LXN1cHBvcnQtbGlicworKysgYi9Ub29s
cy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtc3VwcG9ydC1saWJzCkBAIC0zMiwxMSArMzIsMTQgQEAK
IHVzZSBzdHJpY3Q7CiB1c2Ugd2FybmluZ3M7CiAKK3VzZSBBcmNoaXZlOjpaaXAgcXcoIDpFUlJP
Ul9DT0RFUyApOwordXNlIEZpbGU6OkNvcHk7CiB1c2UgRmlsZTo6RmluZDsKIHVzZSBGaWxlOjpU
ZW1wICgpOwogdXNlIEZpbGU6OlNwZWM7CiB1c2UgRmluZEJpbjsKIHVzZSBsaWIgJEZpbmRCaW46
OkJpbjsKK3VzZSBMV1A6OlNpbXBsZTsKIHVzZSB3ZWJraXRkaXJzOwogCiB1c2UgY29uc3RhbnQg
Tk9UQVZFUlNJT04gPT4gIi0xIjsKQEAgLTQ0LDkgKzQ3LDkgQEAgdXNlIGNvbnN0YW50IE5PVEFW
RVJTSU9OID0+ICItMSI7CiBteSAkc291cmNlRGlyID0gc291cmNlRGlyKCk7CiBteSAkZmlsZSA9
ICJXZWJLaXRTdXBwb3J0TGlicmFyeSI7CiBteSAkemlwRmlsZSA9ICIkZmlsZS56aXAiOyAKLW15
ICR6aXBEaXJlY3RvcnkgPSB0b1VuaXhQYXRoKCRFTlZ7J1dFQktJVFNVUFBPUlRMSUJSQVJJRVNa
SVBESVInfSkgfHwgJHNvdXJjZURpcjsKK215ICR6aXBEaXJlY3RvcnkgPSAkRU5WeydXRUJLSVRT
VVBQT1JUTElCUkFSSUVTWklQRElSJ30gfHwgJHNvdXJjZURpcjsKIG15ICRwYXRoVG9aaXAgPSBG
aWxlOjpTcGVjLT5jYXRmaWxlKCR6aXBEaXJlY3RvcnksICR6aXBGaWxlKTsKLW15ICR3ZWJraXRM
aWJyYXJpZXNEaXIgPSB0b1VuaXhQYXRoKCRFTlZ7J1dFQktJVF9MSUJSQVJJRVMnfSkgfHwgIiRz
b3VyY2VEaXIvV2ViS2l0TGlicmFyaWVzL3dpbiI7CitteSAkd2Via2l0TGlicmFyaWVzRGlyID0g
JEVOVnsnV0VCS0lUX0xJQlJBUklFUyd9IHx8IEZpbGU6OlNwZWMtPmNhdGZpbGUoJHNvdXJjZURp
ciwgIldlYktpdExpYnJhcmllcyIsICJ3aW4iKTsKIG15ICR2ZXJzaW9uRmlsZSA9ICRmaWxlIC4g
IlZlcnNpb24iOwogbXkgJHBhdGhUb1ZlcnNpb25GaWxlID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgk
d2Via2l0TGlicmFyaWVzRGlyLCAkdmVyc2lvbkZpbGUpOwogbXkgJHRtcFJlbGF0aXZlRGlyID0g
RmlsZTo6VGVtcDo6dGVtcGRpcigid2Via2l0bGlic1hYWFhYWFgiLCBUTVBESVIgPT4gMSwgQ0xF
QU5VUCA9PiAxKTsKQEAgLTcxLDM3ICs3NCwzMCBAQCBpZiAoJHppcEZpbGVWZXJzaW9uIGVxICRl
eHRyYWN0ZWRWZXJzaW9uKSB7CiAgICAgZXhpdDsKIH0KIAotbXkgJHJlc3VsdCA9IHN5c3RlbSAi
dW56aXAiLCAiLXEiLCAiLWQiLCAkdG1wQWJzRGlyLCAkcGF0aFRvWmlwOwotZGllICJDb3VsZG4n
dCB1bnppcCAkemlwRmlsZS4iIGlmICRyZXN1bHQ7CitteSAkemlwID0gQXJjaGl2ZTo6WmlwLT5u
ZXcoJHBhdGhUb1ppcCk7CitteSAkcmVzdWx0ID0gJHppcC0+ZXh0cmFjdFRyZWUoIiIsICR0bXBB
YnNEaXIpOworZGllICJDb3VsZG4ndCB1bnppcCAkemlwRmlsZS4iIGlmICRyZXN1bHQgIT0gQVpf
T0s7CiAKIHByaW50ICJcbkluc3RhbGxpbmcgJGZpbGUuLi5cbiI7CiAKIHN1YiB3YW50ZWQKIHsK
LSAgICBteSAkcmVsYXRpdmVOYW1lID0gRmlsZTo6U3BlYy0+YWJzMnJlbCgkRmlsZTo6RmluZDo6
bmFtZSwgIiR0bXBBYnNEaXIvJGZpbGUvd2luIik7Ci0gICAgbXkgJGRlc3RpbmF0aW9uID0gIiR3
ZWJraXRMaWJyYXJpZXNEaXIvJHJlbGF0aXZlTmFtZSI7CisgICAgbXkgJHJlbGF0aXZlTmFtZSA9
IEZpbGU6OlNwZWMtPmFiczJyZWwoJEZpbGU6OkZpbmQ6Om5hbWUsIEZpbGU6OlNwZWMtPmNhdGZp
bGUoJHRtcEFic0RpciwgIiRmaWxlIiwgIndpbiIpKTsKKyAgICBteSAkZGVzdGluYXRpb24gPSBG
aWxlOjpTcGVjLT5jYXRmaWxlKCR3ZWJraXRMaWJyYXJpZXNEaXIsICRyZWxhdGl2ZU5hbWUpOwog
CiAgICAgaWYgKC1kICRfKSB7CiAgICAgICAgIG1rZGlyICRkZXN0aW5hdGlvbjsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIHN5c3RlbSAiY3AiLCAkXywgJGRlc3RpbmF0aW9uOworICAg
IGNvcHkoJF8sICRkZXN0aW5hdGlvbik7CiB9CiAKLUZpbGU6OkZpbmQ6OmZpbmQoXCZ3YW50ZWQs
ICIkdG1wQWJzRGlyLyRmaWxlIik7CitGaWxlOjpGaW5kOjpmaW5kKFwmd2FudGVkLCBGaWxlOjpT
cGVjLT5jYXRmaWxlKCR0bXBBYnNEaXIsICRmaWxlKSk7CiAKIHByaW50ICJUaGUgJGZpbGUgaGFz
IGJlZW4gc3VjZXNzZnVsbHkgaW5zdGFsbGVkIGluXG4gJHdlYmtpdExpYnJhcmllc0RpclxuIjsK
IGV4aXQ7CiAKLXN1YiB0b1VuaXhQYXRoCi17Ci0gICAgbXkgJHBhdGggPSBzaGlmdDsKLSAgICBy
ZXR1cm4gdW5sZXNzICRwYXRoOwotICAgIGNob21wKCRwYXRoID0gYGN5Z3BhdGggLXUgJyRwYXRo
J2ApOwotICAgIHJldHVybiAkcGF0aDsKLX0KLQogc3ViIGV4dHJhY3RlZFZlcnNpb24KIHsKICAg
ICBpZiAob3BlbiBWRVJTSU9OLCAiPCIsICRwYXRoVG9WZXJzaW9uRmlsZSkgewpAQCAtMTE0LDE0
ICsxMTAsMTUgQEAgc3ViIGV4dHJhY3RlZFZlcnNpb24KIAogc3ViIGRvd25sb2FkRXhwZWN0ZWRW
ZXJzaW9uTnVtYmVyCiB7Ci0gICAgY2hvbXAobXkgJGV4cGVjdGVkVmVyc2lvbiA9IGBjdXJsIC1z
IC0tc3NsdjMgLWsgJHZlcnNpb25GaWxlVVJMYCk7Ci0gICAgcmV0dXJuIFdFWElUU1RBVFVTKCQ/
KSA/IE5PVEFWRVJTSU9OIDogJGV4cGVjdGVkVmVyc2lvbjsKKyAgICBjaG9tcChteSAkZXhwZWN0
ZWRWZXJzaW9uID0gZ2V0KCR2ZXJzaW9uRmlsZVVSTCkpOworICAgIHJldHVybiBkZWZpbmVkICRl
eHBlY3RlZFZlcnNpb24gPyAkZXhwZWN0ZWRWZXJzaW9uIDogTk9UQVZFUlNJT047CiB9CiAKIHN1
YiB6aXBGaWxlVmVyc2lvbgogewogICAgIHJldHVybiBOT1RBVkVSU0lPTiB1bmxlc3MgLWYgJHBh
dGhUb1ppcDsKLSAgICBjaG9tcChteSAkemlwRmlsZVZlcnNpb24gPSBgdW56aXAgLXAgIiRwYXRo
VG9aaXAiICRmaWxlL3dpbi8kdmVyc2lvbkZpbGVgKTsKKyAgICBteSAkemlwID0gQXJjaGl2ZTo6
WmlwLT5uZXcoJHBhdGhUb1ppcCk7CisgICAgY2hvbXAobXkgJHppcEZpbGVWZXJzaW9uID0gJHpp
cC0+Y29udGVudHMoIiRmaWxlL3dpbi8kdmVyc2lvbkZpbGUiKSk7CiAgICAgcmV0dXJuICR6aXBG
aWxlVmVyc2lvbjsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBt
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCmluZGV4IGQ1OTVjNjEuLmIzYmNhOTYgMTAw
NzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdGRpcnMucG0KQEAgLTE0NCwxNCArMTQ0LDE0IEBAIHN1YiBkZXRlcm1pbmVTb3VyY2VE
aXIKIAogICAgICMgd2Fsa3MgdXAgcGF0aCBjaGVja2luZyBlYWNoIGRpcmVjdG9yeSB0byBzZWUg
aWYgaXQgaXMgdGhlIG1haW4gV2ViS2l0IHByb2plY3QgZGlyLCAKICAgICAjIGRlZmluZWQgYnkg
Y29udGFpbmluZyBTb3VyY2VzLCBXZWJDb3JlLCBhbmQgV2ViS2l0Ci0gICAgdW50aWwgKCgtZCAi
JHNvdXJjZURpci9Tb3VyY2UiICYmIC1kICIkc291cmNlRGlyL1NvdXJjZS9XZWJDb3JlIiAmJiAt
ZCAiJHNvdXJjZURpci9Tb3VyY2UvV2ViS2l0IikgfHwgKC1kICIkc291cmNlRGlyL0ludGVybmFs
IiAmJiAtZCAiJHNvdXJjZURpci9PcGVuU291cmNlIikpCisgICAgdW50aWwgKCgtZCBGaWxlOjpT
cGVjLT5jYXRmaWxlKCRzb3VyY2VEaXIsICJTb3VyY2UiKSAmJiAtZCBGaWxlOjpTcGVjLT5jYXRm
aWxlKCRzb3VyY2VEaXIsICJTb3VyY2UiLCAiV2ViQ29yZSIpICYmIC1kIEZpbGU6OlNwZWMtPmNh
dGZpbGUoJHNvdXJjZURpciwgIlNvdXJjZSIsICJXZWJLaXQiKSkgfHwgKC1kIEZpbGU6OlNwZWMt
PmNhdGZpbGUoJHNvdXJjZURpciwgIkludGVybmFsIikgJiYgLWQgRmlsZTo6U3BlYy0+Y2F0Zmls
ZSgkc291cmNlRGlyLCAiT3BlblNvdXJjZSIpKSkKICAgICB7CiAgICAgICAgIGlmICgkc291cmNl
RGlyICF+IHN8L1teL10rJHx8KSB7CiAgICAgICAgICAgICBkaWUgIkNvdWxkIG5vdCBmaW5kIHRv
cCBsZXZlbCB3ZWJraXQgZGlyZWN0b3J5IGFib3ZlIHNvdXJjZSBkaXJlY3RvcnkgdXNpbmcgRmlu
ZEJpbi5cbiI7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICAkc291cmNlRGlyID0gIiRzb3VyY2VE
aXIvT3BlblNvdXJjZSIgaWYgLWQgIiRzb3VyY2VEaXIvT3BlblNvdXJjZSI7CisgICAgJHNvdXJj
ZURpciA9IEZpbGU6OlNwZWMtPmNhdGZpbGUoJHNvdXJjZURpciwgIk9wZW5Tb3VyY2UiKSBpZiAt
ZCBGaWxlOjpTcGVjLT5jYXRmaWxlKCRzb3VyY2VEaXIsICJPcGVuU291cmNlIik7CiB9CiAKIHN1
YiBjdXJyZW50UGVybFBhdGgoKQpAQCAtMTQzMywxNyArMTQzMywxNyBAQCBzdWIgd2luZG93c1Nv
dXJjZURpcigpCiAKIHN1YiB3aW5kb3dzU291cmNlU291cmNlRGlyKCkKIHsKLSAgICByZXR1cm4g
d2luZG93c1NvdXJjZURpcigpIC4gIlxcU291cmNlIjsKKyAgICByZXR1cm4gRmlsZTo6U3BlYy0+
Y2F0ZmlsZSh3aW5kb3dzU291cmNlRGlyKCksICJTb3VyY2UiKTsKIH0KIAogc3ViIHdpbmRvd3NM
aWJyYXJpZXNEaXIoKQogewotICAgIHJldHVybiB3aW5kb3dzU291cmNlRGlyKCkgLiAiXFxXZWJL
aXRMaWJyYXJpZXNcXHdpbiI7CisgICAgcmV0dXJuIEZpbGU6OlNwZWMtPmNhdGZpbGUod2luZG93
c1NvdXJjZURpcigpLCAiV2ViS2l0TGlicmFyaWVzIiwgIndpbiIpOwogfQogCiBzdWIgd2luZG93
c091dHB1dERpcigpCiB7Ci0gICAgcmV0dXJuIHdpbmRvd3NTb3VyY2VEaXIoKSAuICJcXFdlYktp
dEJ1aWxkIjsKKyAgICByZXR1cm4gRmlsZTo6U3BlYy0+Y2F0ZmlsZSh3aW5kb3dzU291cmNlRGly
KCksICJXZWJLaXRCdWlsZCIpOwogfQogCiBzdWIgZm9udEV4aXN0cygkKQpAQCAtMTQ1NiwyNiAr
MTQ1NiwyMCBAQCBzdWIgZm9udEV4aXN0cygkKQogCiBzdWIgY2hlY2tJbnN0YWxsZWRUb29scygp
CiB7Ci0gICAgIyBTVk4gMS43LjEwIGlzIGtub3duIHRvIGJlIGNvbXBhdGlibGUgd2l0aCBjdXJy
ZW50IHNlcnZlcnMuIFNWTiAxLjgueCBzZWVtcyB0byBiZSBtaXNzaW5nIHNvbWUgYXV0aGVudGlj
YXRpb24KLSAgICAjIHByb3RvY29scyB3ZSB1c2UgZm9yIHN2bi53ZWJraXQub3JnOgotICAgIG15
ICRzdm5WZXJzaW9uID0gYHN2biAtLXZlcnNpb24gMj4gTlVMIHwgZ3JlcCAiXFxzdmVyc2lvbiJg
OwotICAgIGNob21wKCRzdm5WZXJzaW9uKTsKLSAgICBpZiAoISQ/IGFuZCAkc3ZuVmVyc2lvbiA9
fiAvMVwuOFwuLykgewotICAgICAgICBwcmludCAic3ZuIDEuNy4xMCBpcyBrbm93biB0byBiZSBj
b21wYXRpYmxlIHdpdGggb3VyIHNlcnZlcnMuIFlvdSBhcmUgcnVubmluZyAkc3ZuVmVyc2lvbixc
bndoaWNoIG1heSBub3Qgd29yayBwcm9wZXJseS5cbiIKLSAgICB9Ci0KICAgICAjIGVudmlyb25t
ZW50IHZhcmlhYmxlcy4gQXZvaWQgdW50aWwgdGhpcyBpcyBjb3JyZWN0ZWQuCiAgICAgbXkgJHB5
dGhvblZlciA9IGBweXRob24gLS12ZXJzaW9uIDI+JjFgOwogICAgIGRpZSAiWW91IG11c3QgaGF2
ZSBQeXRob24gaW5zdGFsbGVkIHRvIGJ1aWxkIFdlYktpdC5cbiIgaWYgKCQ/KTsKIAogICAgICMg
Y1VSTCA3LjM0LjAgaGFzIGEgYnVnIHRoYXQgcHJldmVudHMgYXV0aGVudGljYXRpb24gd2l0aCBv
cGVuc291cmNlLmFwcGxlLmNvbSAoYW5kIG90aGVyIHRoaW5ncyB1c2luZyBTU0wzKS4KLSAgICBt
eSAkY3VybFZlciA9IGBjdXJsIC0tdmVyc2lvbiAyPiBOVUwgfCBncmVwICJjdXJsImA7Ci0gICAg
Y2hvbXAoJGN1cmxWZXIpOwotICAgIGlmICghJD8gYW5kICRjdXJsVmVyID1+IC9saWJjdXJsXC83
XC4zNFwuMC8pIHsKLSAgICAgICAgcHJpbnQgImNVUkwgdmVyc2lvbiA3LjM0LjAgaGFzIGEgYnVn
IHRoYXQgcHJldmVudHMgYXV0aGVudGljYXRpb24gd2l0aCBTU0wgdjIgb3IgdjMuXG4iOwotICAg
ICAgICBwcmludCAiY1VSTCA3LjMzLjAgaXMga25vd24gdG8gd29yay4gVGhlIGNVUkwgcHJvamVj
dHMgaXMgcHJlcGFyaW5nIGFuIHVwZGF0ZSB0b1xuIjsKLSAgICAgICAgcHJpbnQgImNvcnJlY3Qg
dGhpcyBwcm9ibGVtLlxuXG4iOwotICAgICAgICBkaWUgIlBsZWFzZSBpbnN0YWxsIGEgd29ya2lu
ZyBjVVJMIGFuZCB0cnkgYWdhaW4uXG4iOworICAgIG15ICRjdXJsVmVyID0gYGN1cmwgLS12ZXJz
aW9uIDI+IE5VTGA7CisgICAgaWYgKCEkPyBhbmQgJGN1cmxWZXIgPX4gIiguKmN1cmwuKikiKSB7
CisgICAgICAgICRjdXJsVmVyID0gJDE7CisgICAgICAgIGlmICgkY3VybFZlciA9fiAvbGliY3Vy
bFwvN1wuMzRcLjAvKSB7CisgICAgICAgICAgICBwcmludCAiY1VSTCB2ZXJzaW9uIDcuMzQuMCBo
YXMgYSBidWcgdGhhdCBwcmV2ZW50cyBhdXRoZW50aWNhdGlvbiB3aXRoIFNTTCB2MiBvciB2My5c
biI7CisgICAgICAgICAgICBwcmludCAiY1VSTCA3LjMzLjAgaXMga25vd24gdG8gd29yay4gVGhl
IGNVUkwgcHJvamVjdHMgaXMgcHJlcGFyaW5nIGFuIHVwZGF0ZSB0b1xuIjsKKyAgICAgICAgICAg
IHByaW50ICJjb3JyZWN0IHRoaXMgcHJvYmxlbS5cblxuIjsKKyAgICAgICAgICAgIGRpZSAiUGxl
YXNlIGluc3RhbGwgYSB3b3JraW5nIGNVUkwgYW5kIHRyeSBhZ2Fpbi5cbiI7CisgICAgICAgIH0K
ICAgICB9CiAKICAgICAjIE1hdGhNTCByZXF1aXJlcyBmb250cyB0aGF0IGRvIG5vdCBzaGlwIHdp
dGggV2luZG93cyAoYXQgbGVhc3QgdGhyb3VnaCBXaW5kb3dzIDgpLiBXYXJuIHRoZSB1c2VyIGlm
IHRoZXkgYXJlIG1pc3NpbmcKQEAgLTE2NzUsNyArMTY2OSw3IEBAIHN1YiBidWlsZFZpc3VhbFN0
dWRpb1Byb2plY3QKIAogICAgIG15ICRwbGF0Zm9ybSA9ICIvcDpQbGF0Zm9ybT0iIC4gKGlzV2lu
NjQoKSA/ICJ4NjQiIDogIldpbjMyIik7CiAgICAgbXkgJGxvZ1BhdGggPSBGaWxlOjpTcGVjLT5j
YXRkaXIoJGJhc2VQcm9kdWN0RGlyLCAkY29uZmlndXJhdGlvbik7Ci0gICAgRmlsZTo6UGF0aC0+
bWFrZV9wYXRoKCRsb2dQYXRoKSB1bmxlc3MgLWQgJGxvZ1BhdGg7CisgICAgbWFrZV9wYXRoKCRs
b2dQYXRoKSB1bmxlc3MgLWQgJGxvZ1BhdGg7CiAKICAgICBteSAkZXJyb3JMb2dGaWxlID0gRmls
ZTo6U3BlYy0+Y2F0ZmlsZSgkbG9nUGF0aCwgIndlYmtpdF9lcnJvcnMubG9nIik7CiAgICAgY2hv
bXAoJGVycm9yTG9nRmlsZSA9IGBjeWdwYXRoIC13ICIkZXJyb3JMb2dGaWxlImApIGlmIGlzQ3ln
d2luKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249578</attachid>
            <date>2015-03-27 10:13:18 -0700</date>
            <delta_ts>2015-03-27 13:52:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>13650</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">Y29tbWl0IDdkZGZjOTViNThlMTBmOTg2NDFhZTYxMjAxM2JkYjVjNmFjZTE3ZDgKQXV0aG9yOiBT
LiBMaXRoZXJ1bSA8bGl0aGVydW1AZ21haWwuY29tPgpEYXRlOiAgIEZyaSBNYXIgMjcgMDk6Mzk6
NDEgMjAxNSAtMDcwMAoKICAgIFdJUAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
IGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggYmZlY2JjNC4uNzAwNzIzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNS0wMy0yNyAgUy4gTGl0aGVydW0gIDxsaXRoZXJ1bUBnbWFpbC5jb20+
CisKKyAgICAgICAgU3VwcG9ydCBidWlsZGluZyBXVEYgb24gV2luZG93cyB3aXRob3V0IEN5Z3dp
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzMDg0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2luZG93
cyBkb2Vzbid0IGhhdmUgInRvdWNoIi4KKworICAgICAgICAqIFdURi52Y3hwcm9qL1dURkdlbmVy
YXRlZC5tYWtlOgorCiAyMDE1LTAzLTI2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUHJvZ3Jlc3MgdG93YXJkcyBDTWFrZSBvbiBNYWMuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURkdlbmVyYXRlZC5tYWtlIGIvU291
cmNlL1dURi9XVEYudmN4cHJvai9XVEZHZW5lcmF0ZWQubWFrZQppbmRleCBkOGZhYWM2Li42OGY2
Yzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURkdlbmVyYXRlZC5tYWtl
CisrKyBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGR2VuZXJhdGVkLm1ha2UKQEAgLTEsNSAr
MSw1IEBACiBhbGw6IFdURkhlYWRlckRldGVjdGlvbi5oCi0gICAgQHRvdWNoICIlQ29uZmlndXJh
dGlvbkJ1aWxkRGlyJVxidWlsZGZhaWxlZCIKKyAgICBAdHlwZSBOVUwgPiAiJUNvbmZpZ3VyYXRp
b25CdWlsZERpciVcYnVpbGRmYWlsZWQiCiAgICAgQHBlcmwgYnVpbGQtZ2VuZXJhdGVkLWZpbGVz
LnBsICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJSIgIiQoV0VCS0lUX0xJQlJBUklFUykiICIkKERF
QlVHU1VGRklYKSIgIiVQbGF0Zm9ybUFyY2hpdGVjdHVyZSUiCiAhSUYgIiQoT0ZGSUNJQUxfQlVJ
TEQpIiE9IjEiCiAgICAgLUBweXRob24yLjcgd29yay1hcm91bmQtdnMtZGVwZW5kZW5jeS10cmFj
a2luZy1idWdzLnB5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggYjE2NWQ2Ny4uODlhN2VjMiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE1LTAzLTI3ICBTLiBMaXRo
ZXJ1bSAgPGxpdGhlcnVtQGdtYWlsLmNvbT4KKworICAgICAgICBTdXBwb3J0IGJ1aWxkaW5nIFdU
RiBvbiBXaW5kb3dzIHdpdGhvdXQgQ3lnd2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDMwODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXaW5kb3dzIHdpdGhvdXQgQ3lnd2luIGRvZXNuJ3QgaGF2ZSBj
dXJsLCB1bnppcCwgb3IgZ3JlcC4gTHVja2lseSwgUGVybCBkb2VzIGFsbCBvZiB0aGVzZSB0aGlu
Z3MuCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBtaWdyYXRlcyB0byB1c2luZyBGaWxlOjpTcGVj
LT5jYXRmaWxlKCkgZm9yIGRpcmVjdG9yeSBzZXBhcmF0b3JzLgorCisgICAgICAgICogU2NyaXB0
cy91cGRhdGUtd2Via2l0LWRlcGVuZGVuY3k6CisgICAgICAgICh3YW50ZWQpOgorICAgICAgICAq
IFNjcmlwdHMvdXBkYXRlLXdlYmtpdC1zdXBwb3J0LWxpYnM6CisgICAgICAgICh3YW50ZWQpOgor
ICAgICAgICAoZG93bmxvYWRFeHBlY3RlZFZlcnNpb25OdW1iZXIpOgorICAgICAgICAoemlwRmls
ZVZlcnNpb24pOgorICAgICAgICAodG9Vbml4UGF0aCk6IERlbGV0ZWQuCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRkaXJzLnBtOgorICAgICAgICAoZGV0ZXJtaW5lU291cmNlRGlyKToKKyAgICAg
ICAgKHdpbmRvd3NTb3VyY2VTb3VyY2VEaXIpOgorICAgICAgICAod2luZG93c0xpYnJhcmllc0Rp
cik6CisgICAgICAgICh3aW5kb3dzT3V0cHV0RGlyKToKKyAgICAgICAgKGNoZWNrSW5zdGFsbGVk
VG9vbHMpOgorICAgICAgICAoYnVpbGRWaXN1YWxTdHVkaW9Qcm9qZWN0KToKKwogMjAxNS0wMy0y
NyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAg
IEZpeCBXaW5DYWlybyBib3QuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJr
aXQtZGVwZW5kZW5jeSBiL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1kZXBlbmRlbmN5Cmlu
ZGV4IGJiNWVkMjQuLjVlNmUyMGQgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdl
YmtpdC1kZXBlbmRlbmN5CisrKyBiL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1kZXBlbmRl
bmN5CkBAIC03MCw3ICs3MCw3IEBAIG15ICRwcmVmaXhJblppcCA9IHNoaWZ0OwogbXkgJHNvdXJj
ZURpciA9IHNvdXJjZURpcigpOwogbXkgJGZpbGUgPSBnZXRMaWJyYXJ5TmFtZSgkbGlic1VSTCk7
CiBteSAkemlwRmlsZSA9ICIkZmlsZS56aXAiOyAKLW15ICR3ZWJraXRMaWJyYXJpZXNEaXIgPSAk
RU5WeydXRUJLSVRfTElCUkFSSUVTJ30gfHwgIiRzb3VyY2VEaXIvV2ViS2l0TGlicmFyaWVzL3dp
biI7CitteSAkd2Via2l0TGlicmFyaWVzRGlyID0gJEVOVnsnV0VCS0lUX0xJQlJBUklFUyd9IHx8
IEZpbGU6OlNwZWMtPmNhdGZpbGUoJHNvdXJjZURpciwgIldlYktpdExpYnJhcmllcyIsICJ3aW4i
KTsKIG15ICR0bXBSZWxhdGl2ZURpciA9IEZpbGU6OlRlbXA6OnRlbXBkaXIoIndlYmtpdGxpYnNY
WFhYWFhYIiwgVE1QRElSID0+IDEsIENMRUFOVVAgPT4gMSk7CiBteSAkdG1wQWJzRGlyID0gRmls
ZTo6U3BlYy0+cmVsMmFicygkdG1wUmVsYXRpdmVEaXIpOwogCkBAIC04MCw3ICs4MCw3IEBAIG15
ICgkY29udGVudF90eXBlLCAkZG9jdW1lbnRfbGVuZ3RoLCAkbW9kaWZpZWRfdGltZSwgJGV4cGly
ZXMsICRzZXJ2ZXIpID0gaGVhZCgkCiAKIGlmIChkZWZpbmVkICRtb2RpZmllZF90aW1lKSB7CiAK
LSAgICBvcGVuIE5FVywgIj4iLCAiJHRtcEFic0Rpci8kZmlsZS5oZWFkZXJzIjsKKyAgICBvcGVu
IE5FVywgIj4iLCBGaWxlOjpTcGVjLT5jYXRmaWxlKCR0bXBBYnNEaXIsICIkZmlsZS5oZWFkZXJz
Iik7CiAgICAgcHJpbnQgTkVXICJMYXN0LU1vZGlmaWVkOiAiIC4gdGltZTJzdHIoJG1vZGlmaWVk
X3RpbWUpIC4gIlxuIjsKICAgICBjbG9zZSBORVc7CiAKQEAgLTkxLDE0ICs5MSwxNCBAQCBpZiAo
ZGVmaW5lZCAkbW9kaWZpZWRfdGltZSkgewogICAgIG15ICRoZWFkZXJVUkwgPSAkbGlic1VSTDsK
ICAgICAkaGVhZGVyVVJMID1+IHMvXC56aXAkL1wuaGVhZGVycy87CiAKLSAgICBteSAkcmVzdWx0
ID0gZ2V0c3RvcmUoJGhlYWRlclVSTCwgIiR0bXBBYnNEaXIvJGZpbGUuaGVhZGVycyIpOworICAg
IG15ICRyZXN1bHQgPSBnZXRzdG9yZSgkaGVhZGVyVVJMLCBGaWxlOjpTcGVjLT5jYXRmaWxlKCR0
bXBBYnNEaXIsICIkZmlsZS5oZWFkZXJzIikpOwogCiAgICAgaWYgKCFpc19zdWNjZXNzKCRyZXN1
bHQpKSB7CiAgICAgICAgIHByaW50IFNUREVSUiAiQ291bGRuJ3QgY2hlY2sgTGFzdC1Nb2RpZmll
ZCBkYXRlIG9mIG5ldyAkemlwRmlsZS5cbiI7CiAgICAgICAgIHByaW50IFNUREVSUiAiUGxlYXNl
IGVuc3VyZSB0aGF0IFBlcmwgY2FuIHVzZSBMV1A6OlNpbXBsZSB0byBjb25uZWN0IHRvIEhUVFBT
IHVybHMsIGFuZCB0aGF0ICRsaWJzVVJMIGlzIHJlYWNoYWJsZS5cbiI7CiAgICAgICAgIHByaW50
IFNUREVSUiAiWW91IG1heSBoYXZlIHRvIHJ1biBcJCBjcGFuIExXUDo6UHJvdG9jb2w6Omh0dHBz
XG4iOwogCi0gICAgICAgIGlmICghIC1mICIkd2Via2l0TGlicmFyaWVzRGlyLyRmaWxlLmhlYWRl
cnMiKSB7CisgICAgICAgIGlmICghIC1mIEZpbGU6OlNwZWMtPmNhdGZpbGUoJHdlYmtpdExpYnJh
cmllc0RpciwgIiRmaWxlLmhlYWRlcnMiKSkgewogICAgICAgICAgICAgcHJpbnQgU1RERVJSICJV
bmFibGUgdG8gY2hlY2sgTGFzdC1Nb2RpZmllZCBkYXRlIGFuZCBubyB2ZXJzaW9uIG9mICRmaWxl
IHRvIGZhbGwgYmFjayB0by5cbiI7CiAgICAgICAgICAgICBleGl0IDE7CiAgICAgICAgIH0KQEAg
LTEwOCwxMSArMTA4LDExIEBAIGlmIChkZWZpbmVkICRtb2RpZmllZF90aW1lKSB7CiAgICAgfQog
fQogCi1pZiAob3BlbiBORVcsICIkdG1wQWJzRGlyLyRmaWxlLmhlYWRlcnMiKSB7CitpZiAob3Bl
biBORVcsIEZpbGU6OlNwZWMtPmNhdGZpbGUoJHRtcEFic0RpciwgIiRmaWxlLmhlYWRlcnMiKSkg
ewogICAgIG15ICRuZXcgPSBsYXN0TW9kaWZpZWRUb1VuaXhUaW1lKDxORVc+KTsKICAgICBjbG9z
ZSBORVc7CiAKLSAgICBpZiAoZGVmaW5lZCAkbmV3ICYmIG9wZW4gT0xELCAiJHdlYmtpdExpYnJh
cmllc0Rpci8kZmlsZS5oZWFkZXJzIikgeworICAgIGlmIChkZWZpbmVkICRuZXcgJiYgb3BlbiBP
TEQsIEZpbGU6OlNwZWMtPmNhdGZpbGUoJHdlYmtpdExpYnJhcmllc0RpciwgIiRmaWxlLmhlYWRl
cnMiKSkgewogICAgICAgICBteSAkb2xkID0gbGFzdE1vZGlmaWVkVG9Vbml4VGltZSg8T0xEPik7
CiAgICAgICAgIGNsb3NlIE9MRDsKICAgICAgICAgaWYgKGRlZmluZWQgJG9sZCAmJiBhYnMoJG5l
dyAtICRvbGQpIDwgJG5ld25lc3NUaHJlc2hvbGQpIHsKQEAgLTEyNCwxMCArMTI0LDEwIEBAIGlm
IChvcGVuIE5FVywgIiR0bXBBYnNEaXIvJGZpbGUuaGVhZGVycyIpIHsKIAogcHJpbnQgIkRvd25s
b2FkaW5nICR6aXBGaWxlLi4uXG5cbiI7CiBwcmludCAiJGxpYnNVUkxcbiI7Ci1teSAkcmVzdWx0
ID0gZ2V0c3RvcmUoJGxpYnNVUkwsICIkdG1wQWJzRGlyLyR6aXBGaWxlIik7CitteSAkcmVzdWx0
ID0gZ2V0c3RvcmUoJGxpYnNVUkwsIEZpbGU6OlNwZWMtPmNhdGZpbGUoJHRtcEFic0RpciwgJHpp
cEZpbGUpKTsKIGRpZSAiQ291bGRuJ3QgZG93bmxvYWQgJHppcEZpbGUhIiBpZiBpc19lcnJvcigk
cmVzdWx0KTsKIAotbXkgJHppcCA9IEFyY2hpdmU6OlppcC0+bmV3KCIkdG1wQWJzRGlyLyR6aXBG
aWxlIik7CitteSAkemlwID0gQXJjaGl2ZTo6WmlwLT5uZXcoRmlsZTo6U3BlYy0+Y2F0ZmlsZSgk
dG1wQWJzRGlyLCAkemlwRmlsZSkpOwogJHJlc3VsdCA9ICR6aXAtPmV4dHJhY3RUcmVlKCIiLCAk
dG1wQWJzRGlyKTsKIGRpZSAiQ291bGRuJ3QgdW56aXAgJHppcEZpbGUuIiBpZiAkcmVzdWx0ICE9
IEFaX09LOwogCkBAIC0xMzUsOCArMTM1LDggQEAgcHJpbnQgIlxuSW5zdGFsbGluZyAkZmlsZS4u
LlxuIjsKIAogc3ViIHdhbnRlZAogewotICAgIG15ICRyZWxhdGl2ZU5hbWUgPSBGaWxlOjpTcGVj
LT5hYnMycmVsKCRGaWxlOjpGaW5kOjpuYW1lLCAiJHRtcEFic0Rpci8kZmlsZS8kcHJlZml4SW5a
aXAiKTsKLSAgICBteSAkZGVzdGluYXRpb24gPSAiJHdlYmtpdExpYnJhcmllc0Rpci8kcmVsYXRp
dmVOYW1lIjsKKyAgICBteSAkcmVsYXRpdmVOYW1lID0gRmlsZTo6U3BlYy0+YWJzMnJlbCgkRmls
ZTo6RmluZDo6bmFtZSwgRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkdG1wQWJzRGlyLCAkZmlsZSwgJHBy
ZWZpeEluWmlwKSk7CisgICAgbXkgJGRlc3RpbmF0aW9uID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgk
d2Via2l0TGlicmFyaWVzRGlyLCAkcmVsYXRpdmVOYW1lKTsKIAogICAgIGlmICgtZCAkXykgewog
ICAgICAgICBta2RpciAkZGVzdGluYXRpb247CkBAIC0xNDYsOSArMTQ2LDkgQEAgc3ViIHdhbnRl
ZAogICAgIGNvcHkoJF8sICRkZXN0aW5hdGlvbik7CiB9CiAKLUZpbGU6OkZpbmQ6OmZpbmQoXCZ3
YW50ZWQsICIkdG1wQWJzRGlyLyRmaWxlIik7CitGaWxlOjpGaW5kOjpmaW5kKFwmd2FudGVkLCBG
aWxlOjpTcGVjLT5jYXRmaWxlKCR0bXBBYnNEaXIsICRmaWxlKSk7CiAKLSRyZXN1bHQgPSBtb3Zl
KCIkdG1wQWJzRGlyLyRmaWxlLmhlYWRlcnMiLCAkd2Via2l0TGlicmFyaWVzRGlyKTsKKyRyZXN1
bHQgPSBtb3ZlKEZpbGU6OlNwZWMtPmNhdGZpbGUoJHRtcEFic0RpciwgIiRmaWxlLmhlYWRlcnMi
KSwgJHdlYmtpdExpYnJhcmllc0Rpcik7CiBwcmludCBTVERFUlIgIkNvdWxkbid0IG1vdmUgJGZp
bGUuaGVhZGVycyB0byAkd2Via2l0TGlicmFyaWVzRGlyIiAuICIuXG4iIGlmICRyZXN1bHQgPT0g
MDsKIAogcHJpbnQgIlRoZSAkZmlsZSBoYXMgYmVlbiBzdWNlc3NmdWxseSBpbnN0YWxsZWQgaW5c
biAkd2Via2l0TGlicmFyaWVzRGlyXG4iOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy91cGRh
dGUtd2Via2l0LXN1cHBvcnQtbGlicyBiL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1zdXBw
b3J0LWxpYnMKaW5kZXggNDBlOTg1Yy4uY2Q1YTNmNSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0
cy91cGRhdGUtd2Via2l0LXN1cHBvcnQtbGlicworKysgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13
ZWJraXQtc3VwcG9ydC1saWJzCkBAIC0zMiwxMSArMzIsMTQgQEAKIHVzZSBzdHJpY3Q7CiB1c2Ug
d2FybmluZ3M7CiAKK3VzZSBBcmNoaXZlOjpaaXAgcXcoIDpFUlJPUl9DT0RFUyApOwordXNlIEZp
bGU6OkNvcHk7CiB1c2UgRmlsZTo6RmluZDsKIHVzZSBGaWxlOjpUZW1wICgpOwogdXNlIEZpbGU6
OlNwZWM7CiB1c2UgRmluZEJpbjsKIHVzZSBsaWIgJEZpbmRCaW46OkJpbjsKK3VzZSBMV1A6OlNp
bXBsZTsKIHVzZSB3ZWJraXRkaXJzOwogCiB1c2UgY29uc3RhbnQgTk9UQVZFUlNJT04gPT4gIi0x
IjsKQEAgLTQ0LDkgKzQ3LDkgQEAgdXNlIGNvbnN0YW50IE5PVEFWRVJTSU9OID0+ICItMSI7CiBt
eSAkc291cmNlRGlyID0gc291cmNlRGlyKCk7CiBteSAkZmlsZSA9ICJXZWJLaXRTdXBwb3J0TGli
cmFyeSI7CiBteSAkemlwRmlsZSA9ICIkZmlsZS56aXAiOyAKLW15ICR6aXBEaXJlY3RvcnkgPSB0
b1VuaXhQYXRoKCRFTlZ7J1dFQktJVFNVUFBPUlRMSUJSQVJJRVNaSVBESVInfSkgfHwgJHNvdXJj
ZURpcjsKK215ICR6aXBEaXJlY3RvcnkgPSAkRU5WeydXRUJLSVRTVVBQT1JUTElCUkFSSUVTWklQ
RElSJ30gfHwgJHNvdXJjZURpcjsKIG15ICRwYXRoVG9aaXAgPSBGaWxlOjpTcGVjLT5jYXRmaWxl
KCR6aXBEaXJlY3RvcnksICR6aXBGaWxlKTsKLW15ICR3ZWJraXRMaWJyYXJpZXNEaXIgPSB0b1Vu
aXhQYXRoKCRFTlZ7J1dFQktJVF9MSUJSQVJJRVMnfSkgfHwgIiRzb3VyY2VEaXIvV2ViS2l0TGli
cmFyaWVzL3dpbiI7CitteSAkd2Via2l0TGlicmFyaWVzRGlyID0gJEVOVnsnV0VCS0lUX0xJQlJB
UklFUyd9IHx8IEZpbGU6OlNwZWMtPmNhdGZpbGUoJHNvdXJjZURpciwgIldlYktpdExpYnJhcmll
cyIsICJ3aW4iKTsKIG15ICR2ZXJzaW9uRmlsZSA9ICRmaWxlIC4gIlZlcnNpb24iOwogbXkgJHBh
dGhUb1ZlcnNpb25GaWxlID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkd2Via2l0TGlicmFyaWVzRGly
LCAkdmVyc2lvbkZpbGUpOwogbXkgJHRtcFJlbGF0aXZlRGlyID0gRmlsZTo6VGVtcDo6dGVtcGRp
cigid2Via2l0bGlic1hYWFhYWFgiLCBUTVBESVIgPT4gMSwgQ0xFQU5VUCA9PiAxKTsKQEAgLTcx
LDM3ICs3NCwzMCBAQCBpZiAoJHppcEZpbGVWZXJzaW9uIGVxICRleHRyYWN0ZWRWZXJzaW9uKSB7
CiAgICAgZXhpdDsKIH0KIAotbXkgJHJlc3VsdCA9IHN5c3RlbSAidW56aXAiLCAiLXEiLCAiLWQi
LCAkdG1wQWJzRGlyLCAkcGF0aFRvWmlwOwotZGllICJDb3VsZG4ndCB1bnppcCAkemlwRmlsZS4i
IGlmICRyZXN1bHQ7CitteSAkemlwID0gQXJjaGl2ZTo6WmlwLT5uZXcoJHBhdGhUb1ppcCk7Citt
eSAkcmVzdWx0ID0gJHppcC0+ZXh0cmFjdFRyZWUoIiIsICR0bXBBYnNEaXIpOworZGllICJDb3Vs
ZG4ndCB1bnppcCAkemlwRmlsZS4iIGlmICRyZXN1bHQgIT0gQVpfT0s7CiAKIHByaW50ICJcbklu
c3RhbGxpbmcgJGZpbGUuLi5cbiI7CiAKIHN1YiB3YW50ZWQKIHsKLSAgICBteSAkcmVsYXRpdmVO
YW1lID0gRmlsZTo6U3BlYy0+YWJzMnJlbCgkRmlsZTo6RmluZDo6bmFtZSwgIiR0bXBBYnNEaXIv
JGZpbGUvd2luIik7Ci0gICAgbXkgJGRlc3RpbmF0aW9uID0gIiR3ZWJraXRMaWJyYXJpZXNEaXIv
JHJlbGF0aXZlTmFtZSI7CisgICAgbXkgJHJlbGF0aXZlTmFtZSA9IEZpbGU6OlNwZWMtPmFiczJy
ZWwoJEZpbGU6OkZpbmQ6Om5hbWUsIEZpbGU6OlNwZWMtPmNhdGZpbGUoJHRtcEFic0RpciwgIiRm
aWxlIiwgIndpbiIpKTsKKyAgICBteSAkZGVzdGluYXRpb24gPSBGaWxlOjpTcGVjLT5jYXRmaWxl
KCR3ZWJraXRMaWJyYXJpZXNEaXIsICRyZWxhdGl2ZU5hbWUpOwogCiAgICAgaWYgKC1kICRfKSB7
CiAgICAgICAgIG1rZGlyICRkZXN0aW5hdGlvbjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIHN5c3RlbSAiY3AiLCAkXywgJGRlc3RpbmF0aW9uOworICAgIGNvcHkoJF8sICRkZXN0aW5h
dGlvbik7CiB9CiAKLUZpbGU6OkZpbmQ6OmZpbmQoXCZ3YW50ZWQsICIkdG1wQWJzRGlyLyRmaWxl
Iik7CitGaWxlOjpGaW5kOjpmaW5kKFwmd2FudGVkLCBGaWxlOjpTcGVjLT5jYXRmaWxlKCR0bXBB
YnNEaXIsICRmaWxlKSk7CiAKIHByaW50ICJUaGUgJGZpbGUgaGFzIGJlZW4gc3VjZXNzZnVsbHkg
aW5zdGFsbGVkIGluXG4gJHdlYmtpdExpYnJhcmllc0RpclxuIjsKIGV4aXQ7CiAKLXN1YiB0b1Vu
aXhQYXRoCi17Ci0gICAgbXkgJHBhdGggPSBzaGlmdDsKLSAgICByZXR1cm4gdW5sZXNzICRwYXRo
OwotICAgIGNob21wKCRwYXRoID0gYGN5Z3BhdGggLXUgJyRwYXRoJ2ApOwotICAgIHJldHVybiAk
cGF0aDsKLX0KLQogc3ViIGV4dHJhY3RlZFZlcnNpb24KIHsKICAgICBpZiAob3BlbiBWRVJTSU9O
LCAiPCIsICRwYXRoVG9WZXJzaW9uRmlsZSkgewpAQCAtMTE0LDE0ICsxMTAsMTUgQEAgc3ViIGV4
dHJhY3RlZFZlcnNpb24KIAogc3ViIGRvd25sb2FkRXhwZWN0ZWRWZXJzaW9uTnVtYmVyCiB7Ci0g
ICAgY2hvbXAobXkgJGV4cGVjdGVkVmVyc2lvbiA9IGBjdXJsIC1zIC0tc3NsdjMgLWsgJHZlcnNp
b25GaWxlVVJMYCk7Ci0gICAgcmV0dXJuIFdFWElUU1RBVFVTKCQ/KSA/IE5PVEFWRVJTSU9OIDog
JGV4cGVjdGVkVmVyc2lvbjsKKyAgICBjaG9tcChteSAkZXhwZWN0ZWRWZXJzaW9uID0gZ2V0KCR2
ZXJzaW9uRmlsZVVSTCkpOworICAgIHJldHVybiBkZWZpbmVkICRleHBlY3RlZFZlcnNpb24gPyAk
ZXhwZWN0ZWRWZXJzaW9uIDogTk9UQVZFUlNJT047CiB9CiAKIHN1YiB6aXBGaWxlVmVyc2lvbgog
ewogICAgIHJldHVybiBOT1RBVkVSU0lPTiB1bmxlc3MgLWYgJHBhdGhUb1ppcDsKLSAgICBjaG9t
cChteSAkemlwRmlsZVZlcnNpb24gPSBgdW56aXAgLXAgIiRwYXRoVG9aaXAiICRmaWxlL3dpbi8k
dmVyc2lvbkZpbGVgKTsKKyAgICBteSAkemlwID0gQXJjaGl2ZTo6WmlwLT5uZXcoJHBhdGhUb1pp
cCk7CisgICAgY2hvbXAobXkgJHppcEZpbGVWZXJzaW9uID0gJHppcC0+Y29udGVudHMoIiRmaWxl
L3dpbi8kdmVyc2lvbkZpbGUiKSk7CiAgICAgcmV0dXJuICR6aXBGaWxlVmVyc2lvbjsKIH0KIApk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRkaXJzLnBtCmluZGV4IDczMzBmNjguLmM1NDNlMDcgMTAwNzU1Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0ZGlycy5wbQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KQEAg
LTE0NCwxNCArMTQ0LDE0IEBAIHN1YiBkZXRlcm1pbmVTb3VyY2VEaXIKIAogICAgICMgd2Fsa3Mg
dXAgcGF0aCBjaGVja2luZyBlYWNoIGRpcmVjdG9yeSB0byBzZWUgaWYgaXQgaXMgdGhlIG1haW4g
V2ViS2l0IHByb2plY3QgZGlyLCAKICAgICAjIGRlZmluZWQgYnkgY29udGFpbmluZyBTb3VyY2Vz
LCBXZWJDb3JlLCBhbmQgV2ViS2l0Ci0gICAgdW50aWwgKCgtZCAiJHNvdXJjZURpci9Tb3VyY2Ui
ICYmIC1kICIkc291cmNlRGlyL1NvdXJjZS9XZWJDb3JlIiAmJiAtZCAiJHNvdXJjZURpci9Tb3Vy
Y2UvV2ViS2l0IikgfHwgKC1kICIkc291cmNlRGlyL0ludGVybmFsIiAmJiAtZCAiJHNvdXJjZURp
ci9PcGVuU291cmNlIikpCisgICAgdW50aWwgKCgtZCBGaWxlOjpTcGVjLT5jYXRmaWxlKCRzb3Vy
Y2VEaXIsICJTb3VyY2UiKSAmJiAtZCBGaWxlOjpTcGVjLT5jYXRmaWxlKCRzb3VyY2VEaXIsICJT
b3VyY2UiLCAiV2ViQ29yZSIpICYmIC1kIEZpbGU6OlNwZWMtPmNhdGZpbGUoJHNvdXJjZURpciwg
IlNvdXJjZSIsICJXZWJLaXQiKSkgfHwgKC1kIEZpbGU6OlNwZWMtPmNhdGZpbGUoJHNvdXJjZURp
ciwgIkludGVybmFsIikgJiYgLWQgRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkc291cmNlRGlyLCAiT3Bl
blNvdXJjZSIpKSkKICAgICB7CiAgICAgICAgIGlmICgkc291cmNlRGlyICF+IHN8L1teL10rJHx8
KSB7CiAgICAgICAgICAgICBkaWUgIkNvdWxkIG5vdCBmaW5kIHRvcCBsZXZlbCB3ZWJraXQgZGly
ZWN0b3J5IGFib3ZlIHNvdXJjZSBkaXJlY3RvcnkgdXNpbmcgRmluZEJpbi5cbiI7CiAgICAgICAg
IH0KICAgICB9CiAKLSAgICAkc291cmNlRGlyID0gIiRzb3VyY2VEaXIvT3BlblNvdXJjZSIgaWYg
LWQgIiRzb3VyY2VEaXIvT3BlblNvdXJjZSI7CisgICAgJHNvdXJjZURpciA9IEZpbGU6OlNwZWMt
PmNhdGZpbGUoJHNvdXJjZURpciwgIk9wZW5Tb3VyY2UiKSBpZiAtZCBGaWxlOjpTcGVjLT5jYXRm
aWxlKCRzb3VyY2VEaXIsICJPcGVuU291cmNlIik7CiB9CiAKIHN1YiBjdXJyZW50UGVybFBhdGgo
KQpAQCAtMTQzMywxNyArMTQzMywxNyBAQCBzdWIgd2luZG93c1NvdXJjZURpcigpCiAKIHN1YiB3
aW5kb3dzU291cmNlU291cmNlRGlyKCkKIHsKLSAgICByZXR1cm4gd2luZG93c1NvdXJjZURpcigp
IC4gIlxcU291cmNlIjsKKyAgICByZXR1cm4gRmlsZTo6U3BlYy0+Y2F0ZmlsZSh3aW5kb3dzU291
cmNlRGlyKCksICJTb3VyY2UiKTsKIH0KIAogc3ViIHdpbmRvd3NMaWJyYXJpZXNEaXIoKQogewot
ICAgIHJldHVybiB3aW5kb3dzU291cmNlRGlyKCkgLiAiXFxXZWJLaXRMaWJyYXJpZXNcXHdpbiI7
CisgICAgcmV0dXJuIEZpbGU6OlNwZWMtPmNhdGZpbGUod2luZG93c1NvdXJjZURpcigpLCAiV2Vi
S2l0TGlicmFyaWVzIiwgIndpbiIpOwogfQogCiBzdWIgd2luZG93c091dHB1dERpcigpCiB7Ci0g
ICAgcmV0dXJuIHdpbmRvd3NTb3VyY2VEaXIoKSAuICJcXFdlYktpdEJ1aWxkIjsKKyAgICByZXR1
cm4gRmlsZTo6U3BlYy0+Y2F0ZmlsZSh3aW5kb3dzU291cmNlRGlyKCksICJXZWJLaXRCdWlsZCIp
OwogfQogCiBzdWIgZm9udEV4aXN0cygkKQpAQCAtMTQ1NiwyNiArMTQ1NiwyMCBAQCBzdWIgZm9u
dEV4aXN0cygkKQogCiBzdWIgY2hlY2tJbnN0YWxsZWRUb29scygpCiB7Ci0gICAgIyBTVk4gMS43
LjEwIGlzIGtub3duIHRvIGJlIGNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNlcnZlcnMuIFNWTiAx
LjgueCBzZWVtcyB0byBiZSBtaXNzaW5nIHNvbWUgYXV0aGVudGljYXRpb24KLSAgICAjIHByb3Rv
Y29scyB3ZSB1c2UgZm9yIHN2bi53ZWJraXQub3JnOgotICAgIG15ICRzdm5WZXJzaW9uID0gYHN2
biAtLXZlcnNpb24gMj4gTlVMIHwgZ3JlcCAiXFxzdmVyc2lvbiJgOwotICAgIGNob21wKCRzdm5W
ZXJzaW9uKTsKLSAgICBpZiAoISQ/IGFuZCAkc3ZuVmVyc2lvbiA9fiAvMVwuOFwuLykgewotICAg
ICAgICBwcmludCAic3ZuIDEuNy4xMCBpcyBrbm93biB0byBiZSBjb21wYXRpYmxlIHdpdGggb3Vy
IHNlcnZlcnMuIFlvdSBhcmUgcnVubmluZyAkc3ZuVmVyc2lvbixcbndoaWNoIG1heSBub3Qgd29y
ayBwcm9wZXJseS5cbiIKLSAgICB9Ci0KICAgICAjIGVudmlyb25tZW50IHZhcmlhYmxlcy4gQXZv
aWQgdW50aWwgdGhpcyBpcyBjb3JyZWN0ZWQuCiAgICAgbXkgJHB5dGhvblZlciA9IGBweXRob24g
LS12ZXJzaW9uIDI+JjFgOwogICAgIGRpZSAiWW91IG11c3QgaGF2ZSBQeXRob24gaW5zdGFsbGVk
IHRvIGJ1aWxkIFdlYktpdC5cbiIgaWYgKCQ/KTsKIAogICAgICMgY1VSTCA3LjM0LjAgaGFzIGEg
YnVnIHRoYXQgcHJldmVudHMgYXV0aGVudGljYXRpb24gd2l0aCBvcGVuc291cmNlLmFwcGxlLmNv
bSAoYW5kIG90aGVyIHRoaW5ncyB1c2luZyBTU0wzKS4KLSAgICBteSAkY3VybFZlciA9IGBjdXJs
IC0tdmVyc2lvbiAyPiBOVUwgfCBncmVwICJjdXJsImA7Ci0gICAgY2hvbXAoJGN1cmxWZXIpOwot
ICAgIGlmICghJD8gYW5kICRjdXJsVmVyID1+IC9saWJjdXJsXC83XC4zNFwuMC8pIHsKLSAgICAg
ICAgcHJpbnQgImNVUkwgdmVyc2lvbiA3LjM0LjAgaGFzIGEgYnVnIHRoYXQgcHJldmVudHMgYXV0
aGVudGljYXRpb24gd2l0aCBTU0wgdjIgb3IgdjMuXG4iOwotICAgICAgICBwcmludCAiY1VSTCA3
LjMzLjAgaXMga25vd24gdG8gd29yay4gVGhlIGNVUkwgcHJvamVjdHMgaXMgcHJlcGFyaW5nIGFu
IHVwZGF0ZSB0b1xuIjsKLSAgICAgICAgcHJpbnQgImNvcnJlY3QgdGhpcyBwcm9ibGVtLlxuXG4i
OwotICAgICAgICBkaWUgIlBsZWFzZSBpbnN0YWxsIGEgd29ya2luZyBjVVJMIGFuZCB0cnkgYWdh
aW4uXG4iOworICAgIG15ICRjdXJsVmVyID0gYGN1cmwgLS12ZXJzaW9uIDI+IE5VTGA7CisgICAg
aWYgKCEkPyBhbmQgJGN1cmxWZXIgPX4gIiguKmN1cmwuKikiKSB7CisgICAgICAgICRjdXJsVmVy
ID0gJDE7CisgICAgICAgIGlmICgkY3VybFZlciA9fiAvbGliY3VybFwvN1wuMzRcLjAvKSB7Cisg
ICAgICAgICAgICBwcmludCAiY1VSTCB2ZXJzaW9uIDcuMzQuMCBoYXMgYSBidWcgdGhhdCBwcmV2
ZW50cyBhdXRoZW50aWNhdGlvbiB3aXRoIFNTTCB2MiBvciB2My5cbiI7CisgICAgICAgICAgICBw
cmludCAiY1VSTCA3LjMzLjAgaXMga25vd24gdG8gd29yay4gVGhlIGNVUkwgcHJvamVjdHMgaXMg
cHJlcGFyaW5nIGFuIHVwZGF0ZSB0b1xuIjsKKyAgICAgICAgICAgIHByaW50ICJjb3JyZWN0IHRo
aXMgcHJvYmxlbS5cblxuIjsKKyAgICAgICAgICAgIGRpZSAiUGxlYXNlIGluc3RhbGwgYSB3b3Jr
aW5nIGNVUkwgYW5kIHRyeSBhZ2Fpbi5cbiI7CisgICAgICAgIH0KICAgICB9CiAKICAgICAjIE1h
dGhNTCByZXF1aXJlcyBmb250cyB0aGF0IGRvIG5vdCBzaGlwIHdpdGggV2luZG93cyAoYXQgbGVh
c3QgdGhyb3VnaCBXaW5kb3dzIDgpLiBXYXJuIHRoZSB1c2VyIGlmIHRoZXkgYXJlIG1pc3NpbmcK
QEAgLTE2NzUsNyArMTY2OSw3IEBAIHN1YiBidWlsZFZpc3VhbFN0dWRpb1Byb2plY3QKIAogICAg
IG15ICRwbGF0Zm9ybSA9ICIvcDpQbGF0Zm9ybT0iIC4gKGlzV2luNjQoKSA/ICJ4NjQiIDogIldp
bjMyIik7CiAgICAgbXkgJGxvZ1BhdGggPSBGaWxlOjpTcGVjLT5jYXRkaXIoJGJhc2VQcm9kdWN0
RGlyLCAkY29uZmlndXJhdGlvbik7Ci0gICAgRmlsZTo6UGF0aC0+bWFrZV9wYXRoKCRsb2dQYXRo
KSB1bmxlc3MgLWQgJGxvZ1BhdGggb3IgJGxvZ1BhdGggZXEgIi4iOworICAgIG1ha2VfcGF0aCgk
bG9nUGF0aCkgdW5sZXNzIC1kICRsb2dQYXRoIG9yICRsb2dQYXRoIGVxICIuIjsKIAogICAgIG15
ICRlcnJvckxvZ0ZpbGUgPSBGaWxlOjpTcGVjLT5jYXRmaWxlKCRsb2dQYXRoLCAid2Via2l0X2Vy
cm9ycy5sb2ciKTsKICAgICBjaG9tcCgkZXJyb3JMb2dGaWxlID0gYGN5Z3BhdGggLXcgIiRlcnJv
ckxvZ0ZpbGUiYCkgaWYgaXNDeWd3aW4oKTsK
</data>
<flag name="review"
          id="274397"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
      

    </bug>

</bugzilla>