<?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>206534</bug_id>
          
          <creation_ts>2020-01-21 08:21:12 -0800</creation_ts>
          <short_desc>EWS django app should send cq+ patches to commit-queue</short_desc>
          <delta_ts>2020-02-19 07:41: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>
          
          
          <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>
          <dependson>206774</dependson>
          <blocked>201934</blocked>
          <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>jbedard</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1609050</commentid>
    <comment_count>0</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-01-21 08:21:12 -0800</bug_when>
    <thetext>EWS Django app should send cq+ patches to commit-queue. So that commit-queue (on new EWS) can process them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609051</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-21 08:21:31 -0800</bug_when>
    <thetext>&lt;rdar://problem/58759731&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610875</commentid>
    <comment_count>2</comment_count>
      <attachid>388728</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-01-24 15:13:21 -0800</bug_when>
    <thetext>Created attachment 388728
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611923</commentid>
    <comment_count>3</comment_count>
      <attachid>388996</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-01-28 08:10:54 -0800</bug_when>
    <thetext>Created attachment 388996
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612047</commentid>
    <comment_count>4</comment_count>
      <attachid>388996</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-28 10:51:42 -0800</bug_when>
    <thetext>Comment on attachment 388996
Patch

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

&gt; Tools/BuildSlaveSupport/ews-app/ews/fetcher.py:65
&gt; +        self.send_patches_to_buildbot(patches_to_send)

Why weren&apos;t we doing this before? This seems out of the scope of this patch.

&gt; Tools/BuildSlaveSupport/ews-app/ews/fetcher.py:71
&gt; +        Patch.save_patches(patch_ids_commit_queue)

What does saving a patch do?

&gt; Tools/BuildSlaveSupport/ews-app/ews/fetcher.py:73
&gt; +        _log.info(&apos;{} cq+ patches, {} patches need to be sent to commit queue: {}&apos;.format(len(patch_ids_commit_queue), len(patches_to_send), patches_to_send))

We&apos;re printing the patches? That seems wrong, unless patches_to_send is actually patch_ids_to_send

&gt; Tools/BuildSlaveSupport/ews-app/ews/fetcher.py:109
&gt; +                    Patch.set_sent_to_commit_queue(patch_id, False)

Maybe this is better achieved by setting a &apos;send_patch&apos; function at the beginning of this function so we don&apos;t have to duplicate these if statements

&gt; Tools/BuildSlaveSupport/ews-app/ews/common/buildbot.py:44
&gt; +    def send_patch_to_buildbot(cls, patch_path, send_to_commit_queue=False, properties=[]):

Small nit: setting an argument to a function to a list like this is bad because it creates a global list. We usually want to do:

def send_patch_to_buildbot(cls, patch_path, send_to_commit_queue=False, properties=None):
    properties = properties if properties else []

Not part of the patch, though, so feel free to ignore it.

&gt; Tools/BuildSlaveSupport/ews-app/ews/common/buildbot.py:-56
&gt; -        _log.debug(&apos;Executing command: {}&apos;.format(command))

Why did we drop this logging message?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612092</commentid>
    <comment_count>5</comment_count>
      <attachid>388996</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-01-28 11:49:31 -0800</bug_when>
    <thetext>Comment on attachment 388996
Patch

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

&gt;&gt; Tools/BuildSlaveSupport/ews-app/ews/fetcher.py:65
&gt;&gt; +        self.send_patches_to_buildbot(patches_to_send)
&gt; 
&gt; Why weren&apos;t we doing this before? This seems out of the scope of this patch.

The diff might look visually confusing. We were doing this before as well, I just moved that code to the function send_patches_to_buildbot()

&gt;&gt; Tools/BuildSlaveSupport/ews-app/ews/fetcher.py:71
&gt;&gt; +        Patch.save_patches(patch_ids_commit_queue)
&gt; 
&gt; What does saving a patch do?

Save it in the database table.

&gt;&gt; Tools/BuildSlaveSupport/ews-app/ews/fetcher.py:73
&gt;&gt; +        _log.info(&apos;{} cq+ patches, {} patches need to be sent to commit queue: {}&apos;.format(len(patch_ids_commit_queue), len(patches_to_send), patches_to_send))
&gt; 
&gt; We&apos;re printing the patches? That seems wrong, unless patches_to_send is actually patch_ids_to_send

Yeah, these are just patch ids.

&gt;&gt; Tools/BuildSlaveSupport/ews-app/ews/fetcher.py:109
&gt;&gt; +                    Patch.set_sent_to_commit_queue(patch_id, False)
&gt; 
&gt; Maybe this is better achieved by setting a &apos;send_patch&apos; function at the beginning of this function so we don&apos;t have to duplicate these if statements

Done in updated patch.

&gt;&gt; Tools/BuildSlaveSupport/ews-app/ews/common/buildbot.py:44
&gt;&gt; +    def send_patch_to_buildbot(cls, patch_path, send_to_commit_queue=False, properties=[]):
&gt; 
&gt; Small nit: setting an argument to a function to a list like this is bad because it creates a global list. We usually want to do:
&gt; 
&gt; def send_patch_to_buildbot(cls, patch_path, send_to_commit_queue=False, properties=None):
&gt;     properties = properties if properties else []
&gt; 
&gt; Not part of the patch, though, so feel free to ignore it.

Done in updated patch.

&gt;&gt; Tools/BuildSlaveSupport/ews-app/ews/common/buildbot.py:-56
&gt;&gt; -        _log.debug(&apos;Executing command: {}&apos;.format(command))
&gt; 
&gt; Why did we drop this logging message?

because the command might contain sensitive data like buildbot try password.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612093</commentid>
    <comment_count>6</comment_count>
      <attachid>389043</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-01-28 11:51:31 -0800</bug_when>
    <thetext>Created attachment 389043
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612099</commentid>
    <comment_count>7</comment_count>
      <attachid>389043</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-28 12:02:29 -0800</bug_when>
    <thetext>Comment on attachment 389043
Patch

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

r+, just take a look at the removed return statement

&gt; Tools/BuildSlaveSupport/ews-app/ews/fetcher.py:-86
&gt; -        return patch_ids

Any reason we removed this return statement?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612103</commentid>
    <comment_count>8</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-01-28 12:06:48 -0800</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #7)
&gt; Any reason we removed this return statement?
Since the return value was never used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612116</commentid>
    <comment_count>9</comment_count>
      <attachid>389043</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-28 12:44:41 -0800</bug_when>
    <thetext>Comment on attachment 389043
Patch

Clearing flags on attachment: 389043

Committed r255269: &lt;https://trac.webkit.org/changeset/255269&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612117</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-28 12:44:43 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388728</attachid>
            <date>2020-01-24 15:13:21 -0800</date>
            <delta_ts>2020-01-24 15:46:50 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-206534-20200124181319.patch</filename>
            <type>text/plain</type>
            <size>10500</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1NTA5NSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDIwLTAxLTI0ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBFV1MgZGphbmdvIGFwcCBzaG91bGQgc2VuZCBjcSsgcGF0Y2hlcyB0byBj
