<?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>117900</bug_id>
          
          <creation_ts>2013-06-21 17:31:56 -0700</creation_ts>
          <short_desc>IDL dependencies are always regenerated, even if nothing has changed</short_desc>
          <delta_ts>2015-11-12 15:17:49 -0800</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>NEW</bug_status>
          <resolution></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="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>haraken</cc>
    
    <cc>laszlo.gombos</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>902722</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2013-06-21 17:31:56 -0700</bug_when>
    <thetext>IDL dependencies are always regenerated, even if nothing has changed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902723</commentid>
    <comment_count>1</comment_count>
      <attachid>205228</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2013-06-21 17:34:19 -0700</bug_when>
    <thetext>Created attachment 205228
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902752</commentid>
    <comment_count>2</comment_count>
      <attachid>205228</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-06-22 00:26:39 -0700</bug_when>
    <thetext>Comment on attachment 205228
Patch

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

I cannot test this on mac but I did similar tests with CMake and I had issues. Could you please try the following?
- Do a full build
- Edit Source/WebCore/page/History.idl and add a [NoInterfaceObject] extended attribute to the IDL interface
- Do an incremental build

What should happen is that:
a) JSHistory.* are regenerated.
b) JSDOMWindow.* should be regenerated so that the Window object no longer has a &apos;History&apos; property.

On CMake, a) was happening but not b), which is a real issue.
It may be that I did it wrong or differently with CMake so it would be good if you could double-check on mac that your patch doesn&apos;t do the same.

&gt; Source/WebCore/DerivedSources.make:1026
&gt; +JS%.h : %.idl $(JS_BINDINGS_SCRIPTS) $(IDL_ATTRIBUTES_FILE) $(PLATFORM_FEATURE_DEFINES)

Why doesn&apos;t this depend on $(SUPPLEMENTAL_DEPENDENCY_FILE)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903389</commentid>
    <comment_count>3</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2013-06-25 11:36:46 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 205228 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=205228&amp;action=review
&gt; 
&gt; I cannot test this on mac but I did similar tests with CMake and I had issues. Could you please try the following?
&gt; - Do a full build
&gt; - Edit Source/WebCore/page/History.idl and add a [NoInterfaceObject] extended attribute to the IDL interface
&gt; - Do an incremental build
&gt; 
&gt; What should happen is that:
&gt; a) JSHistory.* are regenerated.
&gt; b) JSDOMWindow.* should be regenerated so that the Window object no longer has a &apos;History&apos; property.
&gt; 
&gt; On CMake, a) was happening but not b), which is a real issue.
&gt; It may be that I did it wrong or differently with CMake so it would be good if you could double-check on mac that your patch doesn&apos;t do the same.

It worked as expected.

&gt; 
&gt; &gt; Source/WebCore/DerivedSources.make:1026
&gt; &gt; +JS%.h : %.idl $(JS_BINDINGS_SCRIPTS) $(IDL_ATTRIBUTES_FILE) $(PLATFORM_FEATURE_DEFINES)
&gt; 
&gt; Why doesn&apos;t this depend on $(SUPPLEMENTAL_DEPENDENCY_FILE)?

It hasn&apos;t since I fixed IDLs to not rebuild every time in the first place. The reason is that SupplementalDependencies.dep already captures the dependencies in a fine-grained way. DerivedSources.make includes it. So for each header, it knows the actual IDL files it depends on. If the dependency graph changes, then the dependency IDL files will also change. So if you add Supplemental to an IDL file the correct file that became supplemented will rebuild, but not others. Or if you change a file that is already supplemental, the interface supplemented will rebuild.

Unfortunately I am not sure any build systems besides &apos;make&apos; can do this trick.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903394</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-06-25 12:04:24 -0700</bug_when>
    <thetext>Ok, the only issue is that since you revert r151675, some ports will regress and start regenerating all the bindings whenever an IDL is touched. I&apos;ll take a look at CMake tomorrow and see if I can match what you&apos;re doing for Mac.

