<?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>190797</bug_id>
          
          <creation_ts>2018-10-22 11:31:59 -0700</creation_ts>
          <short_desc>[Win] Allow passing extra vswhere arguments to build-webkit.</short_desc>
          <delta_ts>2021-11-01 12:51:31 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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="Basuke Suzuki">basuke</reporter>
          <assigned_to name="Basuke Suzuki">basuke</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>basuke</cc>
    
    <cc>bburg</cc>
    
    <cc>bfulgham</cc>
    
    <cc>dbates</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>fujii</cc>
    
    <cc>lforschler</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mitz</cc>
    
    <cc>pvollan</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>stephan.szabo</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1471268</commentid>
    <comment_count>0</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-10-22 11:31:59 -0700</bug_when>
    <thetext>With this patch, it is possible to pass extra arguments to vswhere which is used internally to find the location of MS VisualStudio.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471276</commentid>
    <comment_count>1</comment_count>
      <attachid>352897</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-10-22 11:44:09 -0700</bug_when>
    <thetext>Created attachment 352897
PATCH</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471285</commentid>
    <comment_count>2</comment_count>
      <attachid>352898</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-10-22 11:55:36 -0700</bug_when>
    <thetext>Created attachment 352898
PATCH

Example:
# to use version greater or equeal than 15.7 but lesser than 15.8
&gt; perl build-webkit --wincairo --vswhereargs=&apos;-version [15.7,15.8)&apos;

# to use VisualStudio Community over VisualStudio Professional
&gt; perl build-webkit --wincairo --vswhereargs=&apos;-products Microsoft.VisualStudio.Product.Community&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471299</commentid>
    <comment_count>3</comment_count>
      <attachid>352901</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-10-22 12:37:56 -0700</bug_when>
    <thetext>Created attachment 352901
PATCH</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471300</commentid>
    <comment_count>4</comment_count>
      <attachid>352901</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-10-22 12:44:23 -0700</bug_when>
    <thetext>Comment on attachment 352901
PATCH

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

Seems fine once builds pass. :)

&gt; Tools/ChangeLog:12
&gt; +        # to use version greater or equeal than 15.7 but lesser than 15.8

Nit: &quot;greater than or equal to 15.7 but less than 15.8&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471307</commentid>
    <comment_count>5</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-10-22 12:56:30 -0700</bug_when>
    <thetext>&gt; &gt; Tools/ChangeLog:12
&gt; &gt; +        # to use version greater or equeal than 15.7 but lesser than 15.8
&gt; 
&gt; Nit: &quot;greater than or equal to 15.7 but less than 15.8&quot;