b21taXQtcXVldWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNjUzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3MvY29tbW9uL2J1Z3ppbGxhLnB5Ogor
ICAgICAgICAoQnVnemlsbGEuX2dldF9jb21taXRfcXVldWVfcGF0Y2hlc19mcm9tX2J1Zyk6Cisg
ICAgICAgIChCdWd6aWxsYS5faXNfcGF0Y2hfY3FfcGx1cyk6CisgICAgICAgIChCdWd6aWxsYS5n
ZXRfbGlzdF9vZl9wYXRjaGVzX2Zvcl9jb21taXRfcXVldWUpOgorICAgICAgICAoQnVnemlsbGFC
ZWF1dGlmdWxTb3VwLmZldGNoX2J1Z19pZHNfZm9yX2NvbW1pdF9xdWV1ZSk6CisgICAgICAgIChC
dWd6aWxsYUJlYXV0aWZ1bFNvdXApOgorICAgICAgICAoQnVnemlsbGFCZWF1dGlmdWxTb3VwLl9m
ZXRjaF9idWdfaWRzX2FkdmFuY2VkX3F1ZXJ5KToKKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9y
dC9ld3MtYXBwL2V3cy9jb21tb24vYnVpbGRib3QucHk6CisgICAgICAgIChCdWlsZGJvdC5zZW5k
X3BhdGNoX3RvX2J1aWxkYm90KToKKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9ld3MtYXBw
L2V3cy9jb25maWcucHk6CisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3Mv
ZmV0Y2hlci5weToKKyAgICAgICAgKEJ1Z3ppbGxhUGF0Y2hGZXRjaGVyLmZldGNoKToKKyAgICAg
ICAgKEJ1Z3ppbGxhUGF0Y2hGZXRjaGVyLnNlbmRfcGF0Y2hlc190b19idWlsZGJvdCk6CisgICAg
ICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3MvbW9kZWxzL3BhdGNoLnB5OgorCiAy
MDIwLTAxLTIzICBNYXR0IExld2lzICA8amxld2lzM0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVt
b3ZlIEFwcGxlIHdpbmRvd3MgNyBxdWV1ZXMuCkluZGV4OiBUb29scy9CdWlsZFNsYXZlU3VwcG9y
dC9ld3MtYXBwL2V3cy9jb25maWcucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1
cHBvcnQvZXdzLWFwcC9ld3MvY29uZmlnLnB5CShyZXZpc2lvbiAyNTUwOTUpCisrKyBUb29scy9C
dWlsZFNsYXZlU3VwcG9ydC9ld3MtYXBwL2V3cy9jb25maWcucHkJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDYgKzMzLDcgQEAgaWYgaXNfdGVzdF9tb2RlX2VuYWJsZWQ6CiBlbHNlOgogICAgIEJVSUxE
Qk9UX1NFUlZFUl9IT1NUID0gJ2V3cy1idWlsZC53ZWJraXQub3JnJwogQlVJTERCT1RfU0VSVkVS
X1BPUlQgPSAnNTU1NScKK0NPTU1JVF9RVUVVRV9QT1JUID0gJzU1NTcnCiBCVUlMREJPVF9UUllf
VVNFUk5BTUUgPSBvcy5nZXRlbnYoJ0JVSUxEQk9UX1RSWV9VU0VSTkFNRScsICdzYW1wbGV1c2Vy
JykKIEJVSUxEQk9UX1RSWV9QQVNTV09SRCA9IG9zLmdldGVudignQlVJTERCT1RfVFJZX1BBU1NX
T1JEJywgJ3NhbXBsZXBhc3MnKQogCkluZGV4OiBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3Mt
YXBwL2V3cy9mZXRjaGVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0
L2V3cy1hcHAvZXdzL2ZldGNoZXIucHkJKHJldmlzaW9uIDI1NTA5NSkKKysrIFRvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L2V3cy1hcHAvZXdzL2ZldGNoZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTU2
LDEyICs1NiwyMSBAQCBjbGFzcyBCdWd6aWxsYVBhdGNoRmV0Y2hlcigpOgogCiAgICAgICAgIGlm
IG5vdCBwYXRjaF9pZHM6CiAgICAgICAgICAgICBwYXRjaF9pZHMgPSBCdWd6aWxsYS5nZXRfbGlz
dF9vZl9wYXRjaGVzX25lZWRpbmdfcmV2aWV3cygpCisgICAgICAgIHBhdGNoX2lkc19jb21taXRf
cXVldWUgPSBCdWd6aWxsYS5nZXRfbGlzdF9vZl9wYXRjaGVzX2Zvcl9jb21taXRfcXVldWUoKQog
ICAgICAgICBwYXRjaF9pZHMgPSBCdWd6aWxsYVBhdGNoRmV0Y2hlci5maWx0ZXJfdmFsaWRfcGF0
Y2hlcyhwYXRjaF9pZHMpCi0gICAgICAgIF9sb2cuZGVidWcoJ3I/IHBhdGNoZXM6IHt9Jy5mb3Jt
YXQocGF0Y2hfaWRzKSkKKyAgICAgICAgcGF0Y2hfaWRzX2NvbW1pdF9xdWV1ZSA9IEJ1Z3ppbGxh
UGF0Y2hGZXRjaGVyLmZpbHRlcl92YWxpZF9wYXRjaGVzKHBhdGNoX2lkc19jb21taXRfcXVldWUp
CisgICAgICAgIF9sb2cuaW5mbygncj8gcGF0Y2hlczoge30sIGNxKyBwYXRjaGVzOiB7fScuZm9y
bWF0KHBhdGNoX2lkcywgcGF0Y2hfaWRzX2NvbW1pdF9xdWV1ZSkpCiAgICAgICAgIFBhdGNoLnNh
dmVfcGF0Y2hlcyhwYXRjaF9pZHMpCisgICAgICAgIFBhdGNoLnNhdmVfcGF0Y2hlcyhwYXRjaF9p
ZHNfY29tbWl0X3F1ZXVlKQogICAgICAgICBwYXRjaGVzX3RvX3NlbmQgPSBzZWxmLnBhdGNoZXNf
dG9fc2VuZF90b19idWlsZGJvdChwYXRjaF9pZHMpCi0gICAgICAgIF9sb2cuaW5mbygne30gcj8g
cGF0Y2hlcywge30gcGF0Y2hlcyBuZWVkIHRvIGJlIHNlbnQgdG8gQnVpbGRib3Q6IHt9Jy5mb3Jt
YXQobGVuKHBhdGNoX2lkcyksIGxlbihwYXRjaGVzX3RvX3NlbmQpLCBwYXRjaGVzX3RvX3NlbmQp
KQorICAgICAgICBwYXRjaGVzX3RvX3NlbmRfdG9fY29tbWl0X3F1ZXVlID0gc2VsZi5wYXRjaGVz
X3RvX3NlbmRfdG9fYnVpbGRib3QocGF0Y2hfaWRzX2NvbW1pdF9xdWV1ZSkKKyAgICAgICAgX2xv
Zy5pbmZvKCd7fSByPyBwYXRjaGVzLCB7fSByPyBhbmQge30gY3ErIHBhdGNoZXMgbmVlZCB0byBi
ZSBzZW50IHRvIEJ1aWxkYm90OiB7fScuZm9ybWF0KAorICAgICAgICAgICAgbGVuKHBhdGNoX2lk
cyksIGxlbihwYXRjaGVzX3RvX3NlbmQpLCBsZW4ocGF0Y2hlc190b19zZW5kX3RvX2NvbW1pdF9x
dWV1ZSksIHBhdGNoZXNfdG9fc2VuZCkpCisgICAgICAgIHNlbGYuc2VuZF9wYXRjaGVzX3RvX2J1
aWxkYm90KHBhdGNoZXNfdG9fc2VuZCkKKyAgICAgICAgc2VsZi5zZW5kX3BhdGNoZXNfdG9fYnVp
bGRib3QocGF0Y2hlc190b19zZW5kX3RvX2NvbW1pdF9xdWV1ZSwgc2VuZF90b19jb21taXRfcXVl
dWU9VHJ1ZSkKKyAgICAgICAgcmV0dXJuIHBhdGNoX2lkcwogCisgICAgZGVmIHNlbmRfcGF0Y2hl
c190b19idWlsZGJvdChzZWxmLCBwYXRjaGVzX3RvX3NlbmQsIHNlbmRfdG9fY29tbWl0X3F1ZXVl
PUZhbHNlKToKICAgICAgICAgZm9yIHBhdGNoX2lkIGluIHBhdGNoZXNfdG9fc2VuZDoKICAgICAg
ICAgICAgIGJ6X3BhdGNoID0gQnVnemlsbGEucmV0cmlldmVfYXR0YWNobWVudChwYXRjaF9pZCkK
ICAgICAgICAgICAgIGlmIG5vdCBiel9wYXRjaCBvciBiel9wYXRjaFsnaWQnXSAhPSBwYXRjaF9p
ZDoKQEAgLTc2LDE0ICs4NSwxNCBAQCBjbGFzcyBCdWd6aWxsYVBhdGNoRmV0Y2hlcigpOgogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICBQYXRjaC5zZXRfc2VudF90b19idWls
ZGJvdChwYXRjaF9pZCwgVHJ1ZSkKICAgICAgICAgICAgIHJjID0gQnVpbGRib3Quc2VuZF9wYXRj
aF90b19idWlsZGJvdChiel9wYXRjaFsncGF0aCddLAotICAgICAgICAgICAgICAgICAgICAgcHJv
cGVydGllcz1bJ3BhdGNoX2lkPXt9Jy5mb3JtYXQocGF0Y2hfaWQpLCAnYnVnX2lkPXt9Jy5mb3Jt
YXQoYnpfcGF0Y2hbJ2J1Z19pZCddKSwgJ293bmVyPXt9Jy5mb3JtYXQoYnpfcGF0Y2guZ2V0KCdj
cmVhdG9yJywgJycpKV0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHJvcGVydGllcz1bJ3BhdGNoX2lkPXt9Jy5mb3JtYXQocGF0Y2hfaWQpLCAnYnVn
X2lkPXt9Jy5mb3JtYXQoYnpfcGF0Y2hbJ2J1Z19pZCddKSwgJ293bmVyPXt9Jy5mb3JtYXQoYnpf
cGF0Y2guZ2V0KCdjcmVhdG9yJywgJycpKV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VuZF90b19jb21taXRfcXVldWU9c2VuZF90b19jb21taXRf
cXVldWUpCiAgICAgICAgICAgICBpZiByYyA9PSAwOgogICAgICAgICAgICAgICAgIFBhdGNoLnNl
dF9idWdfaWQocGF0Y2hfaWQsIGJ6X3BhdGNoWydidWdfaWQnXSkKICAgICAgICAgICAgIGVsc2U6
CiAgICAgICAgICAgICAgICAgX2xvZy5lcnJvcignRmFpbGVkIHRvIHNlbmQgcGF0Y2ggdG8gYnVp
bGRib3QuJykKICAgICAgICAgICAgICAgICBQYXRjaC5zZXRfc2VudF90b19idWlsZGJvdChwYXRj
aF9pZCwgRmFsc2UpCiAgICAgICAgICAgICAgICAgI0ZJWE1FOiBzZW5kIGFuIGVtYWlsIGZvciB0
aGlzIGZhaWx1cmUKLSAgICAgICAgcmV0dXJuIHBhdGNoX2lkcwogCiAgICAgZGVmIHBhdGNoZXNf
dG9fc2VuZF90b19idWlsZGJvdChzZWxmLCBwYXRjaF9pZHMpOgogICAgICAgICByZXR1cm4gW3Bh
dGNoX2lkIGZvciBwYXRjaF9pZCBpbiBwYXRjaF9pZHMgaWYgbm90IFBhdGNoLmlzX3BhdGNoX3Nl
bnRfdG9fYnVpbGRib3QocGF0Y2hfaWQpXQpJbmRleDogVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQv
ZXdzLWFwcC9ld3MvY29tbW9uL2J1Z3ppbGxhLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L2V3cy1hcHAvZXdzL2NvbW1vbi9idWd6aWxsYS5weQkocmV2aXNpb24gMjU1
MDk1KQorKysgVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3MvY29tbW9uL2J1Z3pp
bGxhLnB5CSh3b3JraW5nIGNvcHkpCkBAIC03NCw2ICs3NCw0MSBAQCBjbGFzcyBCdWd6aWxsYSgp
OgogICAgICAgICByZXR1cm4gYXR0YWNobWVudF9qc29uLmdldChzdHIoYXR0YWNobWVudF9pZCkp
CiAKICAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgX2dldF9jb21taXRfcXVldWVfcGF0Y2hlc19m
cm9tX2J1ZyhjbHMsIGJ1Z19pZCk6CisgICAgICAgIGlmIG5vdCBQYXRjaC5pc192YWxpZF9wYXRj
aF9pZChidWdfaWQpOgorICAgICAgICAgICAgX2xvZy53YXJuKCdJbnZhbGlkIGJ1ZyBpZDogInt9
Iiwgc2tpcHBpbmcgZG93bmxvYWQuJy5mb3JtYXQoYnVnX2lkKSkKKyAgICAgICAgICAgIHJldHVy
biBbXQorCisgICAgICAgIGJ1Z191cmwgPSAne31yZXN0L2J1Zy97fS9hdHRhY2htZW50Jy5mb3Jt
YXQoY29uZmlnLkJVR19TRVJWRVJfVVJMLCBidWdfaWQpCisgICAgICAgIGFwaV9rZXkgPSBvcy5n
ZXRlbnYoJ0JVR1pJTExBX0FQSV9LRVknLCBOb25lKQorICAgICAgICBpZiBhcGlfa2V5OgorICAg
ICAgICAgICAgYnVnX3VybCArPSAnP2FwaV9rZXk9e30nLmZvcm1hdChhcGlfa2V5KQorICAgICAg
ICBidWcgPSB1dGlsLmZldGNoX2RhdGFfZnJvbV91cmwoYnVnX3VybCkKKyAgICAgICAgaWYgbm90
IGJ1ZzoKKyAgICAgICAgICAgIHJldHVybiBbXQorICAgICAgICBidWdfanNvbiA9IGJ1Zy5qc29u
KCkuZ2V0KCdidWdzJykKKyAgICAgICAgaWYgbm90IGJ1Z19qc29uIG9yIGxlbihidWdfanNvbikg
PT0gMDoKKyAgICAgICAgICAgIHJldHVybiBbXQorCisgICAgICAgIGNvbW1pdF9xdWV1ZV9wYXRj
aGVzID0gW10KKyAgICAgICAgYXR0YWNobWVudHNfZGF0YSA9IGJ1Z19qc29uLmdldChidWdfaWQp
CisgICAgICAgIGZvciBhdHRhY2htZW50X2pzb24gaW4gYnVnX2pzb24uZ2V0KHVuaWNvZGUoYnVn
X2lkKSk6CisgICAgICAgICAgICBpZiBCdWd6aWxsYS5faXNfcGF0Y2hfY3FfcGx1cyhhdHRhY2ht
ZW50X2pzb24pOgorICAgICAgICAgICAgICAgIGNvbW1pdF9xdWV1ZV9wYXRjaGVzLmFwcGVuZChh
dHRhY2htZW50X2pzb24uZ2V0KCdpZCcpKQorCisgICAgICAgIHJldHVybiBjb21taXRfcXVldWVf
cGF0Y2hlcworCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIF9pc19wYXRjaF9jcV9wbHVzKGNs
cywgcGF0Y2hfanNvbik6CisgICAgICAgIGlmIG5vdCBwYXRjaF9qc29uOgorICAgICAgICAgICAg
cmV0dXJuIC0xCisKKyAgICAgICAgZm9yIGZsYWcgaW4gcGF0Y2hfanNvbi5nZXQoJ2ZsYWdzJywg
W10pOgorICAgICAgICAgICAgaWYgZmxhZy5nZXQoJ25hbWUnKSA9PSAnY29tbWl0LXF1ZXVlJyBh
bmQgZmxhZy5nZXQoJ3N0YXR1cycpID09ICcrJzoKKyAgICAgICAgICAgICAgICByZXR1cm4gMQor
ICAgICAgICByZXR1cm4gMAorCisgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGZpbGVfcGF0aF9m
b3JfcGF0Y2goY2xzLCBwYXRjaF9pZCk6CiAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhj
b25maWcuUEFUQ0hfRk9MREVSKToKICAgICAgICAgICAgIG9zLm1rZGlyKGNvbmZpZy5QQVRDSF9G
T0xERVIpCkBAIC04Niw2ICsxMjEsMTQgQEAgY2xhc3MgQnVnemlsbGEoKToKICAgICAgICAgI1RP
RE86IGFkZCBzZWN1cml0eSBidWdzIHN1cHBvcnQgaGVyZS4KICAgICAgICAgcmV0dXJuIGlkc19u
ZWVkaW5nX3JldmlldwogCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGdldF9saXN0X29mX3Bh
dGNoZXNfZm9yX2NvbW1pdF9xdWV1ZShjbHMpOgorICAgICAgICBidWdfaWRzX2Zvcl9jb21taXRf
cXVldWUgPSBzZXQoQnVnemlsbGFCZWF1dGlmdWxTb3VwKCkuZmV0Y2hfYnVnX2lkc19mb3JfY29t
bWl0X3F1ZXVlKCkpCisgICAgICAgIGlkc19mb3JfY29tbWl0X3F1ZXVlID0gW10KKyAgICAgICAg
Zm9yIGJ1Z19pZCBpbiBidWdfaWRzX2Zvcl9jb21taXRfcXVldWU6CisgICAgICAgICAgICBpZHNf
Zm9yX2NvbW1pdF9xdWV1ZS5leHRlbmQoQnVnemlsbGEuX2dldF9jb21taXRfcXVldWVfcGF0Y2hl
c19mcm9tX2J1ZyhidWdfaWQpKQorICAgICAgICByZXR1cm4gaWRzX2Zvcl9jb21taXRfcXVldWUK
KwogCiBjbGFzcyBCdWd6aWxsYUJlYXV0aWZ1bFNvdXAoKToKICAgICAjIEZJWE1FOiBEZXByZWNh
dGUgdGhpcyBjbGFzcyB3aGVuIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MDg1MzEgaXMgZml4ZWQuCkBAIC0xNDMsNiArMTg2LDE3IEBAIGNsYXNzIEJ1Z3pp
bGxhQmVhdXRpZnVsU291cCgpOgogICAgICAgICAgICAgcmV2aWV3X3F1ZXVlX3VybCArPSAnJnBy
b2R1Y3Q9U2VjdXJpdHknCiAgICAgICAgIHJldHVybiBzZWxmLl9wYXJzZV9hdHRhY2htZW50X2lk
c19yZXF1ZXN0X3F1ZXJ5KHNlbGYuX2xvYWRfcXVlcnkocmV2aWV3X3F1ZXVlX3VybCksIHNpbmNl
KQogCisgICAgZGVmIGZldGNoX2J1Z19pZHNfZm9yX2NvbW1pdF9xdWV1ZShzZWxmKToKKyAgICAg
ICAgY29tbWl0X3F1ZXVlX3VybCA9ICJidWdsaXN0LmNnaT9xdWVyeV9mb3JtYXQ9YWR2YW5jZWQm
YnVnX3N0YXR1cz1VTkNPTkZJUk1FRCZidWdfc3RhdHVzPU5FVyZidWdfc3RhdHVzPUFTU0lHTkVE
JmJ1Z19zdGF0dXM9UkVPUEVORUQmZmllbGQwLTAtMD1mbGFndHlwZXMubmFtZSZ0eXBlMC0wLTA9
ZXF1YWxzJnZhbHVlMC0wLTA9Y29tbWl0LXF1ZXVlJTJCJm9yZGVyPUxhc3QrQ2hhbmdlZCIKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX2ZldGNoX2J1Z19pZHNfYWR2YW5jZWRfcXVlcnkoY29tbWl0X3F1
ZXVlX3VybCkKKworICAgIGRlZiBfZmV0Y2hfYnVnX2lkc19hZHZhbmNlZF9xdWVyeShzZWxmLCBx
dWVyeSk6CisgICAgICAgIHNvdXAgPSBCZWF1dGlmdWxTb3VwKHNlbGYuX2xvYWRfcXVlcnkocXVl
cnkpKQorICAgICAgICAjIFRoZSBjb250ZW50cyBvZiB0aGUgPGE+IGluc2lkZSB0aGUgY2VsbHMg
aW4gdGhlIGZpcnN0IGNvbHVtbiBoYXBwZW4KKyAgICAgICAgIyB0byBiZSB0aGUgYnVnIGlkLgor
ICAgICAgICByZXR1cm4gW2ludChidWdfbGlua19jZWxsLmZpbmQoImEiKS5zdHJpbmcpCisgICAg
ICAgICAgICAgICAgZm9yIGJ1Z19saW5rX2NlbGwgaW4gc291cCgndGQnLCAiZmlyc3QtY2hpbGQi
KV0KKwogICAgIGRlZiBfbG9hZF9xdWVyeShzZWxmLCBxdWVyeSk6CiAgICAgICAgIHNlbGYuYXV0
aGVudGljYXRlKCkKICAgICAgICAgZnVsbF91cmwgPSAne317fScuZm9ybWF0KGNvbmZpZy5CVUdf
U0VSVkVSX1VSTCwgcXVlcnkpCkluZGV4OiBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYXBw
L2V3cy9jb21tb24vYnVpbGRib3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1
cHBvcnQvZXdzLWFwcC9ld3MvY29tbW9uL2J1aWxkYm90LnB5CShyZXZpc2lvbiAyNTUwOTUpCisr
KyBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYXBwL2V3cy9jb21tb24vYnVpbGRib3QucHkJ
KHdvcmtpbmcgY29weSkKQEAgLTQxLDEwICs0MSwxMSBAQCBjbGFzcyBCdWlsZGJvdCgpOgogICAg
IGljb25zX2Zvcl9xdWV1ZXNfbWFwcGluZyA9IHt9CiAKICAgICBAY2xhc3NtZXRob2QKLSAgICBk
ZWYgc2VuZF9wYXRjaF90b19idWlsZGJvdChjbHMsIHBhdGNoX3BhdGgsIHByb3BlcnRpZXM9W10p
OgorICAgIGRlZiBzZW5kX3BhdGNoX3RvX2J1aWxkYm90KGNscywgcGF0Y2hfcGF0aCwgcHJvcGVy
dGllcz1bXSwgc2VuZF90b19jb21taXRfcXVldWU9RmFsc2UpOgorICAgICAgICBidWlsZGJvdF9w
b3J0ID0gY29uZmlnLkNPTU1JVF9RVUVVRV9QT1JUIGlmIHNlbmRfdG9fY29tbWl0X3F1ZXVlIGVs
c2UgY29uZmlnLkJVSUxEQk9UX1NFUlZFUl9QT1JUCiAgICAgICAgIGNvbW1hbmQgPSBbJ2J1aWxk
Ym90JywgJ3RyeScsCiAgICAgICAgICAgICAgICAgICAgJy0tY29ubmVjdD1wYicsCi0gICAgICAg
ICAgICAgICAgICAgJy0tbWFzdGVyPXt9Ont9Jy5mb3JtYXQoY29uZmlnLkJVSUxEQk9UX1NFUlZF
Ul9IT1NULCBjb25maWcuQlVJTERCT1RfU0VSVkVSX1BPUlQpLAorICAgICAgICAgICAgICAgICAg
ICctLW1hc3Rlcj17fTp7fScuZm9ybWF0KGNvbmZpZy5CVUlMREJPVF9TRVJWRVJfSE9TVCwgYnVp
bGRib3RfcG9ydCksCiAgICAgICAgICAgICAgICAgICAgJy0tdXNlcm5hbWU9e30nLmZvcm1hdChj
b25maWcuQlVJTERCT1RfVFJZX1VTRVJOQU1FKSwKICAgICAgICAgICAgICAgICAgICAnLS1wYXNz
d2Q9e30nLmZvcm1hdChjb25maWcuQlVJTERCT1RfVFJZX1BBU1NXT1JEKSwKICAgICAgICAgICAg
ICAgICAgICAnLS1kaWZmPXt9Jy5mb3JtYXQocGF0Y2hfcGF0aCksCkBAIC01Myw3ICs1NCw2IEBA
IGNsYXNzIEJ1aWxkYm90KCk6CiAgICAgICAgIGZvciBwcm9wZXJ0eSBpbiBwcm9wZXJ0aWVzOgog
ICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQoJy0tcHJvcGVydHk9e30nLmZvcm1hdChwcm9wZXJ0
eSkpCiAKLSAgICAgICAgX2xvZy5kZWJ1ZygnRXhlY3V0aW5nIGNvbW1hbmQ6IHt9Jy5mb3JtYXQo
Y29tbWFuZCkpCiAgICAgICAgIHJldHVybl9jb2RlID0gc3VicHJvY2Vzcy5jYWxsKGNvbW1hbmQp
CiAgICAgICAgIGlmIHJldHVybl9jb2RlOgogICAgICAgICAgICAgX2xvZy53YXJuKCdFcnJvciBl
eGVjdXRpbmc6IHt9LCByZXR1cm4gY29kZT17fScuZm9ybWF0KGNvbW1hbmQsIHJldHVybl9jb2Rl
KSkKSW5kZXg6IFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2V3cy1hcHAvZXdzL21vZGVscy9wYXRj
aC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYXBwL2V3cy9t
b2RlbHMvcGF0Y2gucHkJKHJldmlzaW9uIDI1NTA5NSkKKysrIFRvb2xzL0J1aWxkU2xhdmVTdXBw
b3J0L2V3cy1hcHAvZXdzL21vZGVscy9wYXRjaC5weQkod29ya2luZyBjb3B5KQpAQCAtNjIsOSAr
NjIsMTIgQEAgY2xhc3MgUGF0Y2gobW9kZWxzLk1vZGVsKToKIAogICAgIEBjbGFzc21ldGhvZAog
ICAgIGRlZiBpc192YWxpZF9wYXRjaF9pZChjbHMsIHBhdGNoX2lkKToKLSAgICAgICAgaWYgbm90
IHBhdGNoX2lkIG9yIHR5cGUocGF0Y2hfaWQpICE9IGludCBvciBwYXRjaF9pZCA8IDE6CisgICAg
ICAgIGlmIG5vdCBwYXRjaF9pZCBvciBwYXRjaF9pZCA8IDE6CiAgICAgICAgICAgICBfbG9nLndh
cm4oJ0ludmFsaWQgcGF0Y2ggaWQ6IHt9Jy5mb3JtYXQocGF0Y2hfaWQpKQogICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCisgICAgICAgIGlmIHR5cGUocGF0Y2hfaWQpICE9IGludDoKKyAgICAgICAg
ICAgIF9sb2cud2FybignRGF0YSB0eXBlIG1pc21hdGNoIGZvciBwYXRjaF9pZCwgZXhwZWN0ZWQ6
IGludCwgZm91bmQ6IHt9LCBpZDoge30nLmZvcm1hdCh0eXBlKHBhdGNoX2lkKSwgcGF0Y2hfaWQp
KQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIHJldHVybiBUcnVlCiAKICAgICBA
Y2xhc3NtZXRob2QK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388996</attachid>
            <date>2020-01-28 08:10:54 -0800</date>
            <delta_ts>2020-01-28 11:51:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206534-20200128111052.patch</filename>
            <type>text/plain</type>
            <size>13327</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1NTIzOCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIwIEBACisyMDIwLTAxLTI4ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBFV1MgZGphbmdvIGFwcCBzaG91bGQgc2VuZCBjcSsgcGF0Y2hlcyB0byBj
