<?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>178764</bug_id>
          
          <creation_ts>2017-10-24 16:58:21 -0700</creation_ts>
          <short_desc>Make SharedStringHashTable less error prone</short_desc>
          <delta_ts>2017-11-15 12:46:35 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1364020</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-24 16:58:21 -0700</bug_when>
    <thetext>Make SharedStringHashTable less error prone by moving its modifying operations into a subclass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364058</commentid>
    <comment_count>1</comment_count>
      <attachid>324774</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-24 18:57:15 -0700</bug_when>
    <thetext>Created attachment 324774
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364229</commentid>
    <comment_count>2</comment_count>
      <attachid>324774</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-10-25 09:32:46 -0700</bug_when>
    <thetext>Comment on attachment 324774
Patch

LGTM.
Usually classes are split in their own files. Maybe this should be done here as well.
That way, some files would only include the ReadOnly version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364238</commentid>
    <comment_count>3</comment_count>
      <attachid>324834</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-25 09:49:08 -0700</bug_when>
    <thetext>Created attachment 324834
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364256</commentid>
    <comment_count>4</comment_count>
      <attachid>324839</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-25 10:04:36 -0700</bug_when>
    <thetext>Created attachment 324839
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364273</commentid>
    <comment_count>5</comment_count>
      <attachid>324839</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-25 10:19:47 -0700</bug_when>
    <thetext>Comment on attachment 324839
Patch

Clearing flags on attachment: 324839

Committed r223958: &lt;https://trac.webkit.org/changeset/223958&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364274</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-25 10:19:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372242</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 12:46:35 -0800</bug_when>
    <thetext>&lt;rdar://problem/35568098&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324774</attachid>
            <date>2017-10-24 18:57:15 -0700</date>
            <delta_ts>2017-10-25 09:49:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178764-20171024185714.patch</filename>
            <type>text/plain</type>
            <size>8594</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzOTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdjYzM0MGQ1MmQ2NTI0OGJh
Yzk0MDIwZWJlNTBlZjA5ZDRmMzNjMWIuLjM0YjRlNjUwYWQ5MmUzZjMyZmI0YzU3NjRjODNjMzNi
OTYzNmQwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTctMTAtMjQgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFNoYXJlZFN0cmluZ0hhc2hU
YWJsZSBsZXNzIGVycm9yIHByb25lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzg3NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTaGFyZWRTdHJpbmdIYXNoVGFibGUgaXMgYmFja2VkIGJ5IFNoYXJlZE1l
bW9yeSBhbmQgdGhpcyBTaGFyZWRNZW1vcnkKKyAgICAgICAgbWF5IGJlIHJlYWRvbmx5IChhbmQg
aXMgd2hlbiB1c2VkIGluIHRoZSBXZWJDb250ZW50IHByb2Nlc3MpLiBBcyBhIHJlc3VsdCwKKyAg
ICAgICAgc29tZSBvZiB0aGUgb3BlcmF0aW9ucyBvbiBTaGFyZWRTdHJpbmdIYXNoVGFibGUgdGhh
dCB3cml0ZSB0byB0aGlzIHNoYXJlZAorICAgICAgICBtZW1vcnkgd2lsbCBjcmFzaCBpZiBjYWxs
ZWQgYW5kIHRoZSBTaGFyZWRNZW1vcnkgaXMgcmVhZG9ubHkuCisKKyAgICAgICAgVG8gbWFrZSB0
aGlzIGxlc3MgZXJyb3IgcHJvbmUsIGludHJvZHVjZSBhIG5ldyBTaGFyZWRTdHJpbmdIYXNoVGFi
bGVSZWFkT25seQorICAgICAgICBiYXNlIGNsYXNzIGZvciBTaGFyZWRTdHJpbmdIYXNoVGFibGUg
YW5kIG9ubHkga2VlcCB0aGUgb3BlcmF0aW9ucyB0aGF0CisgICAgICAgIHdyaXRlIHRvIHRoZSBz
aGFyZWQgbWVtb3J5IG9uIFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5IChuYW1lbHksIGFk
ZCgpIC8KKyAgICAgICAgcmVtb3ZlKCkgLyBjbGVhcigpLiBVcGRhdGUgVmlzaXRlZExpbmtUYWJs
ZUNvbnRyb2xsZXIgYW5kIFdlYlNXT3JpZ2luVGFibGUKKyAgICAgICAgdG8gdXNlIFNoYXJlZFN0
cmluZ0hhc2hUYWJsZVJlYWRPbmx5IHNpbmNlIHRoZXkgYXJlIGluc3RhbnRpYXRlZCBpbiB0aGUK
KyAgICAgICAgV2ViQ29udGVudCBwcm9jZXNzIGFuZCB1c2UgcmVhZG9ubHkgc2hhcmVkIG1lbW9y
eS4KKworICAgICAgICAqIFNoYXJlZC9TaGFyZWRTdHJpbmdIYXNoVGFibGUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seTo6U2hhcmVkU3RyaW5nSGFz
aFRhYmxlUmVhZE9ubHkpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRTdHJpbmdIYXNoVGFibGVS
ZWFkT25seTo6flNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5KToKKyAgICAgICAgKFdlYktp
dDo6U2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHk6OnNldFNoYXJlZE1lbW9yeSk6CisgICAg
ICAgIChXZWJLaXQ6OmRvdWJsZUhhc2gpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRTdHJpbmdI
YXNoVGFibGVSZWFkT25seTo6Y29udGFpbnMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpTaGFy
ZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seTo6ZmluZFNsb3QgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpTaGFyZWRTdHJpbmdIYXNoVGFibGU6OlNoYXJlZFN0cmluZ0hhc2hUYWJsZSk6CisgICAg
ICAgIChXZWJLaXQ6OlNoYXJlZFN0cmluZ0hhc2hUYWJsZTo6flNoYXJlZFN0cmluZ0hhc2hUYWJs
ZSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZFN0cmluZ0hhc2hUYWJsZTo6YWRkKToKKyAgICAg
ICAgKFdlYktpdDo6U2hhcmVkU3RyaW5nSGFzaFRhYmxlOjpyZW1vdmUpOgorICAgICAgICAoV2Vi
S2l0OjpTaGFyZWRTdHJpbmdIYXNoVGFibGU6OmNsZWFyKToKKyAgICAgICAgKiBTaGFyZWQvU2hh
cmVkU3RyaW5nSGFzaFRhYmxlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
T3JpZ2luVGFibGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtU
YWJsZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpWaXNpdGVkTGlua1RhYmxlQ29u
dHJvbGxlcjo6cmVtb3ZlQWxsVmlzaXRlZExpbmtzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuaDoKKwogMjAxNy0xMC0yNCAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIHNlcnZpY2Ugd29y
a2VyIHRvIHVzZSBjYWNoZSBzdG9yYWdlIGFwaQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvU2hhcmVkU3RyaW5nSGFzaFRhYmxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1No
YXJlZFN0cmluZ0hhc2hUYWJsZS5jcHAKaW5kZXggZThjYTc1NDA3Yzk1M2UwMDk1MzcwZmIxZmE2
MGRmMWRlMGI1ZmU1Zi4uNTM1NGUxMTg2MzcyODMyZTdiNTU1NzE2YTQ1YjJhZWExNjY1YjRmMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2hhcmVkU3RyaW5nSGFzaFRhYmxlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TaGFyZWRTdHJpbmdIYXNoVGFibGUuY3BwCkBA
IC0zMiw2ICszMiwxNCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKK1NoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5OjpTaGFyZWRTdHJpbmdIYXNo
VGFibGVSZWFkT25seSgpCit7Cit9CisKK1NoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5Ojp+
U2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkoKQoreworfQorCiBTaGFyZWRTdHJpbmdIYXNo
VGFibGU6OlNoYXJlZFN0cmluZ0hhc2hUYWJsZSgpCiB7CiB9CkBAIC00OSwxOCArNTcsMjEgQEAg
c3RhdGljIGlubGluZSBib29sIGlzUG93ZXJPZjIodW5zaWduZWQgdikKIH0KICNlbmRpZgogCi12
b2lkIFNoYXJlZFN0cmluZ0hhc2hUYWJsZTo6c2V0U2hhcmVkTWVtb3J5KFJlZjxTaGFyZWRNZW1v
cnk+JiYgc2hhcmVkTWVtb3J5KQordm9pZCBTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seTo6
c2V0U2hhcmVkTWVtb3J5KFJlZlB0cjxTaGFyZWRNZW1vcnk+JiYgc2hhcmVkTWVtb3J5KQogewog
ICAgIG1fc2hhcmVkTWVtb3J5ID0gV1RGTW92ZShzaGFyZWRNZW1vcnkpOwogICAgIAotICAgIEFT
U0VSVChtX3NoYXJlZE1lbW9yeSk7Ci0gICAgQVNTRVJUKCEobV9zaGFyZWRNZW1vcnktPnNpemUo
KSAlIHNpemVvZihTaGFyZWRTdHJpbmdIYXNoKSkpOwotCi0gICAgbV90YWJsZSA9IHN0YXRpY19j
YXN0PFNoYXJlZFN0cmluZ0hhc2gqPihtX3NoYXJlZE1lbW9yeS0+ZGF0YSgpKTsKLSAgICBtX3Rh
YmxlU2l6ZSA9IG1fc2hhcmVkTWVtb3J5LT5zaXplKCkgLyBzaXplb2YoU2hhcmVkU3RyaW5nSGFz
aCk7Ci0gICAgQVNTRVJUKGlzUG93ZXJPZjIobV90YWJsZVNpemUpKTsKLSAgICAKLSAgICBtX3Rh
YmxlU2l6ZU1hc2sgPSBtX3RhYmxlU2l6ZSAtIDE7CisgICAgaWYgKG1fc2hhcmVkTWVtb3J5KSB7
CisgICAgICAgIEFTU0VSVCghKG1fc2hhcmVkTWVtb3J5LT5zaXplKCkgJSBzaXplb2YoU2hhcmVk
U3RyaW5nSGFzaCkpKTsKKyAgICAgICAgbV90YWJsZSA9IHN0YXRpY19jYXN0PFNoYXJlZFN0cmlu
Z0hhc2gqPihtX3NoYXJlZE1lbW9yeS0+ZGF0YSgpKTsKKyAgICAgICAgbV90YWJsZVNpemUgPSBt
X3NoYXJlZE1lbW9yeS0+c2l6ZSgpIC8gc2l6ZW9mKFNoYXJlZFN0cmluZ0hhc2gpOworICAgICAg
ICBBU1NFUlQoaXNQb3dlck9mMihtX3RhYmxlU2l6ZSkpOworICAgICAgICBtX3RhYmxlU2l6ZU1h
c2sgPSBtX3RhYmxlU2l6ZSAtIDE7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbV90YWJsZSA9IG51
bGxwdHI7CisgICAgICAgIG1fdGFibGVTaXplID0gMDsKKyAgICAgICAgbV90YWJsZVNpemVNYXNr
ID0gMDsKKyAgICB9CiB9CiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgZG91YmxlSGFzaCh1bnNp
Z25lZCBrZXkpCkBAIC03Miw3ICs4Myw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgZG91Ymxl
SGFzaCh1bnNpZ25lZCBrZXkpCiAgICAga2V5IF49IChrZXkgPj4gMjApOwogICAgIHJldHVybiBr
ZXk7CiB9Ci0gICAgCisKIGJvb2wgU2hhcmVkU3RyaW5nSGFzaFRhYmxlOjphZGQoU2hhcmVkU3Ry
aW5nSGFzaCBzaGFyZWRTdHJpbmdIYXNoKQogewogICAgIGF1dG8qIHNsb3QgPSBmaW5kU2xvdChz
aGFyZWRTdHJpbmdIYXNoKTsKQEAgLTk2LDEzICsxMDcsMTMgQEAgYm9vbCBTaGFyZWRTdHJpbmdI
YXNoVGFibGU6OnJlbW92ZShTaGFyZWRTdHJpbmdIYXNoIHNoYXJlZFN0cmluZ0hhc2gpCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgU2hhcmVkU3RyaW5nSGFzaFRhYmxlOjpjb250YWlucyhT
aGFyZWRTdHJpbmdIYXNoIHNoYXJlZFN0cmluZ0hhc2gpIGNvbnN0Citib29sIFNoYXJlZFN0cmlu
Z0hhc2hUYWJsZVJlYWRPbmx5Ojpjb250YWlucyhTaGFyZWRTdHJpbmdIYXNoIHNoYXJlZFN0cmlu
Z0hhc2gpIGNvbnN0CiB7CiAgICAgYXV0byogc2xvdCA9IGZpbmRTbG90KHNoYXJlZFN0cmluZ0hh
c2gpOwogICAgIHJldHVybiBzbG90ICYmICpzbG90OwogfQogCi1TaGFyZWRTdHJpbmdIYXNoKiBT
aGFyZWRTdHJpbmdIYXNoVGFibGU6OmZpbmRTbG90KFNoYXJlZFN0cmluZ0hhc2ggc2hhcmVkU3Ry
aW5nSGFzaCkgY29uc3QKK1NoYXJlZFN0cmluZ0hhc2gqIFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJl
YWRPbmx5OjpmaW5kU2xvdChTaGFyZWRTdHJpbmdIYXNoIHNoYXJlZFN0cmluZ0hhc2gpIGNvbnN0
CiB7CiAgICAgaWYgKCFtX3NoYXJlZE1lbW9yeSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBA
IC0xMzYsMTAgKzE0Nyw3IEBAIHZvaWQgU2hhcmVkU3RyaW5nSGFzaFRhYmxlOjpjbGVhcigpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIG1lbXNldChtX3NoYXJlZE1lbW9yeS0+ZGF0YSgpLCAwLCBt
X3NoYXJlZE1lbW9yeS0+c2l6ZSgpKTsKLSAgICBtX3RhYmxlID0gbnVsbHB0cjsKLSAgICBtX3Rh
YmxlU2l6ZSA9IDA7Ci0gICAgbV90YWJsZVNpemVNYXNrID0gMDsKLSAgICBtX3NoYXJlZE1lbW9y
eSA9IG51bGxwdHI7CisgICAgc2V0U2hhcmVkTWVtb3J5KG51bGxwdHIpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlZFN0
cmluZ0hhc2hUYWJsZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2hhcmVkU3RyaW5nSGFzaFRh
YmxlLmgKaW5kZXggYzgzNThlMzJkODdiOWRmMmUxM2MzNWM5N2UyY2JlNThmMGVmODM2Yy4uNmM4
NDdlYzdmZWU1ODQ4NTJmYzYwZTQ0ZTJlYzliMzlhNGQ1N2I4MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvU2hhcmVkU3RyaW5nSGFzaFRhYmxlLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvU2hhcmVkU3RyaW5nSGFzaFRhYmxlLmgKQEAgLTMyLDI5ICszMiwzMyBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgU2hhcmVkTWVtb3J5OwogCi1jbGFzcyBTaGFyZWRTdHJp
bmdIYXNoVGFibGUgeworY2xhc3MgU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkgewogcHVi
bGljOgotICAgIFNoYXJlZFN0cmluZ0hhc2hUYWJsZSgpOwotICAgIH5TaGFyZWRTdHJpbmdIYXNo
VGFibGUoKTsKLQotICAgIHZvaWQgc2V0U2hhcmVkTWVtb3J5KFJlZjxTaGFyZWRNZW1vcnk+JiYp
OwotCi0gICAgLy8gQ2FuIG9ubHkgYmUgY2FsbGVkIGlmIHRoZSB1bmRlcmx5aW5nIHNoYXJlZCBt
ZW1vcnkgaXMgaW4gcmVhZCAvIHdyaXRlIG1vZGUuCi0gICAgYm9vbCBhZGQoV2ViQ29yZTo6U2hh
cmVkU3RyaW5nSGFzaCk7Ci0gICAgYm9vbCByZW1vdmUoV2ViQ29yZTo6U2hhcmVkU3RyaW5nSGFz
aCk7CisgICAgU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkoKTsKKyAgICB+U2hhcmVkU3Ry
aW5nSGFzaFRhYmxlUmVhZE9ubHkoKTsKIAogICAgIGJvb2wgY29udGFpbnMoV2ViQ29yZTo6U2hh
cmVkU3RyaW5nSGFzaCkgY29uc3Q7CiAKICAgICBTaGFyZWRNZW1vcnkqIHNoYXJlZE1lbW9yeSgp
IGNvbnN0IHsgcmV0dXJuIG1fc2hhcmVkTWVtb3J5LmdldCgpOyB9Ci0gICAgdm9pZCBjbGVhcigp
OworICAgIHZvaWQgc2V0U2hhcmVkTWVtb3J5KFJlZlB0cjxTaGFyZWRNZW1vcnk+JiYpOwogCi1w
cml2YXRlOgotICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1fc2hhcmVkTWVtb3J5OworcHJvdGVj
dGVkOgogICAgIFdlYkNvcmU6OlNoYXJlZFN0cmluZ0hhc2gqIGZpbmRTbG90KFdlYkNvcmU6OlNo
YXJlZFN0cmluZ0hhc2gpIGNvbnN0OwogCisgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbV9zaGFy
ZWRNZW1vcnk7CiAgICAgdW5zaWduZWQgbV90YWJsZVNpemUgeyAwIH07CiAgICAgdW5zaWduZWQg
bV90YWJsZVNpemVNYXNrIHsgMCB9OwogICAgIFdlYkNvcmU6OlNoYXJlZFN0cmluZ0hhc2gqIG1f
dGFibGUgeyBudWxscHRyIH07CiB9OwogCitjbGFzcyBTaGFyZWRTdHJpbmdIYXNoVGFibGUgOiBw
dWJsaWMgU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkgeworcHVibGljOgorICAgIFNoYXJl
ZFN0cmluZ0hhc2hUYWJsZSgpOworICAgIH5TaGFyZWRTdHJpbmdIYXNoVGFibGUoKTsKKworICAg
IGJvb2wgYWRkKFdlYkNvcmU6OlNoYXJlZFN0cmluZ0hhc2gpOworICAgIGJvb2wgcmVtb3ZlKFdl
YkNvcmU6OlNoYXJlZFN0cmluZ0hhc2gpOworICAgIHZvaWQgY2xlYXIoKTsKK307CisKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXT3JpZ2luVGFi
bGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXT3JpZ2luVGFibGUu
aAppbmRleCA4YjQxOGUyMDY0NGJhNjgzMDg2OGNiMjQxODdkOTkyMzgyMTc0OTRiLi4xZGYyYTZl
NGNjZDdjNTMxMmE3NmY4MDFmNTdjNWUyYjUxOGM0MWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV09yaWdpblRhYmxlLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5oCkBAIC00NCw3ICs0NCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNoYXJlZE1lbW9yeShjb25zdCBTaGFyZWRNZW1vcnk6
OkhhbmRsZSYpOwogCiBwcml2YXRlOgotICAgIFNoYXJlZFN0cmluZ0hhc2hUYWJsZSBtX3NlcnZp
Y2VXb3JrZXJPcmlnaW5UYWJsZTsKKyAgICBTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seSBt
X3NlcnZpY2VXb3JrZXJPcmlnaW5UYWJsZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtU
YWJsZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlz
aXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuY3BwCmluZGV4IGVmNzEyODAyZjFiYWQzYTA1MGMwZWIy
OTE2YjAwZmQwOGU1M2MxYWIuLmMyYzAwMTAxYTA5MGQ3Zjk5MzEyZWJhOGE0Y2FlZDM5NTdjNzRm
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1Zpc2l0ZWRM
aW5rVGFibGVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5jcHAKQEAgLTExMiw3ICsxMTIsNyBAQCB2
b2lkIFZpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyOjphbGxWaXNpdGVkTGlua1N0YXRlQ2hhbmdl
ZCgpCiAKIHZvaWQgVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXI6OnJlbW92ZUFsbFZpc2l0ZWRM
aW5rcygpCiB7Ci0gICAgbV92aXNpdGVkTGlua1RhYmxlLmNsZWFyKCk7CisgICAgbV92aXNpdGVk
TGlua1RhYmxlLnNldFNoYXJlZE1lbW9yeShudWxscHRyKTsKIAogICAgIGludmFsaWRhdGVTdHls
ZXNGb3JBbGxMaW5rcygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1Zpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyLmgKaW5kZXggNzQ3ZTNk
OGJhNzM1ZWJjMDJmYTdhNWVhMWYzNWM4NTc0ZGEwYjRhMy4uZTE0MDEwNTc0NDVlZWJiZTY0MmU1
MmI4OWY0YmFiZjJjMmFmMmUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5oCkBAIC01Myw3
ICs1Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmVBbGxWaXNpdGVkTGlua3MoKTsKIAog
ICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsKLSAgICBTaGFyZWRTdHJpbmdIYXNoVGFibGUgbV92
aXNpdGVkTGlua1RhYmxlOworICAgIFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5IG1fdmlz
aXRlZExpbmtUYWJsZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324834</attachid>
            <date>2017-10-25 09:49:08 -0700</date>
            <delta_ts>2017-10-25 10:04:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178764-20171025094908.patch</filename>
            <type>text/plain</type>
            <size>22141</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzOTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVjYzk0NWM0OTQ0ODg4Nzc5