Does it hurt to keep r151675 in for now? I understand this is not the nicest approach but at least it still improves the situation a lot for other build systems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903395</commentid>
    <comment_count>5</comment_count>
      <attachid>205228</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2013-06-25 12:08:47 -0700</bug_when>
    <thetext>Comment on attachment 205228
Patch

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

&gt; Source/WebCore/bindings/scripts/preprocess-idls.pl:135
&gt; +    my @all_dependencies = [];

Is all_dependencies used anywhere? It seems to be new in this change but I don&apos;t see any other references to it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903396</commentid>
    <comment_count>6</comment_count>
      <attachid>205228</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-06-25 12:12:11 -0700</bug_when>
    <thetext>Comment on attachment 205228
Patch

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

&gt;&gt; Source/WebCore/bindings/scripts/preprocess-idls.pl:135
&gt;&gt; +    my @all_dependencies = [];
&gt; 
&gt; Is all_dependencies used anywhere? It seems to be new in this change but I don&apos;t see any other references to it.

Right, it is unused which is why I removed it as well in r151675 (that this patch reverts).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903411</commentid>
    <comment_count>7</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2013-06-25 12:56:23 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Ok, the only issue is that since you revert r151675, some ports will regress and start regenerating all the bindings whenever an IDL is touched. I&apos;ll take a look at CMake tomorrow and see if I can match what you&apos;re doing for Mac.
&gt; 
&gt; Does it hurt to keep r151675 in for now? I understand this is not the nicest approach but at least it still improves the situation a lot for other build systems.

It makes things worse for Mac, though, since it causes files to always be regenerated. The point of this change is to avoid doing that.

And for other ports, correct IDL dependencies never worked. In fact, to some extent they still don&apos;t; if you add a new supplemental source, all IDL files will be recompiled for build systems that don&apos;t use DerivedSources.make.

I think the best solution is for other ports to use DerivedSources.make to build generated dependencies. None of the higher level build systems are flexible enough to do it really right, and creating new kinds of derived sources is super hard if you have to code it for multiple build systems. I&apos;ll start a webkit-dev thread on that topic.