b21taXQtcXVldWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNjUzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3MvY29tbW9uL2J1aWxkYm90LnB5Ogor
ICAgICAgICAoQnVpbGRib3Quc2VuZF9wYXRjaF90b19idWlsZGJvdCk6IEFkZGVkIHN1cHBvcnQg
dG8gc2VuZCB0byBjb21taXQgcXVldWUuCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvZXdz
LWFwcC9ld3MvY29uZmlnLnB5OiBBZGRlZCBDT01NSVRfUVVFVUVfUE9SVC4KKyAgICAgICAgKiBC
dWlsZFNsYXZlU3VwcG9ydC9ld3MtYXBwL2V3cy9mZXRjaGVyLnB5OiBBZGRlZCBzdXBwb3J0IGZv
ciBzZW5kaW5nIHBhdGNoZXMgdG8gY29tbWl0IHF1ZXVlLgorICAgICAgICAqIEJ1aWxkU2xhdmVT
dXBwb3J0L2V3cy1hcHAvZXdzL21pZ3JhdGlvbnMvMDAwM19wYXRjaF9zZW50X3RvX2NvbW1pdF9x
dWV1ZS5weTogQWRkZWQuCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3Mv
bW9kZWxzL3BhdGNoLnB5OgorICAgICAgICAoUGF0Y2gpOiBBZGRlZCBzZW50X3RvX2NvbW1pdF9x
dWV1ZSBmaWVsZCBpbiBwYXRjaCB0YWJsZS4KKyAgICAgICAgKFBhdGNoLmlzX3BhdGNoX3NlbnRf
dG9fY29tbWl0X3F1ZXVlKTogTWV0aG9kIHRvIGNoZWNrIGlmIHBhdGNoIGlzIHNlbnQgdG8gY29t
bWl0IHF1ZXVlLgorICAgICAgICAoUGF0Y2guc2V0X3NlbnRfdG9fY29tbWl0X3F1ZXVlKTogU2V0
IHNlbnRfdG9fY29tbWl0X3F1ZXVlIGZpZWxkLgorCiAyMDIwLTAxLTI4ICBDYXJsb3MgQWxiZXJ0
byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFkZCBF
V1MgdGVzdGVycyB0byBydW4gR1RLIHVuaXQgdGVzdHMuCkluZGV4OiBUb29scy9CdWlsZFNsYXZl
U3VwcG9ydC9ld3MtYXBwL2V3cy9jb25maWcucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQnVpbGRT
bGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3MvY29uZmlnLnB5CShyZXZpc2lvbiAyNTUyMzgpCisrKyBU
b29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYXBwL2V3cy9jb25maWcucHkJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxOC0yMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNiAr
MzMsNyBAQCBpZiBpc190ZXN0X21vZGVfZW5hYmxlZDoKIGVsc2U6CiAgICAgQlVJTERCT1RfU0VS
VkVSX0hPU1QgPSAnZXdzLWJ1aWxkLndlYmtpdC5vcmcnCiBCVUlMREJPVF9TRVJWRVJfUE9SVCA9
ICc1NTU1JworQ09NTUlUX1FVRVVFX1BPUlQgPSAnNTU1NycKIEJVSUxEQk9UX1RSWV9VU0VSTkFN
RSA9IG9zLmdldGVudignQlVJTERCT1RfVFJZX1VTRVJOQU1FJywgJ3NhbXBsZXVzZXInKQogQlVJ
TERCT1RfVFJZX1BBU1NXT1JEID0gb3MuZ2V0ZW52KCdCVUlMREJPVF9UUllfUEFTU1dPUkQnLCAn
c2FtcGxlcGFzcycpCiAKSW5kZXg6IFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2V3cy1hcHAvZXdz
L2ZldGNoZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFw
cC9ld3MvZmV0Y2hlci5weQkocmV2aXNpb24gMjU1MjM4KQorKysgVG9vbHMvQnVpbGRTbGF2ZVN1
cHBvcnQvZXdzLWFwcC9ld3MvZmV0Y2hlci5weQkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQg
QEAKLSMgQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTgtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQzLDYgKzQzLDcgQEAgY2xh
c3MgRmV0Y2hMb29wKCk6CiAgICAgICAgICAgICBCdWlsZGJvdC51cGRhdGVfaWNvbnNfZm9yX3F1
ZXVlc19tYXBwaW5nKCkKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBCdWd6aWxs
YVBhdGNoRmV0Y2hlcigpLmZldGNoKCkKKyAgICAgICAgICAgICAgICBCdWd6aWxsYVBhdGNoRmV0
Y2hlcigpLmZldGNoX2NvbW1pdF9xdWV1ZV9wYXRjaGVzKCkKICAgICAgICAgICAgIGV4Y2VwdCBF
eGNlcHRpb24gYXMgZToKICAgICAgICAgICAgICAgICBfbG9nLmVycm9yKCdFeGNlcHRpb24gaW4g
QnVnemlsbGFQYXRjaEZldGNoZXI6IHt9Jy5mb3JtYXQoZSkpCiAgICAgICAgICAgICB0aW1lLnNs
ZWVwKHNlbGYuaW50ZXJ2YWwpCkBAIC02MSw3ICs2MiwyMCBAQCBjbGFzcyBCdWd6aWxsYVBhdGNo
RmV0Y2hlcigpOgogICAgICAgICBQYXRjaC5zYXZlX3BhdGNoZXMocGF0Y2hfaWRzKQogICAgICAg
ICBwYXRjaGVzX3RvX3NlbmQgPSBzZWxmLnBhdGNoZXNfdG9fc2VuZF90b19idWlsZGJvdChwYXRj
aF9pZHMpCiAgICAgICAgIF9sb2cuaW5mbygne30gcj8gcGF0Y2hlcywge30gcGF0Y2hlcyBuZWVk
IHRvIGJlIHNlbnQgdG8gQnVpbGRib3Q6IHt9Jy5mb3JtYXQobGVuKHBhdGNoX2lkcyksIGxlbihw
YXRjaGVzX3RvX3NlbmQpLCBwYXRjaGVzX3RvX3NlbmQpKQorICAgICAgICBzZWxmLnNlbmRfcGF0
Y2hlc190b19idWlsZGJvdChwYXRjaGVzX3RvX3NlbmQpCiAKKyAgICBkZWYgZmV0Y2hfY29tbWl0
X3F1ZXVlX3BhdGNoZXMoc2VsZik6CisgICAgICAgIHBhdGNoX2lkc19jb21taXRfcXVldWUgPSBC
dWd6aWxsYS5nZXRfbGlzdF9vZl9wYXRjaGVzX2Zvcl9jb21taXRfcXVldWUoKQorICAgICAgICBw
YXRjaF9pZHNfY29tbWl0X3F1ZXVlID0gQnVnemlsbGFQYXRjaEZldGNoZXIuZmlsdGVyX3ZhbGlk
X3BhdGNoZXMocGF0Y2hfaWRzX2NvbW1pdF9xdWV1ZSkKKyAgICAgICAgX2xvZy5kZWJ1ZygnY3Er
IHBhdGNoZXM6IHt9Jy5mb3JtYXQocGF0Y2hfaWRzX2NvbW1pdF9xdWV1ZSkpCisgICAgICAgIFBh
dGNoLnNhdmVfcGF0Y2hlcyhwYXRjaF9pZHNfY29tbWl0X3F1ZXVlKQorICAgICAgICBwYXRjaGVz
X3RvX3NlbmQgPSBzZWxmLnBhdGNoZXNfdG9fc2VuZF90b19jb21taXRfcXVldWUocGF0Y2hfaWRz
X2NvbW1pdF9xdWV1ZSkKKyAgICAgICAgX2xvZy5pbmZvKCd7fSBjcSsgcGF0Y2hlcywge30gcGF0
Y2hlcyBuZWVkIHRvIGJlIHNlbnQgdG8gY29tbWl0IHF1ZXVlOiB7fScuZm9ybWF0KGxlbihwYXRj
aF9pZHNfY29tbWl0X3F1ZXVlKSwgbGVuKHBhdGNoZXNfdG9fc2VuZCksIHBhdGNoZXNfdG9fc2Vu
ZCkpCisgICAgICAgIHNlbGYuc2VuZF9wYXRjaGVzX3RvX2J1aWxkYm90KHBhdGNoZXNfdG9fc2Vu
ZCwgc2VuZF90b19jb21taXRfcXVldWU9VHJ1ZSkKKworICAgIGRlZiBzZW5kX3BhdGNoZXNfdG9f
YnVpbGRib3Qoc2VsZiwgcGF0Y2hlc190b19zZW5kLCBzZW5kX3RvX2NvbW1pdF9xdWV1ZT1GYWxz
ZSk6CisgICAgICAgIGlmIG5vdCBwYXRjaGVzX3RvX3NlbmQ6CisgICAgICAgICAgICByZXR1cm4K
ICAgICAgICAgZm9yIHBhdGNoX2lkIGluIHBhdGNoZXNfdG9fc2VuZDoKICAgICAgICAgICAgIGJ6
X3BhdGNoID0gQnVnemlsbGEucmV0cmlldmVfYXR0YWNobWVudChwYXRjaF9pZCkKICAgICAgICAg
ICAgIGlmIG5vdCBiel9wYXRjaCBvciBiel9wYXRjaFsnaWQnXSAhPSBwYXRjaF9pZDoKQEAgLTcx
LDIzICs4NSwzOCBAQCBjbGFzcyBCdWd6aWxsYVBhdGNoRmV0Y2hlcigpOgogICAgICAgICAgICAg
ICAgIF9sb2cud2FybignUGF0Y2ggaXMgb2Jzb2xldGUsIHNraXBwaW5nJykKICAgICAgICAgICAg
ICAgICBQYXRjaC5zZXRfb2Jzb2xldGUocGF0Y2hfaWQpCiAgICAgICAgICAgICAgICAgY29udGlu
dWUKLSAgICAgICAgICAgIGlmIFBhdGNoLmlzX3BhdGNoX3NlbnRfdG9fYnVpbGRib3QocGF0Y2hf
aWQpOgotICAgICAgICAgICAgICAgIF9sb2cuZXJyb3IoJ1BhdGNoIHt9IGlzIGFscmVhZHkgc2Vu
dCB0byBidWlsZGJvdC4nLmZvcm1hdChwYXRjaF9pZCkpCi0gICAgICAgICAgICAgICAgY29udGlu
dWUKLSAgICAgICAgICAgIFBhdGNoLnNldF9zZW50X3RvX2J1aWxkYm90KHBhdGNoX2lkLCBUcnVl
KQorICAgICAgICAgICAgaWYgc2VuZF90b19jb21taXRfcXVldWU6CisgICAgICAgICAgICAgICAg
aWYgUGF0Y2guaXNfcGF0Y2hfc2VudF90b19jb21taXRfcXVldWUocGF0Y2hfaWQpOgorICAgICAg
ICAgICAgICAgICAgICBfbG9nLmVycm9yKCdQYXRjaCB7fSBpcyBhbHJlYWR5IHNlbnQgdG8gY29t
bWl0IHF1ZXVlLicuZm9ybWF0KHBhdGNoX2lkKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGlu
dWUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaWYgUGF0Y2guaXNfcGF0Y2hf
c2VudF90b19idWlsZGJvdChwYXRjaF9pZCk6CisgICAgICAgICAgICAgICAgICAgIF9sb2cuZXJy
b3IoJ1BhdGNoIHt9IGlzIGFscmVhZHkgc2VudCB0byBidWlsZGJvdC4nLmZvcm1hdChwYXRjaF9p
ZCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIGlmIHNlbmRf
dG9fY29tbWl0X3F1ZXVlOgorICAgICAgICAgICAgICAgIFBhdGNoLnNldF9zZW50X3RvX2NvbW1p
dF9xdWV1ZShwYXRjaF9pZCwgVHJ1ZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgUGF0Y2guc2V0X3NlbnRfdG9fYnVpbGRib3QocGF0Y2hfaWQsIFRydWUpCiAgICAgICAgICAg
ICByYyA9IEJ1aWxkYm90LnNlbmRfcGF0Y2hfdG9fYnVpbGRib3QoYnpfcGF0Y2hbJ3BhdGgnXSwK
KyAgICAgICAgICAgICAgICAgICAgIHNlbmRfdG9fY29tbWl0X3F1ZXVlPXNlbmRfdG9fY29tbWl0
X3F1ZXVlLAogICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllcz1bJ3BhdGNoX2lkPXt9Jy5m
b3JtYXQocGF0Y2hfaWQpLCAnYnVnX2lkPXt9Jy5mb3JtYXQoYnpfcGF0Y2hbJ2J1Z19pZCddKSwg
J293bmVyPXt9Jy5mb3JtYXQoYnpfcGF0Y2guZ2V0KCdjcmVhdG9yJywgJycpKV0pCiAgICAgICAg
ICAgICBpZiByYyA9PSAwOgogICAgICAgICAgICAgICAgIFBhdGNoLnNldF9idWdfaWQocGF0Y2hf
aWQsIGJ6X3BhdGNoWydidWdfaWQnXSkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAg
ICAgX2xvZy5lcnJvcignRmFpbGVkIHRvIHNlbmQgcGF0Y2ggdG8gYnVpbGRib3QuJykKLSAgICAg
ICAgICAgICAgICBQYXRjaC5zZXRfc2VudF90b19idWlsZGJvdChwYXRjaF9pZCwgRmFsc2UpCisg
ICAgICAgICAgICAgICAgaWYgc2VuZF90b19jb21taXRfcXVldWU6CisgICAgICAgICAgICAgICAg
ICAgIFBhdGNoLnNldF9zZW50X3RvX2NvbW1pdF9xdWV1ZShwYXRjaF9pZCwgRmFsc2UpCisgICAg
ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgUGF0Y2guc2V0X3NlbnRfdG9f
YnVpbGRib3QocGF0Y2hfaWQsIEZhbHNlKQogICAgICAgICAgICAgICAgICNGSVhNRTogc2VuZCBh
biBlbWFpbCBmb3IgdGhpcyBmYWlsdXJlCi0gICAgICAgIHJldHVybiBwYXRjaF9pZHMKIAogICAg
IGRlZiBwYXRjaGVzX3RvX3NlbmRfdG9fYnVpbGRib3Qoc2VsZiwgcGF0Y2hfaWRzKToKICAgICAg
ICAgcmV0dXJuIFtwYXRjaF9pZCBmb3IgcGF0Y2hfaWQgaW4gcGF0Y2hfaWRzIGlmIG5vdCBQYXRj
aC5pc19wYXRjaF9zZW50X3RvX2J1aWxkYm90KHBhdGNoX2lkKV0KIAorICAgIGRlZiBwYXRjaGVz
X3RvX3NlbmRfdG9fY29tbWl0X3F1ZXVlKHNlbGYsIHBhdGNoX2lkcyk6CisgICAgICAgIHJldHVy
biBbcGF0Y2hfaWQgZm9yIHBhdGNoX2lkIGluIHBhdGNoX2lkcyBpZiBub3QgUGF0Y2guaXNfcGF0
Y2hfc2VudF90b19jb21taXRfcXVldWUocGF0Y2hfaWQpXQorCiAgICAgQGNsYXNzbWV0aG9kCiAg
ICAgZGVmIGZpbHRlcl92YWxpZF9wYXRjaGVzKGNscywgcGF0Y2hfaWRzKToKICAgICAgICAgcmV0
dXJuIGxpc3QoZmlsdGVyKGxhbWJkYSBwOiBQYXRjaC5pc192YWxpZF9wYXRjaF9pZChwKSwgcGF0
Y2hfaWRzKSkKSW5kZXg6IFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2V3cy1hcHAvZXdzL2NvbW1v
bi9idWlsZGJvdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3Mt
YXBwL2V3cy9jb21tb24vYnVpbGRib3QucHkJKHJldmlzaW9uIDI1NTIzOCkKKysrIFRvb2xzL0J1
aWxkU2xhdmVTdXBwb3J0L2V3cy1hcHAvZXdzL2NvbW1vbi9idWlsZGJvdC5weQkod29ya2luZyBj
b3B5KQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTgtMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTQxLDEwICs0MSwxMSBAQCBjbGFzcyBCdWlsZGJvdCgpOgogICAgIGljb25zX2Zvcl9xdWV1ZXNf
bWFwcGluZyA9IHt9CiAKICAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgc2VuZF9wYXRjaF90b19i
dWlsZGJvdChjbHMsIHBhdGNoX3BhdGgsIHByb3BlcnRpZXM9W10pOgorICAgIGRlZiBzZW5kX3Bh
dGNoX3RvX2J1aWxkYm90KGNscywgcGF0Y2hfcGF0aCwgc2VuZF90b19jb21taXRfcXVldWU9RmFs
c2UsIHByb3BlcnRpZXM9W10pOgorICAgICAgICBidWlsZGJvdF9wb3J0ID0gY29uZmlnLkNPTU1J
VF9RVUVVRV9QT1JUIGlmIHNlbmRfdG9fY29tbWl0X3F1ZXVlIGVsc2UgY29uZmlnLkJVSUxEQk9U
X1NFUlZFUl9QT1JUCiAgICAgICAgIGNvbW1hbmQgPSBbJ2J1aWxkYm90JywgJ3RyeScsCiAgICAg
ICAgICAgICAgICAgICAgJy0tY29ubmVjdD1wYicsCi0gICAgICAgICAgICAgICAgICAgJy0tbWFz
dGVyPXt9Ont9Jy5mb3JtYXQoY29uZmlnLkJVSUxEQk9UX1NFUlZFUl9IT1NULCBjb25maWcuQlVJ
TERCT1RfU0VSVkVSX1BPUlQpLAorICAgICAgICAgICAgICAgICAgICctLW1hc3Rlcj17fTp7fScu
Zm9ybWF0KGNvbmZpZy5CVUlMREJPVF9TRVJWRVJfSE9TVCwgYnVpbGRib3RfcG9ydCksCiAgICAg
ICAgICAgICAgICAgICAgJy0tdXNlcm5hbWU9e30nLmZvcm1hdChjb25maWcuQlVJTERCT1RfVFJZ
X1VTRVJOQU1FKSwKICAgICAgICAgICAgICAgICAgICAnLS1wYXNzd2Q9e30nLmZvcm1hdChjb25m
aWcuQlVJTERCT1RfVFJZX1BBU1NXT1JEKSwKICAgICAgICAgICAgICAgICAgICAnLS1kaWZmPXt9
Jy5mb3JtYXQocGF0Y2hfcGF0aCksCkBAIC01MywxMCArNTQsOSBAQCBjbGFzcyBCdWlsZGJvdCgp
OgogICAgICAgICBmb3IgcHJvcGVydHkgaW4gcHJvcGVydGllczoKICAgICAgICAgICAgIGNvbW1h
bmQuYXBwZW5kKCctLXByb3BlcnR5PXt9Jy5mb3JtYXQocHJvcGVydHkpKQogCi0gICAgICAgIF9s
b2cuZGVidWcoJ0V4ZWN1dGluZyBjb21tYW5kOiB7fScuZm9ybWF0KGNvbW1hbmQpKQogICAgICAg
ICByZXR1cm5fY29kZSA9IHN1YnByb2Nlc3MuY2FsbChjb21tYW5kKQogICAgICAgICBpZiByZXR1
cm5fY29kZToKLSAgICAgICAgICAgIF9sb2cud2FybignRXJyb3IgZXhlY3V0aW5nOiB7fSwgcmV0
dXJuIGNvZGU9e30nLmZvcm1hdChjb21tYW5kLCByZXR1cm5fY29kZSkpCisgICAgICAgICAgICBf
bG9nLndhcm4oJ0Vycm9yIGV4ZWN1dGluZyBidWlsZGJvdCB0cnkgY29tbWFuZCBmb3Ige30sIHJl
dHVybiBjb2RlPXt9Jy5mb3JtYXQocGF0Y2hfcGF0aCwgcmV0dXJuX2NvZGUpKQogCiAgICAgICAg
IHJldHVybiByZXR1cm5fY29kZQogCkluZGV4OiBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3Mt
YXBwL2V3cy9taWdyYXRpb25zLzAwMDNfcGF0Y2hfc2VudF90b19jb21taXRfcXVldWUucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3MvbWlncmF0aW9u
cy8wMDAzX3BhdGNoX3NlbnRfdG9fY29tbWl0X3F1ZXVlLnB5CShub25leGlzdGVudCkKKysrIFRv
b2xzL0J1aWxkU2xhdmVTdXBwb3J0L2V3cy1hcHAvZXdzL21pZ3JhdGlvbnMvMDAwM19wYXRjaF9z
ZW50X3RvX2NvbW1pdF9xdWV1ZS5weQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIwIEBACisj
IC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorIyBHZW5lcmF0ZWQgYnkgRGphbmdvIDEuMTEuMTYgb24g
MjAyMC0wMS0yOCAwMjo1NgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB1bmljb2RlX2xpdGVyYWxz
CisKK2Zyb20gZGphbmdvLmRiIGltcG9ydCBtaWdyYXRpb25zLCBtb2RlbHMKKworCitjbGFzcyBN
aWdyYXRpb24obWlncmF0aW9ucy5NaWdyYXRpb24pOgorCisgICAgZGVwZW5kZW5jaWVzID0gWwor
ICAgICAgICAoJ2V3cycsICcwMDAyX2J1aWxkX3JldHJpZWQnKSwKKyAgICBdCisKKyAgICBvcGVy
YXRpb25zID0gWworICAgICAgICBtaWdyYXRpb25zLkFkZEZpZWxkKAorICAgICAgICAgICAgbW9k
ZWxfbmFtZT0ncGF0Y2gnLAorICAgICAgICAgICAgbmFtZT0nc2VudF90b19jb21taXRfcXVldWUn
LAorICAgICAgICAgICAgZmllbGQ9bW9kZWxzLkJvb2xlYW5GaWVsZChkZWZhdWx0PUZhbHNlKSwK
KyAgICAgICAgKSwKKyAgICBdCkluZGV4OiBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYXBw
L2V3cy9tb2RlbHMvcGF0Y2gucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1cHBv
cnQvZXdzLWFwcC9ld3MvbW9kZWxzL3BhdGNoLnB5CShyZXZpc2lvbiAyNTUyMzgpCisrKyBUb29s
cy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYXBwL2V3cy9tb2RlbHMvcGF0Y2gucHkJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxOC0yMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYs
NiArMzYsNyBAQCBjbGFzcyBQYXRjaChtb2RlbHMuTW9kZWwpOgogICAgIGJ1Z19pZCA9IG1vZGVs
cy5JbnRlZ2VyRmllbGQoKQogICAgIG9ic29sZXRlID0gbW9kZWxzLkJvb2xlYW5GaWVsZChkZWZh
dWx0PUZhbHNlKQogICAgIHNlbnRfdG9fYnVpbGRib3QgPSBtb2RlbHMuQm9vbGVhbkZpZWxkKGRl
ZmF1bHQ9RmFsc2UpCisgICAgc2VudF90b19jb21taXRfcXVldWUgPSBtb2RlbHMuQm9vbGVhbkZp
ZWxkKGRlZmF1bHQ9RmFsc2UpCiAgICAgY3JlYXRlZCA9IG1vZGVscy5EYXRlVGltZUZpZWxkKGF1
dG9fbm93X2FkZD1UcnVlKQogICAgIG1vZGlmaWVkID0gbW9kZWxzLkRhdGVUaW1lRmllbGQoYXV0
b19ub3c9VHJ1ZSkKIApAQCAtNDMsNyArNDQsNyBAQCBjbGFzcyBQYXRjaChtb2RlbHMuTW9kZWwp
OgogICAgICAgICByZXR1cm4gc3RyKHNlbGYucGF0Y2hfaWQpCiAKICAgICBAY2xhc3NtZXRob2QK
LSAgICBkZWYgc2F2ZV9wYXRjaChjbHMsIHBhdGNoX2lkLCBidWdfaWQ9LTEsIG9ic29sZXRlPUZh
bHNlLCBzZW50X3RvX2J1aWxkYm90PUZhbHNlKToKKyAgICBkZWYgc2F2ZV9wYXRjaChjbHMsIHBh
dGNoX2lkLCBidWdfaWQ9LTEsIG9ic29sZXRlPUZhbHNlLCBzZW50X3RvX2J1aWxkYm90PUZhbHNl
LCBzZW50X3RvX2NvbW1pdF9xdWV1ZT1GYWxzZSk6CiAgICAgICAgIGlmIG5vdCBQYXRjaC5pc192
YWxpZF9wYXRjaF9pZChwYXRjaF9pZCk6CiAgICAgICAgICAgICBfbG9nLndhcm4oJ1BhdGNoIGlk
IHt9IGluIGludmFsaWQuIFNraXBwZWQgc2F2aW5nLicuZm9ybWF0KHBhdGNoX2lkKSkKICAgICAg
ICAgICAgIHJldHVybiBFUlJfSU5WQUxJRF9QQVRDSF9JRApAQCAtNTEsNyArNTIsNyBAQCBjbGFz
cyBQYXRjaChtb2RlbHMuTW9kZWwpOgogICAgICAgICBpZiBQYXRjaC5pc19leGlzdGluZ19wYXRj
aF9pZChwYXRjaF9pZCk6CiAgICAgICAgICAgICBfbG9nLmRlYnVnKCdQYXRjaCBpZCB7fSBhbHJl
YWR5IGV4aXN0cyBpbiBkYXRhYmFzZS4gU2tpcHBlZCBzYXZpbmcuJy5mb3JtYXQocGF0Y2hfaWQp
KQogICAgICAgICAgICAgcmV0dXJuIEVSUl9FWElTVElOR19QQVRDSAotICAgICAgICBQYXRjaChw
YXRjaF9pZCwgYnVnX2lkLCBvYnNvbGV0ZSwgc2VudF90b19idWlsZGJvdCkuc2F2ZSgpCisgICAg
ICAgIFBhdGNoKHBhdGNoX2lkLCBidWdfaWQsIG9ic29sZXRlLCBzZW50X3RvX2J1aWxkYm90LCBz
ZW50X3RvX2NvbW1pdF9xdWV1ZSkuc2F2ZSgpCiAgICAgICAgIF9sb2cuaW5mbygnU2F2ZWQgcGF0
Y2ggaW4gZGF0YWJhc2UsIGlkOiB7fScuZm9ybWF0KHBhdGNoX2lkKSkKICAgICAgICAgcmV0dXJu
IFNVQ0NFU1MKIApAQCAtNjIsOSArNjMsMTIgQEAgY2xhc3MgUGF0Y2gobW9kZWxzLk1vZGVsKToK
IAogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBpc192YWxpZF9wYXRjaF9pZChjbHMsIHBhdGNo
X2lkKToKLSAgICAgICAgaWYgbm90IHBhdGNoX2lkIG9yIHR5cGUocGF0Y2hfaWQpICE9IGludCBv
ciBwYXRjaF9pZCA8IDE6CisgICAgICAgIGlmIG5vdCBwYXRjaF9pZCBvciBwYXRjaF9pZCA8IDE6
CiAgICAgICAgICAgICBfbG9nLndhcm4oJ0ludmFsaWQgcGF0Y2ggaWQ6IHt9Jy5mb3JtYXQocGF0
Y2hfaWQpKQogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlmIHR5cGUocGF0Y2hf
aWQpICE9IGludDoKKyAgICAgICAgICAgIF9sb2cud2FybignRGF0YSB0eXBlIG1pc21hdGNoIGZv
ciBwYXRjaF9pZCwgZXhwZWN0ZWQ6IGludCwgZm91bmQ6IHt9LCBpZDoge30nLmZvcm1hdCh0eXBl
KHBhdGNoX2lkKSwgcGF0Y2hfaWQpKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAg
IHJldHVybiBUcnVlCiAKICAgICBAY2xhc3NtZXRob2QKQEAgLTc2LDYgKzgwLDEwIEBAIGNsYXNz
IFBhdGNoKG1vZGVscy5Nb2RlbCk6CiAgICAgICAgIHJldHVybiBQYXRjaC5pc19leGlzdGluZ19w
YXRjaF9pZChwYXRjaF9pZCkgYW5kIFBhdGNoLm9iamVjdHMuZ2V0KHBrPXBhdGNoX2lkKS5zZW50
X3RvX2J1aWxkYm90CiAKICAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgaXNfcGF0Y2hfc2VudF90
b19jb21taXRfcXVldWUoY2xzLCBwYXRjaF9pZCk6CisgICAgICAgIHJldHVybiBQYXRjaC5pc19l
eGlzdGluZ19wYXRjaF9pZChwYXRjaF9pZCkgYW5kIFBhdGNoLm9iamVjdHMuZ2V0KHBrPXBhdGNo
X2lkKS5zZW50X3RvX2NvbW1pdF9xdWV1ZQorCisgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGdl
dF9wYXRjaChjbHMsIHBhdGNoX2lkKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcmV0dXJu
IFBhdGNoLm9iamVjdHMuZ2V0KHBhdGNoX2lkPXBhdGNoX2lkKQpAQCAtMTAwLDYgKzEwOCwyMyBA
QCBjbGFzcyBQYXRjaChtb2RlbHMuTW9kZWwpOgogICAgICAgICByZXR1cm4gU1VDQ0VTUwogCiAg
ICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHNldF9zZW50X3RvX2NvbW1pdF9xdWV1ZShjbHMsIHBh
dGNoX2lkLCBzZW50X3RvX2NvbW1pdF9xdWV1ZT1UcnVlKToKKyAgICAgICAgaWYgbm90IFBhdGNo
LmlzX2V4aXN0aW5nX3BhdGNoX2lkKHBhdGNoX2lkKToKKyAgICAgICAgICAgIFBhdGNoLnNhdmVf
cGF0Y2gocGF0Y2hfaWQ9cGF0Y2hfaWQsIHNlbnRfdG9fY29tbWl0X3F1ZXVlPXNlbnRfdG9fY29t
bWl0X3F1ZXVlKQorICAgICAgICAgICAgX2xvZy5pbmZvKCdQYXRjaCB7fSBzYXZlZCB0byBkYXRh
YmFzZSB3aXRoIHNlbnRfdG9fY29tbWl0X3F1ZXVlPXt9Jy5mb3JtYXQocGF0Y2hfaWQsIHNlbnRf
dG9fY29tbWl0X3F1ZXVlKSkKKyAgICAgICAgICAgIHJldHVybiBTVUNDRVNTCisKKyAgICAgICAg
cGF0Y2ggPSBQYXRjaC5vYmplY3RzLmdldChwaz1wYXRjaF9pZCkKKyAgICAgICAgaWYgcGF0Y2gu
c2VudF90b19jb21taXRfcXVldWUgPT0gc2VudF90b19jb21taXRfcXVldWU6CisgICAgICAgICAg
ICBfbG9nLndhcm4oJ1BhdGNoIHt9IGFscmVhZHkgaGFzIHNlbnRfdG9fY29tbWl0X3F1ZXVlPXt9
Jy5mb3JtYXQocGF0Y2hfaWQsIHNlbnRfdG9fY29tbWl0X3F1ZXVlKSkKKyAgICAgICAgICAgIHJl
dHVybiBTVUNDRVNTCisKKyAgICAgICAgcGF0Y2guc2VudF90b19jb21taXRfcXVldWUgPSBzZW50
X3RvX2NvbW1pdF9xdWV1ZQorICAgICAgICBwYXRjaC5zYXZlKCkKKyAgICAgICAgX2xvZy5pbmZv
KCdVcGRhdGVkIHBhdGNoIHt9IHdpdGggc2VudF90b19jb21taXRfcXVldWU9e30nLmZvcm1hdChw
YXRjaF9pZCwgc2VudF90b19jb21taXRfcXVldWUpKQorICAgICAgICByZXR1cm4gU1VDQ0VTUwor
CisgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIHNldF9idWdfaWQoY2xzLCBwYXRjaF9pZCwgYnVn
X2lkKToKICAgICAgICAgaWYgbm90IFBhdGNoLmlzX2V4aXN0aW5nX3BhdGNoX2lkKHBhdGNoX2lk
KToKICAgICAgICAgICAgIHJldHVybiBFUlJfTk9OX0VYSVNUSU5HX1BBVENICg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389043</attachid>
            <date>2020-01-28 11:51:31 -0800</date>
            <delta_ts>2020-01-28 12:44:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206534-20200128145130.patch</filename>
            <type>text/plain</type>
            <size>14095</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1NTIzOCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIwIEBACisyMDIwLTAxLTI4ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBFV1MgZGphbmdvIGFwcCBzaG91bGQgc2VuZCBjcSsgcGF0Y2hlcyB0byBj