MzA3ZWY3NWQ3MmJiYjcwOGE0NDM4MDUuLjk1MjZiMzY0NWE2YTlmMjg3ZjY2MDg3YTlhZTYzZDlh
NGVhMDFkYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTctMTAtMjUgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFNoYXJlZFN0cmluZ0hhc2hU
YWJsZSBsZXNzIGVycm9yIHByb25lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzg3NjQKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0
LgorCisgICAgICAgIFNoYXJlZFN0cmluZ0hhc2hUYWJsZSBpcyBiYWNrZWQgYnkgU2hhcmVkTWVt
b3J5IGFuZCB0aGlzIFNoYXJlZE1lbW9yeQorICAgICAgICBtYXkgYmUgcmVhZG9ubHkgKGFuZCBp
cyB3aGVuIHVzZWQgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcykuIEFzIGEgcmVzdWx0LAorICAg
ICAgICBzb21lIG9mIHRoZSBvcGVyYXRpb25zIG9uIFNoYXJlZFN0cmluZ0hhc2hUYWJsZSB0aGF0
IHdyaXRlIHRvIHRoaXMgc2hhcmVkCisgICAgICAgIG1lbW9yeSB3aWxsIGNyYXNoIGlmIGNhbGxl
ZCBhbmQgdGhlIFNoYXJlZE1lbW9yeSBpcyByZWFkb25seS4KKworICAgICAgICBUbyBtYWtlIHRo
aXMgbGVzcyBlcnJvciBwcm9uZSwgaW50cm9kdWNlIGEgbmV3IFNoYXJlZFN0cmluZ0hhc2hUYWJs
ZVJlYWRPbmx5CisgICAgICAgIGJhc2UgY2xhc3MgZm9yIFNoYXJlZFN0cmluZ0hhc2hUYWJsZSBh
bmQgb25seSBrZWVwIHRoZSBvcGVyYXRpb25zIHRoYXQKKyAgICAgICAgd3JpdGUgdG8gdGhlIHNo
YXJlZCBtZW1vcnkgb24gU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkgKG5hbWVseSwgYWRk
KCkgLworICAgICAgICByZW1vdmUoKSAvIGNsZWFyKCkuIFVwZGF0ZSBWaXNpdGVkTGlua1RhYmxl
Q29udHJvbGxlciBhbmQgV2ViU1dPcmlnaW5UYWJsZQorICAgICAgICB0byB1c2UgU2hhcmVkU3Ry
aW5nSGFzaFRhYmxlUmVhZE9ubHkgc2luY2UgdGhleSBhcmUgaW5zdGFudGlhdGVkIGluIHRoZQor
ICAgICAgICBXZWJDb250ZW50IHByb2Nlc3MgYW5kIHVzZSByZWFkb25seSBzaGFyZWQgbWVtb3J5
LgorCisgICAgICAgICogU2hhcmVkL1NoYXJlZFN0cmluZ0hhc2hUYWJsZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5OjpTaGFyZWRTdHJpbmdIYXNo
VGFibGVSZWFkT25seSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZFN0cmluZ0hhc2hUYWJsZVJl
YWRPbmx5Ojp+U2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkpOgorICAgICAgICAoV2ViS2l0
OjpTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seTo6c2V0U2hhcmVkTWVtb3J5KToKKyAgICAg
ICAgKFdlYktpdDo6ZG91YmxlSGFzaCk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZFN0cmluZ0hh
c2hUYWJsZVJlYWRPbmx5Ojpjb250YWlucyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJl
ZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5OjpmaW5kU2xvdCBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlNoYXJlZFN0cmluZ0hhc2hUYWJsZTo6U2hhcmVkU3RyaW5nSGFzaFRhYmxlKToKKyAgICAg
ICAgKFdlYktpdDo6U2hhcmVkU3RyaW5nSGFzaFRhYmxlOjp+U2hhcmVkU3RyaW5nSGFzaFRhYmxl
KToKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkU3RyaW5nSGFzaFRhYmxlOjphZGQpOgorICAgICAg
ICAoV2ViS2l0OjpTaGFyZWRTdHJpbmdIYXNoVGFibGU6OnJlbW92ZSk6CisgICAgICAgIChXZWJL
aXQ6OlNoYXJlZFN0cmluZ0hhc2hUYWJsZTo6Y2xlYXIpOgorICAgICAgICAqIFNoYXJlZC9TaGFy
ZWRTdHJpbmdIYXNoVGFibGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dP
cmlnaW5UYWJsZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1Rh
YmxlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlZpc2l0ZWRMaW5rVGFibGVDb250
cm9sbGVyOjpyZW1vdmVBbGxWaXNpdGVkTGlua3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5oOgorCiAyMDE3LTEwLTI1ICBBZHJpYW4g
UGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV0gUmVt
b3ZlIEdMaWIgQVBJIGZ1bmN0aW9ucyB3aGljaCB1c2UgQ2Fpcm8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDcxNThkZTMwMzZmNTljNmE1NjY1MGE5MjNjZjFiYWQxMWNhZWY1ZTguLjk4NDExODNjNjIx
MDNhNjU1OGE0NDJhZWZkN2E3NWRhYzkyZDI3MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTgx
LDYgKzE4MSw3IEBAIHNldChXZWJLaXRfU09VUkNFUwogICAgIFNoYXJlZC9TaGFyZWFibGVCaXRt
YXAuY3BwCiAgICAgU2hhcmVkL1NoYXJlYWJsZVJlc291cmNlLmNwcAogICAgIFNoYXJlZC9TaGFy
ZWRTdHJpbmdIYXNoU3RvcmUuY3BwCisgICAgU2hhcmVkL1NoYXJlZFN0cmluZ0hhc2hUYWJsZVJl
YWRPbmx5LmNwcAogICAgIFNoYXJlZC9TaGFyZWRTdHJpbmdIYXNoVGFibGUuY3BwCiAgICAgU2hh
cmVkL1N0YXRpc3RpY3NEYXRhLmNwcAogICAgIFNoYXJlZC9VcGRhdGVJbmZvLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2hhcmVkU3RyaW5nSGFzaFRhYmxlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlZFN0cmluZ0hhc2hUYWJsZS5jcHAKaW5kZXggZThjYTc1
NDA3Yzk1M2UwMDk1MzcwZmIxZmE2MGRmMWRlMGI1ZmU1Zi4uYjgxOThjY2U0NjUzOWJhZjBjZDgx
NGRjYTY4MzY2MjUyZWM3NWM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2hh
cmVkU3RyaW5nSGFzaFRhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TaGFyZWRT
dHJpbmdIYXNoVGFibGUuY3BwCkBAIC0yNiwxMiArMjYsMTAgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJTaGFyZWRTdHJpbmdIYXNoVGFibGUuaCIKIAotI2luY2x1ZGUgIlNoYXJl
ZE1lbW9yeS5oIgorbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQogU2hhcmVkU3RyaW5nSGFzaFRhYmxlOjpTaGFyZWRT
dHJpbmdIYXNoVGFibGUoKQogewogfQpAQCAtNDAsMzkgKzM4LDYgQEAgU2hhcmVkU3RyaW5nSGFz
aFRhYmxlOjp+U2hhcmVkU3RyaW5nSGFzaFRhYmxlKCkKIHsKIH0KIAotI2lmICFBU1NFUlRfRElT
QUJMRUQKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc1Bvd2VyT2YyKHVuc2lnbmVkIHYpCi17Ci0gICAg
Ly8gVGFrZW4gZnJvbSBodHRwOi8vd3d3LmNzLnV0ay5lZHUvfnZvc2UvYy1zdHVmZi9iaXRoYWNr
cy5odG1sCi0gICAgCi0gICAgcmV0dXJuICEodiAmICh2IC0gMSkpICYmIHY7Ci19Ci0jZW5kaWYK
LQotdm9pZCBTaGFyZWRTdHJpbmdIYXNoVGFibGU6OnNldFNoYXJlZE1lbW9yeShSZWY8U2hhcmVk
TWVtb3J5PiYmIHNoYXJlZE1lbW9yeSkKLXsKLSAgICBtX3NoYXJlZE1lbW9yeSA9IFdURk1vdmUo
c2hhcmVkTWVtb3J5KTsKLSAgICAKLSAgICBBU1NFUlQobV9zaGFyZWRNZW1vcnkpOwotICAgIEFT
U0VSVCghKG1fc2hhcmVkTWVtb3J5LT5zaXplKCkgJSBzaXplb2YoU2hhcmVkU3RyaW5nSGFzaCkp
KTsKLQotICAgIG1fdGFibGUgPSBzdGF0aWNfY2FzdDxTaGFyZWRTdHJpbmdIYXNoKj4obV9zaGFy
ZWRNZW1vcnktPmRhdGEoKSk7Ci0gICAgbV90YWJsZVNpemUgPSBtX3NoYXJlZE1lbW9yeS0+c2l6
ZSgpIC8gc2l6ZW9mKFNoYXJlZFN0cmluZ0hhc2gpOwotICAgIEFTU0VSVChpc1Bvd2VyT2YyKG1f
dGFibGVTaXplKSk7Ci0gICAgCi0gICAgbV90YWJsZVNpemVNYXNrID0gbV90YWJsZVNpemUgLSAx
OwotfQotCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGRvdWJsZUhhc2godW5zaWduZWQga2V5KQot
ewotICAgIGtleSA9IH5rZXkgKyAoa2V5ID4+IDIzKTsKLSAgICBrZXkgXj0gKGtleSA8PCAxMik7
Ci0gICAga2V5IF49IChrZXkgPj4gNyk7Ci0gICAga2V5IF49IChrZXkgPDwgMik7Ci0gICAga2V5
IF49IChrZXkgPj4gMjApOwotICAgIHJldHVybiBrZXk7Ci19Ci0gICAgCiBib29sIFNoYXJlZFN0
cmluZ0hhc2hUYWJsZTo6YWRkKFNoYXJlZFN0cmluZ0hhc2ggc2hhcmVkU3RyaW5nSGFzaCkKIHsK
ICAgICBhdXRvKiBzbG90ID0gZmluZFNsb3Qoc2hhcmVkU3RyaW5nSGFzaCk7CkBAIC05Niw1MCAr
NjEsMTMgQEAgYm9vbCBTaGFyZWRTdHJpbmdIYXNoVGFibGU6OnJlbW92ZShTaGFyZWRTdHJpbmdI
YXNoIHNoYXJlZFN0cmluZ0hhc2gpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgU2hhcmVk
U3RyaW5nSGFzaFRhYmxlOjpjb250YWlucyhTaGFyZWRTdHJpbmdIYXNoIHNoYXJlZFN0cmluZ0hh
c2gpIGNvbnN0Ci17Ci0gICAgYXV0byogc2xvdCA9IGZpbmRTbG90KHNoYXJlZFN0cmluZ0hhc2gp
OwotICAgIHJldHVybiBzbG90ICYmICpzbG90OwotfQotCi1TaGFyZWRTdHJpbmdIYXNoKiBTaGFy
ZWRTdHJpbmdIYXNoVGFibGU6OmZpbmRTbG90KFNoYXJlZFN0cmluZ0hhc2ggc2hhcmVkU3RyaW5n
SGFzaCkgY29uc3QKLXsKLSAgICBpZiAoIW1fc2hhcmVkTWVtb3J5KQotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLQotICAgIGludCBrID0gMDsKLSAgICBTaGFyZWRTdHJpbmdIYXNoKiB0YWJsZSA9
IG1fdGFibGU7Ci0gICAgaW50IHNpemVNYXNrID0gbV90YWJsZVNpemVNYXNrOwotICAgIHVuc2ln
bmVkIGggPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2hhcmVkU3RyaW5nSGFzaCk7Ci0gICAgaW50
IGkgPSBoICYgc2l6ZU1hc2s7Ci0KLSAgICBTaGFyZWRTdHJpbmdIYXNoKiBlbnRyeTsKLSAgICB3
aGlsZSAoMSkgewotICAgICAgICBlbnRyeSA9IHRhYmxlICsgaTsKLQotICAgICAgICAvLyBDaGVj
ayBpZiB3ZSd2ZSByZWFjaGVkIHRoZSBlbmQgb2YgdGhlIHRhYmxlLgotICAgICAgICBpZiAoISpl
bnRyeSkKLSAgICAgICAgICAgIHJldHVybiBlbnRyeTsKLQotICAgICAgICBpZiAoKmVudHJ5ID09
IHNoYXJlZFN0cmluZ0hhc2gpCi0gICAgICAgICAgICByZXR1cm4gZW50cnk7Ci0KLSAgICAgICAg
aWYgKCFrKQotICAgICAgICAgICAgayA9IDEgfCBkb3VibGVIYXNoKGgpOwotICAgICAgICBpID0g
KGkgKyBrKSAmIHNpemVNYXNrOwotICAgIH0KLX0KLQogdm9pZCBTaGFyZWRTdHJpbmdIYXNoVGFi
bGU6OmNsZWFyKCkKIHsKICAgICBpZiAoIW1fc2hhcmVkTWVtb3J5KQogICAgICAgICByZXR1cm47
CiAKICAgICBtZW1zZXQobV9zaGFyZWRNZW1vcnktPmRhdGEoKSwgMCwgbV9zaGFyZWRNZW1vcnkt
PnNpemUoKSk7Ci0gICAgbV90YWJsZSA9IG51bGxwdHI7Ci0gICAgbV90YWJsZVNpemUgPSAwOwot
ICAgIG1fdGFibGVTaXplTWFzayA9IDA7Ci0gICAgbV9zaGFyZWRNZW1vcnkgPSBudWxscHRyOwor
ICAgIHNldFNoYXJlZE1lbW9yeShudWxscHRyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TaGFyZWRTdHJpbmdIYXNoVGFibGUu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlZFN0cmluZ0hhc2hUYWJsZS5oCmluZGV4IGM4
MzU4ZTMyZDg3YjlkZjJlMTNjMzVjOTdlMmNiZTU4ZjBlZjgzNmMuLmNlN2E5Y2YzODlkYmE2NmE3
OTIyN2E0NDhjOTUwMmNhM2MxNWY5MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1NoYXJlZFN0cmluZ0hhc2hUYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJl
ZFN0cmluZ0hhc2hUYWJsZS5oCkBAIC0yNSwzNiArMjUsMTggQEAKIAogI3ByYWdtYSBvbmNlCiAK
LSNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZFN0cmluZ0hhc2guaD4KLSNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CisjaW5jbHVkZSAiU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkuaCIKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFNoYXJlZE1lbW9yeTsKLQotY2xhc3MgU2hhcmVkU3Ry
aW5nSGFzaFRhYmxlIHsKK2NsYXNzIFNoYXJlZFN0cmluZ0hhc2hUYWJsZSA6IHB1YmxpYyBTaGFy
ZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seSB7CiBwdWJsaWM6CiAgICAgU2hhcmVkU3RyaW5nSGFz
aFRhYmxlKCk7CiAgICAgflNoYXJlZFN0cmluZ0hhc2hUYWJsZSgpOwogCi0gICAgdm9pZCBzZXRT
aGFyZWRNZW1vcnkoUmVmPFNoYXJlZE1lbW9yeT4mJik7Ci0KLSAgICAvLyBDYW4gb25seSBiZSBj
YWxsZWQgaWYgdGhlIHVuZGVybHlpbmcgc2hhcmVkIG1lbW9yeSBpcyBpbiByZWFkIC8gd3JpdGUg
bW9kZS4KICAgICBib29sIGFkZChXZWJDb3JlOjpTaGFyZWRTdHJpbmdIYXNoKTsKICAgICBib29s
IHJlbW92ZShXZWJDb3JlOjpTaGFyZWRTdHJpbmdIYXNoKTsKLQotICAgIGJvb2wgY29udGFpbnMo
V2ViQ29yZTo6U2hhcmVkU3RyaW5nSGFzaCkgY29uc3Q7Ci0KLSAgICBTaGFyZWRNZW1vcnkqIHNo
YXJlZE1lbW9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcmVkTWVtb3J5LmdldCgpOyB9CiAgICAg
dm9pZCBjbGVhcigpOwotCi1wcml2YXRlOgotICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1fc2hh
cmVkTWVtb3J5OwotICAgIFdlYkNvcmU6OlNoYXJlZFN0cmluZ0hhc2gqIGZpbmRTbG90KFdlYkNv
cmU6OlNoYXJlZFN0cmluZ0hhc2gpIGNvbnN0OwotCi0gICAgdW5zaWduZWQgbV90YWJsZVNpemUg
eyAwIH07Ci0gICAgdW5zaWduZWQgbV90YWJsZVNpemVNYXNrIHsgMCB9OwotICAgIFdlYkNvcmU6
OlNoYXJlZFN0cmluZ0hhc2gqIG1fdGFibGUgeyBudWxscHRyIH07CiB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZWU5MmFiMDZiNDliMGRiNmRiY2U3YzJjMTFlNDk3MjE2YjY2ZmViNAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlZFN0cmluZ0hhc2hU
YWJsZVJlYWRPbmx5LmNwcApAQCAtMCwwICsxLDExMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5
LmgiCisKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCisjaWYgIUFTU0VSVF9ESVNBQkxFRAorc3RhdGlj
IGlubGluZSBib29sIGlzUG93ZXJPZjIodW5zaWduZWQgdikKK3sKKyAgICAvLyBUYWtlbiBmcm9t
IGh0dHA6Ly93d3cuY3MudXRrLmVkdS9+dm9zZS9jLXN0dWZmL2JpdGhhY2tzLmh0bWwKKworICAg
IHJldHVybiAhKHYgJiAodiAtIDEpKSAmJiB2OworfQorI2VuZGlmCisKK3N0YXRpYyBpbmxpbmUg
dW5zaWduZWQgZG91YmxlSGFzaCh1bnNpZ25lZCBrZXkpCit7CisgICAga2V5ID0gfmtleSArIChr
ZXkgPj4gMjMpOworICAgIGtleSBePSAoa2V5IDw8IDEyKTsKKyAgICBrZXkgXj0gKGtleSA+PiA3
KTsKKyAgICBrZXkgXj0gKGtleSA8PCAyKTsKKyAgICBrZXkgXj0gKGtleSA+PiAyMCk7CisgICAg
cmV0dXJuIGtleTsKK30KKworU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHk6OlNoYXJlZFN0
cmluZ0hhc2hUYWJsZVJlYWRPbmx5KCkKK3sKK30KKworU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVh
ZE9ubHk6On5TaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seSgpCit7Cit9CisKK3ZvaWQgU2hh
cmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHk6OnNldFNoYXJlZE1lbW9yeShSZWZQdHI8U2hhcmVk
TWVtb3J5PiYmIHNoYXJlZE1lbW9yeSkKK3sKKyAgICBtX3NoYXJlZE1lbW9yeSA9IFdURk1vdmUo
c2hhcmVkTWVtb3J5KTsKKworICAgIGlmIChtX3NoYXJlZE1lbW9yeSkgeworICAgICAgICBBU1NF
UlQoIShtX3NoYXJlZE1lbW9yeS0+c2l6ZSgpICUgc2l6ZW9mKFNoYXJlZFN0cmluZ0hhc2gpKSk7
CisgICAgICAgIG1fdGFibGUgPSBzdGF0aWNfY2FzdDxTaGFyZWRTdHJpbmdIYXNoKj4obV9zaGFy
ZWRNZW1vcnktPmRhdGEoKSk7CisgICAgICAgIG1fdGFibGVTaXplID0gbV9zaGFyZWRNZW1vcnkt
PnNpemUoKSAvIHNpemVvZihTaGFyZWRTdHJpbmdIYXNoKTsKKyAgICAgICAgQVNTRVJUKGlzUG93
ZXJPZjIobV90YWJsZVNpemUpKTsKKyAgICAgICAgbV90YWJsZVNpemVNYXNrID0gbV90YWJsZVNp
emUgLSAxOworICAgIH0gZWxzZSB7CisgICAgICAgIG1fdGFibGUgPSBudWxscHRyOworICAgICAg
ICBtX3RhYmxlU2l6ZSA9IDA7CisgICAgICAgIG1fdGFibGVTaXplTWFzayA9IDA7CisgICAgfQor
fQorCitib29sIFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5Ojpjb250YWlucyhTaGFyZWRT
dHJpbmdIYXNoIHNoYXJlZFN0cmluZ0hhc2gpIGNvbnN0Cit7CisgICAgYXV0byogc2xvdCA9IGZp
bmRTbG90KHNoYXJlZFN0cmluZ0hhc2gpOworICAgIHJldHVybiBzbG90ICYmICpzbG90OworfQor
CitTaGFyZWRTdHJpbmdIYXNoKiBTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seTo6ZmluZFNs
b3QoU2hhcmVkU3RyaW5nSGFzaCBzaGFyZWRTdHJpbmdIYXNoKSBjb25zdAoreworICAgIGlmICgh
bV9zaGFyZWRNZW1vcnkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaW50IGsgPSAw
OworICAgIFNoYXJlZFN0cmluZ0hhc2gqIHRhYmxlID0gbV90YWJsZTsKKyAgICBpbnQgc2l6ZU1h
c2sgPSBtX3RhYmxlU2l6ZU1hc2s7CisgICAgdW5zaWduZWQgaCA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkPihzaGFyZWRTdHJpbmdIYXNoKTsKKyAgICBpbnQgaSA9IGggJiBzaXplTWFzazsKKworICAg
IFNoYXJlZFN0cmluZ0hhc2gqIGVudHJ5OworICAgIHdoaWxlICgxKSB7CisgICAgICAgIGVudHJ5
ID0gdGFibGUgKyBpOworCisgICAgICAgIC8vIENoZWNrIGlmIHdlJ3ZlIHJlYWNoZWQgdGhlIGVu
ZCBvZiB0aGUgdGFibGUuCisgICAgICAgIGlmICghKmVudHJ5KQorICAgICAgICAgICAgcmV0dXJu
IGVudHJ5OworCisgICAgICAgIGlmICgqZW50cnkgPT0gc2hhcmVkU3RyaW5nSGFzaCkKKyAgICAg
ICAgICAgIHJldHVybiBlbnRyeTsKKworICAgICAgICBpZiAoIWspCisgICAgICAgICAgICBrID0g
MSB8IGRvdWJsZUhhc2goaCk7CisgICAgICAgIGkgPSAoaSArIGspICYgc2l6ZU1hc2s7CisgICAg
fQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1NoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5LmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9TaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmOTZmZjJj
OTMyZmRhMWE3ODJlMzFhMmQwNTk0ZmY2MGFlYmUzMDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9TaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5oCkBAIC0wLDAg
KzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8V2Vi
Q29yZS9TaGFyZWRTdHJpbmdIYXNoLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU2hhcmVkTWVtb3J5OworCitjbGFzcyBTaGFyZWRTdHJp
bmdIYXNoVGFibGVSZWFkT25seSB7CitwdWJsaWM6CisgICAgU2hhcmVkU3RyaW5nSGFzaFRhYmxl
UmVhZE9ubHkoKTsKKyAgICB+U2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkoKTsKKworICAg
IGJvb2wgY29udGFpbnMoV2ViQ29yZTo6U2hhcmVkU3RyaW5nSGFzaCkgY29uc3Q7CisKKyAgICBT
aGFyZWRNZW1vcnkqIHNoYXJlZE1lbW9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcmVkTWVtb3J5
LmdldCgpOyB9CisgICAgdm9pZCBzZXRTaGFyZWRNZW1vcnkoUmVmUHRyPFNoYXJlZE1lbW9yeT4m
Jik7CisKK3Byb3RlY3RlZDoKKyAgICBXZWJDb3JlOjpTaGFyZWRTdHJpbmdIYXNoKiBmaW5kU2xv
dChXZWJDb3JlOjpTaGFyZWRTdHJpbmdIYXNoKSBjb25zdDsKKworICAgIFJlZlB0cjxTaGFyZWRN
ZW1vcnk+IG1fc2hhcmVkTWVtb3J5OworICAgIHVuc2lnbmVkIG1fdGFibGVTaXplIHsgMCB9Owor
ICAgIHVuc2lnbmVkIG1fdGFibGVTaXplTWFzayB7IDAgfTsKKyAgICBXZWJDb3JlOjpTaGFyZWRT
dHJpbmdIYXNoKiBtX3RhYmxlIHsgbnVsbHB0ciB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA4MWRkMDgzNGYzNzc3MThkMjNhZjdkNjlmMDViNTZmYzk3YjIyNzhiLi4xYWUyMGRlNWJi
MDM2NTIzM2VkNTJjN2IxY2Q5ZmI1NDBkNjFiYjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0MDEsNiArMTQwMSw4IEBACiAJCTgz
RUU1NzVDMURCN0Q2MTEwMEM3NEM1MCAvKiBXZWJWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFRTU3NUExREI3
RDYwNjAwQzc0QzUwIC8qIFdlYlZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmggKi87IH07CiAJCTgz
RjFBMDc5MUY5NkU3NzkwMDQ1Qjk0RSAvKiBXZWJTV09yaWdpblRhYmxlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRjFBMDc3MUY5NkU3NzAwMDQ1
Qjk0RSAvKiBXZWJTV09yaWdpblRhYmxlLmNwcCAqLzsgfTsKIAkJODNGMUEwN0ExRjk2RTc3OTAw
NDVCOTRFIC8qIFdlYlNXT3JpZ2luVGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzRjFBMDc4MUY5NkU3NzEwMDQ1Qjk0RSAvKiBXZWJTV09yaWdp
blRhYmxlLmggKi87IH07CisJCTgzRjk2NDREMUZBMEY3NkUwMEM0Nzc1MCAvKiBTaGFyZWRTdHJp
bmdIYXNoVGFibGVSZWFkT25seS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4M0Y5NjQ0QjFGQTBGNzYyMDBDNDc3NTAgLyogU2hhcmVkU3RyaW5nSGFz
aFRhYmxlUmVhZE9ubHkuY3BwICovOyB9OworCQk4M0Y5NjQ0RTFGQTBGNzZFMDBDNDc3NTAgLyog
U2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRjk2NDRDMUZBMEY3NjMwMEM0Nzc1MCAvKiBTaGFyZWRT
dHJpbmdIYXNoVGFibGVSZWFkT25seS5oICovOyB9OwogCQk4NDQ3Nzg1MzE3NkZDQzA4MDBDREM3
QkIgLyogSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0TWVkaWFUeXBlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDQ3Nzg1MTE3NkZDQUMxMDBDREM3
QkIgLyogSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0TWVkaWFUeXBlLmggKi87IH07CiAJCTg2
ODE2MEQwMTg3NjQ1NTcwMDIxRTc5RCAvKiBXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODY4MTYwQ0YxODc2NDUz
NzAwMjFFNzlEIC8qIFdpbmRvd1NlcnZlckNvbm5lY3Rpb24ubW0gKi87IH07CiAJCTg2RTY3QTI1
MTkxMEI5RDEwMDAwNEFCNyAvKiBQcm9jZXNzVGhyb3R0bGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkU2N0EyMTE5MEY0MTE4MDAwMDRBQjcgLyog
UHJvY2Vzc1Rocm90dGxlci5oICovOyB9OwpAQCAtMzcxOSw3ICszNzIxLDcgQEAKIAkJN0NERTcz
QTAxRjlEQTM3QjAwMzkwMzEyIC8qIFdlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnNCYXNlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnNC
YXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDREU3M0ExMUY5REE0MTQwMDM5
MDMxMiAvKiBHZW5lcmF0ZVByZWZlcmVuY2VzLnJiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucnVi
eTsgcGF0aCA9IEdlbmVyYXRlUHJlZmVyZW5jZXMucmI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdDREU3M0EyMUY5REE1OTcwMDM5MDMxMiAvKiBQcmVmZXJlbmNlc1RlbXBsYXRlcyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZvbGRlcjsg
cGF0aCA9IFByZWZlcmVuY2VzVGVtcGxhdGVzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk3Q0RFNzNBMzFGOURBQjY1MDAzOTAzMTIgLyogV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBXZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg7IHBhdGggPSBXZWJQ
cmVmZXJlbmNlc0RlZmluaXRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdD
REU3M0EzMUY5REFCNjUwMDM5MDMxMiAvKiBXZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0NFNEQyMDYxQTQ2Nzc1NzAwQzdGMTUyIC8qIEFQSUxlZ2FjeUNvbnRl
eHRIaXN0b3J5Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUxlZ2FjeUNvbnRleHRIaXN0b3J5
Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRTREMjE1MUE0OTE0ODQw
MEM3RjE1MiAvKiBXZWJQcm9jZXNzUG9vbENvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0NFNEQyMTcxQTQ5MTRBMzAwQzdGMTUyIC8qIFdlYlByb2Nlc3NQb29s
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlByb2Nlc3NQb29s
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM3NzksNiArMzc4MSw4IEBACiAJ
CTgzRUU1NzVBMURCN0Q2MDYwMEM3NEM1MCAvKiBXZWJWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJWYWxpZGF0aW9uTWVzc2FnZUNs
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0YxQTA3NzFGOTZFNzcwMDA0
NUI5NEUgLyogV2ViU1dPcmlnaW5UYWJsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJTV09yaWdpblRhYmxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODNGMUEwNzgxRjk2RTc3MTAwNDVCOTRFIC8qIFdlYlNXT3JpZ2luVGFibGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU1dPcmlnaW5UYWJsZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4M0Y5NjQ0QjFGQTBGNzYyMDBDNDc3NTAgLyogU2hhcmVk
U3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk4M0Y5NjQ0QzFGQTBGNzYzMDBDNDc3NTAgLyogU2hhcmVkU3RyaW5n
SGFzaFRhYmxlUmVhZE9ubHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hh
cmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODQ0Nzc4NTExNzZGQ0FDMTAwQ0RDN0JCIC8qIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3Vs
dE1lZGlhVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1
bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODY4MTYwQ0QxODc2M0Q0QjAwMjFFNzlEIC8qIFdpbmRvd1NlcnZlckNvbm5lY3Rpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2luZG93U2VydmVyQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4NjgxNjBDRjE4NzY0NTM3MDAyMUU3OUQgLyogV2luZG93U2VydmVyQ29u
bmVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdpbmRvd1NlcnZlckNvbm5lY3Rpb24u
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MDcyLDYgKzUwNzYsOCBAQAogCQkJ
CTgzMTNGN0U5MUY3REFFMDMwMEI5NDRFQiAvKiBTaGFyZWRTdHJpbmdIYXNoU3RvcmUuaCAqLywK
IAkJCQk4MzEzRjdFODFGN0RBRTAzMDBCOTQ0RUIgLyogU2hhcmVkU3RyaW5nSGFzaFRhYmxlLmNw
cCAqLywKIAkJCQk4MzEzRjdFNzFGN0RBRTAzMDBCOTQ0RUIgLyogU2hhcmVkU3RyaW5nSGFzaFRh
YmxlLmggKi8sCisJCQkJODNGOTY0NEIxRkEwRjc2MjAwQzQ3NzUwIC8qIFNoYXJlZFN0cmluZ0hh
c2hUYWJsZVJlYWRPbmx5LmNwcCAqLywKKwkJCQk4M0Y5NjQ0QzFGQTBGNzYzMDBDNDc3NTAgLyog
U2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkuaCAqLywKIAkJCQk1MjcyQjI4ODE0MDY5ODVE
MDA5NkE1RDAgLyogU3RhdGlzdGljc0RhdGEuY3BwICovLAogCQkJCTUyNzJCMjg5MTQwNjk4NUQw
MDk2QTVEMCAvKiBTdGF0aXN0aWNzRGF0YS5oICovLAogCQkJCTFBNUU0REEzMTJEM0JEM0QwMDk5
QTJCQiAvKiBUZXh0Q2hlY2tlclN0YXRlLmggKi8sCkBAIC04ODM0LDYgKzg4NDAsNyBAQAogCQkJ
CUNENEI0RDlEMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODMxM0Y3RUMxRjdEQUUwODAwQjk0NEVCIC8qIFNoYXJlZFN0cmlu
Z0hhc2hTdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMxM0Y3RUUxRjdEQUUwODAwQjk0NEVC
IC8qIFNoYXJlZFN0cmluZ0hhc2hUYWJsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJODNGOTY0NEUx
RkEwRjc2RTAwQzQ3NzUwIC8qIFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyREFGMDZENjE4QkQxQTQ3MDA4MUNFQjEgLyogU21hcnRNYWduaWZpY2F0
aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRFNjk0M0UxOEJEMkE2ODAwNUMx
NUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTI3MkIyOEIxNDA2OTg1RDAwOTZBNUQwIC8qIFN0YXRpc3RpY3NEYXRhLmggaW4g
SGVhZGVycyAqLywKQEAgLTEwNDI5LDYgKzEwNDM2LDcgQEAKIAkJCQlDRDRCNEQ5QzFFNzY1RTAw
MDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJODMxM0Y3RUIxRjdEQUUwODAwQjk0NEVCIC8qIFNoYXJlZFN0cmluZ0hhc2hTdG9yZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk4MzEzRjdFRDFGN0RBRTA4MDBCOTQ0RUIgLyogU2hhcmVkU3Ry
aW5nSGFzaFRhYmxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTgzRjk2NDREMUZBMEY3NkUwMEM0
Nzc1MCAvKiBTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyREFGMDZENzE4QkQxQTQ3MDA4MUNFQjEgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJv
bGxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJERTY5NDNEMThCRDJBNjgwMDVDMTVFNSAvKiBT
bWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTUyNzJCMjhBMTQwNjk4NUQwMDk2QTVEMCAvKiBTdGF0aXN0aWNzRGF0YS5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXT3JpZ2luVGFibGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXT3JpZ2luVGFibGUuaAppbmRleCA4YjQxOGUyMDY0NGJhNjgzMDg2OGNiMjQxODdkOTky
MzgyMTc0OTRiLi5lZjk0YTcxYThjZjEwZmFlZjkzMmQ1ZTJhZGVkZDBmNzFjYjk1YTE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV09yaWdpblRhYmxl
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJs
ZS5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCiAjaW5j
bHVkZSAiU2hhcmVkTWVtb3J5LmgiCi0jaW5jbHVkZSAiU2hhcmVkU3RyaW5nSGFzaFRhYmxlLmgi
CisjaW5jbHVkZSAiU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgU2VjdXJpdHlPcmlnaW47CkBAIC00NCw3ICs0NCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFNoYXJlZE1lbW9yeShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYp
OwogCiBwcml2YXRlOgotICAgIFNoYXJlZFN0cmluZ0hhc2hUYWJsZSBtX3NlcnZpY2VXb3JrZXJP
cmlnaW5UYWJsZTsKKyAgICBTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seSBtX3NlcnZpY2VX
b3JrZXJPcmlnaW5UYWJsZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtU
YWJsZUNvbnRyb2xsZXIuY3BwCmluZGV4IGVmNzEyODAyZjFiYWQzYTA1MGMwZWIyOTE2YjAwZmQw
OGU1M2MxYWIuLmMyYzAwMTAxYTA5MGQ3Zjk5MzEyZWJhOGE0Y2FlZDM5NTdjNzRmZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1Zpc2l0ZWRMaW5rVGFibGVD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9WaXNp
dGVkTGlua1RhYmxlQ29udHJvbGxlci5jcHAKQEAgLTExMiw3ICsxMTIsNyBAQCB2b2lkIFZpc2l0
ZWRMaW5rVGFibGVDb250cm9sbGVyOjphbGxWaXNpdGVkTGlua1N0YXRlQ2hhbmdlZCgpCiAKIHZv
aWQgVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXI6OnJlbW92ZUFsbFZpc2l0ZWRMaW5rcygpCiB7
Ci0gICAgbV92aXNpdGVkTGlua1RhYmxlLmNsZWFyKCk7CisgICAgbV92aXNpdGVkTGlua1RhYmxl
LnNldFNoYXJlZE1lbW9yeShudWxscHRyKTsKIAogICAgIGludmFsaWRhdGVTdHlsZXNGb3JBbGxM
aW5rcygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
VmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1Zpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyLmgKaW5kZXggNzQ3ZTNkOGJhNzM1ZWJj
MDJmYTdhNWVhMWYzNWM4NTc0ZGEwYjRhMy4uMDkyM2U0NjA5NTliMGYzNGE5NDJlZDkyNGYwNDRj
NTNmODRjMzNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
VmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5oCkBAIC0yNyw3ICsyNyw3IEBA
CiAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJTaGFyZWRNZW1vcnku
aCIKLSNpbmNsdWRlICJTaGFyZWRTdHJpbmdIYXNoVGFibGUuaCIKKyNpbmNsdWRlICJTaGFyZWRT
dHJpbmdIYXNoVGFibGVSZWFkT25seS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvVmlzaXRlZExpbmtT
dG9yZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTUzLDcgKzUzLDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHJlbW92ZUFsbFZpc2l0ZWRMaW5rcygpOwogCiAgICAgdWludDY0X3QgbV9pZGVu
dGlmaWVyOwotICAgIFNoYXJlZFN0cmluZ0hhc2hUYWJsZSBtX3Zpc2l0ZWRMaW5rVGFibGU7Cisg
ICAgU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkgbV92aXNpdGVkTGlua1RhYmxlOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324839</attachid>
            <date>2017-10-25 10:04:36 -0700</date>
            <delta_ts>2017-10-25 10:19:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178764-20171025100435.patch</filename>
            <type>text/plain</type>
            <size>22092</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzOTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVjYzk0NWM0OTQ0ODg4Nzc5
