<?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>194961</bug_id>
          
          <creation_ts>2019-02-22 14:59:40 -0800</creation_ts>
          <short_desc>[ews-app] Remove BuilderMapping table</short_desc>
          <delta_ts>2019-02-26 07:01:55 -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>Tools / Tests</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=195047</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=195045</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aakash Jain">aakash_jain</reporter>
          <assigned_to name="Aakash Jain">aakash_jain</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dean_johnson</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>jbedard</cc>
    
    <cc>lforschler</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1509183</commentid>
    <comment_count>0</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-02-22 14:59:40 -0800</bug_when>
    <thetext>BuilderMapping table add a lot of complexity and maintenance overhead without much value addition (the main benefit being space saving, however calculations shows the space usage for build table is anyways extremely low). The BuilderMapping needs to be kept in-sync with Buildbot. Also if Buildbot machine is formatted for any reason, the mapping will reset and we need to keep multiple versions of the mapping (otherwise bubbles will show incorrect names).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509184</commentid>
    <comment_count>1</comment_count>
      <attachid>362767</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-02-22 15:02:43 -0800</bug_when>
    <thetext>Created attachment 362767
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509648</commentid>
    <comment_count>2</comment_count>
      <attachid>362767</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-02-25 09:30:23 -0800</bug_when>
    <thetext>Comment on attachment 362767
Proposed patch

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

I&apos;d like to seem a bit more descriptive changelog, but other than that, looks good to me.

&gt; Tools/ChangeLog:7
&gt; +

Can we add a bit more of a description here? Something along the lines of &apos;Store builder information with build, instead of referencing builder&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509666</commentid>
    <comment_count>3</comment_count>
      <attachid>362909</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-02-25 10:17:56 -0800</bug_when>
    <thetext>Created attachment 362909
Proposed patch

&gt; Can we add a bit more of a description here? Something along the lines of &apos;Store builder information with build, instead of referencing builder&apos;
Done.

&gt; I&apos;d like to seem a bit more descriptive changelog, but other than that, looks good to me.
Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509686</commentid>
    <comment_count>4</comment_count>
      <attachid>362909</attachid>
    <who name="Dean Johnson">dean_johnson</who>
    <bug_when>2019-02-25 10:48:10 -0800</bug_when>
    <thetext>Comment on attachment 362909
Proposed patch

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

LGTM overall.

&gt; Tools/BuildSlaveSupport/ews-app/ews/models/build.py:40
&gt; +    builder_display_name = models.TextField()

Is it possible for this to be calculated at display time instead of stored? We could make this an @property if so, which would be cleaner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509692</commentid>
    <comment_count>5</comment_count>
      <attachid>362909</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-02-25 10:53:43 -0800</bug_when>
    <thetext>Comment on attachment 362909
Proposed patch

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

&gt;&gt; Tools/BuildSlaveSupport/ews-app/ews/models/build.py:40
&gt;&gt; +    builder_display_name = models.TextField()
&gt; 
&gt; Is it possible for this to be calculated at display time instead of stored? We could make this an @property if so, which would be cleaner.