b21taXQtcXVldWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNjUzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3MvY29tbW9uL2J1aWxkYm90LnB5Ogor
ICAgICAgICAoQnVpbGRib3Quc2VuZF9wYXRjaF90b19idWlsZGJvdCk6IEFkZGVkIHN1cHBvcnQg
dG8gc2VuZCB0byBjb21taXQgcXVldWUuCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvZXdz
LWFwcC9ld3MvY29uZmlnLnB5OiBBZGRlZCBDT01NSVRfUVVFVUVfUE9SVC4KKyAgICAgICAgKiBC
dWlsZFNsYXZlU3VwcG9ydC9ld3MtYXBwL2V3cy9mZXRjaGVyLnB5OiBBZGRlZCBzdXBwb3J0IGZv
ciBzZW5kaW5nIHBhdGNoZXMgdG8gY29tbWl0IHF1ZXVlLgorICAgICAgICAqIEJ1aWxkU2xhdmVT
dXBwb3J0L2V3cy1hcHAvZXdzL21pZ3JhdGlvbnMvMDAwM19wYXRjaF9zZW50X3RvX2NvbW1pdF9x
dWV1ZS5weTogQWRkZWQuCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3Mv
bW9kZWxzL3BhdGNoLnB5OgorICAgICAgICAoUGF0Y2gpOiBBZGRlZCBzZW50X3RvX2NvbW1pdF9x
dWV1ZSBmaWVsZCBpbiBwYXRjaCB0YWJsZS4KKyAgICAgICAgKFBhdGNoLmlzX3BhdGNoX3NlbnRf
dG9fY29tbWl0X3F1ZXVlKTogTWV0aG9kIHRvIGNoZWNrIGlmIHBhdGNoIGlzIHNlbnQgdG8gY29t
bWl0IHF1ZXVlLgorICAgICAgICAoUGF0Y2guc2V0X3NlbnRfdG9fY29tbWl0X3F1ZXVlKTogU2V0
IHNlbnRfdG9fY29tbWl0X3F1ZXVlIGZpZWxkLgorCiAyMDIwLTAxLTI4ICBDYXJsb3MgQWxiZXJ0
byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFkZCBF
V1MgdGVzdGVycyB0byBydW4gR1RLIHVuaXQgdGVzdHMuCkluZGV4OiBUb29scy9CdWlsZFNsYXZl
U3VwcG9ydC9ld3MtYXBwL2V3cy9jb25maWcucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQnVpbGRT
bGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3MvY29uZmlnLnB5CShyZXZpc2lvbiAyNTUyMzgpCisrKyBU
b29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYXBwL2V3cy9jb25maWcucHkJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxOC0yMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNiAr
MzMsNyBAQCBpZiBpc190ZXN0X21vZGVfZW5hYmxlZDoKIGVsc2U6CiAgICAgQlVJTERCT1RfU0VS
VkVSX0hPU1QgPSAnZXdzLWJ1aWxkLndlYmtpdC5vcmcnCiBCVUlMREJPVF9TRVJWRVJfUE9SVCA9
ICc1NTU1JworQ09NTUlUX1FVRVVFX1BPUlQgPSAnNTU1NycKIEJVSUxEQk9UX1RSWV9VU0VSTkFN
RSA9IG9zLmdldGVudignQlVJTERCT1RfVFJZX1VTRVJOQU1FJywgJ3NhbXBsZXVzZXInKQogQlVJ
TERCT1RfVFJZX1BBU1NXT1JEID0gb3MuZ2V0ZW52KCdCVUlMREJPVF9UUllfUEFTU1dPUkQnLCAn
c2FtcGxlcGFzcycpCiAKSW5kZXg6IFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2V3cy1hcHAvZXdz
L2ZldGNoZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFw
cC9ld3MvZmV0Y2hlci5weQkocmV2aXNpb24gMjU1MjM4KQorKysgVG9vbHMvQnVpbGRTbGF2ZVN1
cHBvcnQvZXdzLWFwcC9ld3MvZmV0Y2hlci5weQkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQg
QEAKLSMgQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTgtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQzLDYgKzQzLDcgQEAgY2xh
c3MgRmV0Y2hMb29wKCk6CiAgICAgICAgICAgICBCdWlsZGJvdC51cGRhdGVfaWNvbnNfZm9yX3F1
ZXVlc19tYXBwaW5nKCkKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBCdWd6aWxs
YVBhdGNoRmV0Y2hlcigpLmZldGNoKCkKKyAgICAgICAgICAgICAgICBCdWd6aWxsYVBhdGNoRmV0
Y2hlcigpLmZldGNoX2NvbW1pdF9xdWV1ZV9wYXRjaGVzKCkKICAgICAgICAgICAgIGV4Y2VwdCBF
eGNlcHRpb24gYXMgZToKICAgICAgICAgICAgICAgICBfbG9nLmVycm9yKCdFeGNlcHRpb24gaW4g
QnVnemlsbGFQYXRjaEZldGNoZXI6IHt9Jy5mb3JtYXQoZSkpCiAgICAgICAgICAgICB0aW1lLnNs
ZWVwKHNlbGYuaW50ZXJ2YWwpCkBAIC02MSw3ICs2MiwyMCBAQCBjbGFzcyBCdWd6aWxsYVBhdGNo
RmV0Y2hlcigpOgogICAgICAgICBQYXRjaC5zYXZlX3BhdGNoZXMocGF0Y2hfaWRzKQogICAgICAg
ICBwYXRjaGVzX3RvX3NlbmQgPSBzZWxmLnBhdGNoZXNfdG9fc2VuZF90b19idWlsZGJvdChwYXRj
aF9pZHMpCiAgICAgICAgIF9sb2cuaW5mbygne30gcj8gcGF0Y2hlcywge30gcGF0Y2hlcyBuZWVk
IHRvIGJlIHNlbnQgdG8gQnVpbGRib3Q6IHt9Jy5mb3JtYXQobGVuKHBhdGNoX2lkcyksIGxlbihw
YXRjaGVzX3RvX3NlbmQpLCBwYXRjaGVzX3RvX3NlbmQpKQorICAgICAgICBzZWxmLnNlbmRfcGF0
Y2hlc190b19idWlsZGJvdChwYXRjaGVzX3RvX3NlbmQpCiAKKyAgICBkZWYgZmV0Y2hfY29tbWl0
X3F1ZXVlX3BhdGNoZXMoc2VsZik6CisgICAgICAgIHBhdGNoX2lkc19jb21taXRfcXVldWUgPSBC
dWd6aWxsYS5nZXRfbGlzdF9vZl9wYXRjaGVzX2Zvcl9jb21taXRfcXVldWUoKQorICAgICAgICBw
YXRjaF9pZHNfY29tbWl0X3F1ZXVlID0gQnVnemlsbGFQYXRjaEZldGNoZXIuZmlsdGVyX3ZhbGlk
X3BhdGNoZXMocGF0Y2hfaWRzX2NvbW1pdF9xdWV1ZSkKKyAgICAgICAgX2xvZy5kZWJ1ZygnY3Er
IHBhdGNoZXM6IHt9Jy5mb3JtYXQocGF0Y2hfaWRzX2NvbW1pdF9xdWV1ZSkpCisgICAgICAgIFBh
dGNoLnNhdmVfcGF0Y2hlcyhwYXRjaF9pZHNfY29tbWl0X3F1ZXVlKQorICAgICAgICBwYXRjaGVz
X3RvX3NlbmQgPSBzZWxmLnBhdGNoZXNfdG9fc2VuZF90b19idWlsZGJvdChwYXRjaF9pZHNfY29t
bWl0X3F1ZXVlLCBjb21taXRfcXVldWU9VHJ1ZSkKKyAgICAgICAgX2xvZy5pbmZvKCd7fSBjcSsg
cGF0Y2hlcywge30gcGF0Y2hlcyBuZWVkIHRvIGJlIHNlbnQgdG8gY29tbWl0IHF1ZXVlOiB7fScu
Zm9ybWF0KGxlbihwYXRjaF9pZHNfY29tbWl0X3F1ZXVlKSwgbGVuKHBhdGNoZXNfdG9fc2VuZCks
IHBhdGNoZXNfdG9fc2VuZCkpCisgICAgICAgIHNlbGYuc2VuZF9wYXRjaGVzX3RvX2J1aWxkYm90
KHBhdGNoZXNfdG9fc2VuZCwgc2VuZF90b19jb21taXRfcXVldWU9VHJ1ZSkKKworICAgIGRlZiBz
ZW5kX3BhdGNoZXNfdG9fYnVpbGRib3Qoc2VsZiwgcGF0Y2hlc190b19zZW5kLCBzZW5kX3RvX2Nv
bW1pdF9xdWV1ZT1GYWxzZSk6CisgICAgICAgIGlmIG5vdCBwYXRjaGVzX3RvX3NlbmQ6CisgICAg
ICAgICAgICByZXR1cm4KICAgICAgICAgZm9yIHBhdGNoX2lkIGluIHBhdGNoZXNfdG9fc2VuZDoK
ICAgICAgICAgICAgIGJ6X3BhdGNoID0gQnVnemlsbGEucmV0cmlldmVfYXR0YWNobWVudChwYXRj
aF9pZCkKICAgICAgICAgICAgIGlmIG5vdCBiel9wYXRjaCBvciBiel9wYXRjaFsnaWQnXSAhPSBw
YXRjaF9pZDoKQEAgLTcxLDIyICs4NSwyMiBAQCBjbGFzcyBCdWd6aWxsYVBhdGNoRmV0Y2hlcigp
OgogICAgICAgICAgICAgICAgIF9sb2cud2FybignUGF0Y2ggaXMgb2Jzb2xldGUsIHNraXBwaW5n
JykKICAgICAgICAgICAgICAgICBQYXRjaC5zZXRfb2Jzb2xldGUocGF0Y2hfaWQpCiAgICAgICAg
ICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGlmIFBhdGNoLmlzX3BhdGNoX3NlbnRfdG9f
YnVpbGRib3QocGF0Y2hfaWQpOgotICAgICAgICAgICAgICAgIF9sb2cuZXJyb3IoJ1BhdGNoIHt9
IGlzIGFscmVhZHkgc2VudCB0byBidWlsZGJvdC4nLmZvcm1hdChwYXRjaF9pZCkpCisgICAgICAg
ICAgICBpZiBQYXRjaC5pc19wYXRjaF9zZW50X3RvX2J1aWxkYm90KHBhdGNoX2lkLCBjb21taXRf
cXVldWU9c2VuZF90b19jb21taXRfcXVldWUpOgorICAgICAgICAgICAgICAgIF9sb2cuZXJyb3Io
J1BhdGNoIHt9IGlzIGFscmVhZHkgc2VudCB0byBidWlsZGJvdC9jb21taXQtcXVldWUuJy5mb3Jt
YXQocGF0Y2hfaWQpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBQYXRj
aC5zZXRfc2VudF90b19idWlsZGJvdChwYXRjaF9pZCwgVHJ1ZSkKKyAgICAgICAgICAgIFBhdGNo
LnNldF9zZW50X3RvX2J1aWxkYm90KHBhdGNoX2lkLCBUcnVlLCBjb21taXRfcXVldWU9c2VuZF90
b19jb21taXRfcXVldWUpCiAgICAgICAgICAgICByYyA9IEJ1aWxkYm90LnNlbmRfcGF0Y2hfdG9f
YnVpbGRib3QoYnpfcGF0Y2hbJ3BhdGgnXSwKKyAgICAgICAgICAgICAgICAgICAgIHNlbmRfdG9f
Y29tbWl0X3F1ZXVlPXNlbmRfdG9fY29tbWl0X3F1ZXVlLAogICAgICAgICAgICAgICAgICAgICAg
cHJvcGVydGllcz1bJ3BhdGNoX2lkPXt9Jy5mb3JtYXQocGF0Y2hfaWQpLCAnYnVnX2lkPXt9Jy5m
b3JtYXQoYnpfcGF0Y2hbJ2J1Z19pZCddKSwgJ293bmVyPXt9Jy5mb3JtYXQoYnpfcGF0Y2guZ2V0
KCdjcmVhdG9yJywgJycpKV0pCiAgICAgICAgICAgICBpZiByYyA9PSAwOgogICAgICAgICAgICAg
ICAgIFBhdGNoLnNldF9idWdfaWQocGF0Y2hfaWQsIGJ6X3BhdGNoWydidWdfaWQnXSkKICAgICAg
ICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgX2xvZy5lcnJvcignRmFpbGVkIHRvIHNlbmQg
cGF0Y2ggdG8gYnVpbGRib3QuJykKLSAgICAgICAgICAgICAgICBQYXRjaC5zZXRfc2VudF90b19i
dWlsZGJvdChwYXRjaF9pZCwgRmFsc2UpCisgICAgICAgICAgICAgICAgUGF0Y2guc2V0X3NlbnRf
dG9fYnVpbGRib3QocGF0Y2hfaWQsIEZhbHNlLCBjb21taXRfcXVldWU9c2VuZF90b19jb21taXRf
cXVldWUpCiAgICAgICAgICAgICAgICAgI0ZJWE1FOiBzZW5kIGFuIGVtYWlsIGZvciB0aGlzIGZh
aWx1cmUKLSAgICAgICAgcmV0dXJuIHBhdGNoX2lkcwogCi0gICAgZGVmIHBhdGNoZXNfdG9fc2Vu
ZF90b19idWlsZGJvdChzZWxmLCBwYXRjaF9pZHMpOgotICAgICAgICByZXR1cm4gW3BhdGNoX2lk
IGZvciBwYXRjaF9pZCBpbiBwYXRjaF9pZHMgaWYgbm90IFBhdGNoLmlzX3BhdGNoX3NlbnRfdG9f
YnVpbGRib3QocGF0Y2hfaWQpXQorICAgIGRlZiBwYXRjaGVzX3RvX3NlbmRfdG9fYnVpbGRib3Qo
c2VsZiwgcGF0Y2hfaWRzLCBjb21taXRfcXVldWU9RmFsc2UpOgorICAgICAgICByZXR1cm4gW3Bh
dGNoX2lkIGZvciBwYXRjaF9pZCBpbiBwYXRjaF9pZHMgaWYgbm90IFBhdGNoLmlzX3BhdGNoX3Nl
bnRfdG9fYnVpbGRib3QocGF0Y2hfaWQsIGNvbW1pdF9xdWV1ZSldCiAKICAgICBAY2xhc3NtZXRo
b2QKICAgICBkZWYgZmlsdGVyX3ZhbGlkX3BhdGNoZXMoY2xzLCBwYXRjaF9pZHMpOgpJbmRleDog
VG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3MvY29tbW9uL2J1aWxkYm90LnB5Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2V3cy1hcHAvZXdzL2NvbW1vbi9i
dWlsZGJvdC5weQkocmV2aXNpb24gMjU1MjM4KQorKysgVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQv
ZXdzLWFwcC9ld3MvY29tbW9uL2J1aWxkYm90LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEs
NCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxOC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDEsMTAgKzQxLDEyIEBA
IGNsYXNzIEJ1aWxkYm90KCk6CiAgICAgaWNvbnNfZm9yX3F1ZXVlc19tYXBwaW5nID0ge30KIAog
ICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBzZW5kX3BhdGNoX3RvX2J1aWxkYm90KGNscywgcGF0
Y2hfcGF0aCwgcHJvcGVydGllcz1bXSk6CisgICAgZGVmIHNlbmRfcGF0Y2hfdG9fYnVpbGRib3Qo
Y2xzLCBwYXRjaF9wYXRoLCBzZW5kX3RvX2NvbW1pdF9xdWV1ZT1GYWxzZSwgcHJvcGVydGllcz1O
b25lKToKKyAgICAgICAgcHJvcGVydGllcyA9IHByb3BlcnRpZXMgb3IgW10KKyAgICAgICAgYnVp
bGRib3RfcG9ydCA9IGNvbmZpZy5DT01NSVRfUVVFVUVfUE9SVCBpZiBzZW5kX3RvX2NvbW1pdF9x
dWV1ZSBlbHNlIGNvbmZpZy5CVUlMREJPVF9TRVJWRVJfUE9SVAogICAgICAgICBjb21tYW5kID0g
WydidWlsZGJvdCcsICd0cnknLAogICAgICAgICAgICAgICAgICAgICctLWNvbm5lY3Q9cGInLAot
ICAgICAgICAgICAgICAgICAgICctLW1hc3Rlcj17fTp7fScuZm9ybWF0KGNvbmZpZy5CVUlMREJP
VF9TRVJWRVJfSE9TVCwgY29uZmlnLkJVSUxEQk9UX1NFUlZFUl9QT1JUKSwKKyAgICAgICAgICAg
ICAgICAgICAnLS1tYXN0ZXI9e306e30nLmZvcm1hdChjb25maWcuQlVJTERCT1RfU0VSVkVSX0hP
U1QsIGJ1aWxkYm90X3BvcnQpLAogICAgICAgICAgICAgICAgICAgICctLXVzZXJuYW1lPXt9Jy5m
b3JtYXQoY29uZmlnLkJVSUxEQk9UX1RSWV9VU0VSTkFNRSksCiAgICAgICAgICAgICAgICAgICAg
Jy0tcGFzc3dkPXt9Jy5mb3JtYXQoY29uZmlnLkJVSUxEQk9UX1RSWV9QQVNTV09SRCksCiAgICAg
ICAgICAgICAgICAgICAgJy0tZGlmZj17fScuZm9ybWF0KHBhdGNoX3BhdGgpLApAQCAtNTMsMTAg
KzU1LDkgQEAgY2xhc3MgQnVpbGRib3QoKToKICAgICAgICAgZm9yIHByb3BlcnR5IGluIHByb3Bl
cnRpZXM6CiAgICAgICAgICAgICBjb21tYW5kLmFwcGVuZCgnLS1wcm9wZXJ0eT17fScuZm9ybWF0
KHByb3BlcnR5KSkKIAotICAgICAgICBfbG9nLmRlYnVnKCdFeGVjdXRpbmcgY29tbWFuZDoge30n
LmZvcm1hdChjb21tYW5kKSkKICAgICAgICAgcmV0dXJuX2NvZGUgPSBzdWJwcm9jZXNzLmNhbGwo
Y29tbWFuZCkKICAgICAgICAgaWYgcmV0dXJuX2NvZGU6Ci0gICAgICAgICAgICBfbG9nLndhcm4o
J0Vycm9yIGV4ZWN1dGluZzoge30sIHJldHVybiBjb2RlPXt9Jy5mb3JtYXQoY29tbWFuZCwgcmV0
dXJuX2NvZGUpKQorICAgICAgICAgICAgX2xvZy53YXJuKCdFcnJvciBleGVjdXRpbmcgYnVpbGRi
b3QgdHJ5IGNvbW1hbmQgZm9yIHt9LCByZXR1cm4gY29kZT17fScuZm9ybWF0KHBhdGNoX3BhdGgs
IHJldHVybl9jb2RlKSkKIAogICAgICAgICByZXR1cm4gcmV0dXJuX2NvZGUKIApJbmRleDogVG9v
bHMvQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3MvbWlncmF0aW9ucy8wMDAzX3BhdGNoX3Nl
bnRfdG9fY29tbWl0X3F1ZXVlLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0J1aWxkU2xhdmVTdXBw
b3J0L2V3cy1hcHAvZXdzL21pZ3JhdGlvbnMvMDAwM19wYXRjaF9zZW50X3RvX2NvbW1pdF9xdWV1
ZS5weQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYXBwL2V3
cy9taWdyYXRpb25zLzAwMDNfcGF0Y2hfc2VudF90b19jb21taXRfcXVldWUucHkJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwyMCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKyMgR2VuZXJh
dGVkIGJ5IERqYW5nbyAxLjExLjE2IG9uIDIwMjAtMDEtMjggMDI6NTYKK2Zyb20gX19mdXR1cmVf
XyBpbXBvcnQgdW5pY29kZV9saXRlcmFscworCitmcm9tIGRqYW5nby5kYiBpbXBvcnQgbWlncmF0
aW9ucywgbW9kZWxzCisKKworY2xhc3MgTWlncmF0aW9uKG1pZ3JhdGlvbnMuTWlncmF0aW9uKToK
KworICAgIGRlcGVuZGVuY2llcyA9IFsKKyAgICAgICAgKCdld3MnLCAnMDAwMl9idWlsZF9yZXRy
aWVkJyksCisgICAgXQorCisgICAgb3BlcmF0aW9ucyA9IFsKKyAgICAgICAgbWlncmF0aW9ucy5B
ZGRGaWVsZCgKKyAgICAgICAgICAgIG1vZGVsX25hbWU9J3BhdGNoJywKKyAgICAgICAgICAgIG5h
bWU9J3NlbnRfdG9fY29tbWl0X3F1ZXVlJywKKyAgICAgICAgICAgIGZpZWxkPW1vZGVscy5Cb29s
ZWFuRmllbGQoZGVmYXVsdD1GYWxzZSksCisgICAgICAgICksCisgICAgXQpJbmRleDogVG9vbHMv
QnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3MvbW9kZWxzL3BhdGNoLnB5Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2V3cy1hcHAvZXdzL21vZGVscy9wYXRjaC5weQko
cmV2aXNpb24gMjU1MjM4KQorKysgVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3Mv
bW9kZWxzL3BhdGNoLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmln
aHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQg
KEMpIDIwMTgtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTM2LDYgKzM2LDcgQEAgY2xhc3MgUGF0Y2gobW9kZWxzLk1v
ZGVsKToKICAgICBidWdfaWQgPSBtb2RlbHMuSW50ZWdlckZpZWxkKCkKICAgICBvYnNvbGV0ZSA9
IG1vZGVscy5Cb29sZWFuRmllbGQoZGVmYXVsdD1GYWxzZSkKICAgICBzZW50X3RvX2J1aWxkYm90
ID0gbW9kZWxzLkJvb2xlYW5GaWVsZChkZWZhdWx0PUZhbHNlKQorICAgIHNlbnRfdG9fY29tbWl0
X3F1ZXVlID0gbW9kZWxzLkJvb2xlYW5GaWVsZChkZWZhdWx0PUZhbHNlKQogICAgIGNyZWF0ZWQg
PSBtb2RlbHMuRGF0ZVRpbWVGaWVsZChhdXRvX25vd19hZGQ9VHJ1ZSkKICAgICBtb2RpZmllZCA9
IG1vZGVscy5EYXRlVGltZUZpZWxkKGF1dG9fbm93PVRydWUpCiAKQEAgLTQzLDcgKzQ0LDcgQEAg
Y2xhc3MgUGF0Y2gobW9kZWxzLk1vZGVsKToKICAgICAgICAgcmV0dXJuIHN0cihzZWxmLnBhdGNo
X2lkKQogCiAgICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHNhdmVfcGF0Y2goY2xzLCBwYXRjaF9p
ZCwgYnVnX2lkPS0xLCBvYnNvbGV0ZT1GYWxzZSwgc2VudF90b19idWlsZGJvdD1GYWxzZSk6Cisg
ICAgZGVmIHNhdmVfcGF0Y2goY2xzLCBwYXRjaF9pZCwgYnVnX2lkPS0xLCBvYnNvbGV0ZT1GYWxz
ZSwgc2VudF90b19idWlsZGJvdD1GYWxzZSwgc2VudF90b19jb21taXRfcXVldWU9RmFsc2UpOgog
ICAgICAgICBpZiBub3QgUGF0Y2guaXNfdmFsaWRfcGF0Y2hfaWQocGF0Y2hfaWQpOgogICAgICAg
ICAgICAgX2xvZy53YXJuKCdQYXRjaCBpZCB7fSBpbiBpbnZhbGlkLiBTa2lwcGVkIHNhdmluZy4n
LmZvcm1hdChwYXRjaF9pZCkpCiAgICAgICAgICAgICByZXR1cm4gRVJSX0lOVkFMSURfUEFUQ0hf
SUQKQEAgLTUxLDcgKzUyLDcgQEAgY2xhc3MgUGF0Y2gobW9kZWxzLk1vZGVsKToKICAgICAgICAg
aWYgUGF0Y2guaXNfZXhpc3RpbmdfcGF0Y2hfaWQocGF0Y2hfaWQpOgogICAgICAgICAgICAgX2xv
Zy5kZWJ1ZygnUGF0Y2ggaWQge30gYWxyZWFkeSBleGlzdHMgaW4gZGF0YWJhc2UuIFNraXBwZWQg
c2F2aW5nLicuZm9ybWF0KHBhdGNoX2lkKSkKICAgICAgICAgICAgIHJldHVybiBFUlJfRVhJU1RJ
TkdfUEFUQ0gKLSAgICAgICAgUGF0Y2gocGF0Y2hfaWQsIGJ1Z19pZCwgb2Jzb2xldGUsIHNlbnRf
dG9fYnVpbGRib3QpLnNhdmUoKQorICAgICAgICBQYXRjaChwYXRjaF9pZCwgYnVnX2lkLCBvYnNv
bGV0ZSwgc2VudF90b19idWlsZGJvdCwgc2VudF90b19jb21taXRfcXVldWUpLnNhdmUoKQogICAg
ICAgICBfbG9nLmluZm8oJ1NhdmVkIHBhdGNoIGluIGRhdGFiYXNlLCBpZDoge30nLmZvcm1hdChw
YXRjaF9pZCkpCiAgICAgICAgIHJldHVybiBTVUNDRVNTCiAKQEAgLTYyLDkgKzYzLDEyIEBAIGNs
YXNzIFBhdGNoKG1vZGVscy5Nb2RlbCk6CiAKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgaXNf
dmFsaWRfcGF0Y2hfaWQoY2xzLCBwYXRjaF9pZCk6Ci0gICAgICAgIGlmIG5vdCBwYXRjaF9pZCBv
ciB0eXBlKHBhdGNoX2lkKSAhPSBpbnQgb3IgcGF0Y2hfaWQgPCAxOgorICAgICAgICBpZiBub3Qg
cGF0Y2hfaWQgb3IgcGF0Y2hfaWQgPCAxOgogICAgICAgICAgICAgX2xvZy53YXJuKCdJbnZhbGlk
IHBhdGNoIGlkOiB7fScuZm9ybWF0KHBhdGNoX2lkKSkKICAgICAgICAgICAgIHJldHVybiBGYWxz
ZQorICAgICAgICBpZiB0eXBlKHBhdGNoX2lkKSAhPSBpbnQ6CisgICAgICAgICAgICBfbG9nLndh
cm4oJ0RhdGEgdHlwZSBtaXNtYXRjaCBmb3IgcGF0Y2hfaWQsIGV4cGVjdGVkOiBpbnQsIGZvdW5k
OiB7fSwgaWQ6IHt9Jy5mb3JtYXQodHlwZShwYXRjaF9pZCksIHBhdGNoX2lkKSkKKyAgICAgICAg
ICAgIHJldHVybiBGYWxzZQogICAgICAgICByZXR1cm4gVHJ1ZQogCiAgICAgQGNsYXNzbWV0aG9k
CkBAIC03MiwxMCArNzYsMjAgQEAgY2xhc3MgUGF0Y2gobW9kZWxzLk1vZGVsKToKICAgICAgICAg
cmV0dXJuIGJvb2woUGF0Y2gub2JqZWN0cy5maWx0ZXIocGF0Y2hfaWQ9cGF0Y2hfaWQpKQogCiAg
ICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIGlzX3BhdGNoX3NlbnRfdG9fYnVpbGRib3QoY2xzLCBw
YXRjaF9pZCk6CisgICAgZGVmIGlzX3BhdGNoX3NlbnRfdG9fYnVpbGRib3QoY2xzLCBwYXRjaF9p
ZCwgY29tbWl0X3F1ZXVlPUZhbHNlKToKKyAgICAgICAgaWYgY29tbWl0X3F1ZXVlOgorICAgICAg
ICAgICAgcmV0dXJuIFBhdGNoLl9pc19wYXRjaF9zZW50X3RvX2NvbW1pdF9xdWV1ZShwYXRjaF9p
ZCkKKyAgICAgICAgcmV0dXJuIFBhdGNoLl9pc19wYXRjaF9zZW50X3RvX2J1aWxkYm90KHBhdGNo
X2lkKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIF9pc19wYXRjaF9zZW50X3RvX2J1aWxk
Ym90KGNscywgcGF0Y2hfaWQpOgogICAgICAgICByZXR1cm4gUGF0Y2guaXNfZXhpc3RpbmdfcGF0
Y2hfaWQocGF0Y2hfaWQpIGFuZCBQYXRjaC5vYmplY3RzLmdldChwaz1wYXRjaF9pZCkuc2VudF90
b19idWlsZGJvdAogCiAgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIF9pc19wYXRjaF9zZW50X3Rv
X2NvbW1pdF9xdWV1ZShjbHMsIHBhdGNoX2lkKToKKyAgICAgICAgcmV0dXJuIFBhdGNoLmlzX2V4
aXN0aW5nX3BhdGNoX2lkKHBhdGNoX2lkKSBhbmQgUGF0Y2gub2JqZWN0cy5nZXQocGs9cGF0Y2hf
aWQpLnNlbnRfdG9fY29tbWl0X3F1ZXVlCisKKyAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgZ2V0
X3BhdGNoKGNscywgcGF0Y2hfaWQpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICByZXR1cm4g
UGF0Y2gub2JqZWN0cy5nZXQocGF0Y2hfaWQ9cGF0Y2hfaWQpCkBAIC04Myw3ICs5NywxMyBAQCBj
bGFzcyBQYXRjaChtb2RlbHMuTW9kZWwpOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKIAogICAg
IEBjbGFzc21ldGhvZAotICAgIGRlZiBzZXRfc2VudF90b19idWlsZGJvdChjbHMsIHBhdGNoX2lk
LCBzZW50X3RvX2J1aWxkYm90PVRydWUpOgorICAgIGRlZiBzZXRfc2VudF90b19idWlsZGJvdChj
bHMsIHBhdGNoX2lkLCB2YWx1ZSwgY29tbWl0X3F1ZXVlPUZhbHNlKToKKyAgICAgICAgaWYgY29t
bWl0X3F1ZXVlOgorICAgICAgICAgICAgcmV0dXJuIFBhdGNoLl9zZXRfc2VudF90b19jb21taXRf
cXVldWUocGF0Y2hfaWQsIHNlbnRfdG9fY29tbWl0X3F1ZXVlPXZhbHVlKQorICAgICAgICByZXR1
cm4gUGF0Y2guX3NldF9zZW50X3RvX2J1aWxkYm90KHBhdGNoX2lkLCBzZW50X3RvX2J1aWxkYm90
PXZhbHVlKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIF9zZXRfc2VudF90b19idWlsZGJv
dChjbHMsIHBhdGNoX2lkLCBzZW50X3RvX2J1aWxkYm90PVRydWUpOgogICAgICAgICBpZiBub3Qg
UGF0Y2guaXNfZXhpc3RpbmdfcGF0Y2hfaWQocGF0Y2hfaWQpOgogICAgICAgICAgICAgUGF0Y2gu
c2F2ZV9wYXRjaChwYXRjaF9pZD1wYXRjaF9pZCwgc2VudF90b19idWlsZGJvdD1zZW50X3RvX2J1
aWxkYm90KQogICAgICAgICAgICAgX2xvZy5pbmZvKCdQYXRjaCB7fSBzYXZlZCB0byBkYXRhYmFz
ZSB3aXRoIHNlbnRfdG9fYnVpbGRib3Q9e30nLmZvcm1hdChwYXRjaF9pZCwgc2VudF90b19idWls
ZGJvdCkpCkBAIC0xMDAsNiArMTIwLDIzIEBAIGNsYXNzIFBhdGNoKG1vZGVscy5Nb2RlbCk6CiAg
ICAgICAgIHJldHVybiBTVUNDRVNTCiAKICAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgX3NldF9z
ZW50X3RvX2NvbW1pdF9xdWV1ZShjbHMsIHBhdGNoX2lkLCBzZW50X3RvX2NvbW1pdF9xdWV1ZT1U
cnVlKToKKyAgICAgICAgaWYgbm90IFBhdGNoLmlzX2V4aXN0aW5nX3BhdGNoX2lkKHBhdGNoX2lk
KToKKyAgICAgICAgICAgIFBhdGNoLnNhdmVfcGF0Y2gocGF0Y2hfaWQ9cGF0Y2hfaWQsIHNlbnRf
dG9fY29tbWl0X3F1ZXVlPXNlbnRfdG9fY29tbWl0X3F1ZXVlKQorICAgICAgICAgICAgX2xvZy5p
bmZvKCdQYXRjaCB7fSBzYXZlZCB0byBkYXRhYmFzZSB3aXRoIHNlbnRfdG9fY29tbWl0X3F1ZXVl
PXt9Jy5mb3JtYXQocGF0Y2hfaWQsIHNlbnRfdG9fY29tbWl0X3F1ZXVlKSkKKyAgICAgICAgICAg
IHJldHVybiBTVUNDRVNTCisKKyAgICAgICAgcGF0Y2ggPSBQYXRjaC5vYmplY3RzLmdldChwaz1w
YXRjaF9pZCkKKyAgICAgICAgaWYgcGF0Y2guc2VudF90b19jb21taXRfcXVldWUgPT0gc2VudF90
b19jb21taXRfcXVldWU6CisgICAgICAgICAgICBfbG9nLndhcm4oJ1BhdGNoIHt9IGFscmVhZHkg
aGFzIHNlbnRfdG9fY29tbWl0X3F1ZXVlPXt9Jy5mb3JtYXQocGF0Y2hfaWQsIHNlbnRfdG9fY29t
bWl0X3F1ZXVlKSkKKyAgICAgICAgICAgIHJldHVybiBTVUNDRVNTCisKKyAgICAgICAgcGF0Y2gu
c2VudF90b19jb21taXRfcXVldWUgPSBzZW50X3RvX2NvbW1pdF9xdWV1ZQorICAgICAgICBwYXRj
aC5zYXZlKCkKKyAgICAgICAgX2xvZy5pbmZvKCdVcGRhdGVkIHBhdGNoIHt9IHdpdGggc2VudF90
b19jb21taXRfcXVldWU9e30nLmZvcm1hdChwYXRjaF9pZCwgc2VudF90b19jb21taXRfcXVldWUp
KQorICAgICAgICByZXR1cm4gU1VDQ0VTUworCisgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIHNl
dF9idWdfaWQoY2xzLCBwYXRjaF9pZCwgYnVnX2lkKToKICAgICAgICAgaWYgbm90IFBhdGNoLmlz
X2V4aXN0aW5nX3BhdGNoX2lkKHBhdGNoX2lkKToKICAgICAgICAgICAgIHJldHVybiBFUlJfTk9O
X0VYSVNUSU5HX1BBVENICg==
</data>

          </attachment>
      

    </bug>

</bugzilla>