Ouch. Yes, that&apos;s right. GTE. Real programmer doesn&apos;t mistake this English. Shame on me. I&apos;ll fix it after seeing the result of build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471311</commentid>
    <comment_count>6</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2018-10-22 13:09:51 -0700</bug_when>
    <thetext>Is there a reason why this is needed? https://bugs.webkit.org/show_bug.cgi?id=189987 should be resolved now. I don&apos;t think we should be figuring out semantic versioning because VC had problems. We should always be able to build with VC and I think the VC++ now has us in their test suite so hopefully this shouldn&apos;t happen again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471318</commentid>
    <comment_count>7</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-10-22 13:17:49 -0700</bug_when>
    <thetext>(In reply to Don Olmstead from comment #6)
&gt; Is there a reason why this is needed?
&gt; https://bugs.webkit.org/show_bug.cgi?id=189987 should be resolved now. I
&gt; don&apos;t think we should be figuring out semantic versioning because VC had
&gt; problems. We should always be able to build with VC and I think the VC++ now
&gt; has us in their test suite so hopefully this shouldn&apos;t happen again.

Well this shouldn&apos;t but &quot;History repeats itself&quot;. VC changes its implementation on 15.8 and that causes https://bugs.webkit.org/show_bug.cgi?id=189987 .

Also it&apos;s handy for us to have a way to test preview installation. I don&apos;t see any downside of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471323</commentid>
    <comment_count>8</comment_count>
      <attachid>352905</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-10-22 13:32:54 -0700</bug_when>
    <thetext>Created attachment 352905
FIX example sentence in ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471330</commentid>
    <comment_count>9</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2018-10-22 14:01:17 -0700</bug_when>
    <thetext>(In reply to Basuke Suzuki from comment #7)
&gt; (In reply to Don Olmstead from comment #6)
&gt; &gt; Is there a reason why this is needed?
&gt; &gt; https://bugs.webkit.org/show_bug.cgi?id=189987 should be resolved now. I
&gt; &gt; don&apos;t think we should be figuring out semantic versioning because VC had
&gt; &gt; problems. We should always be able to build with VC and I think the VC++ now
&gt; &gt; has us in their test suite so hopefully this shouldn&apos;t happen again.
&gt; 
&gt; Well this shouldn&apos;t but &quot;History repeats itself&quot;. VC changes its
&gt; implementation on 15.8 and that causes
&gt; https://bugs.webkit.org/show_bug.cgi?id=189987 .
&gt; 
&gt; Also it&apos;s handy for us to have a way to test preview installation. I don&apos;t
&gt; see any downside of this patch.

My only complaint is that vswhere is used internally so exposing things doesn&apos;t seem to be something people would do on a regular basis. I can see the utility of this but it seems like a pretty small use case.

I don&apos;t see any problems with the contents of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471483</commentid>
    <comment_count>10</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-10-22 21:05:07 -0700</bug_when>
    <thetext>Don, is wincairo bot fails actually because of this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471575</commentid>
    <comment_count>11</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-10-23 08:12:02 -0700</bug_when>
    <thetext>(In reply to Basuke Suzuki from comment #10)
&gt; Don, is wincairo bot fails actually because of this patch?

No, it&apos;s just the MIDL issue again (bug 187725).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471750</commentid>
    <comment_count>12</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-10-23 20:36:49 -0700</bug_when>
    <thetext>AppleWin port doesn&apos;t use vswhere.

  Bug 189412 – download-github-release.py hits errors on Windows bots

WinCairo BuildBot and EWS bots explicitly set env vars by using Select-VSEnvironment outside of build-webkit.

  https://github.com/WebKitForWindows/docker-webkit-dev/blob/master/ews/windowsservercore/WebKit-EWS/Run-EWS.ps1#L33
  https://github.com/WebKitForWindows/docker-webkit-dev/blob/master/buildbot/windowsservercore/WebKit-BuildWorker/Run-BuildbotWorker.ps1#L54

build-webkit prefers VSINSTALLDIR env var to vswhere.

   https://github.com/WebKit/webkit/blob/19cf5c15f58dcbe9843f2ffa2ede30a96bc97bbd/Tools/Scripts/webkitdirs.pm#L696

I think vswhere should be removed from build-webkit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471752</commentid>
    <comment_count>13</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-10-23 20:44:23 -0700</bug_when>
    <thetext>FYI,

https://github.com/Microsoft/vswhere

&gt; vswhere is included with the installer as of Visual Studio 2017 version 15.2 and later, and can
&gt; be found at the following location: %ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe.

So, I&apos;m using it like following:

&gt; for /F &quot;delims=&quot; %%I in (&apos;&quot;%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe&quot; -latest -property installationPath&apos;) do set VSPATH=%%I
&gt; call &quot;%VSPATH%\VC\Auxiliary\Build\vcvars64.bat&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472137</commentid>
    <comment_count>14</comment_count>
      <attachid>352905</attachid>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2018-10-25 11:42:23 -0700</bug_when>
    <thetext>Comment on attachment 352905
FIX example sentence in ChangeLog

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

&gt; Tools/Scripts/webkitdirs.pm:671
&gt; +    undef $@;

If we want to use eval{}, it may be a good idea to import Try::Tiny module into the tree and use it instead, its usage is much more clear and less error prone

&gt; Tools/Scripts/webkitdirs.pm:673
&gt; +    return undef unless (scalar @$installations);

I think following code would be easier to read:

unless (@$installations) {
    return;
}

Though you may want to omit it completely, because sorting empty array requires no work

&gt; Tools/Scripts/webkitdirs.pm:683
&gt; +    return $vsWhereFoundInstallation;

return $sorted[0]

What you really want is to return first element of array, not to modify that array for possible future use (what pop does)

&gt; Tools/Scripts/webkitdirs.pm:686
&gt; +sub visualStudioProductIdPriority($)

See below about prototypes

&gt; Tools/Scripts/webkitdirs.pm:1972
&gt; +sub buildVisualStudioProject($;$;$)

In modern perl community usage of prototypes is considered harmful, unless it is done to imitate psecific behavior of builtin functions, or to implement embedded DSL. See e.g. http://www.modernperlbooks.com/mt/2009/08/the-problem-with-prototypes.html

Also, correct spelling of this one is ($;$$)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472162</commentid>
    <comment_count>15</comment_count>
      <attachid>352905</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-10-25 13:14:15 -0700</bug_when>
    <thetext>Comment on attachment 352905
FIX example sentence in ChangeLog

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

Thanks for review!

&gt;&gt; Tools/Scripts/webkitdirs.pm:671
&gt;&gt; +    undef $@;
&gt; 
&gt; If we want to use eval{}, it may be a good idea to import Try::Tiny module into the tree and use it instead, its usage is much more clear and less error prone

Okay, I&apos;ll try. How can I import perl module into tree?

&gt;&gt; Tools/Scripts/webkitdirs.pm:673
&gt;&gt; +    return undef unless (scalar @$installations);
&gt; 
&gt; I think following code would be easier to read:
&gt; 
&gt; unless (@$installations) {
&gt;     return;
&gt; }
&gt; 
&gt; Though you may want to omit it completely, because sorting empty array requires no work

Okay to remove this at this. And I learned accessing out of indexed value is undef. Fancy.

&gt;&gt; Tools/Scripts/webkitdirs.pm:683
&gt;&gt; +    return $vsWhereFoundInstallation;
&gt; 
&gt; return $sorted[0]
&gt; 
&gt; What you really want is to return first element of array, not to modify that array for possible future use (what pop does)

Okay. Right.

&gt;&gt; Tools/Scripts/webkitdirs.pm:1972
&gt;&gt; +sub buildVisualStudioProject($;$;$)
&gt; 
&gt; In modern perl community usage of prototypes is considered harmful, unless it is done to imitate psecific behavior of builtin functions, or to implement embedded DSL. See e.g. http://www.modernperlbooks.com/mt/2009/08/the-problem-with-prototypes.html
&gt; 
&gt; Also, correct spelling of this one is ($;$$)

Got it. I will remove that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472274</commentid>
    <comment_count>16</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-10-25 18:09:38 -0700</bug_when>
    <thetext>Respond to my comment. Why do you need this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472300</commentid>
    <comment_count>17</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-10-25 19:43:20 -0700</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #16)
&gt; Respond to my comment. Why do you need this change?

See my previous comment to Don. WinCairo uses vswhere so that it is better way for choosing instance of VisualStudio. If you want to delete that, that should be another discussion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472310</commentid>
    <comment_count>18</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-10-25 20:37:28 -0700</bug_when>
    <thetext>(In reply to Basuke Suzuki from comment #17)
&gt; See my previous comment to Don. WinCairo uses vswhere so that it is better
&gt; way for choosing instance of VisualStudio.

This is not right.  WinCairo doesn&apos;t necessarily use vswhere. (Comment 12)
It use VSINSTALLDIR if VSINSTALLDIR is set. Otherwise, it uses vswhere.

You can simply use vcvars64.bat. What is the difference using command line switch and using vcvars64.bat?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472347</commentid>
    <comment_count>19</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-10-26 00:23:39 -0700</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #18)
&gt; (In reply to Basuke Suzuki from comment #17)
&gt; &gt; See my previous comment to Don. WinCairo uses vswhere so that it is better
&gt; &gt; way for choosing instance of VisualStudio.
&gt; 
&gt; This is not right.  WinCairo doesn&apos;t necessarily use vswhere. (Comment 12)
&gt; It use VSINSTALLDIR if VSINSTALLDIR is set. Otherwise, it uses vswhere.

So that WinCairo uses vswhere if env var is not set. And that means vswhere is the default choice because that var isn&apos;t defined by default.

But is this conversation meaningful? There&apos;s a feature which somebody uses and this patch improve the value of that usage.

If you think the feature is harmful, open a bug for that and let&apos;s discuss about that. This bug is not the right place for removing vswhere. I don&apos;t think I have to probe my way is better than your way on this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472353</commentid>
    <comment_count>20</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-10-26 00:55:29 -0700</bug_when>
    <thetext>I think removing vswhere is the simplest solution for Bug 189412. OK, I will do it in Bug 189412.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472386</commentid>
    <comment_count>21</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-10-26 04:12:03 -0700</bug_when>
    <thetext>Did you test your patch? It doesn&apos;t work as you expect.

I installed two instances:

&gt; installationVersion: 15.7.27703.2047
&gt; productPath: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\devenv.exe
&gt; displayName: Visual Studio Professional 2017

&gt; installationVersion: 15.8.28010.2048
&gt; productPath: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv.exe
&gt; displayName: Visual Studio Community 2017

vswhere ouputs as expected.

&gt; PS C:\webkit\ga&gt; vswhere -property installationPath -version &quot;[15.7,15.8)&quot;
&gt; C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional

Here is the build log:

&gt; PS C:\webkit\ga&gt; perl Tools\Scripts\build-webkit --release --wincairo --generate-project-only --no-ninja --vswhereargs=&apos;-version [15.7,15.8)&apos;
&gt; Updating WinCairoRequirements.zip...
&gt; Found existing release: v2018.10.09
&gt; Seeking latest release from WebKitForWindows/WinCairoRequirements...
&gt; Found release to download: v2018.10.09
&gt; Already up-to-date!
&gt; Updating vswhere.exe...
&gt; Found existing release: 2.5.2
&gt; Seeking latest release from Microsoft/vswhere...
&gt; Found release to download: 2.5.2
&gt; Already up-to-date!
&gt; +  cmake -DPORT=&quot;WinCairo&quot; -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=Release -G &quot;Visual Studio 15 2017 Win64&quot; -DCMAKE_GENERATOR_TOOLSET=&quot;host=x64&quot; -DSHOW_BINDINGS_GENERATION_PROGRESS=1 -DDEVELOPER_MODE=ON &quot;C:/webkit/ga&quot;
&gt; -- The C compiler identification is MSVC 19.15.26732.1
&gt; -- The CXX compiler identification is MSVC 19.15.26732.1
&gt; -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.15.26726/bin/Hostx64/x64/cl.exe
&gt; -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.15.26726/bin/Hostx64/x64/cl.exe -- works

It picks the compiler of Community.

webkitdirs.pm is using vswhere to find msbuild, but it is used only for building generated solution file.
CMake looks for VS installation by its own logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472438</commentid>
    <comment_count>22</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-10-26 07:39:34 -0700</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #21)
&gt; Did you test your patch? It doesn&apos;t work as you expect.
&gt; 
&gt; I installed two instances:
&gt; 
&gt; &gt; installationVersion: 15.7.27703.2047
&gt; &gt; productPath: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\devenv.exe
&gt; &gt; displayName: Visual Studio Professional 2017
&gt; 
&gt; &gt; installationVersion: 15.8.28010.2048
&gt; &gt; productPath: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv.exe
&gt; &gt; displayName: Visual Studio Community 2017
&gt; 
&gt; vswhere ouputs as expected.
&gt; 
&gt; &gt; PS C:\webkit\ga&gt; vswhere -property installationPath -version &quot;[15.7,15.8)&quot;
&gt; &gt; C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional
&gt; 
&gt; Here is the build log:
&gt; 
&gt; &gt; PS C:\webkit\ga&gt; perl Tools\Scripts\build-webkit --release --wincairo --generate-project-only --no-ninja --vswhereargs=&apos;-version [15.7,15.8)&apos;
&gt; &gt; Updating WinCairoRequirements.zip...
&gt; &gt; Found existing release: v2018.10.09
&gt; &gt; Seeking latest release from WebKitForWindows/WinCairoRequirements...
&gt; &gt; Found release to download: v2018.10.09
&gt; &gt; Already up-to-date!
&gt; &gt; Updating vswhere.exe...
&gt; &gt; Found existing release: 2.5.2
&gt; &gt; Seeking latest release from Microsoft/vswhere...
&gt; &gt; Found release to download: 2.5.2
&gt; &gt; Already up-to-date!
&gt; &gt; +  cmake -DPORT=&quot;WinCairo&quot; -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=Release -G &quot;Visual Studio 15 2017 Win64&quot; -DCMAKE_GENERATOR_TOOLSET=&quot;host=x64&quot; -DSHOW_BINDINGS_GENERATION_PROGRESS=1 -DDEVELOPER_MODE=ON &quot;C:/webkit/ga&quot;
&gt; &gt; -- The C compiler identification is MSVC 19.15.26732.1
&gt; &gt; -- The CXX compiler identification is MSVC 19.15.26732.1
&gt; &gt; -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.15.26726/bin/Hostx64/x64/cl.exe
&gt; &gt; -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.15.26726/bin/Hostx64/x64/cl.exe -- works
&gt; 
&gt; It picks the compiler of Community.
&gt; 
&gt; webkitdirs.pm is using vswhere to find msbuild, but it is used only for
&gt; building generated solution file.
&gt; CMake looks for VS installation by its own logic.

That is the expected behaviour. Vswhere is for choosing msbuild. That’s the result I wanted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472624</commentid>
    <comment_count>23</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-10-26 17:00:01 -0700</bug_when>
    <thetext>(In reply to Basuke Suzuki from comment #22)
&gt; (In reply to Fujii Hironori from comment #21)
&gt; &gt; webkitdirs.pm is using vswhere to find msbuild, but it is used only for
&gt; &gt; building generated solution file.
&gt; &gt; CMake looks for VS installation by its own logic.
&gt; 
&gt; That is the expected behaviour. Vswhere is for choosing msbuild. That’s the
&gt; result I wanted.

I&apos;m confusing. 
Why do you want to choose msbuild? You don&apos;t need to choose compiler? What problem does your patch solve?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472860</commentid>
    <comment_count>24</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-10-28 21:27:15 -0700</bug_when>
    <thetext>I got the answer to my question.
Different compilers are used in CMake configuration time (chosen by CMake) and building time (chosen by vswhere).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473145</commentid>
    <comment_count>25</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-10-29 18:11:54 -0700</bug_when>
    <thetext>Using vswhere causes the compiler version mismatch problem (Bug 190797 Comment 24).
CMake looks for VS by its own logic.

We should use vcvars64.bat to safely choose a VS installation.
If you have multiple VS installations, there are mulptile
&quot;x64 Native Tools Command Prompt for Visual Studio 2017&quot; menu items in Windows Start menu.
You can use which you want to choose VS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810804</commentid>
    <comment_count>26</comment_count>
      <attachid>352905</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-11-01 12:51:31 -0700</bug_when>
    <thetext>Comment on attachment 352905
FIX example sentence in ChangeLog

This has been requesting review for more than one year.  If this is still needed, please rebase and re-request review.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352897</attachid>
            <date>2018-10-22 11:44:09 -0700</date>
            <delta_ts>2018-10-22 11:55:36 -0700</delta_ts>
            <desc>PATCH</desc>
            <filename>190797.diff</filename>
            <type>text/plain</type>
            <size>5938</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxNWMw
YzMxNjliZS4uNjg3ZTJhYjUxZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxOC0xMC0yMiAgQmFzdWtlIFN1enVr
aSAgPEJhc3VrZS5TdXp1a2lAc29ueS5jb20+CisKKyAgICAgICAgW1dpbl0gQWxsb3cgcGFzc2lu
ZyBleHRyYSB2c3doZXJlIGFyZ3VtZW50cyB0byBidWlsZC13ZWJraXQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA3OTcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgLS12c3doZXJlYXJncyBjb21t
YW5kIGxpbmUgb3B0aW9uIHRvIHBhc3MgZXh0cmEgYXJncyB0byB2c3doZXJlLmV4ZQorICAgICAg
ICB3aGljaCBpcyB1c2VkIGludGVybmFsbHkgdG8gZGV0ZXJtaW5lIGxvY2F0aW9uIG9mIFZpc3Vh
bFN0dWRpbyB0b29sY2hhaW4uCisKKyAgICAgICAgRXhhbXBsZToKKyAgICAgICAgIyB0byB1c2Ug
dmVyc2lvbiBncmVhdGVyIG9yIGVxdWVhbCB0aGFuIDE1LjcgYnV0IGxlc3NlciB0aGFuIDE1LjgK
KyAgICAgICAgPiBwZXJsIGJ1aWxkLXdlYmtpdCAtLXdpbmNhaXJvIC0tdnN3aGVyZWFyZ3M9Jy12
ZXJzaW9uIFsxNS43LDE1LjgpJworCisgICAgICAgICMgdG8gdXNlIFZpc3VhbFN0dWRpbyBDb21t
dW5pdHkgb3ZlciBWaXN1YWxTdHVkaW8gUHJvZmVzc2lvbmFsCisgICAgICAgID4gcGVybCBidWls
ZC13ZWJraXQgLS13aW5jYWlybyAtLXZzd2hlcmVhcmdzPSctcHJvZHVjdHMgTWljcm9zb2Z0LlZp
c3VhbFN0dWRpby5Qcm9kdWN0LkNvbW11bml0eScKKworICAgICAgICAqIFNjcmlwdHMvYnVpbGQt
d2Via2l0OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0ZGlycy5wbToKKyAgICAgICAgKHBpY2tD
dXJyZW50VmlzdWFsU3R1ZGlvSW5zdGFsbGF0aW9uKToKKyAgICAgICAgKHZpc3VhbFN0dWRpb1By
b2R1Y3RJZFByaW9yaXR5KToKKyAgICAgICAgKGJ1aWxkVmlzdWFsU3R1ZGlvUHJvamVjdCk6Cisg
ICAgICAgICh1c2luZ1Zpc3VhbFN0dWRpb0V4cHJlc3MpOiBEZWxldGVkLiBOb3QgdXNlZCBhbnl3
aGVyZS4KKwogMjAxOC0xMC0xOSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAg
ICAgICAgQVNTRVJUSU9OIEZBSUxFRDogIWZyYW1lKCkuYW5pbWF0aW9uKCkuaGFzQW5pbWF0aW9u
cygpIGluIFdlYkNvcmU6OkZyYW1lVmlldzo6ZGlkRGVzdHJveVJlbmRlclRyZWUoKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdl
YmtpdAppbmRleCBlMDA4YTJjOGIzYi4uYWZkMzg3MjBlNDEgMTAwNzU1Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvYnVpbGQtd2Via2l0CisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CkBAIC03
Nyw2ICs3Nyw3IEBAIG15ICRzdGFydFRpbWUgPSB0aW1lKCk7CiBteSAkYXJjaHMzMmJpdCA9IDA7
CiBteSAkc2tpcExpYnJhcnlVcGRhdGUgPSAwOwogbXkgJHVzZUNDYWNoZSA9IC0xOworbXkgJHZz
d2hlcmVhcmdzID0gIi1sYXRlc3QiOwogCiBteSBAZmVhdHVyZXMgPSBnZXRGZWF0dXJlT3B0aW9u
TGlzdCgpOwogCkBAIC0xMzUsNiArMTM2LDcgQEAgVXNhZ2U6ICRwcm9ncmFtTmFtZSBbb3B0aW9u
c10gW29wdGlvbnMgdG8gcGFzcyB0byBidWlsZCBzeXN0ZW1dCiAKICAgLS1bbm8tXXVzZS1jY2Fj
aGUgICAgICAgICAgICAgICAgIEVuYWJsZSAob3IgZGlzYWJsZSkgQ0NhY2hlLCBpZiBhdmFpbGFi
bGUKIAorICAtLXZzd2hlcmVhcmdzPTxhcmd1bWVudHM+ICAgICAgICAgT3B0aW9uYWwgdnN3aGVy
ZSBhcmd1bWVudHMgKGRlZmF1bHQgPSAtbGF0ZXN0KQogRU9GCiAKIG15ICVvcHRpb25zID0gKApA
QCAtMTU0LDYgKzE1Niw3IEBAIG15ICVvcHRpb25zID0gKAogICAgICdsdG8tbW9kZT1zJyA9PiBc
JGx0b01vZGUsCiAgICAgJ3NraXAtbGlicmFyeS11cGRhdGUnID0+IFwkc2tpcExpYnJhcnlVcGRh
dGUsCiAgICAgJ3VzZS1jY2FjaGUhJyA9PiBcJHVzZUNDYWNoZSwKKyAgICAndnN3aGVyZWFyZ3M9
cycgPT4gXCR2c3doZXJlYXJncywKICk7CiAKICMgQnVpbGQgdXNhZ2UgdGV4dCBhbmQgb3B0aW9u
cyBsaXN0IGZyb20gZmVhdHVyZXMKQEAgLTMxMCw3ICszMTMsNyBAQCBpZiAoaXNBcHBsZVdpbldl
YktpdCgpIHx8IGlzV2luQ2Fpcm8oKSkgewogICAgICAgICBjaGRpciBGaWxlOjpTcGVjLT5jYXRk
aXIoJGJhc2VQcm9kdWN0RGlyLCBjb25maWd1cmF0aW9uKCkpOwogICAgICAgICAkcmVzdWx0ID0g
c3lzdGVtKCJuaW5qYSIpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgICRyZXN1bHQgPSBidWlsZFZp
c3VhbFN0dWRpb1Byb2plY3QoRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkYmFzZVByb2R1Y3REaXIsIGNv
bmZpZ3VyYXRpb24oKSwgIldlYktpdC5zbG4iKSwgJGNsZWFuKTsKKyAgICAgICAgJHJlc3VsdCA9
IGJ1aWxkVmlzdWFsU3R1ZGlvUHJvamVjdChGaWxlOjpTcGVjLT5jYXRmaWxlKCRiYXNlUHJvZHVj
dERpciwgY29uZmlndXJhdGlvbigpLCAiV2ViS2l0LnNsbiIpLCAkY2xlYW4sICR2c3doZXJlYXJn
cyk7CiAgICAgfQogICAgIGlmIChleGl0U3RhdHVzKCRyZXN1bHQpKSB7CiAgICAgICAgIG15ICRz
Y3JpcHREaXIgPSByZWxhdGl2ZVNjcmlwdHNEaXIoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0ZGlycy5wbSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQppbmRleCAwYjVj
ZjFlY2Q1ZS4uNTEzMTNiODE4ODMgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGly
cy5wbQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KQEAgLTE2Nyw2ICsxNjcsNyBA
QCBteSAkd2luZG93c1NvdXJjZURpcjsKIG15ICR3aW5WZXJzaW9uOwogbXkgJHdpbGxVc2VWQ0V4
cHJlc3NXaGVuQnVpbGRpbmcgPSAwOwogbXkgJHZzV2hlcmVGb3VuZEluc3RhbGxhdGlvbjsKK215
ICR2c1doZXJlQXJnczsKIAogIyBEZWZpbmVkIGluIFZDU1V0aWxzLgogc3ViIGV4aXRTdGF0dXMo
JCk7CkBAIC02NjAsMzMgKzY2MSwzNiBAQCBzdWIgcGlja0N1cnJlbnRWaXN1YWxTdHVkaW9JbnN0
YWxsYXRpb24KICAgICByZXF1aXJlTW9kdWxlc0ZvclZTV2hlcmUoKTsKICAgICBkZXRlcm1pbmVT
b3VyY2VEaXIoKTsKIAorICAgIG15ICRjb21tYW5kID0gIiRzb3VyY2VEaXIvV2ViS2l0TGlicmFy
aWVzL3dpbi90b29scy92c3doZXJlIC1ub2xvZ28gLWZvcm1hdCBqc29uIC1yZXF1aXJlcyBNaWNy
b3NvZnQuQ29tcG9uZW50Lk1TQnVpbGQgIiAuICR2c1doZXJlQXJnczsKKyAgICBteSAkdnNXaGVy
ZU91dCA9IGAkY29tbWFuZGA7CisgICAgbXkgJGluc3RhbGxhdGlvbnMgPSBbXTsKKyAgICBldmFs
IHsKKyAgICAgICAgJGluc3RhbGxhdGlvbnMgPSBKU09OOjpQUDo6ZGVjb2RlX2pzb24oRW5jb2Rl
OjplbmNvZGUoJ1VURi04JyA9PiBFbmNvZGU6OmRlY29kZShjb25zb2xlX2luID0+ICR2c1doZXJl
T3V0KSkpOworICAgIH07CisgICAgcHJpbnQgIkVycm9yIGdldHRpbmcgVmlzdWFsIFN0dWRpbyBM
b2NhdGlvbjogJEBcbiIgaWYgJEA7CisgICAgdW5kZWYgJEA7CisKKyAgICByZXR1cm4gdW5kZWYg
dW5sZXNzIChzY2FsYXIgQCRpbnN0YWxsYXRpb25zKTsKKwogICAgICMgUHJlZmVyIEVudGVycHJp
c2UsIHRoZW4gUHJvZmVzc2lvbmFsLCB0aGVuIENvbW11bml0eSwgdGhlbgogICAgICMgYW55dGhp
bmcgZWxzZSB0aGF0IHByb3ZpZGVzIE1TQnVpbGQuCi0gICAgZm9yZWFjaCBteSAkcHJvZHVjdFR5
cGUgKCgKLSAgICAgICAgJ01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uUHJvZHVjdC5FbnRlcnByaXNl
JywKLSAgICAgICAgJ01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uUHJvZHVjdC5Qcm9mZXNzaW9uYWwn
LAotICAgICAgICAnTWljcm9zb2Z0LlZpc3VhbFN0dWRpby5Qcm9kdWN0LkNvbW11bml0eScsCi0g
ICAgICAgIHVuZGVmCi0gICAgKSkgewotICAgICAgICBteSAkY29tbWFuZCA9ICIkc291cmNlRGly
L1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnN3aGVyZSAtbm9sb2dvIC1sYXRlc3QgLWZvcm1h
dCBqc29uIC1yZXF1aXJlcyBNaWNyb3NvZnQuQ29tcG9uZW50Lk1TQnVpbGQiOwotICAgICAgICBp
ZiAoZGVmaW5lZCAkcHJvZHVjdFR5cGUpIHsKLSAgICAgICAgICAgICRjb21tYW5kIC49ICIgLXBy
b2R1Y3RzICRwcm9kdWN0VHlwZSI7Ci0gICAgICAgIH0KLSAgICAgICAgbXkgJHZzV2hlcmVPdXQg
PSBgJGNvbW1hbmRgOwotICAgICAgICBteSAkaW5zdGFsbGF0aW9ucyA9IFtdOwotICAgICAgICBl
dmFsIHsKLSAgICAgICAgICAgICRpbnN0YWxsYXRpb25zID0gSlNPTjo6UFA6OmRlY29kZV9qc29u
KEVuY29kZTo6ZW5jb2RlKCdVVEYtOCcgPT4gRW5jb2RlOjpkZWNvZGUoY29uc29sZV9pbiA9PiAk
dnNXaGVyZU91dCkpKTsKLSAgICAgICAgfTsKLSAgICAgICAgcHJpbnQgIkVycm9yIGdldHRpbmcg
VmlzdWFsIFN0dWRpbyBMb2NhdGlvbjogJEBcbiIgaWYgJEA7Ci0gICAgICAgIHVuZGVmICRAOwot
Ci0gICAgICAgIGlmIChzY2FsYXIgQCRpbnN0YWxsYXRpb25zKSB7Ci0gICAgICAgICAgICBteSAk
aW5zdGFsbGF0aW9uID0gJGluc3RhbGxhdGlvbnMtPlswXTsKLSAgICAgICAgICAgICR2c1doZXJl
Rm91bmRJbnN0YWxsYXRpb24gPSAkaW5zdGFsbGF0aW9uOwotICAgICAgICAgICAgcmV0dXJuICRp
bnN0YWxsYXRpb247Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHVuZGVmOworICAgIG15
IEBzb3J0ZWQgPSBzb3J0IHsKKyAgICAgICAgdmlzdWFsU3R1ZGlvUHJvZHVjdElkUHJpb3JpdHko
JGEtPnsncHJvZHVjdElkJ30pCisgICAgICAgIDw9PgorICAgICAgICB2aXN1YWxTdHVkaW9Qcm9k
dWN0SWRQcmlvcml0eSgkYi0+eydwcm9kdWN0SWQnfSkKKyAgICB9IEAkaW5zdGFsbGF0aW9uczsK
KyAgICAkdnNXaGVyZUZvdW5kSW5zdGFsbGF0aW9uID0gcG9wIEBzb3J0ZWQ7CisgICAgZGllKCR2
c1doZXJlRm91bmRJbnN0YWxsYXRpb24tPntpbnN0YWxsYXRpb25QYXRofSk7CisgICAgcmV0dXJu
ICR2c1doZXJlRm91bmRJbnN0YWxsYXRpb247Cit9CisKK3N1YiB2aXN1YWxTdHVkaW9Qcm9kdWN0
SWRQcmlvcml0eSgkKQoreworICAgIG15ICgkcHJvZHVjdElkKSA9IEBfOworICAgIHJldHVybiAx
IGlmICRwcm9kdWN0SWQgPT0gJ01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uUHJvZHVjdC5FbnRlcnBy
aXNlJzsKKyAgICByZXR1cm4gMiBpZiAkcHJvZHVjdElkID09ICdNaWNyb3NvZnQuVmlzdWFsU3R1
ZGlvLlByb2R1Y3QuUHJvZmVzc2lvbmFsJzsKKyAgICByZXR1cm4gMyBpZiAkcHJvZHVjdElkID09
ICdNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlByb2R1Y3QuQ29tbXVuaXR5JzsKKyAgICByZXR1cm4g
NDsKIH0KIAogc3ViIHZpc3VhbFN0dWRpb0luc3RhbGxEaXIKQEAgLTE5NjYsMTUgKzE5NzAsMTAg
QEAgc3ViIGJ1aWxkWENvZGVQcm9qZWN0KCQkQCkKICAgICByZXR1cm4gc3lzdGVtICJ4Y29kZWJ1
aWxkIiwgIi1wcm9qZWN0IiwgIiRwcm9qZWN0Lnhjb2RlcHJvaiIsIEBleHRyYU9wdGlvbnM7CiB9
CiAKLXN1YiB1c2luZ1Zpc3VhbFN0dWRpb0V4cHJlc3MoKQotewotICAgIHNldHVwQ3lnd2luRW52
KCk7Ci0gICAgcmV0dXJuICR3aWxsVXNlVkNFeHByZXNzV2hlbkJ1aWxkaW5nOwotfQotCi1zdWIg
YnVpbGRWaXN1YWxTdHVkaW9Qcm9qZWN0CitzdWIgYnVpbGRWaXN1YWxTdHVkaW9Qcm9qZWN0KCQk
JCkKIHsKLSAgICBteSAoJHByb2plY3QsICRjbGVhbikgPSBAXzsKKyAgICBteSAoJHByb2plY3Qs
ICRjbGVhbiwgJGFyZ3MpID0gQF87CisgICAgJHZzV2hlcmVBcmdzID0gJGFyZ3M7CiAgICAgc2V0
dXBDeWd3aW5FbnYoKTsKIAogICAgIG15ICRjb25maWcgPSBjb25maWd1cmF0aW9uRm9yVmlzdWFs
U3R1ZGlvKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352898</attachid>
            <date>2018-10-22 11:55:36 -0700</date>
            <delta_ts>2018-10-22 12:37:56 -0700</delta_ts>
            <desc>PATCH</desc>
            <filename>190797.diff</filename>
            <type>text/plain</type>
            <size>5881</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxNWMw
YzMxNjliZS4uNjg3ZTJhYjUxZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxOC0xMC0yMiAgQmFzdWtlIFN1enVr
aSAgPEJhc3VrZS5TdXp1a2lAc29ueS5jb20+CisKKyAgICAgICAgW1dpbl0gQWxsb3cgcGFzc2lu
ZyBleHRyYSB2c3doZXJlIGFyZ3VtZW50cyB0byBidWlsZC13ZWJraXQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA3OTcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgLS12c3doZXJlYXJncyBjb21t
YW5kIGxpbmUgb3B0aW9uIHRvIHBhc3MgZXh0cmEgYXJncyB0byB2c3doZXJlLmV4ZQorICAgICAg
ICB3aGljaCBpcyB1c2VkIGludGVybmFsbHkgdG8gZGV0ZXJtaW5lIGxvY2F0aW9uIG9mIFZpc3Vh
bFN0dWRpbyB0b29sY2hhaW4uCisKKyAgICAgICAgRXhhbXBsZToKKyAgICAgICAgIyB0byB1c2Ug
dmVyc2lvbiBncmVhdGVyIG9yIGVxdWVhbCB0aGFuIDE1LjcgYnV0IGxlc3NlciB0aGFuIDE1LjgK
KyAgICAgICAgPiBwZXJsIGJ1aWxkLXdlYmtpdCAtLXdpbmNhaXJvIC0tdnN3aGVyZWFyZ3M9Jy12
ZXJzaW9uIFsxNS43LDE1LjgpJworCisgICAgICAgICMgdG8gdXNlIFZpc3VhbFN0dWRpbyBDb21t
dW5pdHkgb3ZlciBWaXN1YWxTdHVkaW8gUHJvZmVzc2lvbmFsCisgICAgICAgID4gcGVybCBidWls
ZC13ZWJraXQgLS13aW5jYWlybyAtLXZzd2hlcmVhcmdzPSctcHJvZHVjdHMgTWljcm9zb2Z0LlZp
c3VhbFN0dWRpby5Qcm9kdWN0LkNvbW11bml0eScKKworICAgICAgICAqIFNjcmlwdHMvYnVpbGQt
d2Via2l0OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0ZGlycy5wbToKKyAgICAgICAgKHBpY2tD
dXJyZW50VmlzdWFsU3R1ZGlvSW5zdGFsbGF0aW9uKToKKyAgICAgICAgKHZpc3VhbFN0dWRpb1By
b2R1Y3RJZFByaW9yaXR5KToKKyAgICAgICAgKGJ1aWxkVmlzdWFsU3R1ZGlvUHJvamVjdCk6Cisg
ICAgICAgICh1c2luZ1Zpc3VhbFN0dWRpb0V4cHJlc3MpOiBEZWxldGVkLiBOb3QgdXNlZCBhbnl3
aGVyZS4KKwogMjAxOC0xMC0xOSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAg
ICAgICAgQVNTRVJUSU9OIEZBSUxFRDogIWZyYW1lKCkuYW5pbWF0aW9uKCkuaGFzQW5pbWF0aW9u
cygpIGluIFdlYkNvcmU6OkZyYW1lVmlldzo6ZGlkRGVzdHJveVJlbmRlclRyZWUoKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdl
YmtpdAppbmRleCBlMDA4YTJjOGIzYi4uYWZkMzg3MjBlNDEgMTAwNzU1Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvYnVpbGQtd2Via2l0CisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CkBAIC03
Nyw2ICs3Nyw3IEBAIG15ICRzdGFydFRpbWUgPSB0aW1lKCk7CiBteSAkYXJjaHMzMmJpdCA9IDA7
CiBteSAkc2tpcExpYnJhcnlVcGRhdGUgPSAwOwogbXkgJHVzZUNDYWNoZSA9IC0xOworbXkgJHZz
d2hlcmVhcmdzID0gIi1sYXRlc3QiOwogCiBteSBAZmVhdHVyZXMgPSBnZXRGZWF0dXJlT3B0aW9u
TGlzdCgpOwogCkBAIC0xMzUsNiArMTM2LDcgQEAgVXNhZ2U6ICRwcm9ncmFtTmFtZSBbb3B0aW9u
c10gW29wdGlvbnMgdG8gcGFzcyB0byBidWlsZCBzeXN0ZW1dCiAKICAgLS1bbm8tXXVzZS1jY2Fj
aGUgICAgICAgICAgICAgICAgIEVuYWJsZSAob3IgZGlzYWJsZSkgQ0NhY2hlLCBpZiBhdmFpbGFi
bGUKIAorICAtLXZzd2hlcmVhcmdzPTxhcmd1bWVudHM+ICAgICAgICAgT3B0aW9uYWwgdnN3aGVy
ZSBhcmd1bWVudHMgKGRlZmF1bHQgPSAtbGF0ZXN0KQogRU9GCiAKIG15ICVvcHRpb25zID0gKApA
QCAtMTU0LDYgKzE1Niw3IEBAIG15ICVvcHRpb25zID0gKAogICAgICdsdG8tbW9kZT1zJyA9PiBc
JGx0b01vZGUsCiAgICAgJ3NraXAtbGlicmFyeS11cGRhdGUnID0+IFwkc2tpcExpYnJhcnlVcGRh
dGUsCiAgICAgJ3VzZS1jY2FjaGUhJyA9PiBcJHVzZUNDYWNoZSwKKyAgICAndnN3aGVyZWFyZ3M9
cycgPT4gXCR2c3doZXJlYXJncywKICk7CiAKICMgQnVpbGQgdXNhZ2UgdGV4dCBhbmQgb3B0aW9u
cyBsaXN0IGZyb20gZmVhdHVyZXMKQEAgLTMxMCw3ICszMTMsNyBAQCBpZiAoaXNBcHBsZVdpbldl
YktpdCgpIHx8IGlzV2luQ2Fpcm8oKSkgewogICAgICAgICBjaGRpciBGaWxlOjpTcGVjLT5jYXRk
aXIoJGJhc2VQcm9kdWN0RGlyLCBjb25maWd1cmF0aW9uKCkpOwogICAgICAgICAkcmVzdWx0ID0g
c3lzdGVtKCJuaW5qYSIpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgICRyZXN1bHQgPSBidWlsZFZp
c3VhbFN0dWRpb1Byb2plY3QoRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkYmFzZVByb2R1Y3REaXIsIGNv
bmZpZ3VyYXRpb24oKSwgIldlYktpdC5zbG4iKSwgJGNsZWFuKTsKKyAgICAgICAgJHJlc3VsdCA9
IGJ1aWxkVmlzdWFsU3R1ZGlvUHJvamVjdChGaWxlOjpTcGVjLT5jYXRmaWxlKCRiYXNlUHJvZHVj
dERpciwgY29uZmlndXJhdGlvbigpLCAiV2ViS2l0LnNsbiIpLCAkY2xlYW4sICR2c3doZXJlYXJn
cyk7CiAgICAgfQogICAgIGlmIChleGl0U3RhdHVzKCRyZXN1bHQpKSB7CiAgICAgICAgIG15ICRz
Y3JpcHREaXIgPSByZWxhdGl2ZVNjcmlwdHNEaXIoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0ZGlycy5wbSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQppbmRleCAwYjVj
ZjFlY2Q1ZS4uNjVmMTA0OTE3YTAgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGly
cy5wbQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KQEAgLTE2Nyw2ICsxNjcsNyBA
QCBteSAkd2luZG93c1NvdXJjZURpcjsKIG15ICR3aW5WZXJzaW9uOwogbXkgJHdpbGxVc2VWQ0V4
cHJlc3NXaGVuQnVpbGRpbmcgPSAwOwogbXkgJHZzV2hlcmVGb3VuZEluc3RhbGxhdGlvbjsKK215
ICR2c1doZXJlQXJnczsKIAogIyBEZWZpbmVkIGluIFZDU1V0aWxzLgogc3ViIGV4aXRTdGF0dXMo
JCk7CkBAIC02NjAsMzMgKzY2MSwzNSBAQCBzdWIgcGlja0N1cnJlbnRWaXN1YWxTdHVkaW9JbnN0
YWxsYXRpb24KICAgICByZXF1aXJlTW9kdWxlc0ZvclZTV2hlcmUoKTsKICAgICBkZXRlcm1pbmVT
b3VyY2VEaXIoKTsKIAorICAgIG15ICRjb21tYW5kID0gIiRzb3VyY2VEaXIvV2ViS2l0TGlicmFy
aWVzL3dpbi90b29scy92c3doZXJlIC1ub2xvZ28gLWZvcm1hdCBqc29uIC1yZXF1aXJlcyBNaWNy
b3NvZnQuQ29tcG9uZW50Lk1TQnVpbGQgIiAuICR2c1doZXJlQXJnczsKKyAgICBteSAkdnNXaGVy
ZU91dCA9IGAkY29tbWFuZGA7CisgICAgbXkgJGluc3RhbGxhdGlvbnMgPSBbXTsKKyAgICBldmFs
IHsKKyAgICAgICAgJGluc3RhbGxhdGlvbnMgPSBKU09OOjpQUDo6ZGVjb2RlX2pzb24oRW5jb2Rl
OjplbmNvZGUoJ1VURi04JyA9PiBFbmNvZGU6OmRlY29kZShjb25zb2xlX2luID0+ICR2c1doZXJl
T3V0KSkpOworICAgIH07CisgICAgcHJpbnQgIkVycm9yIGdldHRpbmcgVmlzdWFsIFN0dWRpbyBM
b2NhdGlvbjogJEBcbiIgaWYgJEA7CisgICAgdW5kZWYgJEA7CisKKyAgICByZXR1cm4gdW5kZWYg
dW5sZXNzIChzY2FsYXIgQCRpbnN0YWxsYXRpb25zKTsKKwogICAgICMgUHJlZmVyIEVudGVycHJp
c2UsIHRoZW4gUHJvZmVzc2lvbmFsLCB0aGVuIENvbW11bml0eSwgdGhlbgogICAgICMgYW55dGhp
bmcgZWxzZSB0aGF0IHByb3ZpZGVzIE1TQnVpbGQuCi0gICAgZm9yZWFjaCBteSAkcHJvZHVjdFR5
cGUgKCgKLSAgICAgICAgJ01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uUHJvZHVjdC5FbnRlcnByaXNl
JywKLSAgICAgICAgJ01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uUHJvZHVjdC5Qcm9mZXNzaW9uYWwn
LAotICAgICAgICAnTWljcm9zb2Z0LlZpc3VhbFN0dWRpby5Qcm9kdWN0LkNvbW11bml0eScsCi0g
ICAgICAgIHVuZGVmCi0gICAgKSkgewotICAgICAgICBteSAkY29tbWFuZCA9ICIkc291cmNlRGly
L1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnN3aGVyZSAtbm9sb2dvIC1sYXRlc3QgLWZvcm1h
dCBqc29uIC1yZXF1aXJlcyBNaWNyb3NvZnQuQ29tcG9uZW50Lk1TQnVpbGQiOwotICAgICAgICBp
ZiAoZGVmaW5lZCAkcHJvZHVjdFR5cGUpIHsKLSAgICAgICAgICAgICRjb21tYW5kIC49ICIgLXBy
b2R1Y3RzICRwcm9kdWN0VHlwZSI7Ci0gICAgICAgIH0KLSAgICAgICAgbXkgJHZzV2hlcmVPdXQg
PSBgJGNvbW1hbmRgOwotICAgICAgICBteSAkaW5zdGFsbGF0aW9ucyA9IFtdOwotICAgICAgICBl
dmFsIHsKLSAgICAgICAgICAgICRpbnN0YWxsYXRpb25zID0gSlNPTjo6UFA6OmRlY29kZV9qc29u
KEVuY29kZTo6ZW5jb2RlKCdVVEYtOCcgPT4gRW5jb2RlOjpkZWNvZGUoY29uc29sZV9pbiA9PiAk
dnNXaGVyZU91dCkpKTsKLSAgICAgICAgfTsKLSAgICAgICAgcHJpbnQgIkVycm9yIGdldHRpbmcg
VmlzdWFsIFN0dWRpbyBMb2NhdGlvbjogJEBcbiIgaWYgJEA7Ci0gICAgICAgIHVuZGVmICRAOwot
Ci0gICAgICAgIGlmIChzY2FsYXIgQCRpbnN0YWxsYXRpb25zKSB7Ci0gICAgICAgICAgICBteSAk
aW5zdGFsbGF0aW9uID0gJGluc3RhbGxhdGlvbnMtPlswXTsKLSAgICAgICAgICAgICR2c1doZXJl
Rm91bmRJbnN0YWxsYXRpb24gPSAkaW5zdGFsbGF0aW9uOwotICAgICAgICAgICAgcmV0dXJuICRp
bnN0YWxsYXRpb247Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHVuZGVmOworICAgIG15
IEBzb3J0ZWQgPSBzb3J0IHsKKyAgICAgICAgdmlzdWFsU3R1ZGlvUHJvZHVjdElkUHJpb3JpdHko
JGEtPnsncHJvZHVjdElkJ30pCisgICAgICAgIDw9PgorICAgICAgICB2aXN1YWxTdHVkaW9Qcm9k
dWN0SWRQcmlvcml0eSgkYi0+eydwcm9kdWN0SWQnfSkKKyAgICB9IEAkaW5zdGFsbGF0aW9uczsK
KyAgICAkdnNXaGVyZUZvdW5kSW5zdGFsbGF0aW9uID0gcG9wIEBzb3J0ZWQ7CisgICAgcmV0dXJu
ICR2c1doZXJlRm91bmRJbnN0YWxsYXRpb247Cit9CisKK3N1YiB2aXN1YWxTdHVkaW9Qcm9kdWN0
SWRQcmlvcml0eSgkKQoreworICAgIG15ICgkcHJvZHVjdElkKSA9IEBfOworICAgIHJldHVybiAx
IGlmICRwcm9kdWN0SWQgPT0gJ01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uUHJvZHVjdC5FbnRlcnBy
aXNlJzsKKyAgICByZXR1cm4gMiBpZiAkcHJvZHVjdElkID09ICdNaWNyb3NvZnQuVmlzdWFsU3R1
ZGlvLlByb2R1Y3QuUHJvZmVzc2lvbmFsJzsKKyAgICByZXR1cm4gMyBpZiAkcHJvZHVjdElkID09
ICdNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlByb2R1Y3QuQ29tbXVuaXR5JzsKKyAgICByZXR1cm4g
NDsKIH0KIAogc3ViIHZpc3VhbFN0dWRpb0luc3RhbGxEaXIKQEAgLTE5NjYsMTUgKzE5NjksMTAg
QEAgc3ViIGJ1aWxkWENvZGVQcm9qZWN0KCQkQCkKICAgICByZXR1cm4gc3lzdGVtICJ4Y29kZWJ1
aWxkIiwgIi1wcm9qZWN0IiwgIiRwcm9qZWN0Lnhjb2RlcHJvaiIsIEBleHRyYU9wdGlvbnM7CiB9
CiAKLXN1YiB1c2luZ1Zpc3VhbFN0dWRpb0V4cHJlc3MoKQotewotICAgIHNldHVwQ3lnd2luRW52
KCk7Ci0gICAgcmV0dXJuICR3aWxsVXNlVkNFeHByZXNzV2hlbkJ1aWxkaW5nOwotfQotCi1zdWIg
YnVpbGRWaXN1YWxTdHVkaW9Qcm9qZWN0CitzdWIgYnVpbGRWaXN1YWxTdHVkaW9Qcm9qZWN0KCQk
JCkKIHsKLSAgICBteSAoJHByb2plY3QsICRjbGVhbikgPSBAXzsKKyAgICBteSAoJHByb2plY3Qs
ICRjbGVhbiwgJGFyZ3MpID0gQF87CisgICAgJHZzV2hlcmVBcmdzID0gJGFyZ3M7CiAgICAgc2V0
dXBDeWd3aW5FbnYoKTsKIAogICAgIG15ICRjb25maWcgPSBjb25maWd1cmF0aW9uRm9yVmlzdWFs
U3R1ZGlvKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352901</attachid>
            <date>2018-10-22 12:37:56 -0700</date>
            <delta_ts>2018-10-22 13:32:54 -0700</delta_ts>
            <desc>PATCH</desc>
            <filename>190797.diff</filename>
            <type>text/plain</type>
            <size>5904</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxNWMw
YzMxNjliZS4uNjg3ZTJhYjUxZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxOC0xMC0yMiAgQmFzdWtlIFN1enVr
aSAgPEJhc3VrZS5TdXp1a2lAc29ueS5jb20+CisKKyAgICAgICAgW1dpbl0gQWxsb3cgcGFzc2lu
ZyBleHRyYSB2c3doZXJlIGFyZ3VtZW50cyB0byBidWlsZC13ZWJraXQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA3OTcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgLS12c3doZXJlYXJncyBjb21t
YW5kIGxpbmUgb3B0aW9uIHRvIHBhc3MgZXh0cmEgYXJncyB0byB2c3doZXJlLmV4ZQorICAgICAg
ICB3aGljaCBpcyB1c2VkIGludGVybmFsbHkgdG8gZGV0ZXJtaW5lIGxvY2F0aW9uIG9mIFZpc3Vh
bFN0dWRpbyB0b29sY2hhaW4uCisKKyAgICAgICAgRXhhbXBsZToKKyAgICAgICAgIyB0byB1c2Ug
dmVyc2lvbiBncmVhdGVyIG9yIGVxdWVhbCB0aGFuIDE1LjcgYnV0IGxlc3NlciB0aGFuIDE1LjgK
KyAgICAgICAgPiBwZXJsIGJ1aWxkLXdlYmtpdCAtLXdpbmNhaXJvIC0tdnN3aGVyZWFyZ3M9Jy12
ZXJzaW9uIFsxNS43LDE1LjgpJworCisgICAgICAgICMgdG8gdXNlIFZpc3VhbFN0dWRpbyBDb21t
dW5pdHkgb3ZlciBWaXN1YWxTdHVkaW8gUHJvZmVzc2lvbmFsCisgICAgICAgID4gcGVybCBidWls
ZC13ZWJraXQgLS13aW5jYWlybyAtLXZzd2hlcmVhcmdzPSctcHJvZHVjdHMgTWljcm9zb2Z0LlZp
c3VhbFN0dWRpby5Qcm9kdWN0LkNvbW11bml0eScKKworICAgICAgICAqIFNjcmlwdHMvYnVpbGQt
d2Via2l0OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0ZGlycy5wbToKKyAgICAgICAgKHBpY2tD
dXJyZW50VmlzdWFsU3R1ZGlvSW5zdGFsbGF0aW9uKToKKyAgICAgICAgKHZpc3VhbFN0dWRpb1By
b2R1Y3RJZFByaW9yaXR5KToKKyAgICAgICAgKGJ1aWxkVmlzdWFsU3R1ZGlvUHJvamVjdCk6Cisg
ICAgICAgICh1c2luZ1Zpc3VhbFN0dWRpb0V4cHJlc3MpOiBEZWxldGVkLiBOb3QgdXNlZCBhbnl3
aGVyZS4KKwogMjAxOC0xMC0xOSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAg
ICAgICAgQVNTRVJUSU9OIEZBSUxFRDogIWZyYW1lKCkuYW5pbWF0aW9uKCkuaGFzQW5pbWF0aW9u
cygpIGluIFdlYkNvcmU6OkZyYW1lVmlldzo6ZGlkRGVzdHJveVJlbmRlclRyZWUoKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdl
YmtpdAppbmRleCBlMDA4YTJjOGIzYi4uYWZkMzg3MjBlNDEgMTAwNzU1Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvYnVpbGQtd2Via2l0CisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CkBAIC03
Nyw2ICs3Nyw3IEBAIG15ICRzdGFydFRpbWUgPSB0aW1lKCk7CiBteSAkYXJjaHMzMmJpdCA9IDA7
CiBteSAkc2tpcExpYnJhcnlVcGRhdGUgPSAwOwogbXkgJHVzZUNDYWNoZSA9IC0xOworbXkgJHZz
d2hlcmVhcmdzID0gIi1sYXRlc3QiOwogCiBteSBAZmVhdHVyZXMgPSBnZXRGZWF0dXJlT3B0aW9u
TGlzdCgpOwogCkBAIC0xMzUsNiArMTM2LDcgQEAgVXNhZ2U6ICRwcm9ncmFtTmFtZSBbb3B0aW9u
c10gW29wdGlvbnMgdG8gcGFzcyB0byBidWlsZCBzeXN0ZW1dCiAKICAgLS1bbm8tXXVzZS1jY2Fj
aGUgICAgICAgICAgICAgICAgIEVuYWJsZSAob3IgZGlzYWJsZSkgQ0NhY2hlLCBpZiBhdmFpbGFi
bGUKIAorICAtLXZzd2hlcmVhcmdzPTxhcmd1bWVudHM+ICAgICAgICAgT3B0aW9uYWwgdnN3aGVy
ZSBhcmd1bWVudHMgKGRlZmF1bHQgPSAtbGF0ZXN0KQogRU9GCiAKIG15ICVvcHRpb25zID0gKApA
QCAtMTU0LDYgKzE1Niw3IEBAIG15ICVvcHRpb25zID0gKAogICAgICdsdG8tbW9kZT1zJyA9PiBc
JGx0b01vZGUsCiAgICAgJ3NraXAtbGlicmFyeS11cGRhdGUnID0+IFwkc2tpcExpYnJhcnlVcGRh
dGUsCiAgICAgJ3VzZS1jY2FjaGUhJyA9PiBcJHVzZUNDYWNoZSwKKyAgICAndnN3aGVyZWFyZ3M9
cycgPT4gXCR2c3doZXJlYXJncywKICk7CiAKICMgQnVpbGQgdXNhZ2UgdGV4dCBhbmQgb3B0aW9u
cyBsaXN0IGZyb20gZmVhdHVyZXMKQEAgLTMxMCw3ICszMTMsNyBAQCBpZiAoaXNBcHBsZVdpbldl
YktpdCgpIHx8IGlzV2luQ2Fpcm8oKSkgewogICAgICAgICBjaGRpciBGaWxlOjpTcGVjLT5jYXRk
aXIoJGJhc2VQcm9kdWN0RGlyLCBjb25maWd1cmF0aW9uKCkpOwogICAgICAgICAkcmVzdWx0ID0g
c3lzdGVtKCJuaW5qYSIpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgICRyZXN1bHQgPSBidWlsZFZp
c3VhbFN0dWRpb1Byb2plY3QoRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkYmFzZVByb2R1Y3REaXIsIGNv
bmZpZ3VyYXRpb24oKSwgIldlYktpdC5zbG4iKSwgJGNsZWFuKTsKKyAgICAgICAgJHJlc3VsdCA9
IGJ1aWxkVmlzdWFsU3R1ZGlvUHJvamVjdChGaWxlOjpTcGVjLT5jYXRmaWxlKCRiYXNlUHJvZHVj
dERpciwgY29uZmlndXJhdGlvbigpLCAiV2ViS2l0LnNsbiIpLCAkY2xlYW4sICR2c3doZXJlYXJn
cyk7CiAgICAgfQogICAgIGlmIChleGl0U3RhdHVzKCRyZXN1bHQpKSB7CiAgICAgICAgIG15ICRz
Y3JpcHREaXIgPSByZWxhdGl2ZVNjcmlwdHNEaXIoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0ZGlycy5wbSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQppbmRleCAwYjVj
ZjFlY2Q1ZS4uZWFjYjZhZjQwODcgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGly
cy5wbQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KQEAgLTE2Nyw2ICsxNjcsNyBA
QCBteSAkd2luZG93c1NvdXJjZURpcjsKIG15ICR3aW5WZXJzaW9uOwogbXkgJHdpbGxVc2VWQ0V4
cHJlc3NXaGVuQnVpbGRpbmcgPSAwOwogbXkgJHZzV2hlcmVGb3VuZEluc3RhbGxhdGlvbjsKK215
ICR2c1doZXJlQXJncyA9ICctbGF0ZXN0JzsKIAogIyBEZWZpbmVkIGluIFZDU1V0aWxzLgogc3Vi
IGV4aXRTdGF0dXMoJCk7CkBAIC02NjAsMzMgKzY2MSwzNSBAQCBzdWIgcGlja0N1cnJlbnRWaXN1
YWxTdHVkaW9JbnN0YWxsYXRpb24KICAgICByZXF1aXJlTW9kdWxlc0ZvclZTV2hlcmUoKTsKICAg
ICBkZXRlcm1pbmVTb3VyY2VEaXIoKTsKIAorICAgIG15ICRjb21tYW5kID0gIiRzb3VyY2VEaXIv
V2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3doZXJlIC1ub2xvZ28gLWZvcm1hdCBqc29uIC1y
ZXF1aXJlcyBNaWNyb3NvZnQuQ29tcG9uZW50Lk1TQnVpbGQgIiAuICR2c1doZXJlQXJnczsKKyAg
ICBteSAkdnNXaGVyZU91dCA9IGAkY29tbWFuZGA7CisgICAgbXkgJGluc3RhbGxhdGlvbnMgPSBb
XTsKKyAgICBldmFsIHsKKyAgICAgICAgJGluc3RhbGxhdGlvbnMgPSBKU09OOjpQUDo6ZGVjb2Rl
X2pzb24oRW5jb2RlOjplbmNvZGUoJ1VURi04JyA9PiBFbmNvZGU6OmRlY29kZShjb25zb2xlX2lu
ID0+ICR2c1doZXJlT3V0KSkpOworICAgIH07CisgICAgcHJpbnQgIkVycm9yIGdldHRpbmcgVmlz
dWFsIFN0dWRpbyBMb2NhdGlvbjogJEBcbiIgaWYgJEA7CisgICAgdW5kZWYgJEA7CisKKyAgICBy
ZXR1cm4gdW5kZWYgdW5sZXNzIChzY2FsYXIgQCRpbnN0YWxsYXRpb25zKTsKKwogICAgICMgUHJl
ZmVyIEVudGVycHJpc2UsIHRoZW4gUHJvZmVzc2lvbmFsLCB0aGVuIENvbW11bml0eSwgdGhlbgog
ICAgICMgYW55dGhpbmcgZWxzZSB0aGF0IHByb3ZpZGVzIE1TQnVpbGQuCi0gICAgZm9yZWFjaCBt
eSAkcHJvZHVjdFR5cGUgKCgKLSAgICAgICAgJ01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uUHJvZHVj
dC5FbnRlcnByaXNlJywKLSAgICAgICAgJ01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uUHJvZHVjdC5Q
cm9mZXNzaW9uYWwnLAotICAgICAgICAnTWljcm9zb2Z0LlZpc3VhbFN0dWRpby5Qcm9kdWN0LkNv
bW11bml0eScsCi0gICAgICAgIHVuZGVmCi0gICAgKSkgewotICAgICAgICBteSAkY29tbWFuZCA9
ICIkc291cmNlRGlyL1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnN3aGVyZSAtbm9sb2dvIC1s
YXRlc3QgLWZvcm1hdCBqc29uIC1yZXF1aXJlcyBNaWNyb3NvZnQuQ29tcG9uZW50Lk1TQnVpbGQi
OwotICAgICAgICBpZiAoZGVmaW5lZCAkcHJvZHVjdFR5cGUpIHsKLSAgICAgICAgICAgICRjb21t
YW5kIC49ICIgLXByb2R1Y3RzICRwcm9kdWN0VHlwZSI7Ci0gICAgICAgIH0KLSAgICAgICAgbXkg
JHZzV2hlcmVPdXQgPSBgJGNvbW1hbmRgOwotICAgICAgICBteSAkaW5zdGFsbGF0aW9ucyA9IFtd
OwotICAgICAgICBldmFsIHsKLSAgICAgICAgICAgICRpbnN0YWxsYXRpb25zID0gSlNPTjo6UFA6
OmRlY29kZV9qc29uKEVuY29kZTo6ZW5jb2RlKCdVVEYtOCcgPT4gRW5jb2RlOjpkZWNvZGUoY29u
c29sZV9pbiA9PiAkdnNXaGVyZU91dCkpKTsKLSAgICAgICAgfTsKLSAgICAgICAgcHJpbnQgIkVy
cm9yIGdldHRpbmcgVmlzdWFsIFN0dWRpbyBMb2NhdGlvbjogJEBcbiIgaWYgJEA7Ci0gICAgICAg
IHVuZGVmICRAOwotCi0gICAgICAgIGlmIChzY2FsYXIgQCRpbnN0YWxsYXRpb25zKSB7Ci0gICAg
ICAgICAgICBteSAkaW5zdGFsbGF0aW9uID0gJGluc3RhbGxhdGlvbnMtPlswXTsKLSAgICAgICAg
ICAgICR2c1doZXJlRm91bmRJbnN0YWxsYXRpb24gPSAkaW5zdGFsbGF0aW9uOwotICAgICAgICAg
ICAgcmV0dXJuICRpbnN0YWxsYXRpb247Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHVu
ZGVmOworICAgIG15IEBzb3J0ZWQgPSBzb3J0IHsKKyAgICAgICAgdmlzdWFsU3R1ZGlvUHJvZHVj
dElkUHJpb3JpdHkoJGEtPnsncHJvZHVjdElkJ30pCisgICAgICAgIDw9PgorICAgICAgICB2aXN1
YWxTdHVkaW9Qcm9kdWN0SWRQcmlvcml0eSgkYi0+eydwcm9kdWN0SWQnfSkKKyAgICB9IEAkaW5z
dGFsbGF0aW9uczsKKyAgICAkdnNXaGVyZUZvdW5kSW5zdGFsbGF0aW9uID0gcG9wIEBzb3J0ZWQ7
CisgICAgcmV0dXJuICR2c1doZXJlRm91bmRJbnN0YWxsYXRpb247Cit9CisKK3N1YiB2aXN1YWxT
dHVkaW9Qcm9kdWN0SWRQcmlvcml0eSgkKQoreworICAgIG15ICgkcHJvZHVjdElkKSA9IEBfOwor
ICAgIHJldHVybiAxIGlmICRwcm9kdWN0SWQgPT0gJ01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uUHJv
ZHVjdC5FbnRlcnByaXNlJzsKKyAgICByZXR1cm4gMiBpZiAkcHJvZHVjdElkID09ICdNaWNyb3Nv
ZnQuVmlzdWFsU3R1ZGlvLlByb2R1Y3QuUHJvZmVzc2lvbmFsJzsKKyAgICByZXR1cm4gMyBpZiAk
cHJvZHVjdElkID09ICdNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlByb2R1Y3QuQ29tbXVuaXR5JzsK
KyAgICByZXR1cm4gNDsKIH0KIAogc3ViIHZpc3VhbFN0dWRpb0luc3RhbGxEaXIKQEAgLTE5NjYs
MTUgKzE5NjksMTAgQEAgc3ViIGJ1aWxkWENvZGVQcm9qZWN0KCQkQCkKICAgICByZXR1cm4gc3lz
dGVtICJ4Y29kZWJ1aWxkIiwgIi1wcm9qZWN0IiwgIiRwcm9qZWN0Lnhjb2RlcHJvaiIsIEBleHRy
YU9wdGlvbnM7CiB9CiAKLXN1YiB1c2luZ1Zpc3VhbFN0dWRpb0V4cHJlc3MoKQotewotICAgIHNl
dHVwQ3lnd2luRW52KCk7Ci0gICAgcmV0dXJuICR3aWxsVXNlVkNFeHByZXNzV2hlbkJ1aWxkaW5n
OwotfQotCi1zdWIgYnVpbGRWaXN1YWxTdHVkaW9Qcm9qZWN0CitzdWIgYnVpbGRWaXN1YWxTdHVk
aW9Qcm9qZWN0KCQ7JDskKQogewotICAgIG15ICgkcHJvamVjdCwgJGNsZWFuKSA9IEBfOworICAg
IG15ICgkcHJvamVjdCwgJGNsZWFuLCAkYXJncykgPSBAXzsKKyAgICAkdnNXaGVyZUFyZ3MgPSAk
YXJncyBpZiAkYXJnczsKICAgICBzZXR1cEN5Z3dpbkVudigpOwogCiAgICAgbXkgJGNvbmZpZyA9
IGNvbmZpZ3VyYXRpb25Gb3JWaXN1YWxTdHVkaW8oKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352905</attachid>
            <date>2018-10-22 13:32:54 -0700</date>
            <delta_ts>2021-11-01 12:51:31 -0700</delta_ts>
            <desc>FIX example sentence in ChangeLog</desc>
            <filename>190797.diff</filename>
            <type>text/plain</type>
            <size>5905</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxNWMw
YzMxNjliZS4uNDA4ZjI1ZDEzODEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxOC0xMC0yMiAgQmFzdWtlIFN1enVr
aSAgPEJhc3VrZS5TdXp1a2lAc29ueS5jb20+CisKKyAgICAgICAgW1dpbl0gQWxsb3cgcGFzc2lu
ZyBleHRyYSB2c3doZXJlIGFyZ3VtZW50cyB0byBidWlsZC13ZWJraXQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA3OTcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgLS12c3doZXJlYXJncyBjb21t
YW5kIGxpbmUgb3B0aW9uIHRvIHBhc3MgZXh0cmEgYXJncyB0byB2c3doZXJlLmV4ZQorICAgICAg
ICB3aGljaCBpcyB1c2VkIGludGVybmFsbHkgdG8gZGV0ZXJtaW5lIGxvY2F0aW9uIG9mIFZpc3Vh
bFN0dWRpbyB0b29sY2hhaW4uCisKKyAgICAgICAgRXhhbXBsZToKKyAgICAgICAgIyB0byB1c2Ug
dmVyc2lvbiBncmVhdGVyIHRoYW4gb3IgZXF1ZWFsIHRvIDE1LjcgYnV0IGxlc3MgdGhhbiAxNS44
CisgICAgICAgID4gcGVybCBidWlsZC13ZWJraXQgLS13aW5jYWlybyAtLXZzd2hlcmVhcmdzPSct
dmVyc2lvbiBbMTUuNywxNS44KScKKworICAgICAgICAjIHRvIHVzZSBWaXN1YWxTdHVkaW8gQ29t
bXVuaXR5IG92ZXIgVmlzdWFsU3R1ZGlvIFByb2Zlc3Npb25hbAorICAgICAgICA+IHBlcmwgYnVp
bGQtd2Via2l0IC0td2luY2Fpcm8gLS12c3doZXJlYXJncz0nLXByb2R1Y3RzIE1pY3Jvc29mdC5W
aXN1YWxTdHVkaW8uUHJvZHVjdC5Db21tdW5pdHknCisKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxk
LXdlYmtpdDoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdGRpcnMucG06CisgICAgICAgIChwaWNr
Q3VycmVudFZpc3VhbFN0dWRpb0luc3RhbGxhdGlvbik6CisgICAgICAgICh2aXN1YWxTdHVkaW9Q
cm9kdWN0SWRQcmlvcml0eSk6CisgICAgICAgIChidWlsZFZpc3VhbFN0dWRpb1Byb2plY3QpOgor
ICAgICAgICAodXNpbmdWaXN1YWxTdHVkaW9FeHByZXNzKTogRGVsZXRlZC4gTm90IHVzZWQgYW55
d2hlcmUuCisKIDIwMTgtMTAtMTkgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAg
ICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6ICFmcmFtZSgpLmFuaW1hdGlvbigpLmhhc0FuaW1hdGlv
bnMoKSBpbiBXZWJDb3JlOjpGcmFtZVZpZXc6OmRpZERlc3Ryb3lSZW5kZXJUcmVlKCkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0IGIvVG9vbHMvU2NyaXB0cy9idWlsZC13
ZWJraXQKaW5kZXggZTAwOGEyYzhiM2IuLmFmZDM4NzIwZTQxIDEwMDc1NQotLS0gYS9Ub29scy9T
Y3JpcHRzL2J1aWxkLXdlYmtpdAorKysgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdApAQCAt
NzcsNiArNzcsNyBAQCBteSAkc3RhcnRUaW1lID0gdGltZSgpOwogbXkgJGFyY2hzMzJiaXQgPSAw
OwogbXkgJHNraXBMaWJyYXJ5VXBkYXRlID0gMDsKIG15ICR1c2VDQ2FjaGUgPSAtMTsKK215ICR2
c3doZXJlYXJncyA9ICItbGF0ZXN0IjsKIAogbXkgQGZlYXR1cmVzID0gZ2V0RmVhdHVyZU9wdGlv
bkxpc3QoKTsKIApAQCAtMTM1LDYgKzEzNiw3IEBAIFVzYWdlOiAkcHJvZ3JhbU5hbWUgW29wdGlv
bnNdIFtvcHRpb25zIHRvIHBhc3MgdG8gYnVpbGQgc3lzdGVtXQogCiAgIC0tW25vLV11c2UtY2Nh
Y2hlICAgICAgICAgICAgICAgICBFbmFibGUgKG9yIGRpc2FibGUpIENDYWNoZSwgaWYgYXZhaWxh
YmxlCiAKKyAgLS12c3doZXJlYXJncz08YXJndW1lbnRzPiAgICAgICAgIE9wdGlvbmFsIHZzd2hl
cmUgYXJndW1lbnRzIChkZWZhdWx0ID0gLWxhdGVzdCkKIEVPRgogCiBteSAlb3B0aW9ucyA9ICgK
QEAgLTE1NCw2ICsxNTYsNyBAQCBteSAlb3B0aW9ucyA9ICgKICAgICAnbHRvLW1vZGU9cycgPT4g
XCRsdG9Nb2RlLAogICAgICdza2lwLWxpYnJhcnktdXBkYXRlJyA9PiBcJHNraXBMaWJyYXJ5VXBk
YXRlLAogICAgICd1c2UtY2NhY2hlIScgPT4gXCR1c2VDQ2FjaGUsCisgICAgJ3Zzd2hlcmVhcmdz
PXMnID0+IFwkdnN3aGVyZWFyZ3MsCiApOwogCiAjIEJ1aWxkIHVzYWdlIHRleHQgYW5kIG9wdGlv
bnMgbGlzdCBmcm9tIGZlYXR1cmVzCkBAIC0zMTAsNyArMzEzLDcgQEAgaWYgKGlzQXBwbGVXaW5X
ZWJLaXQoKSB8fCBpc1dpbkNhaXJvKCkpIHsKICAgICAgICAgY2hkaXIgRmlsZTo6U3BlYy0+Y2F0
ZGlyKCRiYXNlUHJvZHVjdERpciwgY29uZmlndXJhdGlvbigpKTsKICAgICAgICAgJHJlc3VsdCA9
IHN5c3RlbSgibmluamEiKTsKICAgICB9IGVsc2UgewotICAgICAgICAkcmVzdWx0ID0gYnVpbGRW
aXN1YWxTdHVkaW9Qcm9qZWN0KEZpbGU6OlNwZWMtPmNhdGZpbGUoJGJhc2VQcm9kdWN0RGlyLCBj
b25maWd1cmF0aW9uKCksICJXZWJLaXQuc2xuIiksICRjbGVhbik7CisgICAgICAgICRyZXN1bHQg
PSBidWlsZFZpc3VhbFN0dWRpb1Byb2plY3QoRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkYmFzZVByb2R1
Y3REaXIsIGNvbmZpZ3VyYXRpb24oKSwgIldlYktpdC5zbG4iKSwgJGNsZWFuLCAkdnN3aGVyZWFy
Z3MpOwogICAgIH0KICAgICBpZiAoZXhpdFN0YXR1cygkcmVzdWx0KSkgewogICAgICAgICBteSAk
c2NyaXB0RGlyID0gcmVsYXRpdmVTY3JpcHRzRGlyKCk7CmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdGRpcnMucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KaW5kZXggMGI1
Y2YxZWNkNWUuLmVhY2I2YWY0MDg3IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdGRp
cnMucG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCkBAIC0xNjcsNiArMTY3LDcg
QEAgbXkgJHdpbmRvd3NTb3VyY2VEaXI7CiBteSAkd2luVmVyc2lvbjsKIG15ICR3aWxsVXNlVkNF
eHByZXNzV2hlbkJ1aWxkaW5nID0gMDsKIG15ICR2c1doZXJlRm91bmRJbnN0YWxsYXRpb247Citt
eSAkdnNXaGVyZUFyZ3MgPSAnLWxhdGVzdCc7CiAKICMgRGVmaW5lZCBpbiBWQ1NVdGlscy4KIHN1
YiBleGl0U3RhdHVzKCQpOwpAQCAtNjYwLDMzICs2NjEsMzUgQEAgc3ViIHBpY2tDdXJyZW50Vmlz
dWFsU3R1ZGlvSW5zdGFsbGF0aW9uCiAgICAgcmVxdWlyZU1vZHVsZXNGb3JWU1doZXJlKCk7CiAg
ICAgZGV0ZXJtaW5lU291cmNlRGlyKCk7CiAKKyAgICBteSAkY29tbWFuZCA9ICIkc291cmNlRGly
L1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnN3aGVyZSAtbm9sb2dvIC1mb3JtYXQganNvbiAt
cmVxdWlyZXMgTWljcm9zb2Z0LkNvbXBvbmVudC5NU0J1aWxkICIgLiAkdnNXaGVyZUFyZ3M7Cisg
ICAgbXkgJHZzV2hlcmVPdXQgPSBgJGNvbW1hbmRgOworICAgIG15ICRpbnN0YWxsYXRpb25zID0g
W107CisgICAgZXZhbCB7CisgICAgICAgICRpbnN0YWxsYXRpb25zID0gSlNPTjo6UFA6OmRlY29k
ZV9qc29uKEVuY29kZTo6ZW5jb2RlKCdVVEYtOCcgPT4gRW5jb2RlOjpkZWNvZGUoY29uc29sZV9p
biA9PiAkdnNXaGVyZU91dCkpKTsKKyAgICB9OworICAgIHByaW50ICJFcnJvciBnZXR0aW5nIFZp
c3VhbCBTdHVkaW8gTG9jYXRpb246ICRAXG4iIGlmICRAOworICAgIHVuZGVmICRAOworCisgICAg
cmV0dXJuIHVuZGVmIHVubGVzcyAoc2NhbGFyIEAkaW5zdGFsbGF0aW9ucyk7CisKICAgICAjIFBy
ZWZlciBFbnRlcnByaXNlLCB0aGVuIFByb2Zlc3Npb25hbCwgdGhlbiBDb21tdW5pdHksIHRoZW4K
ICAgICAjIGFueXRoaW5nIGVsc2UgdGhhdCBwcm92aWRlcyBNU0J1aWxkLgotICAgIGZvcmVhY2gg
bXkgJHByb2R1Y3RUeXBlICgoCi0gICAgICAgICdNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlByb2R1
Y3QuRW50ZXJwcmlzZScsCi0gICAgICAgICdNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlByb2R1Y3Qu
UHJvZmVzc2lvbmFsJywKLSAgICAgICAgJ01pY3Jvc29mdC5WaXN1YWxTdHVkaW8uUHJvZHVjdC5D
b21tdW5pdHknLAotICAgICAgICB1bmRlZgotICAgICkpIHsKLSAgICAgICAgbXkgJGNvbW1hbmQg
PSAiJHNvdXJjZURpci9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3Zzd2hlcmUgLW5vbG9nbyAt
bGF0ZXN0IC1mb3JtYXQganNvbiAtcmVxdWlyZXMgTWljcm9zb2Z0LkNvbXBvbmVudC5NU0J1aWxk
IjsKLSAgICAgICAgaWYgKGRlZmluZWQgJHByb2R1Y3RUeXBlKSB7Ci0gICAgICAgICAgICAkY29t
bWFuZCAuPSAiIC1wcm9kdWN0cyAkcHJvZHVjdFR5cGUiOwotICAgICAgICB9Ci0gICAgICAgIG15
ICR2c1doZXJlT3V0ID0gYCRjb21tYW5kYDsKLSAgICAgICAgbXkgJGluc3RhbGxhdGlvbnMgPSBb
XTsKLSAgICAgICAgZXZhbCB7Ci0gICAgICAgICAgICAkaW5zdGFsbGF0aW9ucyA9IEpTT046OlBQ
OjpkZWNvZGVfanNvbihFbmNvZGU6OmVuY29kZSgnVVRGLTgnID0+IEVuY29kZTo6ZGVjb2RlKGNv
bnNvbGVfaW4gPT4gJHZzV2hlcmVPdXQpKSk7Ci0gICAgICAgIH07Ci0gICAgICAgIHByaW50ICJF
cnJvciBnZXR0aW5nIFZpc3VhbCBTdHVkaW8gTG9jYXRpb246ICRAXG4iIGlmICRAOwotICAgICAg
ICB1bmRlZiAkQDsKLQotICAgICAgICBpZiAoc2NhbGFyIEAkaW5zdGFsbGF0aW9ucykgewotICAg
ICAgICAgICAgbXkgJGluc3RhbGxhdGlvbiA9ICRpbnN0YWxsYXRpb25zLT5bMF07Ci0gICAgICAg
ICAgICAkdnNXaGVyZUZvdW5kSW5zdGFsbGF0aW9uID0gJGluc3RhbGxhdGlvbjsKLSAgICAgICAg
ICAgIHJldHVybiAkaW5zdGFsbGF0aW9uOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiB1
bmRlZjsKKyAgICBteSBAc29ydGVkID0gc29ydCB7CisgICAgICAgIHZpc3VhbFN0dWRpb1Byb2R1
Y3RJZFByaW9yaXR5KCRhLT57J3Byb2R1Y3RJZCd9KQorICAgICAgICA8PT4KKyAgICAgICAgdmlz
dWFsU3R1ZGlvUHJvZHVjdElkUHJpb3JpdHkoJGItPnsncHJvZHVjdElkJ30pCisgICAgfSBAJGlu
c3RhbGxhdGlvbnM7CisgICAgJHZzV2hlcmVGb3VuZEluc3RhbGxhdGlvbiA9IHBvcCBAc29ydGVk
OworICAgIHJldHVybiAkdnNXaGVyZUZvdW5kSW5zdGFsbGF0aW9uOworfQorCitzdWIgdmlzdWFs
U3R1ZGlvUHJvZHVjdElkUHJpb3JpdHkoJCkKK3sKKyAgICBteSAoJHByb2R1Y3RJZCkgPSBAXzsK
KyAgICByZXR1cm4gMSBpZiAkcHJvZHVjdElkID09ICdNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlBy
b2R1Y3QuRW50ZXJwcmlzZSc7CisgICAgcmV0dXJuIDIgaWYgJHByb2R1Y3RJZCA9PSAnTWljcm9z
b2Z0LlZpc3VhbFN0dWRpby5Qcm9kdWN0LlByb2Zlc3Npb25hbCc7CisgICAgcmV0dXJuIDMgaWYg
JHByb2R1Y3RJZCA9PSAnTWljcm9zb2Z0LlZpc3VhbFN0dWRpby5Qcm9kdWN0LkNvbW11bml0eSc7
CisgICAgcmV0dXJuIDQ7CiB9CiAKIHN1YiB2aXN1YWxTdHVkaW9JbnN0YWxsRGlyCkBAIC0xOTY2
LDE1ICsxOTY5LDEwIEBAIHN1YiBidWlsZFhDb2RlUHJvamVjdCgkJEApCiAgICAgcmV0dXJuIHN5
c3RlbSAieGNvZGVidWlsZCIsICItcHJvamVjdCIsICIkcHJvamVjdC54Y29kZXByb2oiLCBAZXh0
cmFPcHRpb25zOwogfQogCi1zdWIgdXNpbmdWaXN1YWxTdHVkaW9FeHByZXNzKCkKLXsKLSAgICBz
ZXR1cEN5Z3dpbkVudigpOwotICAgIHJldHVybiAkd2lsbFVzZVZDRXhwcmVzc1doZW5CdWlsZGlu
ZzsKLX0KLQotc3ViIGJ1aWxkVmlzdWFsU3R1ZGlvUHJvamVjdAorc3ViIGJ1aWxkVmlzdWFsU3R1
ZGlvUHJvamVjdCgkOyQ7JCkKIHsKLSAgICBteSAoJHByb2plY3QsICRjbGVhbikgPSBAXzsKKyAg
ICBteSAoJHByb2plY3QsICRjbGVhbiwgJGFyZ3MpID0gQF87CisgICAgJHZzV2hlcmVBcmdzID0g
JGFyZ3MgaWYgJGFyZ3M7CiAgICAgc2V0dXBDeWd3aW5FbnYoKTsKIAogICAgIG15ICRjb25maWcg
PSBjb25maWd1cmF0aW9uRm9yVmlzdWFsU3R1ZGlvKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>