Nope, there isn&apos;t a direct logic to convert builder full name to display name. We store both names in config.json (e.g.: https://ews-build.webkit-uat.org/config.json see &apos;name&apos; and &apos;shortname&apos;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509813</commentid>
    <comment_count>6</comment_count>
      <attachid>362909</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2019-02-25 15:56:17 -0800</bug_when>
    <thetext>Comment on attachment 362909
Proposed patch

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

&gt;&gt;&gt; Tools/BuildSlaveSupport/ews-app/ews/models/build.py:40
&gt;&gt;&gt; +    builder_name = models.TextField()
&gt;&gt;&gt; +    builder_display_name = models.TextField()
&gt;&gt; 
&gt;&gt; Is it possible for this to be calculated at display time instead of stored? We could make this an @property if so, which would be cleaner.
&gt; 
&gt; Nope, there isn&apos;t a direct logic to convert builder full name to display name. We store both names in config.json (e.g.: https://ews-build.webkit-uat.org/config.json see &apos;name&apos; and &apos;shortname&apos;).

1. Assuming there hasn&apos;t been any running production instance. If there is, it&apos;s worth to mention a migration SQL for an existing instance.
2. Should the name/display_name be unique in the table? If not, the UI would be quite confusing assuming the display name is the one the shows in the UI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509814</commentid>
    <comment_count>7</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-02-25 16:01:14 -0800</bug_when>
    <thetext>&gt; 1. Assuming there hasn&apos;t been any running production instance.
Nope, nothing in production currently.

&gt; 2. Should the name/display_name be unique in the table? If not, the UI would be quite confusing assuming the display name is the one the shows in the UI.
build table contains all the builds across buildbot. So the display_name can&apos;t be unique in this table, since there will be multiple builds on any builder. To find builds for a given patch, we will need to query this table.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509830</commentid>
    <comment_count>8</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2019-02-25 16:16:56 -0800</bug_when>
    <thetext>I see.
Correct me if I have any misunderstanding of this patch, the builder name or display name is actually a snapshot of the builder by the time the build is created. If so, calling it builder_name_snapshot and display_name_snapshot seems more accurate to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509860</commentid>
    <comment_count>9</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-02-25 17:15:30 -0800</bug_when>
    <thetext>(In reply to dewei_zhu from comment #8)
&gt; I see.
&gt; Correct me if I have any misunderstanding of this patch, the builder name or display name is actually a snapshot of the builder by the time the build is created.
Yes (this data is sent by buildbot itself). But the builder name of an existing builder doesn&apos;t change frequently (we do add/remove builders, but rarely rename existing builder, even renaming a builder is equivalent to creating a new builder in buildbot 0.9+). Changing display name should be very rare.

&gt;  If so, calling it builder_name_snapshot and display_name_snapshot seems more accurate to me.
So, I don&apos;t see a need to append snapshot to these field.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509863</commentid>
    <comment_count>10</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2019-02-25 17:30:35 -0800</bug_when>
    <thetext>OK. Does that mean avoid &quot;keep multiple versions of the mapping&quot; is not the major benefit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509881</commentid>
    <comment_count>11</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-02-25 18:06:17 -0800</bug_when>
    <thetext>(In reply to dewei_zhu from comment #10)
&gt; OK. Does that mean avoid &quot;keep multiple versions of the mapping&quot; is not the major benefit?
That&apos;s one of the benefit. Just to be clear, multiple versions of mappings would have been required for the scenario when &quot;Buildbot machine is formatted&quot;. Such an event (data loss on Buildbot machine) would be rare, maybe once in few years. However, the logic would have been needed to be written to handle that scenario.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509890</commentid>
    <comment_count>12</comment_count>
      <attachid>362909</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-25 18:52:39 -0800</bug_when>
    <thetext>Comment on attachment 362909
Proposed patch

Clearing flags on attachment: 362909

Committed r242065: &lt;https://trac.webkit.org/changeset/242065&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509891</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-25 18:52:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509893</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-25 18:53:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/48387573&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362767</attachid>
            <date>2019-02-22 15:02:43 -0800</date>
            <delta_ts>2019-02-25 10:17:56 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>remove-buildermapping.patch</filename>
            <type>text/plain</type>
            <size>7515</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI0MTk2NikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE1IEBACisyMDE5LTAyLTIyICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBbZXdzLWFwcF0gUmVtb3ZlIEJ1aWxkZXJNYXBwaW5nIHRhYmxlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQ5NjEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEJ1aWxkU2xhdmVT
dXBwb3J0L2V3cy1hcHAvZXdzL21vZGVscy9fX2luaXRfXy5weToKKyAgICAgICAgKiBCdWlsZFNs
YXZlU3VwcG9ydC9ld3MtYXBwL2V3cy9tb2RlbHMvYnVpbGQucHk6CisgICAgICAgICogQnVpbGRT
bGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3MvbW9kZWxzL2J1aWxkZXJtYXBwaW5nLnB5OiBSZW1vdmVk
LgorICAgICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2V3cy1hcHAvZXdzL3ZpZXdzL3N0YXR1c2J1
YmJsZS5weToKKwogMjAxOS0wMi0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlZ3Jlc3Npb24oUFNPTikgVW5hYmxlIHRvIHByZXZpZXcgcGFzc3dvcmQtcHJv
dGVjdGVkIGRvY3VtZW50cyBvbiBpQ2xvdWQuY29tCkluZGV4OiBUb29scy9CdWlsZFNsYXZlU3Vw
cG9ydC9ld3MtYXBwL2V3cy9tb2RlbHMvX19pbml0X18ucHkKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
QnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3MvbW9kZWxzL19faW5pdF9fLnB5CShyZXZpc2lv
biAyNDE4MjcpCisrKyBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYXBwL2V3cy9tb2RlbHMv
X19pbml0X18ucHkJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSwzIEBACi1mcm9tIGJ1aWxkZXJt
YXBwaW5nIGltcG9ydCAqCiBmcm9tIGJ1aWxkIGltcG9ydCAqCiBmcm9tIHBhdGNoIGltcG9ydCAq
CiBmcm9tIHN0ZXAgaW1wb3J0ICoKSW5kZXg6IFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2V3cy1h
cHAvZXdzL21vZGVscy9idWlsZC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9CdWlsZFNsYXZlU3Vw
cG9ydC9ld3MtYXBwL2V3cy9tb2RlbHMvYnVpbGQucHkJKHJldmlzaW9uIDI0MTgyNykKKysrIFRv
b2xzL0J1aWxkU2xhdmVTdXBwb3J0L2V3cy1hcHAvZXdzL21vZGVscy9idWlsZC5weQkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsNyArMjYsNiBAQCBpbXBvcnQgbG9nZ2luZwogCiBmcm9tIGRqYW5nby5k
YiBpbXBvcnQgbW9kZWxzCiBmcm9tIGV3cy5jb25maWcgaW1wb3J0IEVSUl9VTkVYUEVDVEVELCBT
VUNDRVNTCi1mcm9tIGV3cy5tb2RlbHMuYnVpbGRlcm1hcHBpbmcgaW1wb3J0IEJ1aWxkZXJNYXBw
aW5nCiBmcm9tIGV3cy5tb2RlbHMucGF0Y2ggaW1wb3J0IFBhdGNoCiBpbXBvcnQgZXdzLmNvbW1v
bi51dGlsIGFzIHV0aWwKIApAQCAtMzYsNyArMzUsOSBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dn
ZXIoX19uYW1lX18pCiBjbGFzcyBCdWlsZChtb2RlbHMuTW9kZWwpOgogICAgIHBhdGNoID0gbW9k
ZWxzLkZvcmVpZ25LZXkoUGF0Y2gsIG9uX2RlbGV0ZT1tb2RlbHMuQ0FTQ0FERSkKICAgICBidWls
ZF9pZCA9IG1vZGVscy5JbnRlZ2VyRmllbGQocHJpbWFyeV9rZXk9VHJ1ZSkKLSAgICBidWlsZGVy
ID0gbW9kZWxzLkZvcmVpZ25LZXkoQnVpbGRlck1hcHBpbmcsIG9uX2RlbGV0ZT1tb2RlbHMuRE9f
Tk9USElORykKKyAgICBidWlsZGVyX2lkID0gbW9kZWxzLkludGVnZXJGaWVsZCgpCisgICAgYnVp
bGRlcl9uYW1lID0gbW9kZWxzLlRleHRGaWVsZCgpCisgICAgYnVpbGRlcl9kaXNwbGF5X25hbWUg
PSBtb2RlbHMuVGV4dEZpZWxkKCkKICAgICBudW1iZXIgPSBtb2RlbHMuSW50ZWdlckZpZWxkKCkK
ICAgICByZXN1bHQgPSBtb2RlbHMuSW50ZWdlckZpZWxkKG51bGw9VHJ1ZSwgYmxhbms9VHJ1ZSkK
ICAgICBzdGF0ZV9zdHJpbmcgPSBtb2RlbHMuVGV4dEZpZWxkKCkKSW5kZXg6IFRvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L2V3cy1hcHAvZXdzL21vZGVscy9idWlsZGVybWFwcGluZy5weQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYXBwL2V3cy9tb2RlbHMvYnVpbGRl
cm1hcHBpbmcucHkJKHJldmlzaW9uIDI0MTgyNykKKysrIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0
L2V3cy1hcHAvZXdzL21vZGVscy9idWlsZGVybWFwcGluZy5weQkobm9uZXhpc3RlbnQpCkBAIC0x
LDg1ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0j
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECi0jIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
Ci1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IHVuaWNvZGVfbGl0ZXJhbHMKLQotaW1wb3J0IGxvZ2dp
bmcKLQotZnJvbSBkamFuZ28uZGIgaW1wb3J0IG1vZGVscwotZnJvbSBld3MuY29uZmlnIGltcG9y
dCBFUlJfVU5FWFBFQ1RFRCwgU1VDQ0VTUwotaW1wb3J0IGV3cy5jb21tb24udXRpbCBhcyB1dGls
Ci0KLV9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKLQotCi1jbGFzcyBCdWlsZGVy
TWFwcGluZyhtb2RlbHMuTW9kZWwpOgotICAgIGJ1aWxkZXJfaWQgPSBtb2RlbHMuSW50ZWdlckZp
ZWxkKHByaW1hcnlfa2V5PVRydWUpCi0gICAgYnVpbGRlcl9uYW1lID0gbW9kZWxzLlRleHRGaWVs
ZCgpCi0gICAgZGlzcGxheV9uYW1lID0gbW9kZWxzLlRleHRGaWVsZCgpCi0gICAgY3JlYXRlZCA9
IG1vZGVscy5EYXRlVGltZUZpZWxkKGF1dG9fbm93X2FkZD1UcnVlKQotICAgIG1vZGlmaWVkID0g
bW9kZWxzLkRhdGVUaW1lRmllbGQoYXV0b19ub3c9VHJ1ZSkKLQotICAgIGRlZiBfX3N0cl9fKHNl
bGYpOgotICAgICAgICByZXR1cm4gInt9OiB7fSIuZm9ybWF0KHNlbGYuYnVpbGRlcl9pZCwgc2Vs
Zi5kaXNwbGF5X25hbWUpCi0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgc2F2ZV9tYXBwaW5n
KGNscywgYnVpbGRlcl9pZCwgYnVpbGRlcl9uYW1lLCBkaXNwbGF5X25hbWUpOgotICAgICAgICBp
ZiBub3QgQnVpbGRlck1hcHBpbmcuaXNfdmFsaWRfbWFwcGluZyhidWlsZGVyX2lkLCBidWlsZGVy
X25hbWUsIGRpc3BsYXlfbmFtZSk6Ci0gICAgICAgICAgICByZXR1cm4gRVJSX1VORVhQRUNURUQK
LQotICAgICAgICBtYXBwaW5nID0gQnVpbGRlck1hcHBpbmcuZ2V0X2V4aXN0aW5nX21hcHBpbmco
YnVpbGRlcl9pZCkKLSAgICAgICAgaWYgbWFwcGluZzoKLSAgICAgICAgICAgICMgSWYgdGhlIG1h
cHBpbmcgaXMgdXBkYXRlZCwgZS5nLjogZGlzcGxheSBuYW1lIGNoYW5nZWQuCi0gICAgICAgICAg
ICByZXR1cm4gQnVpbGRlck1hcHBpbmcudXBkYXRlX21hcHBpbmcobWFwcGluZywgYnVpbGRlcl9p
ZCwgYnVpbGRlcl9uYW1lLCBkaXNwbGF5X25hbWUpCi0KLSAgICAgICAgQnVpbGRlck1hcHBpbmco
YnVpbGRlcl9pZCwgYnVpbGRlcl9uYW1lLCBkaXNwbGF5X25hbWUpLnNhdmUoKQotICAgICAgICBf
bG9nLmluZm8oJ1NhdmVkIG1hcHBpbmcgZm9yIGJ1aWxkZXJfaWQ6IHt9LCBuYW1lOiB7fSwgZGlz
cGxheV9uYW1lOiB7fScuZm9ybWF0KGJ1aWxkZXJfaWQsIGJ1aWxkZXJfbmFtZSwgZGlzcGxheV9u
YW1lKSkKLSAgICAgICAgcmV0dXJuIFNVQ0NFU1MKLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRl
ZiB1cGRhdGVfbWFwcGluZyhjbHMsIG1hcHBpbmcsIGJ1aWxkZXJfaWQsIGJ1aWxkZXJfbmFtZSwg
ZGlzcGxheV9uYW1lKToKLSAgICAgICAgaWYgbWFwcGluZy5idWlsZGVyX2lkICE9IGJ1aWxkZXJf
aWQ6Ci0gICAgICAgICAgICBfbG9nLmVycm9yKCdidWlsZGVyX2lkIHt9IGRvZXMgbm90IG1hdGNo
IHdpdGggYnVpbGRlcl9pZCB7fS4gSWdub3JpbmcgbmV3IGRhdGEuJy5mb3JtYXQobWFwcGluZy5i
dWlsZGVyX2lkLCBidWlsZGVyX2lkKSkKLSAgICAgICAgICAgIHJldHVybiBFUlJfVU5FWFBFQ1RF
RAotCi0gICAgICAgIGlmIG1hcHBpbmcuYnVpbGRlcl9uYW1lID09IGJ1aWxkZXJfbmFtZSBhbmQg
bWFwcGluZy5kaXNwbGF5X25hbWUgPT0gZGlzcGxheV9uYW1lOgotICAgICAgICAgICAgX2xvZy5k
ZWJ1ZygnTWFwcGluZyBhbHJlYWR5IGV4aXN0IGZvciBidWlsZGVyX2lkOiB7fScuZm9ybWF0KGJ1
aWxkZXJfaWQpKQotICAgICAgICAgICAgcmV0dXJuIFNVQ0NFU1MKLQotICAgICAgICBtYXBwaW5n
LmJ1aWxkZXJfbmFtZSA9IGJ1aWxkZXJfbmFtZQotICAgICAgICBtYXBwaW5nLmRpc3BsYXlfbmFt
ZSA9IGRpc3BsYXlfbmFtZQotICAgICAgICBtYXBwaW5nLnNhdmUodXBkYXRlX2ZpZWxkcz1bJ2J1
aWxkZXJfbmFtZScsICdkaXNwbGF5X25hbWUnLCAnbW9kaWZpZWQnXSkKLSAgICAgICAgX2xvZy5p
bmZvKCdVcGRhdGVkIG1hcHBpbmcgZm9yIGJ1aWxkZXJfaWQ6IHt9LCBuYW1lOiB7fSwgZGlzcGxh
eV9uYW1lOiB7fScuZm9ybWF0KGJ1aWxkZXJfaWQsIGJ1aWxkZXJfbmFtZSwgZGlzcGxheV9uYW1l
KSkKLSAgICAgICAgcmV0dXJuIFNVQ0NFU1MKLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBn
ZXRfZXhpc3RpbmdfbWFwcGluZyhjbHMsIGJ1aWxkZXJfaWQpOgotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICByZXR1cm4gQnVpbGRlck1hcHBpbmcub2JqZWN0cy5nZXQoYnVpbGRlcl9pZD1idWls
ZGVyX2lkKQotICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotCi0gICAg
QGNsYXNzbWV0aG9kCi0gICAgZGVmIGlzX3ZhbGlkX21hcHBpbmcoY2xzLCBidWlsZGVyX2lkLCBi
dWlsZGVyX25hbWUsIGRpc3BsYXlfbmFtZSk6Ci0gICAgICAgIGlmIG5vdCB1dGlsLmlzX3ZhbGlk
X2lkKGJ1aWxkZXJfaWQpOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIHJldHVy
biBUcnVlCkluZGV4OiBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYXBwL2V3cy92aWV3cy9z
dGF0dXNidWJibGUucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZXdz
LWFwcC9ld3Mvdmlld3Mvc3RhdHVzYnViYmxlLnB5CShyZXZpc2lvbiAyNDE4MjcpCisrKyBUb29s
cy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYXBwL2V3cy92aWV3cy9zdGF0dXNidWJibGUucHkJKHdv
cmtpbmcgY29weSkKQEAgLTI2LDE5ICsyNiwxNCBAQCBmcm9tIGRqYW5nby5odHRwIGltcG9ydCBI
dHRwUmVzcG9uc2UKIGZyb20gZGphbmdvLnNob3J0Y3V0cyBpbXBvcnQgcmVuZGVyCiBmcm9tIGRq
YW5nby52aWV3cyBpbXBvcnQgVmlldwogZnJvbSBkamFuZ28udmlld3MuZGVjb3JhdG9ycy5jbGlj
a2phY2tpbmcgaW1wb3J0IHhmcmFtZV9vcHRpb25zX2V4ZW1wdAotZnJvbSBld3MubW9kZWxzLmJ1
aWxkZXJtYXBwaW5nIGltcG9ydCBCdWlsZGVyTWFwcGluZwogZnJvbSBld3MubW9kZWxzLnBhdGNo
IGltcG9ydCBQYXRjaAogaW1wb3J0IGV3cy5jb25maWcgYXMgY29uZmlnCiAKIAogY2xhc3MgU3Rh
dHVzQnViYmxlKFZpZXcpOgogICAgIGRlZiBfYnVpbGRfYnViYmxlKHNlbGYsIGJ1aWxkLCBwYXRj
aCk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGJ1aWxkZXJfZGlzcGxheV9uYW1lID0gYnVp
bGQuYnVpbGRlci5kaXNwbGF5X25hbWUKLSAgICAgICAgICAgIGJ1aWxkZXJfZnVsbF9uYW1lID0g
YnVpbGQuYnVpbGRlci5idWlsZGVyX25hbWUKLSAgICAgICAgZXhjZXB0IEJ1aWxkZXJNYXBwaW5n
LkRvZXNOb3RFeGlzdDoKLSAgICAgICAgICAgIGJ1aWxkZXJfZGlzcGxheV9uYW1lID0gYnVpbGQu
YnVpbGRlcl9pZAotICAgICAgICAgICAgYnVpbGRlcl9mdWxsX25hbWUgPSAnJworICAgICAgICBi
dWlsZGVyX2Rpc3BsYXlfbmFtZSA9IGJ1aWxkLmJ1aWxkZXJfZGlzcGxheV9uYW1lCisgICAgICAg
IGJ1aWxkZXJfZnVsbF9uYW1lID0gYnVpbGQuYnVpbGRlcl9uYW1lCiAKICAgICAgICAgYnViYmxl
ID0gewogICAgICAgICAgICAgIm5hbWUiOiBidWlsZGVyX2Rpc3BsYXlfbmFtZSwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362909</attachid>
            <date>2019-02-25 10:17:56 -0800</date>
            <delta_ts>2019-02-25 18:52:39 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>remove-buildermapping-v2.patch</filename>
            <type>text/plain</type>
            <size>7594</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI0MjA0NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE4IEBACisyMDE5LTAyLTI1ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBbZXdzLWFwcF0gUmVtb3ZlIEJ1aWxkZXJNYXBwaW5nIHRhYmxlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQ5NjEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9yZSBidWlsZGVy
IG5hbWUgZGlyZWN0bHkgaW4gYnVpbGQgdGFibGUsIGluc3RlYWQgb2YgaGF2aW5nIGEgc2VwYXJh
dGUKKyAgICAgICAgdGFibGUgZm9yIGl0LgorCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQv
ZXdzLWFwcC9ld3MvbW9kZWxzL19faW5pdF9fLnB5OgorICAgICAgICAqIEJ1aWxkU2xhdmVTdXBw
b3J0L2V3cy1hcHAvZXdzL21vZGVscy9idWlsZC5weToKKyAgICAgICAgKiBCdWlsZFNsYXZlU3Vw
cG9ydC9ld3MtYXBwL2V3cy9tb2RlbHMvYnVpbGRlcm1hcHBpbmcucHk6IFJlbW92ZWQuCisgICAg
ICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3Mvdmlld3Mvc3RhdHVzYnViYmxlLnB5
OgorCiAyMDE5LTAyLTI1ICBUaGliYXVsdCBTYXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbRmxhdHBha10gQWRkIHN1cHBvcnQgZm9yIGZsYXRwYWsgPiAxLjEuMgpJbmRl
eDogVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3MvbW9kZWxzL19faW5pdF9fLnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2V3cy1hcHAvZXdzL21vZGVs
cy9fX2luaXRfXy5weQkocmV2aXNpb24gMjQyMDQ0KQorKysgVG9vbHMvQnVpbGRTbGF2ZVN1cHBv
cnQvZXdzLWFwcC9ld3MvbW9kZWxzL19faW5pdF9fLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQg
KzEsMyBAQAotZnJvbSBidWlsZGVybWFwcGluZyBpbXBvcnQgKgogZnJvbSBidWlsZCBpbXBvcnQg
KgogZnJvbSBwYXRjaCBpbXBvcnQgKgogZnJvbSBzdGVwIGltcG9ydCAqCkluZGV4OiBUb29scy9C
dWlsZFNsYXZlU3VwcG9ydC9ld3MtYXBwL2V3cy9tb2RlbHMvYnVpbGQucHkKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3MvbW9kZWxzL2J1aWxkLnB5CShy
ZXZpc2lvbiAyNDIwNDQpCisrKyBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYXBwL2V3cy9t
b2RlbHMvYnVpbGQucHkJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDYgQEAgaW1wb3J0IGxv
Z2dpbmcKIAogZnJvbSBkamFuZ28uZGIgaW1wb3J0IG1vZGVscwogZnJvbSBld3MuY29uZmlnIGlt
cG9ydCBFUlJfVU5FWFBFQ1RFRCwgU1VDQ0VTUwotZnJvbSBld3MubW9kZWxzLmJ1aWxkZXJtYXBw
aW5nIGltcG9ydCBCdWlsZGVyTWFwcGluZwogZnJvbSBld3MubW9kZWxzLnBhdGNoIGltcG9ydCBQ
YXRjaAogaW1wb3J0IGV3cy5jb21tb24udXRpbCBhcyB1dGlsCiAKQEAgLTM2LDcgKzM1LDkgQEAg
X2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogY2xhc3MgQnVpbGQobW9kZWxzLk1v
ZGVsKToKICAgICBwYXRjaCA9IG1vZGVscy5Gb3JlaWduS2V5KFBhdGNoLCBvbl9kZWxldGU9bW9k
ZWxzLkNBU0NBREUpCiAgICAgYnVpbGRfaWQgPSBtb2RlbHMuSW50ZWdlckZpZWxkKHByaW1hcnlf
a2V5PVRydWUpCi0gICAgYnVpbGRlciA9IG1vZGVscy5Gb3JlaWduS2V5KEJ1aWxkZXJNYXBwaW5n
LCBvbl9kZWxldGU9bW9kZWxzLkRPX05PVEhJTkcpCisgICAgYnVpbGRlcl9pZCA9IG1vZGVscy5J
bnRlZ2VyRmllbGQoKQorICAgIGJ1aWxkZXJfbmFtZSA9IG1vZGVscy5UZXh0RmllbGQoKQorICAg
IGJ1aWxkZXJfZGlzcGxheV9uYW1lID0gbW9kZWxzLlRleHRGaWVsZCgpCiAgICAgbnVtYmVyID0g
bW9kZWxzLkludGVnZXJGaWVsZCgpCiAgICAgcmVzdWx0ID0gbW9kZWxzLkludGVnZXJGaWVsZChu
dWxsPVRydWUsIGJsYW5rPVRydWUpCiAgICAgc3RhdGVfc3RyaW5nID0gbW9kZWxzLlRleHRGaWVs
ZCgpCkluZGV4OiBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYXBwL2V3cy9tb2RlbHMvYnVp
bGRlcm1hcHBpbmcucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZXdz
LWFwcC9ld3MvbW9kZWxzL2J1aWxkZXJtYXBwaW5nLnB5CShyZXZpc2lvbiAyNDIwNDQpCisrKyBU
b29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYXBwL2V3cy9tb2RlbHMvYnVpbGRlcm1hcHBpbmcu
cHkJKG5vbmV4aXN0ZW50KQpAQCAtMSw4NSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxOC0y
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0jIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCi0jIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSMgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSMgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLQotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB1bmljb2RlX2xp
dGVyYWxzCi0KLWltcG9ydCBsb2dnaW5nCi0KLWZyb20gZGphbmdvLmRiIGltcG9ydCBtb2RlbHMK
LWZyb20gZXdzLmNvbmZpZyBpbXBvcnQgRVJSX1VORVhQRUNURUQsIFNVQ0NFU1MKLWltcG9ydCBl
d3MuY29tbW9uLnV0aWwgYXMgdXRpbAotCi1fbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1l
X18pCi0KLQotY2xhc3MgQnVpbGRlck1hcHBpbmcobW9kZWxzLk1vZGVsKToKLSAgICBidWlsZGVy
X2lkID0gbW9kZWxzLkludGVnZXJGaWVsZChwcmltYXJ5X2tleT1UcnVlKQotICAgIGJ1aWxkZXJf
bmFtZSA9IG1vZGVscy5UZXh0RmllbGQoKQotICAgIGRpc3BsYXlfbmFtZSA9IG1vZGVscy5UZXh0
RmllbGQoKQotICAgIGNyZWF0ZWQgPSBtb2RlbHMuRGF0ZVRpbWVGaWVsZChhdXRvX25vd19hZGQ9
VHJ1ZSkKLSAgICBtb2RpZmllZCA9IG1vZGVscy5EYXRlVGltZUZpZWxkKGF1dG9fbm93PVRydWUp
Ci0KLSAgICBkZWYgX19zdHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICJ7fToge30iLmZvcm1h
dChzZWxmLmJ1aWxkZXJfaWQsIHNlbGYuZGlzcGxheV9uYW1lKQotCi0gICAgQGNsYXNzbWV0aG9k
Ci0gICAgZGVmIHNhdmVfbWFwcGluZyhjbHMsIGJ1aWxkZXJfaWQsIGJ1aWxkZXJfbmFtZSwgZGlz
cGxheV9uYW1lKToKLSAgICAgICAgaWYgbm90IEJ1aWxkZXJNYXBwaW5nLmlzX3ZhbGlkX21hcHBp
bmcoYnVpbGRlcl9pZCwgYnVpbGRlcl9uYW1lLCBkaXNwbGF5X25hbWUpOgotICAgICAgICAgICAg
cmV0dXJuIEVSUl9VTkVYUEVDVEVECi0KLSAgICAgICAgbWFwcGluZyA9IEJ1aWxkZXJNYXBwaW5n
LmdldF9leGlzdGluZ19tYXBwaW5nKGJ1aWxkZXJfaWQpCi0gICAgICAgIGlmIG1hcHBpbmc6Ci0g
ICAgICAgICAgICAjIElmIHRoZSBtYXBwaW5nIGlzIHVwZGF0ZWQsIGUuZy46IGRpc3BsYXkgbmFt
ZSBjaGFuZ2VkLgotICAgICAgICAgICAgcmV0dXJuIEJ1aWxkZXJNYXBwaW5nLnVwZGF0ZV9tYXBw
aW5nKG1hcHBpbmcsIGJ1aWxkZXJfaWQsIGJ1aWxkZXJfbmFtZSwgZGlzcGxheV9uYW1lKQotCi0g
ICAgICAgIEJ1aWxkZXJNYXBwaW5nKGJ1aWxkZXJfaWQsIGJ1aWxkZXJfbmFtZSwgZGlzcGxheV9u
YW1lKS5zYXZlKCkKLSAgICAgICAgX2xvZy5pbmZvKCdTYXZlZCBtYXBwaW5nIGZvciBidWlsZGVy
X2lkOiB7fSwgbmFtZToge30sIGRpc3BsYXlfbmFtZToge30nLmZvcm1hdChidWlsZGVyX2lkLCBi
dWlsZGVyX25hbWUsIGRpc3BsYXlfbmFtZSkpCi0gICAgICAgIHJldHVybiBTVUNDRVNTCi0KLSAg
ICBAY2xhc3NtZXRob2QKLSAgICBkZWYgdXBkYXRlX21hcHBpbmcoY2xzLCBtYXBwaW5nLCBidWls
ZGVyX2lkLCBidWlsZGVyX25hbWUsIGRpc3BsYXlfbmFtZSk6Ci0gICAgICAgIGlmIG1hcHBpbmcu
YnVpbGRlcl9pZCAhPSBidWlsZGVyX2lkOgotICAgICAgICAgICAgX2xvZy5lcnJvcignYnVpbGRl
cl9pZCB7fSBkb2VzIG5vdCBtYXRjaCB3aXRoIGJ1aWxkZXJfaWQge30uIElnbm9yaW5nIG5ldyBk
YXRhLicuZm9ybWF0KG1hcHBpbmcuYnVpbGRlcl9pZCwgYnVpbGRlcl9pZCkpCi0gICAgICAgICAg
ICByZXR1cm4gRVJSX1VORVhQRUNURUQKLQotICAgICAgICBpZiBtYXBwaW5nLmJ1aWxkZXJfbmFt
ZSA9PSBidWlsZGVyX25hbWUgYW5kIG1hcHBpbmcuZGlzcGxheV9uYW1lID09IGRpc3BsYXlfbmFt
ZToKLSAgICAgICAgICAgIF9sb2cuZGVidWcoJ01hcHBpbmcgYWxyZWFkeSBleGlzdCBmb3IgYnVp
bGRlcl9pZDoge30nLmZvcm1hdChidWlsZGVyX2lkKSkKLSAgICAgICAgICAgIHJldHVybiBTVUND
RVNTCi0KLSAgICAgICAgbWFwcGluZy5idWlsZGVyX25hbWUgPSBidWlsZGVyX25hbWUKLSAgICAg
ICAgbWFwcGluZy5kaXNwbGF5X25hbWUgPSBkaXNwbGF5X25hbWUKLSAgICAgICAgbWFwcGluZy5z
YXZlKHVwZGF0ZV9maWVsZHM9WydidWlsZGVyX25hbWUnLCAnZGlzcGxheV9uYW1lJywgJ21vZGlm
aWVkJ10pCi0gICAgICAgIF9sb2cuaW5mbygnVXBkYXRlZCBtYXBwaW5nIGZvciBidWlsZGVyX2lk
OiB7fSwgbmFtZToge30sIGRpc3BsYXlfbmFtZToge30nLmZvcm1hdChidWlsZGVyX2lkLCBidWls
ZGVyX25hbWUsIGRpc3BsYXlfbmFtZSkpCi0gICAgICAgIHJldHVybiBTVUNDRVNTCi0KLSAgICBA
Y2xhc3NtZXRob2QKLSAgICBkZWYgZ2V0X2V4aXN0aW5nX21hcHBpbmcoY2xzLCBidWlsZGVyX2lk
KToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIEJ1aWxkZXJNYXBwaW5nLm9iamVj
dHMuZ2V0KGJ1aWxkZXJfaWQ9YnVpbGRlcl9pZCkKLSAgICAgICAgZXhjZXB0OgotICAgICAgICAg
ICAgcmV0dXJuIE5vbmUKLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBpc192YWxpZF9tYXBw
aW5nKGNscywgYnVpbGRlcl9pZCwgYnVpbGRlcl9uYW1lLCBkaXNwbGF5X25hbWUpOgotICAgICAg
ICBpZiBub3QgdXRpbC5pc192YWxpZF9pZChidWlsZGVyX2lkKToKLSAgICAgICAgICAgIHJldHVy
biBGYWxzZQotICAgICAgICByZXR1cm4gVHJ1ZQpJbmRleDogVG9vbHMvQnVpbGRTbGF2ZVN1cHBv
cnQvZXdzLWFwcC9ld3Mvdmlld3Mvc3RhdHVzYnViYmxlLnB5Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L0J1aWxkU2xhdmVTdXBwb3J0L2V3cy1hcHAvZXdzL3ZpZXdzL3N0YXR1c2J1YmJsZS5weQkocmV2
aXNpb24gMjQyMDQ0KQorKysgVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3Mvdmll
d3Mvc3RhdHVzYnViYmxlLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxOSArMjYsMTQgQEAgZnJv
bSBkamFuZ28uaHR0cCBpbXBvcnQgSHR0cFJlc3BvbnNlCiBmcm9tIGRqYW5nby5zaG9ydGN1dHMg
aW1wb3J0IHJlbmRlcgogZnJvbSBkamFuZ28udmlld3MgaW1wb3J0IFZpZXcKIGZyb20gZGphbmdv
LnZpZXdzLmRlY29yYXRvcnMuY2xpY2tqYWNraW5nIGltcG9ydCB4ZnJhbWVfb3B0aW9uc19leGVt
cHQKLWZyb20gZXdzLm1vZGVscy5idWlsZGVybWFwcGluZyBpbXBvcnQgQnVpbGRlck1hcHBpbmcK
IGZyb20gZXdzLm1vZGVscy5wYXRjaCBpbXBvcnQgUGF0Y2gKIGltcG9ydCBld3MuY29uZmlnIGFz
IGNvbmZpZwogCiAKIGNsYXNzIFN0YXR1c0J1YmJsZShWaWV3KToKICAgICBkZWYgX2J1aWxkX2J1
YmJsZShzZWxmLCBidWlsZCwgcGF0Y2gpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBidWls
ZGVyX2Rpc3BsYXlfbmFtZSA9IGJ1aWxkLmJ1aWxkZXIuZGlzcGxheV9uYW1lCi0gICAgICAgICAg
ICBidWlsZGVyX2Z1bGxfbmFtZSA9IGJ1aWxkLmJ1aWxkZXIuYnVpbGRlcl9uYW1lCi0gICAgICAg
IGV4Y2VwdCBCdWlsZGVyTWFwcGluZy5Eb2VzTm90RXhpc3Q6Ci0gICAgICAgICAgICBidWlsZGVy
X2Rpc3BsYXlfbmFtZSA9IGJ1aWxkLmJ1aWxkZXJfaWQKLSAgICAgICAgICAgIGJ1aWxkZXJfZnVs
bF9uYW1lID0gJycKKyAgICAgICAgYnVpbGRlcl9kaXNwbGF5X25hbWUgPSBidWlsZC5idWlsZGVy
X2Rpc3BsYXlfbmFtZQorICAgICAgICBidWlsZGVyX2Z1bGxfbmFtZSA9IGJ1aWxkLmJ1aWxkZXJf
bmFtZQogCiAgICAgICAgIGJ1YmJsZSA9IHsKICAgICAgICAgICAgICJuYW1lIjogYnVpbGRlcl9k
aXNwbGF5X25hbWUsCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>