(In reply to comment #6)
&gt; (From update of attachment 205228 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=205228&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/bindings/scripts/preprocess-idls.pl:135
&gt; &gt;&gt; +    my @all_dependencies = [];
&gt; &gt; 
&gt; &gt; Is all_dependencies used anywhere? It seems to be new in this change but I don&apos;t see any other references to it.
&gt; 
&gt; Right, it is unused which is why I removed it as well in r151675 (that this patch reverts).

I can re-remove it. I just reverted the patch blind.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903421</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-06-25 13:48:03 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #4)
&gt; &gt; Ok, the only issue is that since you revert r151675, some ports will regress and start regenerating all the bindings whenever an IDL is touched. I&apos;ll take a look at CMake tomorrow and see if I can match what you&apos;re doing for Mac.
&gt; &gt; 
&gt; &gt; Does it hurt to keep r151675 in for now? I understand this is not the nicest approach but at least it still improves the situation a lot for other build systems.
&gt; 
&gt; It makes things worse for Mac, though, since it causes files to always be regenerated. The point of this change is to avoid doing that.
&gt; 
&gt; And for other ports, correct IDL dependencies never worked. In fact, to some extent they still don&apos;t; if you add a new supplemental source, all IDL files will be recompiled for build systems that don&apos;t use DerivedSources.make.
&gt; 
&gt; I think the best solution is for other ports to use DerivedSources.make to build generated dependencies. None of the higher level build systems are flexible enough to do it really right, and creating new kinds of derived sources is super hard if you have to code it for multiple build systems. I&apos;ll start a webkit-dev thread on that topic.

Ok, I did not realize that r151675 made things worse on Mac, sorry.

One possibility would be to add a --writeOnlyIfChanged argument to preprocess-idls.pl so that some build systems (such as CMake) can choose to use r151675, at least for now. So far, I haven&apos;t noticed any issue with r151675 and CMake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903565</commentid>
    <comment_count>9</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2013-06-25 23:50:56 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (In reply to comment #4)

&gt; 
&gt; Ok, I did not realize that r151675 made things worse on Mac, sorry.

Well, worse in one way and better in another. 

&gt; 
&gt; One possibility would be to add a --writeOnlyIfChanged argument to preprocess-idls.pl so that some build systems (such as CMake) can choose to use r151675, at least for now. So far, I haven&apos;t noticed any issue with r151675 and CMake.

That sounds like an ok way to go for now. I&apos;ll try to rework the patch that way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1141652</commentid>
    <comment_count>10</comment_count>
      <attachid>205228</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-11-12 15:17:49 -0800</bug_when>
    <thetext>Comment on attachment 205228
Patch

It seems this patch has gotten stale, clearing flags. Does the original issue still reproduce?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205228</attachid>
            <date>2013-06-21 17:34:19 -0700</date>
            <delta_ts>2015-11-12 15:17:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-117900-20130621173228.patch</filename>
            <type>text/plain</type>
            <size>5935</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MTg3MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEzLTA2LTIxICBNYWNpZWog
U3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CisKKyAgICAgICAgSURMIGRlcGVuZGVuY2llcyBh
cmUgYWx3YXlzIHJlZ2VuZXJhdGVkLCBldmVuIGlmIG5vdGhpbmcgaGFzIGNoYW5nZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzkwMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmV2
ZXJ0cyB0aGUgb3JpZ2luYWwgZml4IGZvciA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExNzcwOD4KKyAgICAgICAgYW5kIHJlLWZpeGVzIGl0IGluIGEgd2F5IHRoYXQg
YXZvaWRzIHJlZ2VuZXJhdGluZyBJREwgZGVwZW5kZW5jaWVzIGV2ZXJ5IHRpbWUsIGV2ZW4KKyAg
ICAgICAgd2hlbiBub3RoaW5nIGhhcyBjaGFuZ2VkLgorICAgICAgICAKKyAgICAgICAgTm8gbmV3
IHRlc3RzOyBidWlsZCBzeXN0ZW0gY2hhbmdlLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZTogUmVtb3ZlIHVubmVjZXNzYXJ5IGRlcGVuZGVuY2llcyBmcm9tIElETAorICAgICAgICBj
b21waWxhdGlvbi4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5w
bDogUmV2ZXJ0IHIxNTE2NzUKKyAgICAgICAgKEdlbmVyYXRlUGFydGlhbEludGVyZmFjZSk6IAor
CiAyMDEzLTA2LTIxICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAg
ICAgIEFYOiBUaXRsZSBmb3IgTGlzdEl0ZW1Sb2xlIHNob3VsZCBjb25zaXN0IG9mIGNvbmNhdGVu
YXRlZCBjaGlsZCB0ZXh0IGVsZW1lbnRzLgpJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCShyZXZpc2lvbiAxNTE4NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIzLDcgKzEwMjMsNyBAQCAkKFNVUFBMRU1FTlRBTF9N
QUtFRklMRV9ERVBTKSA6ICQoUFJFUFJPCiAJJChjYWxsIHByZXByb2Nlc3NfaWRsc19zY3JpcHQs
ICQoUFJFUFJPQ0VTU19JRExTX1NDUklQVFMpKSAtLWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJTkVT
KSAkKEFERElUSU9OQUxfSURMX0RFRklORVMpIExBTkdVQUdFX0pBVkFTQ1JJUFQiIC0taWRsRmls
ZXNMaXN0ICQoSURMX0ZJTEVTX1RNUCkgLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSAkKFNV
UFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJTEUpIC0td2luZG93Q29uc3RydWN0b3JzRmlsZSAkKFdJ
TkRPV19DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrZXJDb250ZXh0Q29uc3RydWN0b3JzRmlsZSAk
KFdPUktFUkNPTlRFWFRfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc3VwcGxlbWVudGFsTWFrZWZpbGVE
ZXBzICRACiAJcm0gLWYgJChJRExfRklMRVNfVE1QKQogCi1KUyUuaCA6ICUuaWRsICQoSlNfQklO
RElOR1NfU0NSSVBUUykgJChJRExfQVRUUklCVVRFU19GSUxFKSAkKFdJTkRPV19DT05TVFJVQ1RP
UlNfRklMRSkgJChXT1JLRVJDT05URVhUX0NPTlNUUlVDVE9SU19GSUxFKSAkKFBMQVRGT1JNX0ZF
QVRVUkVfREVGSU5FUykKK0pTJS5oIDogJS5pZGwgJChKU19CSU5ESU5HU19TQ1JJUFRTKSAkKElE
TF9BVFRSSUJVVEVTX0ZJTEUpICQoUExBVEZPUk1fRkVBVFVSRV9ERUZJTkVTKQogCSQoY2FsbCBn
ZW5lcmF0b3Jfc2NyaXB0LCAkKEpTX0JJTkRJTkdTX1NDUklQVFMpKSAkKElETF9DT01NT05fQVJH
UykgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FUykgJChBRERJVElPTkFMX0lETF9ERUZJTkVT
KSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWdlbmVyYXRvciBKUyAtLWlkbEF0dHJpYnV0ZXNGaWxl
ICQoSURMX0FUVFJJQlVURVNfRklMRSkgLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSAkKFNV
UFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJTEUpICQ8CiAKIGluY2x1ZGUgJChTVVBQTEVNRU5UQUxf
TUFLRUZJTEVfREVQUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvcHJl
cHJvY2Vzcy1pZGxzLnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsCShyZXZpc2lvbiAxNTE4NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbAkod29ya2luZyBjb3B5KQpA
QCAtNjAsNyArNjAsNyBAQCBteSAkd2luZG93Q29uc3RydWN0b3JzQ29kZSA9ICIiOwogbXkgJHdv
cmtlckNvbnRleHRDb25zdHJ1Y3RvcnNDb2RlID0gIiI7CiAjIEdldCByaWQgb2YgZHVwbGljYXRl
cyBpbiBpZGxGaWxlcyBhcnJheS4KIG15ICVpZGxGaWxlSGFzaCA9IG1hcCB7ICRfLCAxIH0gQGlk
bEZpbGVzOwotZm9yZWFjaCBteSAkaWRsRmlsZSAoc29ydCBrZXlzICVpZGxGaWxlSGFzaCkgewor
Zm9yZWFjaCBteSAkaWRsRmlsZSAoa2V5cyAlaWRsRmlsZUhhc2gpIHsKICAgICBteSAkZnVsbFBh
dGggPSBDd2Q6OnJlYWxwYXRoKCRpZGxGaWxlKTsKICAgICBteSAkaWRsRmlsZUNvbnRlbnRzID0g
Z2V0RmlsZUNvbnRlbnRzKCRmdWxsUGF0aCk7CiAgICAgIyBIYW5kbGUgcGFydGlhbCBpbnRlcmZh
Y2VzLgpAQCAtMTIxLDQ1ICsxMjEsMzIgQEAgZm9yZWFjaCBteSAkaWRsRmlsZSAoa2V5cyAlc3Vw
cGxlbWVudGFsRAogIyBUaGUgYWJvdmUgaW5kaWNhdGVzIHRoYXQgRE9NV2luZG93LmlkbCBpcyBz
dXBwbGVtZW50ZWQgYnkgUC5pZGwsIFEuaWRsIGFuZCBSLmlkbCwKICMgRG9jdW1lbnQuaWRsIGlz
IHN1cHBsZW1lbnRlZCBieSBTLmlkbCwgYW5kIEV2ZW50LmlkbCBpcyBzdXBwbGVtZW50ZWQgYnkg
bm8gSURMcy4KICMgVGhlIElETCB0aGF0IHN1cHBsZW1lbnRzIGFub3RoZXIgSURMIChlLmcuIFAu
aWRsKSBuZXZlciBhcHBlYXJzIGluIHRoZSBkZXBlbmRlbmN5IGZpbGUuCi1teSAkZGVwZW5kZW5j
aWVzID0gIiI7CisKK29wZW4gRkgsICI+ICRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSIgb3Ig
ZGllICJDYW5ub3Qgb3BlbiAkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGVcbiI7CisKIGZvcmVh
Y2ggbXkgJGlkbEZpbGUgKHNvcnQga2V5cyAlc3VwcGxlbWVudGFscykgewotICAgICRkZXBlbmRl
bmNpZXMgLj0gIiRpZGxGaWxlIEB7JHN1cHBsZW1lbnRhbHN7JGlkbEZpbGV9fVxuIjsKKyAgICBw
cmludCBGSCAkaWRsRmlsZSwgIiBAeyRzdXBwbGVtZW50YWxzeyRpZGxGaWxlfX1cbiI7CiB9Ci1X
cml0ZUZpbGVJZkNoYW5nZWQoJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlLCAkZGVwZW5kZW5j
aWVzKTsKK2Nsb3NlIEZIOworCiAKIGlmICgkc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzKSB7Ci0g
ICAgbXkgJG1ha2VmaWxlRGVwcyA9ICIiOworICAgIG9wZW4gTUFLRV9GSCwgIj4gJHN1cHBsZW1l
bnRhbE1ha2VmaWxlRGVwcyIgb3IgZGllICJDYW5ub3Qgb3BlbiAkc3VwcGxlbWVudGFsTWFrZWZp
bGVEZXBzXG4iOworICAgIG15IEBhbGxfZGVwZW5kZW5jaWVzID0gW107CiAgICAgZm9yZWFjaCBt
eSAkaWRsRmlsZSAoc29ydCBrZXlzICVzdXBwbGVtZW50YWxzKSB7CiAgICAgICAgIG15ICRiYXNl
bmFtZSA9ICRpZGxGaWxlVG9JbnRlcmZhY2VOYW1leyRpZGxGaWxlfTsKIAogICAgICAgICBteSBA
ZGVwZW5kZW5jaWVzID0gbWFwIHsgYmFzZW5hbWUoJF8pIH0gQHskc3VwcGxlbWVudGFsc3skaWRs
RmlsZX19OwogCi0gICAgICAgICRtYWtlZmlsZURlcHMgLj0gIkpTJHtiYXNlbmFtZX0uaDogQHtk
ZXBlbmRlbmNpZXN9XG4iOwotICAgICAgICAkbWFrZWZpbGVEZXBzIC49ICJET00ke2Jhc2VuYW1l
fS5oOiBAe2RlcGVuZGVuY2llc31cbiI7Ci0gICAgICAgICRtYWtlZmlsZURlcHMgLj0gIldlYkRP
TSR7YmFzZW5hbWV9Lmg6IEB7ZGVwZW5kZW5jaWVzfVxuIjsKKyAgICAgICAgcHJpbnQgTUFLRV9G
SCAiSlMke2Jhc2VuYW1lfS5oOiBAe2RlcGVuZGVuY2llc31cbiI7CisgICAgICAgIHByaW50IE1B
S0VfRkggIkRPTSR7YmFzZW5hbWV9Lmg6IEB7ZGVwZW5kZW5jaWVzfVxuIjsKKyAgICAgICAgcHJp
bnQgTUFLRV9GSCAiV2ViRE9NJHtiYXNlbmFtZX0uaDogQHtkZXBlbmRlbmNpZXN9XG4iOwogICAg
ICAgICBmb3JlYWNoIG15ICRkZXBlbmRlbmN5IChAZGVwZW5kZW5jaWVzKSB7Ci0gICAgICAgICAg
ICAkbWFrZWZpbGVEZXBzIC49ICIke2RlcGVuZGVuY3l9OlxuIjsKKyAgICAgICAgICAgIHByaW50
IE1BS0VfRkggIiR7ZGVwZW5kZW5jeX06XG4iOwogICAgICAgICB9CiAgICAgfQogCi0gICAgV3Jp
dGVGaWxlSWZDaGFuZ2VkKCRzdXBwbGVtZW50YWxNYWtlZmlsZURlcHMsICRtYWtlZmlsZURlcHMp
OwotfQotCi1zdWIgV3JpdGVGaWxlSWZDaGFuZ2VkCi17Ci0gICAgbXkgJGZpbGVOYW1lID0gc2hp
ZnQ7Ci0gICAgbXkgJGNvbnRlbnRzID0gc2hpZnQ7Ci0KLSAgICBpZiAoLWYgJGZpbGVOYW1lKSB7
Ci0gICAgICAgIG9wZW4gRkgsICI8IiwgJGZpbGVOYW1lIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiAk
ZmlsZU5hbWU6ICQhXG4iOwotICAgICAgICBteSBAbGluZXMgPSA8Rkg+OwotICAgICAgICBteSAk
b2xkQ29udGVudHMgPSBqb2luICIiLCBAbGluZXM7Ci0gICAgICAgIGNsb3NlIEZIOwotICAgICAg
ICByZXR1cm4gaWYgJGNvbnRlbnRzIGVxICRvbGRDb250ZW50czsKLSAgICB9Ci0gICAgb3BlbiBG
SCwgIj4iLCAkZmlsZU5hbWUgb3IgZGllICJDb3VsZG4ndCBvcGVuICRmaWxlTmFtZTogJCFcbiI7
Ci0gICAgcHJpbnQgRkggJGNvbnRlbnRzOwotICAgIGNsb3NlIEZIOworICAgIGNsb3NlIE1BS0Vf
Rkg7CiB9CiAKIHN1YiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UKQEAgLTE2OCw5ICsxNTUsMTIg
QEAgc3ViIEdlbmVyYXRlUGFydGlhbEludGVyZmFjZQogICAgIG15ICRhdHRyaWJ1dGVzQ29kZSA9
IHNoaWZ0OwogICAgIG15ICRkZXN0aW5hdGlvbkZpbGUgPSBzaGlmdDsKIAotICAgIG15ICRjb250
ZW50cyA9ICJwYXJ0aWFsIGludGVyZmFjZSAke2ludGVyZmFjZU5hbWV9IHtcbiRhdHRyaWJ1dGVz
Q29kZX07XG4iOwotICAgIFdyaXRlRmlsZUlmQ2hhbmdlZCgkZGVzdGluYXRpb25GaWxlLCAkY29u
dGVudHMpOwotCisgICAgIyBHZW5lcmF0ZSBwYXJ0aWFsIGludGVyZmFjZSBmb3IgZ2xvYmFsIGNv
bnN0cnVjdG9ycy4KKyAgICBvcGVuIFBBUlRJQUxfSU5URVJGQUNFX0ZILCAiPiAkZGVzdGluYXRp
b25GaWxlIiBvciBkaWUgIkNhbm5vdCBvcGVuICRkZXN0aW5hdGlvbkZpbGVcbiI7CisgICAgcHJp
bnQgUEFSVElBTF9JTlRFUkZBQ0VfRkggInBhcnRpYWwgaW50ZXJmYWNlICR7aW50ZXJmYWNlTmFt
ZX0ge1xuIjsKKyAgICBwcmludCBQQVJUSUFMX0lOVEVSRkFDRV9GSCAkYXR0cmlidXRlc0NvZGU7
CisgICAgcHJpbnQgUEFSVElBTF9JTlRFUkZBQ0VfRkggIn07XG4iOworICAgIGNsb3NlIFBBUlRJ
QUxfSU5URVJGQUNFX0ZIOwogICAgIG15ICRmdWxsUGF0aCA9IEN3ZDo6cmVhbHBhdGgoJGRlc3Rp
bmF0aW9uRmlsZSk7CiAgICAgJHN1cHBsZW1lbnRhbERlcGVuZGVuY2llc3skZnVsbFBhdGh9ID0g
WyRpbnRlcmZhY2VOYW1lXSBpZiAkaW50ZXJmYWNlTmFtZVRvSWRsRmlsZXskaW50ZXJmYWNlTmFt
ZX07CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>