MzA3ZWY3NWQ3MmJiYjcwOGE0NDM4MDUuLjk1MjZiMzY0NWE2YTlmMjg3ZjY2MDg3YTlhZTYzZDlh
NGVhMDFkYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTctMTAtMjUgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFNoYXJlZFN0cmluZ0hhc2hU
YWJsZSBsZXNzIGVycm9yIHByb25lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzg3NjQKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0
LgorCisgICAgICAgIFNoYXJlZFN0cmluZ0hhc2hUYWJsZSBpcyBiYWNrZWQgYnkgU2hhcmVkTWVt
b3J5IGFuZCB0aGlzIFNoYXJlZE1lbW9yeQorICAgICAgICBtYXkgYmUgcmVhZG9ubHkgKGFuZCBp
cyB3aGVuIHVzZWQgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcykuIEFzIGEgcmVzdWx0LAorICAg
ICAgICBzb21lIG9mIHRoZSBvcGVyYXRpb25zIG9uIFNoYXJlZFN0cmluZ0hhc2hUYWJsZSB0aGF0
IHdyaXRlIHRvIHRoaXMgc2hhcmVkCisgICAgICAgIG1lbW9yeSB3aWxsIGNyYXNoIGlmIGNhbGxl
ZCBhbmQgdGhlIFNoYXJlZE1lbW9yeSBpcyByZWFkb25seS4KKworICAgICAgICBUbyBtYWtlIHRo
aXMgbGVzcyBlcnJvciBwcm9uZSwgaW50cm9kdWNlIGEgbmV3IFNoYXJlZFN0cmluZ0hhc2hUYWJs
ZVJlYWRPbmx5CisgICAgICAgIGJhc2UgY2xhc3MgZm9yIFNoYXJlZFN0cmluZ0hhc2hUYWJsZSBh
bmQgb25seSBrZWVwIHRoZSBvcGVyYXRpb25zIHRoYXQKKyAgICAgICAgd3JpdGUgdG8gdGhlIHNo
YXJlZCBtZW1vcnkgb24gU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkgKG5hbWVseSwgYWRk
KCkgLworICAgICAgICByZW1vdmUoKSAvIGNsZWFyKCkuIFVwZGF0ZSBWaXNpdGVkTGlua1RhYmxl
Q29udHJvbGxlciBhbmQgV2ViU1dPcmlnaW5UYWJsZQorICAgICAgICB0byB1c2UgU2hhcmVkU3Ry
aW5nSGFzaFRhYmxlUmVhZE9ubHkgc2luY2UgdGhleSBhcmUgaW5zdGFudGlhdGVkIGluIHRoZQor
ICAgICAgICBXZWJDb250ZW50IHByb2Nlc3MgYW5kIHVzZSByZWFkb25seSBzaGFyZWQgbWVtb3J5
LgorCisgICAgICAgICogU2hhcmVkL1NoYXJlZFN0cmluZ0hhc2hUYWJsZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5OjpTaGFyZWRTdHJpbmdIYXNo
VGFibGVSZWFkT25seSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZFN0cmluZ0hhc2hUYWJsZVJl
YWRPbmx5Ojp+U2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkpOgorICAgICAgICAoV2ViS2l0
OjpTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seTo6c2V0U2hhcmVkTWVtb3J5KToKKyAgICAg
ICAgKFdlYktpdDo6ZG91YmxlSGFzaCk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZFN0cmluZ0hh
c2hUYWJsZVJlYWRPbmx5Ojpjb250YWlucyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJl
ZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5OjpmaW5kU2xvdCBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlNoYXJlZFN0cmluZ0hhc2hUYWJsZTo6U2hhcmVkU3RyaW5nSGFzaFRhYmxlKToKKyAgICAg
ICAgKFdlYktpdDo6U2hhcmVkU3RyaW5nSGFzaFRhYmxlOjp+U2hhcmVkU3RyaW5nSGFzaFRhYmxl
KToKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkU3RyaW5nSGFzaFRhYmxlOjphZGQpOgorICAgICAg
ICAoV2ViS2l0OjpTaGFyZWRTdHJpbmdIYXNoVGFibGU6OnJlbW92ZSk6CisgICAgICAgIChXZWJL
aXQ6OlNoYXJlZFN0cmluZ0hhc2hUYWJsZTo6Y2xlYXIpOgorICAgICAgICAqIFNoYXJlZC9TaGFy
ZWRTdHJpbmdIYXNoVGFibGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dP
cmlnaW5UYWJsZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1Rh
YmxlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlZpc2l0ZWRMaW5rVGFibGVDb250
cm9sbGVyOjpyZW1vdmVBbGxWaXNpdGVkTGlua3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5oOgorCiAyMDE3LTEwLTI1ICBBZHJpYW4g
UGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV0gUmVt
b3ZlIEdMaWIgQVBJIGZ1bmN0aW9ucyB3aGljaCB1c2UgQ2Fpcm8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDcxNThkZTMwMzZmNTljNmE1NjY1MGE5MjNjZjFiYWQxMWNhZWY1ZTguLjk4NDExODNjNjIx
MDNhNjU1OGE0NDJhZWZkN2E3NWRhYzkyZDI3MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTgx
LDYgKzE4MSw3IEBAIHNldChXZWJLaXRfU09VUkNFUwogICAgIFNoYXJlZC9TaGFyZWFibGVCaXRt
YXAuY3BwCiAgICAgU2hhcmVkL1NoYXJlYWJsZVJlc291cmNlLmNwcAogICAgIFNoYXJlZC9TaGFy
ZWRTdHJpbmdIYXNoU3RvcmUuY3BwCisgICAgU2hhcmVkL1NoYXJlZFN0cmluZ0hhc2hUYWJsZVJl
YWRPbmx5LmNwcAogICAgIFNoYXJlZC9TaGFyZWRTdHJpbmdIYXNoVGFibGUuY3BwCiAgICAgU2hh
cmVkL1N0YXRpc3RpY3NEYXRhLmNwcAogICAgIFNoYXJlZC9VcGRhdGVJbmZvLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2hhcmVkU3RyaW5nSGFzaFRhYmxlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlZFN0cmluZ0hhc2hUYWJsZS5jcHAKaW5kZXggZThjYTc1
NDA3Yzk1M2UwMDk1MzcwZmIxZmE2MGRmMWRlMGI1ZmU1Zi4uNDUzMDFkYzdlZTJhMDg1MjdjOGVi
OWI4NzU0NmFkZGJkZDk4N2IwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2hh
cmVkU3RyaW5nSGFzaFRhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TaGFyZWRT
dHJpbmdIYXNoVGFibGUuY3BwCkBAIC0yOCwxMCArMjgsMTAgQEAKIAogI2luY2x1ZGUgIlNoYXJl
ZE1lbW9yeS5oIgogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQogbmFtZXNwYWNlIFdlYktp
dCB7CiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCiBTaGFyZWRTdHJpbmdIYXNoVGFibGU6
OlNoYXJlZFN0cmluZ0hhc2hUYWJsZSgpCiB7CiB9CkBAIC00MCwzOSArNDAsNiBAQCBTaGFyZWRT
dHJpbmdIYXNoVGFibGU6On5TaGFyZWRTdHJpbmdIYXNoVGFibGUoKQogewogfQogCi0jaWYgIUFT
U0VSVF9ESVNBQkxFRAotc3RhdGljIGlubGluZSBib29sIGlzUG93ZXJPZjIodW5zaWduZWQgdikK
LXsKLSAgICAvLyBUYWtlbiBmcm9tIGh0dHA6Ly93d3cuY3MudXRrLmVkdS9+dm9zZS9jLXN0dWZm
L2JpdGhhY2tzLmh0bWwKLSAgICAKLSAgICByZXR1cm4gISh2ICYgKHYgLSAxKSkgJiYgdjsKLX0K
LSNlbmRpZgotCi12b2lkIFNoYXJlZFN0cmluZ0hhc2hUYWJsZTo6c2V0U2hhcmVkTWVtb3J5KFJl
ZjxTaGFyZWRNZW1vcnk+JiYgc2hhcmVkTWVtb3J5KQotewotICAgIG1fc2hhcmVkTWVtb3J5ID0g
V1RGTW92ZShzaGFyZWRNZW1vcnkpOwotICAgIAotICAgIEFTU0VSVChtX3NoYXJlZE1lbW9yeSk7
Ci0gICAgQVNTRVJUKCEobV9zaGFyZWRNZW1vcnktPnNpemUoKSAlIHNpemVvZihTaGFyZWRTdHJp
bmdIYXNoKSkpOwotCi0gICAgbV90YWJsZSA9IHN0YXRpY19jYXN0PFNoYXJlZFN0cmluZ0hhc2gq
PihtX3NoYXJlZE1lbW9yeS0+ZGF0YSgpKTsKLSAgICBtX3RhYmxlU2l6ZSA9IG1fc2hhcmVkTWVt
b3J5LT5zaXplKCkgLyBzaXplb2YoU2hhcmVkU3RyaW5nSGFzaCk7Ci0gICAgQVNTRVJUKGlzUG93
ZXJPZjIobV90YWJsZVNpemUpKTsKLSAgICAKLSAgICBtX3RhYmxlU2l6ZU1hc2sgPSBtX3RhYmxl
U2l6ZSAtIDE7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgZG91YmxlSGFzaCh1bnNpZ25l
ZCBrZXkpCi17Ci0gICAga2V5ID0gfmtleSArIChrZXkgPj4gMjMpOwotICAgIGtleSBePSAoa2V5
IDw8IDEyKTsKLSAgICBrZXkgXj0gKGtleSA+PiA3KTsKLSAgICBrZXkgXj0gKGtleSA8PCAyKTsK
LSAgICBrZXkgXj0gKGtleSA+PiAyMCk7Ci0gICAgcmV0dXJuIGtleTsKLX0KLSAgICAKIGJvb2wg
U2hhcmVkU3RyaW5nSGFzaFRhYmxlOjphZGQoU2hhcmVkU3RyaW5nSGFzaCBzaGFyZWRTdHJpbmdI
YXNoKQogewogICAgIGF1dG8qIHNsb3QgPSBmaW5kU2xvdChzaGFyZWRTdHJpbmdIYXNoKTsKQEAg
LTk2LDUwICs2MywxMyBAQCBib29sIFNoYXJlZFN0cmluZ0hhc2hUYWJsZTo6cmVtb3ZlKFNoYXJl
ZFN0cmluZ0hhc2ggc2hhcmVkU3RyaW5nSGFzaCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBTaGFyZWRTdHJpbmdIYXNoVGFibGU6OmNvbnRhaW5zKFNoYXJlZFN0cmluZ0hhc2ggc2hhcmVk
U3RyaW5nSGFzaCkgY29uc3QKLXsKLSAgICBhdXRvKiBzbG90ID0gZmluZFNsb3Qoc2hhcmVkU3Ry
aW5nSGFzaCk7Ci0gICAgcmV0dXJuIHNsb3QgJiYgKnNsb3Q7Ci19Ci0KLVNoYXJlZFN0cmluZ0hh
c2gqIFNoYXJlZFN0cmluZ0hhc2hUYWJsZTo6ZmluZFNsb3QoU2hhcmVkU3RyaW5nSGFzaCBzaGFy
ZWRTdHJpbmdIYXNoKSBjb25zdAotewotICAgIGlmICghbV9zaGFyZWRNZW1vcnkpCi0gICAgICAg
IHJldHVybiBudWxscHRyOwotCi0gICAgaW50IGsgPSAwOwotICAgIFNoYXJlZFN0cmluZ0hhc2gq
IHRhYmxlID0gbV90YWJsZTsKLSAgICBpbnQgc2l6ZU1hc2sgPSBtX3RhYmxlU2l6ZU1hc2s7Ci0g
ICAgdW5zaWduZWQgaCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzaGFyZWRTdHJpbmdIYXNoKTsK
LSAgICBpbnQgaSA9IGggJiBzaXplTWFzazsKLQotICAgIFNoYXJlZFN0cmluZ0hhc2gqIGVudHJ5
OwotICAgIHdoaWxlICgxKSB7Ci0gICAgICAgIGVudHJ5ID0gdGFibGUgKyBpOwotCi0gICAgICAg
IC8vIENoZWNrIGlmIHdlJ3ZlIHJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgdGFibGUuCi0gICAgICAg
IGlmICghKmVudHJ5KQotICAgICAgICAgICAgcmV0dXJuIGVudHJ5OwotCi0gICAgICAgIGlmICgq
ZW50cnkgPT0gc2hhcmVkU3RyaW5nSGFzaCkKLSAgICAgICAgICAgIHJldHVybiBlbnRyeTsKLQot
ICAgICAgICBpZiAoIWspCi0gICAgICAgICAgICBrID0gMSB8IGRvdWJsZUhhc2goaCk7Ci0gICAg
ICAgIGkgPSAoaSArIGspICYgc2l6ZU1hc2s7Ci0gICAgfQotfQotCiB2b2lkIFNoYXJlZFN0cmlu
Z0hhc2hUYWJsZTo6Y2xlYXIoKQogewogICAgIGlmICghbV9zaGFyZWRNZW1vcnkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIG1lbXNldChtX3NoYXJlZE1lbW9yeS0+ZGF0YSgpLCAwLCBtX3NoYXJl
ZE1lbW9yeS0+c2l6ZSgpKTsKLSAgICBtX3RhYmxlID0gbnVsbHB0cjsKLSAgICBtX3RhYmxlU2l6
ZSA9IDA7Ci0gICAgbV90YWJsZVNpemVNYXNrID0gMDsKLSAgICBtX3NoYXJlZE1lbW9yeSA9IG51
bGxwdHI7CisgICAgc2V0U2hhcmVkTWVtb3J5KG51bGxwdHIpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlZFN0cmluZ0hh
c2hUYWJsZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2hhcmVkU3RyaW5nSGFzaFRhYmxlLmgK
aW5kZXggYzgzNThlMzJkODdiOWRmMmUxM2MzNWM5N2UyY2JlNThmMGVmODM2Yy4uY2U3YTljZjM4
OWRiYTY2YTc5MjI3YTQ0OGM5NTAyY2EzYzE1ZjkzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvU2hhcmVkU3RyaW5nSGFzaFRhYmxlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvU2hhcmVkU3RyaW5nSGFzaFRhYmxlLmgKQEAgLTI1LDM2ICsyNSwxOCBAQAogCiAjcHJhZ21h
IG9uY2UKIAotI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkU3RyaW5nSGFzaC5oPgotI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlICJTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5o
IgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgU2hhcmVkTWVtb3J5OwotCi1jbGFzcyBT
aGFyZWRTdHJpbmdIYXNoVGFibGUgeworY2xhc3MgU2hhcmVkU3RyaW5nSGFzaFRhYmxlIDogcHVi
bGljIFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5IHsKIHB1YmxpYzoKICAgICBTaGFyZWRT
dHJpbmdIYXNoVGFibGUoKTsKICAgICB+U2hhcmVkU3RyaW5nSGFzaFRhYmxlKCk7CiAKLSAgICB2
b2lkIHNldFNoYXJlZE1lbW9yeShSZWY8U2hhcmVkTWVtb3J5PiYmKTsKLQotICAgIC8vIENhbiBv
bmx5IGJlIGNhbGxlZCBpZiB0aGUgdW5kZXJseWluZyBzaGFyZWQgbWVtb3J5IGlzIGluIHJlYWQg
LyB3cml0ZSBtb2RlLgogICAgIGJvb2wgYWRkKFdlYkNvcmU6OlNoYXJlZFN0cmluZ0hhc2gpOwog
ICAgIGJvb2wgcmVtb3ZlKFdlYkNvcmU6OlNoYXJlZFN0cmluZ0hhc2gpOwotCi0gICAgYm9vbCBj
b250YWlucyhXZWJDb3JlOjpTaGFyZWRTdHJpbmdIYXNoKSBjb25zdDsKLQotICAgIFNoYXJlZE1l
bW9yeSogc2hhcmVkTWVtb3J5KCkgY29uc3QgeyByZXR1cm4gbV9zaGFyZWRNZW1vcnkuZ2V0KCk7
IH0KICAgICB2b2lkIGNsZWFyKCk7Ci0KLXByaXZhdGU6Ci0gICAgUmVmUHRyPFNoYXJlZE1lbW9y
eT4gbV9zaGFyZWRNZW1vcnk7Ci0gICAgV2ViQ29yZTo6U2hhcmVkU3RyaW5nSGFzaCogZmluZFNs
b3QoV2ViQ29yZTo6U2hhcmVkU3RyaW5nSGFzaCkgY29uc3Q7Ci0KLSAgICB1bnNpZ25lZCBtX3Rh
YmxlU2l6ZSB7IDAgfTsKLSAgICB1bnNpZ25lZCBtX3RhYmxlU2l6ZU1hc2sgeyAwIH07Ci0gICAg
V2ViQ29yZTo6U2hhcmVkU3RyaW5nSGFzaCogbV90YWJsZSB7IG51bGxwdHIgfTsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlZFN0cmluZ0hhc2hUYWJsZVJl
YWRPbmx5LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlZFN0cmluZ0hhc2hUYWJsZVJl
YWRPbmx5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZTkyYWIwNmI0OWIwZGI2ZGJjZTdjMmMxMWU0OTcyMTZi
NjZmZWI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2hhcmVkU3Ry
aW5nSGFzaFRhYmxlUmVhZE9ubHkuY3BwCkBAIC0wLDAgKzEsMTEzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2hhcmVkU3RyaW5nSGFzaFRhYmxl
UmVhZE9ubHkuaCIKKworI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKKyNpZiAhQVNTRVJUX0RJU0FCTEVE
CitzdGF0aWMgaW5saW5lIGJvb2wgaXNQb3dlck9mMih1bnNpZ25lZCB2KQoreworICAgIC8vIFRh
a2VuIGZyb20gaHR0cDovL3d3dy5jcy51dGsuZWR1L352b3NlL2Mtc3R1ZmYvYml0aGFja3MuaHRt
bAorCisgICAgcmV0dXJuICEodiAmICh2IC0gMSkpICYmIHY7Cit9CisjZW5kaWYKKworc3RhdGlj
IGlubGluZSB1bnNpZ25lZCBkb3VibGVIYXNoKHVuc2lnbmVkIGtleSkKK3sKKyAgICBrZXkgPSB+
a2V5ICsgKGtleSA+PiAyMyk7CisgICAga2V5IF49IChrZXkgPDwgMTIpOworICAgIGtleSBePSAo
a2V5ID4+IDcpOworICAgIGtleSBePSAoa2V5IDw8IDIpOworICAgIGtleSBePSAoa2V5ID4+IDIw
KTsKKyAgICByZXR1cm4ga2V5OworfQorCitTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seTo6
U2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkoKQoreworfQorCitTaGFyZWRTdHJpbmdIYXNo
VGFibGVSZWFkT25seTo6flNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5KCkKK3sKK30KKwor
dm9pZCBTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seTo6c2V0U2hhcmVkTWVtb3J5KFJlZlB0
cjxTaGFyZWRNZW1vcnk+JiYgc2hhcmVkTWVtb3J5KQoreworICAgIG1fc2hhcmVkTWVtb3J5ID0g
V1RGTW92ZShzaGFyZWRNZW1vcnkpOworCisgICAgaWYgKG1fc2hhcmVkTWVtb3J5KSB7CisgICAg
ICAgIEFTU0VSVCghKG1fc2hhcmVkTWVtb3J5LT5zaXplKCkgJSBzaXplb2YoU2hhcmVkU3RyaW5n
SGFzaCkpKTsKKyAgICAgICAgbV90YWJsZSA9IHN0YXRpY19jYXN0PFNoYXJlZFN0cmluZ0hhc2gq
PihtX3NoYXJlZE1lbW9yeS0+ZGF0YSgpKTsKKyAgICAgICAgbV90YWJsZVNpemUgPSBtX3NoYXJl
ZE1lbW9yeS0+c2l6ZSgpIC8gc2l6ZW9mKFNoYXJlZFN0cmluZ0hhc2gpOworICAgICAgICBBU1NF
UlQoaXNQb3dlck9mMihtX3RhYmxlU2l6ZSkpOworICAgICAgICBtX3RhYmxlU2l6ZU1hc2sgPSBt
X3RhYmxlU2l6ZSAtIDE7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbV90YWJsZSA9IG51bGxwdHI7
CisgICAgICAgIG1fdGFibGVTaXplID0gMDsKKyAgICAgICAgbV90YWJsZVNpemVNYXNrID0gMDsK
KyAgICB9Cit9CisKK2Jvb2wgU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHk6OmNvbnRhaW5z
KFNoYXJlZFN0cmluZ0hhc2ggc2hhcmVkU3RyaW5nSGFzaCkgY29uc3QKK3sKKyAgICBhdXRvKiBz
bG90ID0gZmluZFNsb3Qoc2hhcmVkU3RyaW5nSGFzaCk7CisgICAgcmV0dXJuIHNsb3QgJiYgKnNs
b3Q7Cit9CisKK1NoYXJlZFN0cmluZ0hhc2gqIFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5
OjpmaW5kU2xvdChTaGFyZWRTdHJpbmdIYXNoIHNoYXJlZFN0cmluZ0hhc2gpIGNvbnN0Cit7Cisg
ICAgaWYgKCFtX3NoYXJlZE1lbW9yeSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBp
bnQgayA9IDA7CisgICAgU2hhcmVkU3RyaW5nSGFzaCogdGFibGUgPSBtX3RhYmxlOworICAgIGlu
dCBzaXplTWFzayA9IG1fdGFibGVTaXplTWFzazsKKyAgICB1bnNpZ25lZCBoID0gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KHNoYXJlZFN0cmluZ0hhc2gpOworICAgIGludCBpID0gaCAmIHNpemVNYXNr
OworCisgICAgU2hhcmVkU3RyaW5nSGFzaCogZW50cnk7CisgICAgd2hpbGUgKDEpIHsKKyAgICAg
ICAgZW50cnkgPSB0YWJsZSArIGk7CisKKyAgICAgICAgLy8gQ2hlY2sgaWYgd2UndmUgcmVhY2hl
ZCB0aGUgZW5kIG9mIHRoZSB0YWJsZS4KKyAgICAgICAgaWYgKCEqZW50cnkpCisgICAgICAgICAg
ICByZXR1cm4gZW50cnk7CisKKyAgICAgICAgaWYgKCplbnRyeSA9PSBzaGFyZWRTdHJpbmdIYXNo
KQorICAgICAgICAgICAgcmV0dXJuIGVudHJ5OworCisgICAgICAgIGlmICghaykKKyAgICAgICAg
ICAgIGsgPSAxIHwgZG91YmxlSGFzaChoKTsKKyAgICAgICAgaSA9IChpICsgaykgJiBzaXplTWFz
azsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1NoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
N2Y5NmZmMmM5MzJmZGExYTc4MmUzMWEyZDA1OTRmZjYwYWViZTMwMgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5LmgK
QEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlIDxXZWJDb3JlL1NoYXJlZFN0cmluZ0hhc2guaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTaGFyZWRNZW1vcnk7CisKK2NsYXNzIFNo
YXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5IHsKK3B1YmxpYzoKKyAgICBTaGFyZWRTdHJpbmdI
YXNoVGFibGVSZWFkT25seSgpOworICAgIH5TaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seSgp
OworCisgICAgYm9vbCBjb250YWlucyhXZWJDb3JlOjpTaGFyZWRTdHJpbmdIYXNoKSBjb25zdDsK
KworICAgIFNoYXJlZE1lbW9yeSogc2hhcmVkTWVtb3J5KCkgY29uc3QgeyByZXR1cm4gbV9zaGFy
ZWRNZW1vcnkuZ2V0KCk7IH0KKyAgICB2b2lkIHNldFNoYXJlZE1lbW9yeShSZWZQdHI8U2hhcmVk
TWVtb3J5PiYmKTsKKworcHJvdGVjdGVkOgorICAgIFdlYkNvcmU6OlNoYXJlZFN0cmluZ0hhc2gq
IGZpbmRTbG90KFdlYkNvcmU6OlNoYXJlZFN0cmluZ0hhc2gpIGNvbnN0OworCisgICAgUmVmUHRy
PFNoYXJlZE1lbW9yeT4gbV9zaGFyZWRNZW1vcnk7CisgICAgdW5zaWduZWQgbV90YWJsZVNpemUg
eyAwIH07CisgICAgdW5zaWduZWQgbV90YWJsZVNpemVNYXNrIHsgMCB9OworICAgIFdlYkNvcmU6
OlNoYXJlZFN0cmluZ0hhc2gqIG1fdGFibGUgeyBudWxscHRyIH07Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDgxZGQwODM0ZjM3NzcxOGQyM2FmN2Q2OWYwNWI1NmZjOTdiMjI3OGIuLjFh
ZTIwZGU1YmIwMzY1MjMzZWQ1MmM3YjFjZDlmYjU0MGQ2MWJiODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQwMSw2ICsxNDAxLDgg
QEAKIAkJODNFRTU3NUMxREI3RDYxMTAwQzc0QzUwIC8qIFdlYlZhbGlkYXRpb25NZXNzYWdlQ2xp
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0VF
NTc1QTFEQjdENjA2MDBDNzRDNTAgLyogV2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAqLzsg
fTsKIAkJODNGMUEwNzkxRjk2RTc3OTAwNDVCOTRFIC8qIFdlYlNXT3JpZ2luVGFibGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGMUEwNzcxRjk2
RTc3MDAwNDVCOTRFIC8qIFdlYlNXT3JpZ2luVGFibGUuY3BwICovOyB9OwogCQk4M0YxQTA3QTFG
OTZFNzc5MDA0NUI5NEUgLyogV2ViU1dPcmlnaW5UYWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGMUEwNzgxRjk2RTc3MTAwNDVCOTRFIC8qIFdl
YlNXT3JpZ2luVGFibGUuaCAqLzsgfTsKKwkJODNGOTY0NEQxRkEwRjc2RTAwQzQ3NzUwIC8qIFNo
YXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRjk2NDRCMUZBMEY3NjIwMEM0Nzc1MCAvKiBTaGFyZWRT
dHJpbmdIYXNoVGFibGVSZWFkT25seS5jcHAgKi87IH07CisJCTgzRjk2NDRFMUZBMEY3NkUwMEM0
Nzc1MCAvKiBTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGOTY0NEMxRkEwRjc2MzAwQzQ3NzUwIC8q
IFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5LmggKi87IH07CiAJCTg0NDc3ODUzMTc2RkND
MDgwMENEQzdCQiAvKiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NDc3ODUxMTc2RkNB
QzEwMENEQzdCQiAvKiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaCAqLzsg
fTsKIAkJODY4MTYwRDAxODc2NDU1NzAwMjFFNzlEIC8qIFdpbmRvd1NlcnZlckNvbm5lY3Rpb24u
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjgxNjBD
RjE4NzY0NTM3MDAyMUU3OUQgLyogV2luZG93U2VydmVyQ29ubmVjdGlvbi5tbSAqLzsgfTsKIAkJ
ODZFNjdBMjUxOTEwQjlEMTAwMDA0QUI3IC8qIFByb2Nlc3NUaHJvdHRsZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RTY3QTIxMTkwRjQxMTgwMDAw
NEFCNyAvKiBQcm9jZXNzVGhyb3R0bGVyLmggKi87IH07CkBAIC0zNzE5LDcgKzM3MjEsNyBAQAog
CQk3Q0RFNzNBMDFGOURBMzdCMDAzOTAzMTIgLyogV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9uc0Jh
c2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUHJlZmVyZW5jZXNEZWZp
bml0aW9uc0Jhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NERTczQTExRjlE
QTQxNDAwMzkwMzEyIC8qIEdlbmVyYXRlUHJlZmVyZW5jZXMucmIgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNj
cmlwdC5ydWJ5OyBwYXRoID0gR2VuZXJhdGVQcmVmZXJlbmNlcy5yYjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0NERTczQTIxRjlEQTU5NzAwMzkwMzEyIC8qIFByZWZlcmVuY2VzVGVt
cGxhdGVzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
Zm9sZGVyOyBwYXRoID0gUHJlZmVyZW5jZXNUZW1wbGF0ZXM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTdDREU3M0EzMUY5REFCNjUwMDM5MDMxMiAvKiBXZWJQcmVmZXJlbmNlc0RlZmlu
aXRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaDsgcGF0
aCA9IFdlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJN0NERTczQTMxRjlEQUI2NTAwMzkwMzEyIC8qIFdlYlByZWZlcmVuY2VzRGVmaW5pdGlv
bnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0U0RDIwNjFBNDY3NzU3MDBDN0YxNTIgLyogQVBJTGVn
YWN5Q29udGV4dEhpc3RvcnlDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJTGVnYWN5Q29udGV4
dEhpc3RvcnlDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNEQyMTUx
QTQ5MTQ4NDAwQzdGMTUyIC8qIFdlYlByb2Nlc3NQb29sQ29jb2EubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJQcm9jZXNzUG9vbENvY29hLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0U0RDIxNzFBNDkxNEEzMDBDN0YxNTIgLyogV2ViUHJv
Y2Vzc1Bvb2wuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUHJv
Y2Vzc1Bvb2wuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzc3OSw2ICszNzgx
LDggQEAKIAkJODNFRTU3NUExREI3RDYwNjAwQzc0QzUwIC8qIFdlYlZhbGlkYXRpb25NZXNzYWdl
Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlZhbGlkYXRpb25N
ZXNzYWdlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRjFBMDc3MUY5
NkU3NzAwMDQ1Qjk0RSAvKiBXZWJTV09yaWdpblRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXT3JpZ2luVGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4M0YxQTA3ODFGOTZFNzcxMDA0NUI5NEUgLyogV2ViU1dPcmlnaW5UYWJs
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTV09yaWdpblRhYmxlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRjk2NDRCMUZBMEY3NjIwMEM0Nzc1MCAv
KiBTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRjk2NDRDMUZBMEY3NjMwMEM0Nzc1MCAvKiBTaGFy
ZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4NDQ3Nzg1MTE3NkZDQUMxMDBDREM3QkIgLyogSW5qZWN0ZWRCdW5kbGVIaXRU
ZXN0UmVzdWx0TWVkaWFUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
amVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4NjgxNjBDRDE4NzYzRDRCMDAyMUU3OUQgLyogV2luZG93U2VydmVyQ29ubmVj
dGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2ODE2MENGMTg3NjQ1MzcwMDIxRTc5RCAvKiBXaW5kb3dT
ZXJ2ZXJDb25uZWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2luZG93U2VydmVyQ29u
bmVjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUwNzIsNiArNTA3Niw4
IEBACiAJCQkJODMxM0Y3RTkxRjdEQUUwMzAwQjk0NEVCIC8qIFNoYXJlZFN0cmluZ0hhc2hTdG9y
ZS5oICovLAogCQkJCTgzMTNGN0U4MUY3REFFMDMwMEI5NDRFQiAvKiBTaGFyZWRTdHJpbmdIYXNo
VGFibGUuY3BwICovLAogCQkJCTgzMTNGN0U3MUY3REFFMDMwMEI5NDRFQiAvKiBTaGFyZWRTdHJp
bmdIYXNoVGFibGUuaCAqLywKKwkJCQk4M0Y5NjQ0QjFGQTBGNzYyMDBDNDc3NTAgLyogU2hhcmVk
U3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkuY3BwICovLAorCQkJCTgzRjk2NDRDMUZBMEY3NjMwMEM0
Nzc1MCAvKiBTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5oICovLAogCQkJCTUyNzJCMjg4
MTQwNjk4NUQwMDk2QTVEMCAvKiBTdGF0aXN0aWNzRGF0YS5jcHAgKi8sCiAJCQkJNTI3MkIyODkx
NDA2OTg1RDAwOTZBNUQwIC8qIFN0YXRpc3RpY3NEYXRhLmggKi8sCiAJCQkJMUE1RTREQTMxMkQz
QkQzRDAwOTlBMkJCIC8qIFRleHRDaGVja2VyU3RhdGUuaCAqLywKQEAgLTg4MzQsNiArODg0MCw3
IEBACiAJCQkJQ0Q0QjREOUQxRTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9y
YWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzEzRjdFQzFGN0RBRTA4MDBCOTQ0RUIgLyogU2hh
cmVkU3RyaW5nSGFzaFN0b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzEzRjdFRTFGN0RBRTA4
MDBCOTQ0RUIgLyogU2hhcmVkU3RyaW5nSGFzaFRhYmxlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4
M0Y5NjQ0RTFGQTBGNzZFMDBDNDc3NTAgLyogU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHku
aCBpbiBIZWFkZXJzICovLAogCQkJCTJEQUYwNkQ2MThCRDFBNDcwMDgxQ0VCMSAvKiBTbWFydE1h
Z25pZmljYXRpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREU2OTQzRTE4QkQy
QTY4MDA1QzE1RTUgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MjcyQjI4QjE0MDY5ODVEMDA5NkE1RDAgLyogU3RhdGlzdGljc0Rh
dGEuaCBpbiBIZWFkZXJzICovLApAQCAtMTA0MjksNiArMTA0MzYsNyBAQAogCQkJCUNENEI0RDlD
MUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk4MzEzRjdFQjFGN0RBRTA4MDBCOTQ0RUIgLyogU2hhcmVkU3RyaW5nSGFzaFN0
b3JlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgzMTNGN0VEMUY3REFFMDgwMEI5NDRFQiAvKiBT
aGFyZWRTdHJpbmdIYXNoVGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODNGOTY0NEQxRkEw
Rjc2RTAwQzQ3NzUwIC8qIFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTJEQUYwNkQ3MThCRDFBNDcwMDgxQ0VCMSAvKiBTbWFydE1hZ25pZmljYXRp
b25Db250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFNjk0M0QxOEJEMkE2ODAwNUMx
NUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTI3MkIyOEExNDA2OTg1RDAwOTZBNUQwIC8qIFN0YXRpc3RpY3NE
YXRhLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5oCmluZGV4IDhiNDE4ZTIwNjQ0YmE2ODMwODY4Y2Iy
NDE4N2Q5OTIzODIxNzQ5NGIuLmVmOTRhNzFhOGNmMTBmYWVmOTMyZDVlMmFkZWRkMGY3MWNiOTVh
MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXT3Jp
Z2luVGFibGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV09y
aWdpblRhYmxlLmgKQEAgLTI4LDcgKzI4LDcgQEAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKLSNpbmNsdWRlICJTaGFyZWRTdHJpbmdIYXNo
VGFibGUuaCIKKyNpbmNsdWRlICJTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKQEAgLTQ0LDcgKzQ0LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hhcmVkTWVtb3J5KGNvbnN0IFNoYXJlZE1lbW9yeTo6
SGFuZGxlJik7CiAKIHByaXZhdGU6Ci0gICAgU2hhcmVkU3RyaW5nSGFzaFRhYmxlIG1fc2Vydmlj
ZVdvcmtlck9yaWdpblRhYmxlOworICAgIFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5IG1f
c2VydmljZVdvcmtlck9yaWdpblRhYmxlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1Rh
YmxlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9WaXNp
dGVkTGlua1RhYmxlQ29udHJvbGxlci5jcHAKaW5kZXggZWY3MTI4MDJmMWJhZDNhMDUwYzBlYjI5
MTZiMDBmZDA4ZTUzYzFhYi4uYzJjMDAxMDFhMDkwZDdmOTkzMTJlYmE4YTRjYWVkMzk1N2M3NGZm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExp
bmtUYWJsZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1Zpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyLmNwcApAQCAtMTEyLDcgKzExMiw3IEBAIHZv
aWQgVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXI6OmFsbFZpc2l0ZWRMaW5rU3RhdGVDaGFuZ2Vk
KCkKIAogdm9pZCBWaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlcjo6cmVtb3ZlQWxsVmlzaXRlZExp
bmtzKCkKIHsKLSAgICBtX3Zpc2l0ZWRMaW5rVGFibGUuY2xlYXIoKTsKKyAgICBtX3Zpc2l0ZWRM
aW5rVGFibGUuc2V0U2hhcmVkTWVtb3J5KG51bGxwdHIpOwogCiAgICAgaW52YWxpZGF0ZVN0eWxl
c0ZvckFsbExpbmtzKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuaAppbmRleCA3NDdlM2Q4
YmE3MzVlYmMwMmZhN2E1ZWExZjM1Yzg1NzRkYTBiNGEzLi4wOTIzZTQ2MDk1OWIwZjM0YTk0MmVk
OTI0ZjA0NGM1M2Y4NGMzM2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1Zpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyLmgKQEAgLTI3LDcg
KzI3LDcgQEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlNoYXJl
ZE1lbW9yeS5oIgotI2luY2x1ZGUgIlNoYXJlZFN0cmluZ0hhc2hUYWJsZS5oIgorI2luY2x1ZGUg
IlNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9WaXNp
dGVkTGlua1N0b3JlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNTMsNyArNTMsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgcmVtb3ZlQWxsVmlzaXRlZExpbmtzKCk7CiAKICAgICB1aW50NjRf
dCBtX2lkZW50aWZpZXI7Ci0gICAgU2hhcmVkU3RyaW5nSGFzaFRhYmxlIG1fdmlzaXRlZExpbmtU
YWJsZTsKKyAgICBTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seSBtX3Zpc2l0ZWRMaW5rVGFi
bGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
      

    </bug>

</bugzilla>