<?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>169743</bug_id>
          
          <creation_ts>2017-03-16 03:02:04 -0700</creation_ts>
          <short_desc>[JSC] Generate TemplateObjects at linking time</short_desc>
          <delta_ts>2017-04-05 00:09:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1288507</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-16 03:02:04 -0700</bug_when>
    <thetext>[JSC] Generate TemplateObjects at linking time</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288508</commentid>
    <comment_count>1</comment_count>
      <attachid>304627</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-16 03:06:27 -0700</bug_when>
    <thetext>Created attachment 304627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288668</commentid>
    <comment_count>2</comment_count>
      <attachid>304673</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-16 12:30:10 -0700</bug_when>
    <thetext>Created attachment 304673
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288669</commentid>
    <comment_count>3</comment_count>
      <attachid>304674</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-03-16 12:34:41 -0700</bug_when>
    <thetext>Created attachment 304674
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294064</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-04 10:35:59 -0700</bug_when>
    <thetext>Ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294073</commentid>
    <comment_count>5</comment_count>
      <attachid>304674</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-04-04 10:57:53 -0700</bug_when>
    <thetext>Comment on attachment 304674
Patch

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

r=me with a question.

&gt; Source/JavaScriptCore/bytecode/CodeBlock.cpp:932
&gt; +    scope.release();

Why do you need the manually release the scope here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294417</commentid>
    <comment_count>6</comment_count>
      <attachid>304674</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-05 00:06:48 -0700</bug_when>
    <thetext>Comment on attachment 304674
Patch

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

&gt;&gt; Source/JavaScriptCore/bytecode/CodeBlock.cpp:932
&gt;&gt; +    scope.release();
&gt; 
&gt; Why do you need the manually release the scope here?

Oops, it&apos;s not neccessary. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294419</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-05 00:09:48 -0700</bug_when>
    <thetext>Committed r214931: &lt;http://trac.webkit.org/changeset/214931&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304627</attachid>
            <date>2017-03-16 03:06:27 -0700</date>
            <delta_ts>2017-03-16 12:30:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169743-20170316190625.patch</filename>
            <type>text/plain</type>
            <size>16818</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0MDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
OWM2NzdhOTQ5MzcxOTgyOWI5MWI5MGIwOGQwNzY3ZGIxNmE5MjhmLi4zZTQ0ZmQ3MWQ5M2Q1MTNl
NjU5YmQzOTk2YzE0NjQyMzk1MDhiNDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxNy0wMy0xNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBHZW5lcmF0ZSBUZW1wbGF0ZU9iamVjdHMgYXQgbGlua2lu
ZyB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Njk3NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
dXJyZW50bHksIHRoZSBjb2RlIGNhbGxzIGdldFRlbXBsYXRlT2JqZWN0IHRvIGdldCBhcHByb3By
aWF0ZSB0ZW1wbGF0ZSBvYmplY3RzIGF0IHJ1bnRpbWUuCisgICAgICAgIEJ1dCB0aGlzIHRlbXBs
YXRlIG9iamVjdCBpcyBjb25zdGFudCB2YWx1ZSBhbmQgbmV2ZXIgY2hhbmdlZC4gU28gaW5zdGVh
ZCBvZiBjcmVhdGluZyBpdAorICAgICAgICBhdCBydW50aW1lLCB3ZSBzaG91bGQgY3JlYXRlIGl0
IGF0IGxpbmtpbmcgdGltZSBhbmQgc3RvcmUgaXQgaW4gdGhlIGNvbnN0YW50IHJlZ2lzdGVycy4K
KworICAgICAgICAqIGJ1aWx0aW5zL0J1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGJ5dGVjb2Rl
L0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZmluaXNoQ3JlYXRpb24p
OgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnNldENvbnN0YW50VGVtcGxhdGVPYmplY3RSZWdp
c3RlcnMpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAqIGJ5dGVj
b2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6VW5saW5rZWRDb2RlQmxv
Y2s6OnNocmlua1RvRml0KToKKyAgICAgICAgKiBieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5o
OgorICAgICAgICAoSlNDOjpVbmxpbmtlZENvZGVCbG9jazo6YWRkVGVtcGxhdGVSZWdpc3RyeUtl
eUNvbnN0YW50SW5kZXgpOgorICAgICAgICAoSlNDOjpVbmxpbmtlZENvZGVCbG9jazo6bnVtYmVy
T2ZDb25zdGFudFRlbXBsYXRlT2JqZWN0SW5kaWNlcyk6CisgICAgICAgIChKU0M6OlVubGlua2Vk
Q29kZUJsb2NrOjpjb25zdGFudFRlbXBsYXRlT2JqZWN0SW5kaWNlcyk6CisgICAgICAgICogYnl0
ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVH
ZW5lcmF0b3I6OmFkZFRlbXBsYXRlUmVnaXN0cnlLZXlDb25zdGFudCk6CisgICAgICAgIChKU0M6
OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0VGVtcGxhdGVPYmplY3QpOgorICAgICAgICAqIGJ5
dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oOgorICAgICAgICAqIGJ5dGVjb21waWxlci9O
b2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjpUYWdnZWRUZW1wbGF0ZU5vZGU6OmVtaXRC
eXRlY29kZSk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAg
IChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KToKKyAgICAgICAgKEpTQzo6Z2V0VGVtcGxhdGVP
YmplY3QpOiBEZWxldGVkLgorCiAyMDE3LTAzLTE1ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50
ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtKU0NdIERlZmF1bHQgcGFyYW1ldGVyIHBhcnQgc2hv
dWxkIGJlIHJldHJpZXZlZCBieSBvcF9nZXRfYXJndW1lbnQgb3Bjb2RlIGluc3RlYWQgb2YgY2hh
bmdpbmcgYXJpdHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9C
dWlsdGluTmFtZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFt
ZXMuaAppbmRleCBkZjkzZTBmZjU3MGJhNjBiZThlYzZhYWRhZTUzYjk1N2FjMTZiNTNhLi5hMmMx
NDE3MGFhZjM5MjUxODlhZDA3YWEyZjUzN2I0ZTdlNjQ1ZTAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCkBAIC04MCw3ICs4MCw2IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIG1hY3JvKHR5cGVkQXJyYXlTdWJhcnJheUNyZWF0ZSkgXAogICAgIG1h
Y3JvKEJ1aWx0aW5Mb2cpIFwKICAgICBtYWNybyhob21lT2JqZWN0KSBcCi0gICAgbWFjcm8oZ2V0
VGVtcGxhdGVPYmplY3QpIFwKICAgICBtYWNybyh0ZW1wbGF0ZVJlZ2lzdHJ5S2V5KSBcCiAgICAg
bWFjcm8oZW5xdWV1ZUpvYikgXAogICAgIG1hY3JvKHByb21pc2VTdGF0ZSkgXApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAppbmRleCA1MjgzMzk5NjA5M2Yx
NWRjOGRhNTExZjkwODFiMWNhMDg1MmU4N2FmLi4xYzFlMzM2MjhkNTBhYzFhODVjN2Y5ZjA0YzZm
YTliZTQxODdjMTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q29kZUJsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJs
b2NrLmNwcApAQCAtNjAsNiArNjAsNyBAQAogI2luY2x1ZGUgIkpTTW9kdWxlRW52aXJvbm1lbnQu
aCIKICNpbmNsdWRlICJKU1NldC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCisjaW5jbHVkZSAi
SlNUZW1wbGF0ZVJlZ2lzdHJ5S2V5LmgiCiAjaW5jbHVkZSAiTExJbnREYXRhLmgiCiAjaW5jbHVk
ZSAiTExJbnRFbnRyeXBvaW50LmgiCiAjaW5jbHVkZSAiTExJbnRQcm90b3R5cGVMb2FkQWRhcHRp
dmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmgiCkBAIC00MDYsNiArNDA3LDggQEAgYm9vbCBDb2RlQmxv
Y2s6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgU2NyaXB0RXhlY3V0YWJsZSogb3duZXJFeGVjdXRh
YmxlLCBVbmxpbmsKICAgICBzZXRDb25zdGFudFJlZ2lzdGVycyh1bmxpbmtlZENvZGVCbG9jay0+
Y29uc3RhbnRSZWdpc3RlcnMoKSwgdW5saW5rZWRDb2RlQmxvY2stPmNvbnN0YW50c1NvdXJjZUNv
ZGVSZXByZXNlbnRhdGlvbigpKTsKICAgICBpZiAoIXNldENvbnN0YW50SWRlbnRpZmllclNldFJl
Z2lzdGVycyh2bSwgdW5saW5rZWRDb2RlQmxvY2stPmNvbnN0YW50SWRlbnRpZmllclNldHMoKSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIXNldENvbnN0YW50VGVtcGxhdGVPYmpl
Y3RSZWdpc3RlcnModm0sIHVubGlua2VkQ29kZUJsb2NrKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIGlmICh1bmxpbmtlZENvZGVCbG9jay0+dXNlc0dsb2JhbE9iamVjdCgpKQogICAgICAg
ICBtX2NvbnN0YW50UmVnaXN0ZXJzW3VubGlua2VkQ29kZUJsb2NrLT5nbG9iYWxPYmplY3RSZWdp
c3RlcigpLnRvQ29uc3RhbnRJbmRleCgpXS5zZXQoKm1fdm0sIHRoaXMsIG1fZ2xvYmFsT2JqZWN0
LmdldCgpKTsKIApAQCAtODg4LDYgKzg5MSwyMiBAQCBib29sIENvZGVCbG9jazo6c2V0Q29uc3Rh
bnRJZGVudGlmaWVyU2V0UmVnaXN0ZXJzKFZNJiB2bSwgY29uc3QgVmVjdG9yPENvbnN0YW50SQog
ICAgIHJldHVybiB0cnVlOwogfQogCitib29sIENvZGVCbG9jazo6c2V0Q29uc3RhbnRUZW1wbGF0
ZU9iamVjdFJlZ2lzdGVycyhWTSYgdm0sIFVubGlua2VkQ29kZUJsb2NrKiB1bmxpbmtlZENvZGVC
bG9jaykKK3sKKyAgICBpZiAodW5saW5rZWRDb2RlQmxvY2stPm51bWJlck9mQ29uc3RhbnRUZW1w
bGF0ZU9iamVjdEluZGljZXMoKSkgeworICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CisgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2ds
b2JhbE9iamVjdC5nZXQoKTsKKyAgICAgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0
LT5nbG9iYWxFeGVjKCk7CisgICAgICAgIGZvciAodW5zaWduZWQgaW5kZXggOiB1bmxpbmtlZENv
ZGVCbG9jay0+Y29uc3RhbnRUZW1wbGF0ZU9iamVjdEluZGljZXMoKSkgeworICAgICAgICAgICAg
YXV0byogdGVtcGxhdGVPYmplY3QgPSBnbG9iYWxPYmplY3QtPnRlbXBsYXRlUmVnaXN0cnkoKS5n
ZXRUZW1wbGF0ZU9iamVjdChleGVjLCBqc0Nhc3Q8SlNUZW1wbGF0ZVJlZ2lzdHJ5S2V5Kj4obV9j
b25zdGFudFJlZ2lzdGVyc1tpbmRleF0uZ2V0KCkpKTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIGZhbHNlKTsKKyAgICAgICAgICAgIG1fY29uc3RhbnRSZWdpc3RlcnNb
aW5kZXhdLnNldCh2bSwgdGhpcywgdGVtcGxhdGVPYmplY3QpOworICAgICAgICB9CisgICAgICAg
IHNjb3BlLnJlbGVhc2UoKTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgQ29k
ZUJsb2NrOjpzZXRDb25zdGFudFJlZ2lzdGVycyhjb25zdCBWZWN0b3I8V3JpdGVCYXJyaWVyPFVu
a25vd24+PiYgY29uc3RhbnRzLCBjb25zdCBWZWN0b3I8U291cmNlQ29kZVJlcHJlc2VudGF0aW9u
PiYgY29uc3RhbnRzU291cmNlQ29kZVJlcHJlc2VudGF0aW9uKQogewogICAgIEFTU0VSVChjb25z
dGFudHMuc2l6ZSgpID09IGNvbnN0YW50c1NvdXJjZUNvZGVSZXByZXNlbnRhdGlvbi5zaXplKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCmluZGV4IDU2NmM0
ODk1MDM4OTUxMzczMWU3ZDA4MTVhZTM4NmYzOTNjMTQxOWUuLmU4YTc0NjI4YzUyNTY1ZTQ4YzQ2
ZTIwNDgxMmU0NTFjMzhkYjNjOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q29kZUJsb2NrLmgKQEAgLTkxOCw2ICs5MTgsNyBAQCBjbGFzcyBDb2RlQmxvY2sgOiBwdWJsaWMg
SlNDZWxsIHsKICAgICB2b2lkIHVwZGF0ZUFsbFByZWRpY3Rpb25zQW5kQ291bnRMaXZlbmVzcyh1
bnNpZ25lZCYgbnVtYmVyT2ZMaXZlTm9uQXJndW1lbnRWYWx1ZVByb2ZpbGVzLCB1bnNpZ25lZCYg
bnVtYmVyT2ZTYW1wbGVzSW5Qcm9maWxlcyk7CiAKICAgICBib29sIHNldENvbnN0YW50SWRlbnRp
ZmllclNldFJlZ2lzdGVycyhWTSYsIGNvbnN0IFZlY3RvcjxDb25zdGFudEluZGVudGlmaWVyU2V0
RW50cnk+JiBjb25zdGFudHMpOworICAgIGJvb2wgc2V0Q29uc3RhbnRUZW1wbGF0ZU9iamVjdFJl
Z2lzdGVycyhWTSYsIFVubGlua2VkQ29kZUJsb2NrKik7CiAKICAgICB2b2lkIHNldENvbnN0YW50
UmVnaXN0ZXJzKGNvbnN0IFZlY3RvcjxXcml0ZUJhcnJpZXI8VW5rbm93bj4+JiBjb25zdGFudHMs
IGNvbnN0IFZlY3RvcjxTb3VyY2VDb2RlUmVwcmVzZW50YXRpb24+JiBjb25zdGFudHNTb3VyY2VD
b2RlUmVwcmVzZW50YXRpb24pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcAppbmRleCAxYzcxYWE2ZTQ1MzNkNTNjZDJjNDRm
ZWUwMjFhYzNlZjMzMDk5ZmI5Li43MmY0ZGM2M2IzNTk3ZmNiYTAxMWQxNTcxYmI2ZDA0MzQ1Yjkx
MmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRD
b2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Vbmxpbmtl
ZENvZGVCbG9jay5jcHAKQEAgLTQxMCw2ICs0MTAsOCBAQCB2b2lkIFVubGlua2VkQ29kZUJsb2Nr
OjpzaHJpbmtUb0ZpdCgpCiAgICAgICAgIG1fcmFyZURhdGEtPm1fc3dpdGNoSnVtcFRhYmxlcy5z
aHJpbmtUb0ZpdCgpOwogICAgICAgICBtX3JhcmVEYXRhLT5tX3N0cmluZ1N3aXRjaEp1bXBUYWJs
ZXMuc2hyaW5rVG9GaXQoKTsKICAgICAgICAgbV9yYXJlRGF0YS0+bV9leHByZXNzaW9uSW5mb0Zh
dFBvc2l0aW9ucy5zaHJpbmtUb0ZpdCgpOworICAgICAgICBtX3JhcmVEYXRhLT5tX29wUHJvZmls
ZUNvbnRyb2xGbG93Qnl0ZWNvZGVPZmZzZXRzLnNocmlua1RvRml0KCk7CisgICAgICAgIG1fcmFy
ZURhdGEtPm1fY29uc3RhbnRUZW1wbGF0ZU9iamVjdEluZGljZXMuc2hyaW5rVG9GaXQoKTsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Vbmxp
bmtlZENvZGVCbG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2Vk
Q29kZUJsb2NrLmgKaW5kZXggNjY5Y2M2NGU4MmEyYWVjN2RmYzM0OWYwMmQzZDMzMmYxMWU0ZDY4
My4uYjNjNGMwNDhjZDQ4ZGM3MjQ3MGIwN2ZiYWI0NTY3OTI4NTZlN2ViYyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmgKQEAgLTIy
MCw2ICsyMjAsNyBAQCBjbGFzcyBVbmxpbmtlZENvZGVCbG9jayA6IHB1YmxpYyBKU0NlbGwgewog
ICAgICAgICBtX2NvbnN0YW50c1NvdXJjZUNvZGVSZXByZXNlbnRhdGlvbi5hcHBlbmQoU291cmNl
Q29kZVJlcHJlc2VudGF0aW9uOjpPdGhlcik7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
fQorCiAgICAgdW5zaWduZWQgcmVnaXN0ZXJJbmRleEZvckxpbmtUaW1lQ29uc3RhbnQoTGlua1Rp
bWVDb25zdGFudCB0eXBlKQogICAgIHsKICAgICAgICAgdW5zaWduZWQgaW5kZXggPSBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4odHlwZSk7CkBAIC0zNDcsNiArMzQ4LDE4IEBAIGNsYXNzIFVubGlua2Vk
Q29kZUJsb2NrIDogcHVibGljIEpTQ2VsbCB7CiAKICAgICBib29sIGhhc1JhcmVEYXRhKCkgY29u
c3QgeyByZXR1cm4gbV9yYXJlRGF0YS5nZXQoKTsgfQogCisgICAgdm9pZCBhZGRUZW1wbGF0ZVJl
Z2lzdHJ5S2V5Q29uc3RhbnRJbmRleCh1bnNpZ25lZCBpbmRleCkKKyAgICB7CisgICAgICAgIGNy
ZWF0ZVJhcmVEYXRhSWZOZWNlc3NhcnkoKTsKKyAgICAgICAgbV9yYXJlRGF0YS0+bV9jb25zdGFu
dFRlbXBsYXRlT2JqZWN0SW5kaWNlcy5hcHBlbmQoaW5kZXgpOworICAgIH0KKyAgICBzaXplX3Qg
bnVtYmVyT2ZDb25zdGFudFRlbXBsYXRlT2JqZWN0SW5kaWNlcygpIGNvbnN0IHsgcmV0dXJuIG1f
cmFyZURhdGEgPyBtX3JhcmVEYXRhLT5tX2NvbnN0YW50VGVtcGxhdGVPYmplY3RJbmRpY2VzLnNp
emUoKSA6IDA7IH0KKyAgICBjb25zdCBWZWN0b3I8dW5zaWduZWQ+JiBjb25zdGFudFRlbXBsYXRl
T2JqZWN0SW5kaWNlcygpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobV9yYXJlRGF0YSk7
CisgICAgICAgIHJldHVybiBtX3JhcmVEYXRhLT5tX2NvbnN0YW50VGVtcGxhdGVPYmplY3RJbmRp
Y2VzOworICAgIH0KKwogICAgIGludCBsaW5lTnVtYmVyRm9yQnl0ZWNvZGVPZmZzZXQodW5zaWdu
ZWQgYnl0ZWNvZGVPZmZzZXQpOwogCiAgICAgdm9pZCBleHByZXNzaW9uUmFuZ2VGb3JCeXRlY29k
ZU9mZnNldCh1bnNpZ25lZCBieXRlY29kZU9mZnNldCwgaW50JiBkaXZvdCwKQEAgLTQ5OCw2ICs1
MTEsOCBAQCBjbGFzcyBVbmxpbmtlZENvZGVCbG9jayA6IHB1YmxpYyBKU0NlbGwgewogICAgICAg
ICB9OwogICAgICAgICBIYXNoTWFwPHVuc2lnbmVkLCBUeXBlUHJvZmlsZXJFeHByZXNzaW9uUmFu
Z2U+IG1fdHlwZVByb2ZpbGVySW5mb01hcDsKICAgICAgICAgVmVjdG9yPHNpemVfdD4gbV9vcFBy
b2ZpbGVDb250cm9sRmxvd0J5dGVjb2RlT2Zmc2V0czsKKworICAgICAgICBWZWN0b3I8dW5zaWdu
ZWQ+IG1fY29uc3RhbnRUZW1wbGF0ZU9iamVjdEluZGljZXM7CiAgICAgfTsKIAogcHJpdmF0ZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVH
ZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29k
ZUdlbmVyYXRvci5jcHAKaW5kZXggYjA1NjExNmI2ZTE5YTJjZTU4YmQyNjUyMjI0MmVkOGE5YmUz
YmI3MC4uYjQzMjAxNjRkNDQ2NDcyMWZhMWVjNDNjZmFlODcxMzBjNzQ1NjAwMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVy
YXRvci5jcHAKQEAgLTMwNjAsMTIgKzMwNjAsMTYgQEAgSlNTdHJpbmcqIEJ5dGVjb2RlR2VuZXJh
dG9yOjphZGRTdHJpbmdDb25zdGFudChjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyKQogICAg
IHJldHVybiBzdHJpbmdJbk1hcDsKIH0KIAotSlNUZW1wbGF0ZVJlZ2lzdHJ5S2V5KiBCeXRlY29k
ZUdlbmVyYXRvcjo6YWRkVGVtcGxhdGVSZWdpc3RyeUtleUNvbnN0YW50KFJlZjxUZW1wbGF0ZVJl
Z2lzdHJ5S2V5PiYmIHRlbXBsYXRlUmVnaXN0cnlLZXkpCitSZWdpc3RlcklEKiBCeXRlY29kZUdl
bmVyYXRvcjo6YWRkVGVtcGxhdGVSZWdpc3RyeUtleUNvbnN0YW50KFJlZjxUZW1wbGF0ZVJlZ2lz
dHJ5S2V5PiYmIHRlbXBsYXRlUmVnaXN0cnlLZXkpCiB7CiAgICAgcmV0dXJuIG1fdGVtcGxhdGVS
ZWdpc3RyeUtleU1hcC5lbnN1cmUodGVtcGxhdGVSZWdpc3RyeUtleS5jb3B5UmVmKCksIFsmXSB7
CiAgICAgICAgIGF1dG8qIHJlc3VsdCA9IEpTVGVtcGxhdGVSZWdpc3RyeUtleTo6Y3JlYXRlKCp2
bSgpLCBXVEZNb3ZlKHRlbXBsYXRlUmVnaXN0cnlLZXkpKTsKLSAgICAgICAgYWRkQ29uc3RhbnRW
YWx1ZShyZXN1bHQpOwotICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB1bnNpZ25lZCBp
bmRleCA9IG1fbmV4dENvbnN0YW50T2Zmc2V0OworICAgICAgICBtX2NvbnN0YW50UG9vbFJlZ2lz
dGVycy5hcHBlbmQoRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXggKyBtX25leHRDb25zdGFudE9m
ZnNldCk7CisgICAgICAgICsrbV9uZXh0Q29uc3RhbnRPZmZzZXQ7CisgICAgICAgIG1fY29kZUJs
b2NrLT5hZGRDb25zdGFudChyZXN1bHQpOworICAgICAgICBtX2NvZGVCbG9jay0+YWRkVGVtcGxh
dGVSZWdpc3RyeUtleUNvbnN0YW50SW5kZXgoaW5kZXgpOworICAgICAgICByZXR1cm4gJm1fY29u
c3RhbnRQb29sUmVnaXN0ZXJzW2luZGV4XTsKICAgICB9KS5pdGVyYXRvci0+dmFsdWU7CiB9CiAK
QEAgLTQzMTQsMTEgKzQzMTgsMTAgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVt
aXRHZXRUZW1wbGF0ZU9iamVjdChSZWdpc3RlcklEKiBkc3QsIFRhZ2dlZFRlbXAKICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgY29va2VkU3RyaW5ncy5hcHBlbmQoc3RyaW5nLT5jb29rZWQoKS0+
aW1wbCgpKTsKICAgICB9Ci0KLSAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gZ2V0VGVtcGxhdGVPYmpl
Y3QgPSBlbWl0R2V0R2xvYmFsUHJpdmF0ZShuZXdUZW1wb3JhcnkoKSwgcHJvcGVydHlOYW1lcygp
LmJ1aWx0aW5OYW1lcygpLmdldFRlbXBsYXRlT2JqZWN0UHJpdmF0ZU5hbWUoKSk7Ci0gICAgQ2Fs
bEFyZ3VtZW50cyBhcmd1bWVudHMoKnRoaXMsIG51bGxwdHIpOwotICAgIGVtaXRMb2FkKGFyZ3Vt
ZW50cy50aGlzUmVnaXN0ZXIoKSwgSlNWYWx1ZShhZGRUZW1wbGF0ZVJlZ2lzdHJ5S2V5Q29uc3Rh
bnQobV92bS0+dGVtcGxhdGVSZWdpc3RyeUtleVRhYmxlKCkuY3JlYXRlS2V5KFdURk1vdmUocmF3
U3RyaW5ncyksIFdURk1vdmUoY29va2VkU3RyaW5ncykpKSkpOwotICAgIHJldHVybiBlbWl0Q2Fs
bChkc3QsIGdldFRlbXBsYXRlT2JqZWN0LmdldCgpLCBOb0V4cGVjdGVkRnVuY3Rpb24sIGFyZ3Vt
ZW50cywgdGFnZ2VkVGVtcGxhdGUtPmRpdm90KCksIHRhZ2dlZFRlbXBsYXRlLT5kaXZvdFN0YXJ0
KCksIHRhZ2dlZFRlbXBsYXRlLT5kaXZvdEVuZCgpLCBEZWJ1Z2dhYmxlQ2FsbDo6Tm8pOworICAg
IFJlZlB0cjxSZWdpc3RlcklEPiBjb25zdGFudCA9IGFkZFRlbXBsYXRlUmVnaXN0cnlLZXlDb25z
dGFudChtX3ZtLT50ZW1wbGF0ZVJlZ2lzdHJ5S2V5VGFibGUoKS5jcmVhdGVLZXkoV1RGTW92ZShy
YXdTdHJpbmdzKSwgV1RGTW92ZShjb29rZWRTdHJpbmdzKSkpOworICAgIGlmICghZHN0KQorICAg
ICAgICByZXR1cm4gY29uc3RhbnQuZ2V0KCk7CisgICAgcmV0dXJuIGVtaXRNb3ZlKGRzdCwgY29u
c3RhbnQuZ2V0KCkpOwogfQogCiBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdl
dEdsb2JhbFByaXZhdGUoUmVnaXN0ZXJJRCogZHN0LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuaAppbmRleCA3OGRjYjRhM2VkOTlkZTNlOThhZWU0NGIxMzQ4Y2I4YTAzM2E0
MTEyLi41ZjZkZTNjYzRjNGIyZDNiN2IwZGQ2NTEyODQxNjA3MmQ4NjE4ZWJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRv
ci5oCkBAIC05NDMsNyArOTQzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgdHlwZWRl
ZiBIYXNoTWFwPGRvdWJsZSwgSlNWYWx1ZT4gTnVtYmVyTWFwOwogICAgICAgICB0eXBlZGVmIEhh
c2hNYXA8VW5pcXVlZFN0cmluZ0ltcGwqLCBKU1N0cmluZyosIElkZW50aWZpZXJSZXBIYXNoPiBJ
ZGVudGlmaWVyU3RyaW5nTWFwOwotICAgICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmPFRlbXBsYXRl
UmVnaXN0cnlLZXk+LCBKU1RlbXBsYXRlUmVnaXN0cnlLZXkqPiBUZW1wbGF0ZVJlZ2lzdHJ5S2V5
TWFwOworICAgICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmPFRlbXBsYXRlUmVnaXN0cnlLZXk+LCBS
ZWdpc3RlcklEKj4gVGVtcGxhdGVSZWdpc3RyeUtleU1hcDsKICAgICAgICAgCiAgICAgICAgIC8v
IEhlbHBlciBmb3IgZW1pdENhbGwoKSBhbmQgZW1pdENvbnN0cnVjdCgpLiBUaGlzIHdvcmtzIGJl
Y2F1c2UgdGhlIHNldCBvZgogICAgICAgICAvLyBleHBlY3RlZCBmdW5jdGlvbnMgaGF2ZSBpZGVu
dGljYWwgYmVoYXZpb3IgZm9yIGJvdGggY2FsbCBhbmQgY29uc3RydWN0CkBAIC0xMDI4LDcgKzEw
MjgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHB1YmxpYzoKICAgICAgICAgSlNTdHJpbmcq
IGFkZFN0cmluZ0NvbnN0YW50KGNvbnN0IElkZW50aWZpZXImKTsKLSAgICAgICAgSlNUZW1wbGF0
ZVJlZ2lzdHJ5S2V5KiBhZGRUZW1wbGF0ZVJlZ2lzdHJ5S2V5Q29uc3RhbnQoUmVmPFRlbXBsYXRl
UmVnaXN0cnlLZXk+JiYpOworICAgICAgICBSZWdpc3RlcklEKiBhZGRUZW1wbGF0ZVJlZ2lzdHJ5
S2V5Q29uc3RhbnQoUmVmPFRlbXBsYXRlUmVnaXN0cnlLZXk+JiYpOwogCiAgICAgICAgIFZlY3Rv
cjxVbmxpbmtlZEluc3RydWN0aW9uLCAwLCBVbnNhZmVWZWN0b3JPdmVyZmxvdz4mIGluc3RydWN0
aW9ucygpIHsgcmV0dXJuIG1faW5zdHJ1Y3Rpb25zOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAppbmRleCBiYWI0NTJiYWEy
YTA1N2MxMjRkMDYzNzU5ZTUzOGNmZTkzNmZjZmY1Li5mY2Q0ZTkwN2RiMGM4OTRiZTI2Y2E1ZmEw
OWUwZjVjNDFiY2Q5ZDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC0zNDQsNyArMzQ0LDcgQEAgUmVnaXN0ZXJJRCog
VGFnZ2VkVGVtcGxhdGVOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVy
YXRvciwgUmVnaXMKICAgICAgICAgICAgIHRhZyA9IGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5l
cmF0b3IubmV3VGVtcG9yYXJ5KCksIGJhc2UuZ2V0KCksIGRvdC0+aWRlbnRpZmllcigpKTsKICAg
ICB9CiAKLSAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gdGVtcGxhdGVPYmplY3QgPSBnZW5lcmF0b3Iu
ZW1pdEdldFRlbXBsYXRlT2JqZWN0KGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgdGhpcyk7Cisg
ICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHRlbXBsYXRlT2JqZWN0ID0gZ2VuZXJhdG9yLmVtaXRHZXRU
ZW1wbGF0ZU9iamVjdChudWxscHRyLCB0aGlzKTsKIAogICAgIHVuc2lnbmVkIGV4cHJlc3Npb25z
Q291bnQgPSAwOwogICAgIGZvciAoVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUqIHRlbXBsYXRl
RXhwcmVzc2lvbiA9IG1fdGVtcGxhdGVMaXRlcmFsLT50ZW1wbGF0ZUV4cHJlc3Npb25zKCk7IHRl
bXBsYXRlRXhwcmVzc2lvbjsgdGVtcGxhdGVFeHByZXNzaW9uID0gdGVtcGxhdGVFeHByZXNzaW9u
LT5uZXh0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5jcHAKaW5kZXggZWVkOTJhOGViNzkzYjE3YjdlNDNhNjk4MTNjZTQ5ZGNmZTNkZTljZC4u
MTE2ZjNjMzBiMmEzNTM1ZmY1M2ViOWRmM2NlN2VhMTVlMmRjZjczNSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMjk5LDE0ICsy
OTksNiBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0dsb2JhbE9iamVjdDo6c19n
bG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsKIEBlbmQKICovCiAKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGdldFRlbXBsYXRlT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKLXsK
LSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIEFTU0VSVCh0
aGlzVmFsdWUuaW5oZXJpdHMoZXhlYy0+dm0oKSwgSlNUZW1wbGF0ZVJlZ2lzdHJ5S2V5OjppbmZv
KCkpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGV4ZWMtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKS0+dGVtcGxhdGVSZWdpc3RyeSgpLmdldFRlbXBsYXRlT2JqZWN0KGV4ZWMsIGpzQ2FzdDxK
U1RlbXBsYXRlUmVnaXN0cnlLZXkqPih0aGlzVmFsdWUpKSk7Ci19Ci0KLQogc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZW5xdWV1ZUpvYihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAg
ICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKQEAgLTczMyw3ICs3MjUsNiBAQCBwdXREaXJlY3RXaXRo
b3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMj
IENvbnN0cnVjdAogICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jRmxvb3IgPSBKU0Z1bmN0aW9u
OjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCBtYXRoUHJvdG9GdW5jRmxvb3IsIEZsb29y
SW50cmluc2ljKTsKICAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY1RydW5jID0gSlNGdW5jdGlv
bjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgbWF0aFByb3RvRnVuY1RydW5jLCBUcnVu
Y0ludHJpbnNpYyk7CiAKLSAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY0dldFRlbXBsYXRlT2Jq
ZWN0ID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgZ2V0VGVtcGxh
dGVPYmplY3QpOwogICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jSW1wb3J0TW9kdWxlID0gSlNG
dW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgZ2xvYmFsRnVuY0ltcG9ydE1v
ZHVsZSk7CiAgICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNUb09iamVjdCA9IEpTRnVuY3Rpb246
OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIHByaXZhdGVUb09iamVjdCk7CiAgICAgSlNG
dW5jdGlvbiogcHJpdmF0ZUZ1bmNUeXBlZEFycmF5TGVuZ3RoID0gSlNGdW5jdGlvbjo6Y3JlYXRl
KHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0xlbmd0aCk7
CkBAIC03ODgsNyArNzc5LDYgQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnBy
b3BlcnR5TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPkluZmluaXR5LCBqc051bWJlcihzdGQ6
Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkpLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT51bmRlZmluZWRLZXl3b3JkLCBqc1VuZGVmaW5lZCgpLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5vd25FbnVtZXJhYmxlUHJvcGVydHlLZXlzUHJpdmF0ZU5hbWUo
KSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgb3duRW51bWVyYWJs
ZVByb3BlcnR5S2V5cyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAg
ICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdl
dFRlbXBsYXRlT2JqZWN0UHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNHZXRUZW1wbGF0ZU9iamVj
dCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9w
ZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaW1wb3J0TW9kdWxlUHJp
dmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNJbXBvcnRNb2R1bGUsIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLnRvT2JqZWN0UHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNUb09i
amVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZW5xdWV1ZUpvYlBy
aXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIGVu
cXVldWVKb2IpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCmRpZmYgLS1naXQg
YS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZhZmJkODVkMmY5
NjA1NDc3NjkyYzk1Yzk5ZmZiYjBlYzBiMjBmZTIuLmQyMTY4YTA0M2Q4YzNhODcwMzdjMGRiZTYy
MDA4ZDk1YzQ0ZTU2NDMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDMtMTYgIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0pTQ10gR2VuZXJhdGUgVGVtcGxh
dGVPYmplY3RzIGF0IGxpbmtpbmcgdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY5NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvdGVtcGxhdGUtc3RyaW5nLXRhZ3MtZXZhbC5qczog
QWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0YWcpOgorCiAyMDE3LTAzLTE1
ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtKU0Nd
IERlZmF1bHQgcGFyYW1ldGVyIHBhcnQgc2hvdWxkIGJlIHJldHJpZXZlZCBieSBvcF9nZXRfYXJn
dW1lbnQgb3Bjb2RlIGluc3RlYWQgb2YgY2hhbmdpbmcgYXJpdHkKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL3RlbXBsYXRlLXN0cmluZy10YWdzLWV2YWwuanMgYi9KU1Rlc3RzL3N0cmVzcy90
ZW1wbGF0ZS1zdHJpbmctdGFncy1ldmFsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxNmVkNmE4YWQ0NjE4NjY3
MTMwNGQ2YjljY2RiM2ViMmY2ZmFhNjIKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVz
cy90ZW1wbGF0ZS1zdHJpbmctdGFncy1ldmFsLmpzCkBAIC0wLDAgKzEsMTcgQEAKK2Z1bmN0aW9u
IHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpCit7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0
ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30K
KworZnVuY3Rpb24gdGFnKHNpdGUpCit7CisgICAgcmV0dXJuIHNpdGU7Cit9CisKK3ZhciBzaXRl
MSA9IGV2YWwoIjAsIHRhZ2BDb2NvYWAiKTsKK3ZhciBzaXRlMiA9IGV2YWwoIjEsIHRhZ2BDYXBw
dWNjaW5vYCIpOwordmFyIHNpdGUzID0gZXZhbCgiMiwgdGFnYENvY29hYCIpOworCitzaG91bGRC
ZShzaXRlMSA9PT0gc2l0ZTMsIHRydWUpOworc2hvdWxkQmUoc2l0ZTEgIT09IHNpdGUyLCB0cnVl
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304673</attachid>
            <date>2017-03-16 12:30:10 -0700</date>
            <delta_ts>2017-03-16 12:34:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169743-20170317043009.patch</filename>
            <type>text/plain</type>
            <size>19187</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0MDYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NDY0YzIxNWEwZTBlOTJkMTk3NDk0MDIzNzJjNDhhZmRmMzFkM2Q0Li4zOTJkNGZhYTM0ZDQzMmJl
N2EwZGNhNWJlZGNkYWQwNGVhNjIxOWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxNy0wMy0xNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBHZW5lcmF0ZSBUZW1wbGF0ZU9iamVjdHMgYXQgbGlua2lu
ZyB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Njk3NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
dXJyZW50bHksIHRoZSBjb2RlIGNhbGxzIGdldFRlbXBsYXRlT2JqZWN0IHRvIGdldCBhcHByb3By
aWF0ZSB0ZW1wbGF0ZSBvYmplY3RzIGF0IHJ1bnRpbWUuCisgICAgICAgIEJ1dCB0aGlzIHRlbXBs
YXRlIG9iamVjdCBpcyBjb25zdGFudCB2YWx1ZSBhbmQgbmV2ZXIgY2hhbmdlZC4gU28gaW5zdGVh
ZCBvZiBjcmVhdGluZyBpdAorICAgICAgICBhdCBydW50aW1lLCB3ZSBzaG91bGQgY3JlYXRlIGl0
IGF0IGxpbmtpbmcgdGltZSBhbmQgc3RvcmUgaXQgaW4gdGhlIGNvbnN0YW50IHJlZ2lzdGVycy4K
KworICAgICAgICAqIGJ1aWx0aW5zL0J1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGJ5dGVjb2Rl
L0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZmluaXNoQ3JlYXRpb24p
OgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnNldENvbnN0YW50UmVnaXN0ZXJzKToKKyAgICAg
ICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKiBieXRlY29kZS9VbmxpbmtlZENv
ZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OlVubGlua2VkQ29kZUJsb2NrOjpzaHJpbmtUb0Zp
dCk6CisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suaDoKKyAgICAgICAgKiBi
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29k
ZUdlbmVyYXRvcjo6YWRkVGVtcGxhdGVSZWdpc3RyeUtleUNvbnN0YW50KToKKyAgICAgICAgKEpT
Qzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRHZXRUZW1wbGF0ZU9iamVjdCk6CisgICAgICAgICog
Ynl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmg6CisgICAgICAgICogYnl0ZWNvbXBpbGVy
L05vZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OlRhZ2dlZFRlbXBsYXRlTm9kZTo6ZW1p
dEJ5dGVjb2RlKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmluaXQpOgorICAgICAgICAoSlNDOjpnZXRUZW1wbGF0
ZU9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU1RlbXBsYXRlUmVnaXN0cnlL
ZXkuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNUZW1wbGF0ZVJlZ2lzdHJ5S2V5Lmg6CisgICAg
ICAgIChKU0M6OmlzVGVtcGxhdGVSZWdpc3RyeUtleSk6CisKIDIwMTctMDMtMTYgIEpvbiBMZWUg
IDxqb25sZWVAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBGSVhNRXMgdG8gdXBkYXRlIFdlYlJU
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1l
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCmluZGV4
IGRmOTNlMGZmNTcwYmE2MGJlOGVjNmFhZGFlNTNiOTU3YWMxNmI1M2EuLmEyYzE0MTcwYWFmMzky
NTE4OWFkMDdhYTJmNTM3YjRlN2U2NDVlMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKQEAgLTgwLDcgKzgwLDYgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgbWFjcm8odHlwZWRBcnJheVN1YmFycmF5Q3JlYXRlKSBcCiAgICAgbWFjcm8oQnVpbHRp
bkxvZykgXAogICAgIG1hY3JvKGhvbWVPYmplY3QpIFwKLSAgICBtYWNybyhnZXRUZW1wbGF0ZU9i
amVjdCkgXAogICAgIG1hY3JvKHRlbXBsYXRlUmVnaXN0cnlLZXkpIFwKICAgICBtYWNybyhlbnF1
ZXVlSm9iKSBcCiAgICAgbWFjcm8ocHJvbWlzZVN0YXRlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IDI4MGM5NzUzYWFmODQ3NzMzMDFkMmE5
NzdjZmY0NTM4MDg1YmU0NzYuLmVkYmIzZWRkZDg0NGRlZTQxMjk4YTBjM2MwYTc0ZDU5NDQwYmU3
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBA
IC02MCw2ICs2MCw3IEBACiAjaW5jbHVkZSAiSlNNb2R1bGVFbnZpcm9ubWVudC5oIgogI2luY2x1
ZGUgIkpTU2V0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJKU1RlbXBsYXRl
UmVnaXN0cnlLZXkuaCIKICNpbmNsdWRlICJMTEludERhdGEuaCIKICNpbmNsdWRlICJMTEludEVu
dHJ5cG9pbnQuaCIKICNpbmNsdWRlICJMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVy
ZVdhdGNocG9pbnQuaCIKQEAgLTQwNCw4ICs0MDUsNyBAQCBib29sIENvZGVCbG9jazo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtLCBTY3JpcHRFeGVjdXRhYmxlKiBvd25lckV4ZWN1dGFibGUsIFVubGlu
awogICAgIGlmICh2bS50eXBlUHJvZmlsZXIoKSB8fCB2bS5jb250cm9sRmxvd1Byb2ZpbGVyKCkp
CiAgICAgICAgIHZtLmZ1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZSgpLT5yZW1vdmVVbmV4ZWN1dGVk
UmFuZ2Uob3duZXJFeGVjdXRhYmxlLT5zb3VyY2VJRCgpLCBvd25lckV4ZWN1dGFibGUtPnR5cGVQ
cm9maWxpbmdTdGFydE9mZnNldCgpLCBvd25lckV4ZWN1dGFibGUtPnR5cGVQcm9maWxpbmdFbmRP
ZmZzZXQoKSk7CiAKLSAgICBzZXRDb25zdGFudFJlZ2lzdGVycyh1bmxpbmtlZENvZGVCbG9jay0+
Y29uc3RhbnRSZWdpc3RlcnMoKSwgdW5saW5rZWRDb2RlQmxvY2stPmNvbnN0YW50c1NvdXJjZUNv
ZGVSZXByZXNlbnRhdGlvbigpKTsKLSAgICBpZiAoIXNldENvbnN0YW50SWRlbnRpZmllclNldFJl
Z2lzdGVycyh2bSwgdW5saW5rZWRDb2RlQmxvY2stPmNvbnN0YW50SWRlbnRpZmllclNldHMoKSkp
CisgICAgaWYgKCFzZXRDb25zdGFudFJlZ2lzdGVycyh1bmxpbmtlZENvZGVCbG9jay0+Y29uc3Rh
bnRSZWdpc3RlcnMoKSwgdW5saW5rZWRDb2RlQmxvY2stPmNvbnN0YW50c1NvdXJjZUNvZGVSZXBy
ZXNlbnRhdGlvbigpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICh1bmxpbmtlZENv
ZGVCbG9jay0+dXNlc0dsb2JhbE9iamVjdCgpKQogICAgICAgICBtX2NvbnN0YW50UmVnaXN0ZXJz
W3VubGlua2VkQ29kZUJsb2NrLT5nbG9iYWxPYmplY3RSZWdpc3RlcigpLnRvQ29uc3RhbnRJbmRl
eCgpXS5zZXQoKm1fdm0sIHRoaXMsIG1fZ2xvYmFsT2JqZWN0LmdldCgpKTsKQEAgLTg5MCw4ICs4
OTAsMTIgQEAgYm9vbCBDb2RlQmxvY2s6OnNldENvbnN0YW50SWRlbnRpZmllclNldFJlZ2lzdGVy
cyhWTSYgdm0sIGNvbnN0IFZlY3RvcjxDb25zdGFudEkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
dm9pZCBDb2RlQmxvY2s6OnNldENvbnN0YW50UmVnaXN0ZXJzKGNvbnN0IFZlY3RvcjxXcml0ZUJh
cnJpZXI8VW5rbm93bj4+JiBjb25zdGFudHMsIGNvbnN0IFZlY3RvcjxTb3VyY2VDb2RlUmVwcmVz
ZW50YXRpb24+JiBjb25zdGFudHNTb3VyY2VDb2RlUmVwcmVzZW50YXRpb24pCitib29sIENvZGVC
bG9jazo6c2V0Q29uc3RhbnRSZWdpc3RlcnMoY29uc3QgVmVjdG9yPFdyaXRlQmFycmllcjxVbmtu
b3duPj4mIGNvbnN0YW50cywgY29uc3QgVmVjdG9yPFNvdXJjZUNvZGVSZXByZXNlbnRhdGlvbj4m
IGNvbnN0YW50c1NvdXJjZUNvZGVSZXByZXNlbnRhdGlvbikKIHsKKyAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSgqbV92bSk7CisgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCA9IG1fZ2xvYmFsT2JqZWN0LmdldCgpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2Jh
bE9iamVjdC0+Z2xvYmFsRXhlYygpOworCiAgICAgQVNTRVJUKGNvbnN0YW50cy5zaXplKCkgPT0g
Y29uc3RhbnRzU291cmNlQ29kZVJlcHJlc2VudGF0aW9uLnNpemUoKSk7CiAgICAgc2l6ZV90IGNv
dW50ID0gY29uc3RhbnRzLnNpemUoKTsKICAgICBtX2NvbnN0YW50UmVnaXN0ZXJzLnJlc2l6ZVRv
Rml0KGNvdW50KTsKQEAgLTkwMCw3ICs5MDQsNyBAQCB2b2lkIENvZGVCbG9jazo6c2V0Q29uc3Rh
bnRSZWdpc3RlcnMoY29uc3QgVmVjdG9yPFdyaXRlQmFycmllcjxVbmtub3duPj4mIGNvbnN0YQog
ICAgICAgICBKU1ZhbHVlIGNvbnN0YW50ID0gY29uc3RhbnRzW2ldLmdldCgpOwogCiAgICAgICAg
IGlmICghY29uc3RhbnQuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBpZiAoU3ltYm9sVGFibGUq
IHN5bWJvbFRhYmxlID0ganNEeW5hbWljQ2FzdDxTeW1ib2xUYWJsZSo+KCp2bSgpLCBjb25zdGFu
dCkpIHsKKyAgICAgICAgICAgIGlmIChTeW1ib2xUYWJsZSogc3ltYm9sVGFibGUgPSBqc0R5bmFt
aWNDYXN0PFN5bWJvbFRhYmxlKj4oKm1fdm0sIGNvbnN0YW50KSkgewogICAgICAgICAgICAgICAg
IGlmIChoYXNUeXBlUHJvZmlsZXIpIHsKICAgICAgICAgICAgICAgICAgICAgQ29uY3VycmVudEpT
TG9ja2VyIGxvY2tlcihzeW1ib2xUYWJsZS0+bV9sb2NrKTsKICAgICAgICAgICAgICAgICAgICAg
c3ltYm9sVGFibGUtPnByZXBhcmVGb3JUeXBlUHJvZmlsaW5nKGxvY2tlcik7CkBAIC05MTEsNiAr
OTE1LDEwIEBAIHZvaWQgQ29kZUJsb2NrOjpzZXRDb25zdGFudFJlZ2lzdGVycyhjb25zdCBWZWN0
b3I8V3JpdGVCYXJyaWVyPFVua25vd24+PiYgY29uc3RhCiAgICAgICAgICAgICAgICAgICAgIGNs
b25lLT5zZXRSYXJlRGF0YUNvZGVCbG9jayh0aGlzKTsKIAogICAgICAgICAgICAgICAgIGNvbnN0
YW50ID0gY2xvbmU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGlzVGVtcGxhdGVSZWdpc3RyeUtl
eSgqbV92bSwgY29uc3RhbnQpKSB7CisgICAgICAgICAgICAgICAgYXV0byogdGVtcGxhdGVPYmpl
Y3QgPSBnbG9iYWxPYmplY3QtPnRlbXBsYXRlUmVnaXN0cnkoKS5nZXRUZW1wbGF0ZU9iamVjdChl
eGVjLCBqc0Nhc3Q8SlNUZW1wbGF0ZVJlZ2lzdHJ5S2V5Kj4oY29uc3RhbnQpKTsKKyAgICAgICAg
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CisgICAgICAgICAgICAg
ICAgY29uc3RhbnQgPSB0ZW1wbGF0ZU9iamVjdDsKICAgICAgICAgICAgIH0KICAgICAgICAgfQog
CkBAIC05MTgsNiArOTI2LDkgQEAgdm9pZCBDb2RlQmxvY2s6OnNldENvbnN0YW50UmVnaXN0ZXJz
KGNvbnN0IFZlY3RvcjxXcml0ZUJhcnJpZXI8VW5rbm93bj4+JiBjb25zdGEKICAgICB9CiAKICAg
ICBtX2NvbnN0YW50c1NvdXJjZUNvZGVSZXByZXNlbnRhdGlvbiA9IGNvbnN0YW50c1NvdXJjZUNv
ZGVSZXByZXNlbnRhdGlvbjsKKworICAgIHNjb3BlLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gdHJ1
ZTsKIH0KIAogdm9pZCBDb2RlQmxvY2s6OnNldEFsdGVybmF0aXZlKFZNJiB2bSwgQ29kZUJsb2Nr
KiBhbHRlcm5hdGl2ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
aAppbmRleCBiNDc4YjM0MWI2NmFhMWU0M2I0YmM3MjEzZWFmMGQ0MGE5MmI1YjE2Li4zOTVlNzQ4
Nzk5ODFmN2EwNDZmODFlYzI3Y2E1ZGQ2ZjRhNmZmMWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCkBAIC05MjEsNyArOTIxLDcgQEAgY2xhc3MgQ29kZUJs
b2NrIDogcHVibGljIEpTQ2VsbCB7CiAKICAgICBib29sIHNldENvbnN0YW50SWRlbnRpZmllclNl
dFJlZ2lzdGVycyhWTSYsIGNvbnN0IFZlY3RvcjxDb25zdGFudEluZGVudGlmaWVyU2V0RW50cnk+
JiBjb25zdGFudHMpOwogCi0gICAgdm9pZCBzZXRDb25zdGFudFJlZ2lzdGVycyhjb25zdCBWZWN0
b3I8V3JpdGVCYXJyaWVyPFVua25vd24+PiYgY29uc3RhbnRzLCBjb25zdCBWZWN0b3I8U291cmNl
Q29kZVJlcHJlc2VudGF0aW9uPiYgY29uc3RhbnRzU291cmNlQ29kZVJlcHJlc2VudGF0aW9uKTsK
KyAgICBib29sIHNldENvbnN0YW50UmVnaXN0ZXJzKGNvbnN0IFZlY3RvcjxXcml0ZUJhcnJpZXI8
VW5rbm93bj4+JiBjb25zdGFudHMsIGNvbnN0IFZlY3RvcjxTb3VyY2VDb2RlUmVwcmVzZW50YXRp
b24+JiBjb25zdGFudHNTb3VyY2VDb2RlUmVwcmVzZW50YXRpb24pOwogCiAgICAgdm9pZCByZXBs
YWNlQ29uc3RhbnQoaW50IGluZGV4LCBKU1ZhbHVlIHZhbHVlKQogICAgIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCmluZGV4
IDFjNzFhYTZlNDUzM2Q1M2NkMmM0NGZlZTAyMWFjM2VmMzMwOTlmYjkuLmVmZGRiMjMzMTAxZGMz
MDkyNjlhOWRhNzQyMTZiZTczYjQ2MGY1NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcApAQCAtNDEwLDYgKzQxMCw3IEBA
IHZvaWQgVW5saW5rZWRDb2RlQmxvY2s6OnNocmlua1RvRml0KCkKICAgICAgICAgbV9yYXJlRGF0
YS0+bV9zd2l0Y2hKdW1wVGFibGVzLnNocmlua1RvRml0KCk7CiAgICAgICAgIG1fcmFyZURhdGEt
Pm1fc3RyaW5nU3dpdGNoSnVtcFRhYmxlcy5zaHJpbmtUb0ZpdCgpOwogICAgICAgICBtX3JhcmVE
YXRhLT5tX2V4cHJlc3Npb25JbmZvRmF0UG9zaXRpb25zLnNocmlua1RvRml0KCk7CisgICAgICAg
IG1fcmFyZURhdGEtPm1fb3BQcm9maWxlQ29udHJvbEZsb3dCeXRlY29kZU9mZnNldHMuc2hyaW5r
VG9GaXQoKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1VubGlua2VkQ29kZUJsb2NrLmgKaW5kZXggYTJmYjExODRmZjQxYjFkNDM0Yzg1ZDgzZjhh
MDc5M2NiYTI2OGNkMy4uMzYzMGZkZDVjNDUzZmZhYTA3NTM3YTMzYzg5NmNkOGU1YTVlYmNmZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJs
b2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJs
b2NrLmgKQEAgLTIyMCw2ICsyMjAsNyBAQCBjbGFzcyBVbmxpbmtlZENvZGVCbG9jayA6IHB1Ymxp
YyBKU0NlbGwgewogICAgICAgICBtX2NvbnN0YW50c1NvdXJjZUNvZGVSZXByZXNlbnRhdGlvbi5h
cHBlbmQoU291cmNlQ29kZVJlcHJlc2VudGF0aW9uOjpPdGhlcik7CiAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAgICAgfQorCiAgICAgdW5zaWduZWQgcmVnaXN0ZXJJbmRleEZvckxpbmtUaW1lQ29u
c3RhbnQoTGlua1RpbWVDb25zdGFudCB0eXBlKQogICAgIHsKICAgICAgICAgdW5zaWduZWQgaW5k
ZXggPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IGUy
ZjFjOThiYmQ0YTg2MDE1ODEwNzlkZjAzMzIwMjhkMDJiZTUzMzYuLjQ0MDc0ZGJmMjU0MDczMmRi
ZTQ5MzdjOTViYmI5MDAxYzRhY2Q1MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC0zMDYwLDEyICsz
MDYwLDE1IEBAIEpTU3RyaW5nKiBCeXRlY29kZUdlbmVyYXRvcjo6YWRkU3RyaW5nQ29uc3RhbnQo
Y29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcikKICAgICByZXR1cm4gc3RyaW5nSW5NYXA7CiB9
CiAKLUpTVGVtcGxhdGVSZWdpc3RyeUtleSogQnl0ZWNvZGVHZW5lcmF0b3I6OmFkZFRlbXBsYXRl
UmVnaXN0cnlLZXlDb25zdGFudChSZWY8VGVtcGxhdGVSZWdpc3RyeUtleT4mJiB0ZW1wbGF0ZVJl
Z2lzdHJ5S2V5KQorUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmFkZFRlbXBsYXRlUmVn
aXN0cnlLZXlDb25zdGFudChSZWY8VGVtcGxhdGVSZWdpc3RyeUtleT4mJiB0ZW1wbGF0ZVJlZ2lz
dHJ5S2V5KQogewogICAgIHJldHVybiBtX3RlbXBsYXRlUmVnaXN0cnlLZXlNYXAuZW5zdXJlKHRl
bXBsYXRlUmVnaXN0cnlLZXkuY29weVJlZigpLCBbJl0gewogICAgICAgICBhdXRvKiByZXN1bHQg
PSBKU1RlbXBsYXRlUmVnaXN0cnlLZXk6OmNyZWF0ZSgqdm0oKSwgV1RGTW92ZSh0ZW1wbGF0ZVJl
Z2lzdHJ5S2V5KSk7Ci0gICAgICAgIGFkZENvbnN0YW50VmFsdWUocmVzdWx0KTsKLSAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICAgdW5zaWduZWQgaW5kZXggPSBtX25leHRDb25zdGFudE9m
ZnNldDsKKyAgICAgICAgbV9jb25zdGFudFBvb2xSZWdpc3RlcnMuYXBwZW5kKEZpcnN0Q29uc3Rh
bnRSZWdpc3RlckluZGV4ICsgbV9uZXh0Q29uc3RhbnRPZmZzZXQpOworICAgICAgICArK21fbmV4
dENvbnN0YW50T2Zmc2V0OworICAgICAgICBtX2NvZGVCbG9jay0+YWRkQ29uc3RhbnQocmVzdWx0
KTsKKyAgICAgICAgcmV0dXJuICZtX2NvbnN0YW50UG9vbFJlZ2lzdGVyc1tpbmRleF07CiAgICAg
fSkuaXRlcmF0b3ItPnZhbHVlOwogfQogCkBAIC00MzE0LDExICs0MzE3LDEwIEBAIFJlZ2lzdGVy
SUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0VGVtcGxhdGVPYmplY3QoUmVnaXN0ZXJJRCog
ZHN0LCBUYWdnZWRUZW1wCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGNvb2tlZFN0cmluZ3Mu
YXBwZW5kKHN0cmluZy0+Y29va2VkKCktPmltcGwoKSk7CiAgICAgfQotCi0gICAgUmVmUHRyPFJl
Z2lzdGVySUQ+IGdldFRlbXBsYXRlT2JqZWN0ID0gZW1pdEdldEdsb2JhbFByaXZhdGUobmV3VGVt
cG9yYXJ5KCksIHByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5nZXRUZW1wbGF0ZU9iamVj
dFByaXZhdGVOYW1lKCkpOwotICAgIENhbGxBcmd1bWVudHMgYXJndW1lbnRzKCp0aGlzLCBudWxs
cHRyKTsKLSAgICBlbWl0TG9hZChhcmd1bWVudHMudGhpc1JlZ2lzdGVyKCksIEpTVmFsdWUoYWRk
VGVtcGxhdGVSZWdpc3RyeUtleUNvbnN0YW50KG1fdm0tPnRlbXBsYXRlUmVnaXN0cnlLZXlUYWJs
ZSgpLmNyZWF0ZUtleShXVEZNb3ZlKHJhd1N0cmluZ3MpLCBXVEZNb3ZlKGNvb2tlZFN0cmluZ3Mp
KSkpKTsKLSAgICByZXR1cm4gZW1pdENhbGwoZHN0LCBnZXRUZW1wbGF0ZU9iamVjdC5nZXQoKSwg
Tm9FeHBlY3RlZEZ1bmN0aW9uLCBhcmd1bWVudHMsIHRhZ2dlZFRlbXBsYXRlLT5kaXZvdCgpLCB0
YWdnZWRUZW1wbGF0ZS0+ZGl2b3RTdGFydCgpLCB0YWdnZWRUZW1wbGF0ZS0+ZGl2b3RFbmQoKSwg
RGVidWdnYWJsZUNhbGw6Ok5vKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gY29uc3RhbnQgPSBh
ZGRUZW1wbGF0ZVJlZ2lzdHJ5S2V5Q29uc3RhbnQobV92bS0+dGVtcGxhdGVSZWdpc3RyeUtleVRh
YmxlKCkuY3JlYXRlS2V5KFdURk1vdmUocmF3U3RyaW5ncyksIFdURk1vdmUoY29va2VkU3RyaW5n
cykpKTsKKyAgICBpZiAoIWRzdCkKKyAgICAgICAgcmV0dXJuIGNvbnN0YW50LmdldCgpOworICAg
IHJldHVybiBlbWl0TW92ZShkc3QsIGNvbnN0YW50LmdldCgpKTsKIH0KIAogUmVnaXN0ZXJJRCog
Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRHZXRHbG9iYWxQcml2YXRlKFJlZ2lzdGVySUQqIGRzdCwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKaW5kZXggMDMyOTIxM2E1ODg3
ZDlhM2ZjMWJjZjUwZDEyOTAzYmJjMDI1NTdhZS4uMTZhMzBhMDY4MDFhNTBhMWRhNTkzNWEzZjli
YTAwZWQwYzkzN2ZkNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21w
aWxlci9CeXRlY29kZUdlbmVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaApAQCAtOTQzLDcgKzk0Myw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgICAgIHR5cGVkZWYgSGFzaE1hcDxkb3VibGUsIEpTVmFsdWU+IE51bWJl
ck1hcDsKICAgICAgICAgdHlwZWRlZiBIYXNoTWFwPFVuaXF1ZWRTdHJpbmdJbXBsKiwgSlNTdHJp
bmcqLCBJZGVudGlmaWVyUmVwSGFzaD4gSWRlbnRpZmllclN0cmluZ01hcDsKLSAgICAgICAgdHlw
ZWRlZiBIYXNoTWFwPFJlZjxUZW1wbGF0ZVJlZ2lzdHJ5S2V5PiwgSlNUZW1wbGF0ZVJlZ2lzdHJ5
S2V5Kj4gVGVtcGxhdGVSZWdpc3RyeUtleU1hcDsKKyAgICAgICAgdHlwZWRlZiBIYXNoTWFwPFJl
ZjxUZW1wbGF0ZVJlZ2lzdHJ5S2V5PiwgUmVnaXN0ZXJJRCo+IFRlbXBsYXRlUmVnaXN0cnlLZXlN
YXA7CiAgICAgICAgIAogICAgICAgICAvLyBIZWxwZXIgZm9yIGVtaXRDYWxsKCkgYW5kIGVtaXRD
b25zdHJ1Y3QoKS4gVGhpcyB3b3JrcyBiZWNhdXNlIHRoZSBzZXQgb2YKICAgICAgICAgLy8gZXhw
ZWN0ZWQgZnVuY3Rpb25zIGhhdmUgaWRlbnRpY2FsIGJlaGF2aW9yIGZvciBib3RoIGNhbGwgYW5k
IGNvbnN0cnVjdApAQCAtMTAyOCw3ICsxMDI4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBw
dWJsaWM6CiAgICAgICAgIEpTU3RyaW5nKiBhZGRTdHJpbmdDb25zdGFudChjb25zdCBJZGVudGlm
aWVyJik7Ci0gICAgICAgIEpTVGVtcGxhdGVSZWdpc3RyeUtleSogYWRkVGVtcGxhdGVSZWdpc3Ry
eUtleUNvbnN0YW50KFJlZjxUZW1wbGF0ZVJlZ2lzdHJ5S2V5PiYmKTsKKyAgICAgICAgUmVnaXN0
ZXJJRCogYWRkVGVtcGxhdGVSZWdpc3RyeUtleUNvbnN0YW50KFJlZjxUZW1wbGF0ZVJlZ2lzdHJ5
S2V5PiYmKTsKIAogICAgICAgICBWZWN0b3I8VW5saW5rZWRJbnN0cnVjdGlvbiwgMCwgVW5zYWZl
VmVjdG9yT3ZlcmZsb3c+JiBpbnN0cnVjdGlvbnMoKSB7IHJldHVybiBtX2luc3RydWN0aW9uczsg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVz
Q29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29k
ZWdlbi5jcHAKaW5kZXggZGQ4ZTU3NWI0Yzc0Nzk4ZTNmMmIxZjI1MTc4NzFhMDg4NzJkYWY0ZC4u
YzkyOWVjN2MyMzVkNTA2NmVlNWZjNzQ5NzFiNWIxMTE5ZTMyOThiMiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtMzQ0
LDcgKzM0NCw3IEBAIFJlZ2lzdGVySUQqIFRhZ2dlZFRlbXBsYXRlTm9kZTo6ZW1pdEJ5dGVjb2Rl
KEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzCiAgICAgICAgICAgICB0YWcgPSBn
ZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBiYXNlLmdldCgp
LCBkb3QtPmlkZW50aWZpZXIoKSk7CiAgICAgfQogCi0gICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHRl
bXBsYXRlT2JqZWN0ID0gZ2VuZXJhdG9yLmVtaXRHZXRUZW1wbGF0ZU9iamVjdChnZW5lcmF0b3Iu
bmV3VGVtcG9yYXJ5KCksIHRoaXMpOworICAgIFJlZlB0cjxSZWdpc3RlcklEPiB0ZW1wbGF0ZU9i
amVjdCA9IGdlbmVyYXRvci5lbWl0R2V0VGVtcGxhdGVPYmplY3QobnVsbHB0ciwgdGhpcyk7CiAK
ICAgICB1bnNpZ25lZCBleHByZXNzaW9uc0NvdW50ID0gMDsKICAgICBmb3IgKFRlbXBsYXRlRXhw
cmVzc2lvbkxpc3ROb2RlKiB0ZW1wbGF0ZUV4cHJlc3Npb24gPSBtX3RlbXBsYXRlTGl0ZXJhbC0+
dGVtcGxhdGVFeHByZXNzaW9ucygpOyB0ZW1wbGF0ZUV4cHJlc3Npb247IHRlbXBsYXRlRXhwcmVz
c2lvbiA9IHRlbXBsYXRlRXhwcmVzc2lvbi0+bmV4dCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDhlNmVmNTg0YmQ4MzAwM2Iy
NDlmZDRkYWIyOTM2MWFjMTgxOGNlMzcuLjFjODRlYmQ3ZGY1YmM3NDEyMTYzMWE5OTUwN2U0YzRj
NWMzOGZlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAKQEAgLTI5OSwxNCArMjk5LDYgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9k
VGFibGUgSlNHbG9iYWxPYmplY3Q6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CiBAZW5k
CiAqLwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZXRUZW1wbGF0ZU9i
amVjdChFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50
aGlzVmFsdWUoKTsKLSAgICBBU1NFUlQodGhpc1ZhbHVlLmluaGVyaXRzKGV4ZWMtPnZtKCksIEpT
VGVtcGxhdGVSZWdpc3RyeUtleTo6aW5mbygpKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnRlbXBsYXRlUmVnaXN0cnkoKS5nZXRUZW1w
bGF0ZU9iamVjdChleGVjLCBqc0Nhc3Q8SlNUZW1wbGF0ZVJlZ2lzdHJ5S2V5Kj4odGhpc1ZhbHVl
KSkpOwotfQotCi0KIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGVucXVldWVK
b2IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CkBAIC03MzMs
NyArNzI1LDYgQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFt
ZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICBKU0Z1bmN0aW9uKiBwcml2
YXRlRnVuY0Zsb29yID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwg
bWF0aFByb3RvRnVuY0Zsb29yLCBGbG9vckludHJpbnNpYyk7CiAgICAgSlNGdW5jdGlvbiogcHJp
dmF0ZUZ1bmNUcnVuYyA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCks
IG1hdGhQcm90b0Z1bmNUcnVuYywgVHJ1bmNJbnRyaW5zaWMpOwogCi0gICAgSlNGdW5jdGlvbiog
cHJpdmF0ZUZ1bmNHZXRUZW1wbGF0ZU9iamVjdCA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhp
cywgMCwgU3RyaW5nKCksIGdldFRlbXBsYXRlT2JqZWN0KTsKICAgICBKU0Z1bmN0aW9uKiBwcml2
YXRlRnVuY0ltcG9ydE1vZHVsZSA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3Ry
aW5nKCksIGdsb2JhbEZ1bmNJbXBvcnRNb2R1bGUpOwogICAgIEpTRnVuY3Rpb24qIHByaXZhdGVG
dW5jVHlwZWRBcnJheUxlbmd0aCA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3Ry
aW5nKCksIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNMZW5ndGgpOwogICAgIEpTRnVuY3Rpb24q
IHByaXZhdGVGdW5jVHlwZWRBcnJheUdldE9yaWdpbmFsQ29uc3RydWN0b3IgPSBKU0Z1bmN0aW9u
OjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5j
R2V0T3JpZ2luYWxDb25zdHJ1Y3Rvcik7CkBAIC03ODcsNyArNzc4LDYgQEAgcHV0RGlyZWN0V2l0
aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAj
IyBDb25zdHJ1Y3QKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
PkluZmluaXR5LCBqc051bWJlcihzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5
KCkpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT51bmRlZmluZWRLZXl3b3JkLCBqc1VuZGVmaW5l
ZCgpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5vd25FbnVtZXJhYmxl
UHJvcGVydHlLZXlzUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAw
LCBTdHJpbmcoKSwgb3duRW51bWVyYWJsZVByb3BlcnR5S2V5cyksIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdldFRlbXBsYXRlT2JqZWN0UHJpdmF0ZU5hbWUoKSwgcHJp
dmF0ZUZ1bmNHZXRUZW1wbGF0ZU9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkuaW1wb3J0TW9kdWxlUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNJbXBvcnRNb2R1
bGUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmVucXVldWVKb2JQcml2
YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCBlbnF1
ZXVlSm9iKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuRXJyb3JQcml2
YXRlTmFtZSgpLCBtX2Vycm9yQ29uc3RydWN0b3IuZ2V0KCksIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTVGVtcGxhdGVSZWdpc3RyeUtleS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1RlbXBsYXRlUmVnaXN0cnlLZXkuY3BwCmluZGV4IDJmOThhYjFjYzE3NjU5MTNkN2FhZTNm
NTBmY2UwNTNmNWU1Nzk1YzguLjk0OWMyZjczYTJlNzZiN2NlMGM5YmQzY2FiOTIzMWE5ZTVlMjdj
Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVGVtcGxhdGVS
ZWdpc3RyeUtleS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUZW1w
bGF0ZVJlZ2lzdHJ5S2V5LmNwcApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsK
IAotY29uc3QgQ2xhc3NJbmZvIEpTVGVtcGxhdGVSZWdpc3RyeUtleTo6c19pbmZvID0geyAiVGVt
cGxhdGVSZWdpc3RyeUtleSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSlNUZW1wbGF0ZVJlZ2lzdHJ5S2V5KSB9OworY29uc3QgQ2xhc3NJbmZvIEpTVGVtcGxh
dGVSZWdpc3RyeUtleTo6c19pbmZvID0geyAiVGVtcGxhdGVSZWdpc3RyeUtleSIsIG51bGxwdHIs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZW1wbGF0ZVJlZ2lzdHJ5S2V5KSB9Owog
CiAKIEpTVGVtcGxhdGVSZWdpc3RyeUtleTo6SlNUZW1wbGF0ZVJlZ2lzdHJ5S2V5KFZNJiB2bSwg
UmVmPFRlbXBsYXRlUmVnaXN0cnlLZXk+JiYgdGVtcGxhdGVSZWdpc3RyeUtleSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVGVtcGxhdGVSZWdpc3RyeUtleS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUZW1wbGF0ZVJlZ2lzdHJ5S2V5LmgK
aW5kZXggYTg0MzY1MWM0OTYyMmFjYTM5MmQzNzFjNzkxMjU3Zjk0Y2U5ZmEyZC4uODY5NjI4YWJl
NDA5NDg0YzYwZmRhNDg5Mzg4OTA0ZDA1ZWJjNDMxZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNUZW1wbGF0ZVJlZ2lzdHJ5S2V5LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUZW1wbGF0ZVJlZ2lzdHJ5S2V5LmgKQEAgLTMxLDE5ICsz
MSwyMSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgSlNUZW1wbGF0ZVJlZ2lzdHJ5S2V5
IGZpbmFsIDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKK2NsYXNzIEpTVGVtcGxhdGVS
ZWdpc3RyeUtleSBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogcHVibGljOgotICAgIHR5cGVkZWYg
SlNEZXN0cnVjdGlibGVPYmplY3QgQmFzZTsKKyAgICB1c2luZyBCYXNlID0gSlNDZWxsOworCisg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRz
RGVzdHJ1Y3Rpb24gPSB0cnVlOworICAgIERFQ0xBUkVfSU5GTzsKIAogICAgIHN0YXRpYyBKU1Rl
bXBsYXRlUmVnaXN0cnlLZXkqIGNyZWF0ZShWTSYsIFJlZjxUZW1wbGF0ZVJlZ2lzdHJ5S2V5PiYm
KTsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBl
SW5mbyhDZWxsVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAotICAgIERF
Q0xBUkVfSU5GTzsKLQogICAgIGNvbnN0IFRlbXBsYXRlUmVnaXN0cnlLZXkmIHRlbXBsYXRlUmVn
aXN0cnlLZXkoKSBjb25zdCB7IHJldHVybiBtX3RlbXBsYXRlUmVnaXN0cnlLZXkuZ2V0KCk7IH0K
IAogcHJvdGVjdGVkOgpAQCAtNTUsNCArNTcsMTQgQEAgY2xhc3MgSlNUZW1wbGF0ZVJlZ2lzdHJ5
S2V5IGZpbmFsIDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKICAgICBSZWY8VGVtcGxh
dGVSZWdpc3RyeUtleT4gbV90ZW1wbGF0ZVJlZ2lzdHJ5S2V5OwogfTsKIAoraW5saW5lIGJvb2wg
aXNUZW1wbGF0ZVJlZ2lzdHJ5S2V5KFZNJiB2bSwgSlNDZWxsKiBjZWxsKQoreworICAgIHJldHVy
biBjZWxsLT5jbGFzc0luZm8odm0pID09IEpTVGVtcGxhdGVSZWdpc3RyeUtleTo6aW5mbygpOwor
fQorCitpbmxpbmUgYm9vbCBpc1RlbXBsYXRlUmVnaXN0cnlLZXkoVk0mIHZtLCBKU1ZhbHVlIHYp
Cit7CisgICAgcmV0dXJuIHYuaXNDZWxsKCkgJiYgaXNUZW1wbGF0ZVJlZ2lzdHJ5S2V5KHZtLCB2
LmFzQ2VsbCgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDcxMmI0ZGM3ODM2YzY2ZTE0MTZm
MjMzNTY0MTdkMGNhZDczN2ZhZWMuLmYwNjBlMjZlMWQyMmMzYjk5NTE1M2NlNDNiZmM1NmEyOTZm
MzNkZWMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDMtMTYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0pTQ10gR2VuZXJhdGUgVGVtcGxhdGVPYmplY3Rz
IGF0IGxpbmtpbmcgdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY5NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBzdHJlc3MvdGVtcGxhdGUtc3RyaW5nLXRhZ3MtZXZhbC5qczogQWRkZWQuCisg
ICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0YWcpOgorCiAyMDE3LTAzLTE2ICBDYWlvIExp
bWEgIDx0aWNhaW9saW1hQGdtYWlsLmNvbT4KIAogICAgICAgICBbRVNuZXh0XSBJbXBsZW1lbnQg
T2JqZWN0IFNwcmVhZApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdGVtcGxhdGUtc3RyaW5n
LXRhZ3MtZXZhbC5qcyBiL0pTVGVzdHMvc3RyZXNzL3RlbXBsYXRlLXN0cmluZy10YWdzLWV2YWwu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDE2ZWQ2YThhZDQ2MTg2NjcxMzA0ZDZiOWNjZGIzZWIyZjZmYWE2Mgot
LS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL3RlbXBsYXRlLXN0cmluZy10YWdzLWV2
YWwuanMKQEAgLTAsMCArMSwxNyBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3Rl
ZCkKK3sKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0YWcoc2l0ZSkKK3sK
KyAgICByZXR1cm4gc2l0ZTsKK30KKwordmFyIHNpdGUxID0gZXZhbCgiMCwgdGFnYENvY29hYCIp
OwordmFyIHNpdGUyID0gZXZhbCgiMSwgdGFnYENhcHB1Y2Npbm9gIik7Cit2YXIgc2l0ZTMgPSBl
dmFsKCIyLCB0YWdgQ29jb2FgIik7CisKK3Nob3VsZEJlKHNpdGUxID09PSBzaXRlMywgdHJ1ZSk7
CitzaG91bGRCZShzaXRlMSAhPT0gc2l0ZTIsIHRydWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304674</attachid>
            <date>2017-03-16 12:34:41 -0700</date>
            <delta_ts>2017-04-04 10:57:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169743-20170317043439.patch</filename>
            <type>text/plain</type>
            <size>19080</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0MDYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NDY0YzIxNWEwZTBlOTJkMTk3NDk0MDIzNzJjNDhhZmRmMzFkM2Q0Li4zOTJkNGZhYTM0ZDQzMmJl
N2EwZGNhNWJlZGNkYWQwNGVhNjIxOWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxNy0wMy0xNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBHZW5lcmF0ZSBUZW1wbGF0ZU9iamVjdHMgYXQgbGlua2lu
ZyB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Njk3NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
dXJyZW50bHksIHRoZSBjb2RlIGNhbGxzIGdldFRlbXBsYXRlT2JqZWN0IHRvIGdldCBhcHByb3By
aWF0ZSB0ZW1wbGF0ZSBvYmplY3RzIGF0IHJ1bnRpbWUuCisgICAgICAgIEJ1dCB0aGlzIHRlbXBs
YXRlIG9iamVjdCBpcyBjb25zdGFudCB2YWx1ZSBhbmQgbmV2ZXIgY2hhbmdlZC4gU28gaW5zdGVh
ZCBvZiBjcmVhdGluZyBpdAorICAgICAgICBhdCBydW50aW1lLCB3ZSBzaG91bGQgY3JlYXRlIGl0
IGF0IGxpbmtpbmcgdGltZSBhbmQgc3RvcmUgaXQgaW4gdGhlIGNvbnN0YW50IHJlZ2lzdGVycy4K
KworICAgICAgICAqIGJ1aWx0aW5zL0J1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGJ5dGVjb2Rl
L0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZmluaXNoQ3JlYXRpb24p
OgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnNldENvbnN0YW50UmVnaXN0ZXJzKToKKyAgICAg
ICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKiBieXRlY29kZS9VbmxpbmtlZENv
ZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OlVubGlua2VkQ29kZUJsb2NrOjpzaHJpbmtUb0Zp
dCk6CisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suaDoKKyAgICAgICAgKiBi
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29k
ZUdlbmVyYXRvcjo6YWRkVGVtcGxhdGVSZWdpc3RyeUtleUNvbnN0YW50KToKKyAgICAgICAgKEpT
Qzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRHZXRUZW1wbGF0ZU9iamVjdCk6CisgICAgICAgICog
Ynl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmg6CisgICAgICAgICogYnl0ZWNvbXBpbGVy
L05vZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OlRhZ2dlZFRlbXBsYXRlTm9kZTo6ZW1p
dEJ5dGVjb2RlKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmluaXQpOgorICAgICAgICAoSlNDOjpnZXRUZW1wbGF0
ZU9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU1RlbXBsYXRlUmVnaXN0cnlL
ZXkuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNUZW1wbGF0ZVJlZ2lzdHJ5S2V5Lmg6CisgICAg
ICAgIChKU0M6OmlzVGVtcGxhdGVSZWdpc3RyeUtleSk6CisKIDIwMTctMDMtMTYgIEpvbiBMZWUg
IDxqb25sZWVAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBGSVhNRXMgdG8gdXBkYXRlIFdlYlJU
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1l
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCmluZGV4
IGRmOTNlMGZmNTcwYmE2MGJlOGVjNmFhZGFlNTNiOTU3YWMxNmI1M2EuLmEyYzE0MTcwYWFmMzky
NTE4OWFkMDdhYTJmNTM3YjRlN2U2NDVlMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKQEAgLTgwLDcgKzgwLDYgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgbWFjcm8odHlwZWRBcnJheVN1YmFycmF5Q3JlYXRlKSBcCiAgICAgbWFjcm8oQnVpbHRp
bkxvZykgXAogICAgIG1hY3JvKGhvbWVPYmplY3QpIFwKLSAgICBtYWNybyhnZXRUZW1wbGF0ZU9i
amVjdCkgXAogICAgIG1hY3JvKHRlbXBsYXRlUmVnaXN0cnlLZXkpIFwKICAgICBtYWNybyhlbnF1
ZXVlSm9iKSBcCiAgICAgbWFjcm8ocHJvbWlzZVN0YXRlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IDI4MGM5NzUzYWFmODQ3NzMzMDFkMmE5
NzdjZmY0NTM4MDg1YmU0NzYuLjU5MWMwNmJiZWIxMjI5MzQwYTAzMDUwYTk2NDg1YzZkNDQyYjFi
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBA
IC02MCw2ICs2MCw3IEBACiAjaW5jbHVkZSAiSlNNb2R1bGVFbnZpcm9ubWVudC5oIgogI2luY2x1
ZGUgIkpTU2V0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJKU1RlbXBsYXRl
UmVnaXN0cnlLZXkuaCIKICNpbmNsdWRlICJMTEludERhdGEuaCIKICNpbmNsdWRlICJMTEludEVu
dHJ5cG9pbnQuaCIKICNpbmNsdWRlICJMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVy
ZVdhdGNocG9pbnQuaCIKQEAgLTQwNCw3ICs0MDUsOCBAQCBib29sIENvZGVCbG9jazo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtLCBTY3JpcHRFeGVjdXRhYmxlKiBvd25lckV4ZWN1dGFibGUsIFVubGlu
awogICAgIGlmICh2bS50eXBlUHJvZmlsZXIoKSB8fCB2bS5jb250cm9sRmxvd1Byb2ZpbGVyKCkp
CiAgICAgICAgIHZtLmZ1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZSgpLT5yZW1vdmVVbmV4ZWN1dGVk
UmFuZ2Uob3duZXJFeGVjdXRhYmxlLT5zb3VyY2VJRCgpLCBvd25lckV4ZWN1dGFibGUtPnR5cGVQ
cm9maWxpbmdTdGFydE9mZnNldCgpLCBvd25lckV4ZWN1dGFibGUtPnR5cGVQcm9maWxpbmdFbmRP
ZmZzZXQoKSk7CiAKLSAgICBzZXRDb25zdGFudFJlZ2lzdGVycyh1bmxpbmtlZENvZGVCbG9jay0+
Y29uc3RhbnRSZWdpc3RlcnMoKSwgdW5saW5rZWRDb2RlQmxvY2stPmNvbnN0YW50c1NvdXJjZUNv
ZGVSZXByZXNlbnRhdGlvbigpKTsKKyAgICBpZiAoIXNldENvbnN0YW50UmVnaXN0ZXJzKHVubGlu
a2VkQ29kZUJsb2NrLT5jb25zdGFudFJlZ2lzdGVycygpLCB1bmxpbmtlZENvZGVCbG9jay0+Y29u
c3RhbnRzU291cmNlQ29kZVJlcHJlc2VudGF0aW9uKCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgaWYgKCFzZXRDb25zdGFudElkZW50aWZpZXJTZXRSZWdpc3RlcnModm0sIHVubGlua2Vk
Q29kZUJsb2NrLT5jb25zdGFudElkZW50aWZpZXJTZXRzKCkpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgaWYgKHVubGlua2VkQ29kZUJsb2NrLT51c2VzR2xvYmFsT2JqZWN0KCkpCkBAIC04
OTAsOCArODkyLDEyIEBAIGJvb2wgQ29kZUJsb2NrOjpzZXRDb25zdGFudElkZW50aWZpZXJTZXRS
ZWdpc3RlcnMoVk0mIHZtLCBjb25zdCBWZWN0b3I8Q29uc3RhbnRJCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLXZvaWQgQ29kZUJsb2NrOjpzZXRDb25zdGFudFJlZ2lzdGVycyhjb25zdCBWZWN0b3I8
V3JpdGVCYXJyaWVyPFVua25vd24+PiYgY29uc3RhbnRzLCBjb25zdCBWZWN0b3I8U291cmNlQ29k
ZVJlcHJlc2VudGF0aW9uPiYgY29uc3RhbnRzU291cmNlQ29kZVJlcHJlc2VudGF0aW9uKQorYm9v
bCBDb2RlQmxvY2s6OnNldENvbnN0YW50UmVnaXN0ZXJzKGNvbnN0IFZlY3RvcjxXcml0ZUJhcnJp
ZXI8VW5rbm93bj4+JiBjb25zdGFudHMsIGNvbnN0IFZlY3RvcjxTb3VyY2VDb2RlUmVwcmVzZW50
YXRpb24+JiBjb25zdGFudHNTb3VyY2VDb2RlUmVwcmVzZW50YXRpb24pCiB7CisgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoKm1fdm0pOworICAgIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QgPSBtX2dsb2JhbE9iamVjdC5nZXQoKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMg
PSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKKwogICAgIEFTU0VSVChjb25zdGFudHMuc2l6
ZSgpID09IGNvbnN0YW50c1NvdXJjZUNvZGVSZXByZXNlbnRhdGlvbi5zaXplKCkpOwogICAgIHNp
emVfdCBjb3VudCA9IGNvbnN0YW50cy5zaXplKCk7CiAgICAgbV9jb25zdGFudFJlZ2lzdGVycy5y
ZXNpemVUb0ZpdChjb3VudCk7CkBAIC05MDAsNyArOTA2LDcgQEAgdm9pZCBDb2RlQmxvY2s6OnNl
dENvbnN0YW50UmVnaXN0ZXJzKGNvbnN0IFZlY3RvcjxXcml0ZUJhcnJpZXI8VW5rbm93bj4+JiBj
b25zdGEKICAgICAgICAgSlNWYWx1ZSBjb25zdGFudCA9IGNvbnN0YW50c1tpXS5nZXQoKTsKIAog
ICAgICAgICBpZiAoIWNvbnN0YW50LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgaWYgKFN5bWJv
bFRhYmxlKiBzeW1ib2xUYWJsZSA9IGpzRHluYW1pY0Nhc3Q8U3ltYm9sVGFibGUqPigqdm0oKSwg
Y29uc3RhbnQpKSB7CisgICAgICAgICAgICBpZiAoU3ltYm9sVGFibGUqIHN5bWJvbFRhYmxlID0g
anNEeW5hbWljQ2FzdDxTeW1ib2xUYWJsZSo+KCptX3ZtLCBjb25zdGFudCkpIHsKICAgICAgICAg
ICAgICAgICBpZiAoaGFzVHlwZVByb2ZpbGVyKSB7CiAgICAgICAgICAgICAgICAgICAgIENvbmN1
cnJlbnRKU0xvY2tlciBsb2NrZXIoc3ltYm9sVGFibGUtPm1fbG9jayk7CiAgICAgICAgICAgICAg
ICAgICAgIHN5bWJvbFRhYmxlLT5wcmVwYXJlRm9yVHlwZVByb2ZpbGluZyhsb2NrZXIpOwpAQCAt
OTExLDYgKzkxNywxMCBAQCB2b2lkIENvZGVCbG9jazo6c2V0Q29uc3RhbnRSZWdpc3RlcnMoY29u
c3QgVmVjdG9yPFdyaXRlQmFycmllcjxVbmtub3duPj4mIGNvbnN0YQogICAgICAgICAgICAgICAg
ICAgICBjbG9uZS0+c2V0UmFyZURhdGFDb2RlQmxvY2sodGhpcyk7CiAKICAgICAgICAgICAgICAg
ICBjb25zdGFudCA9IGNsb25lOworICAgICAgICAgICAgfSBlbHNlIGlmIChpc1RlbXBsYXRlUmVn
aXN0cnlLZXkoKm1fdm0sIGNvbnN0YW50KSkgeworICAgICAgICAgICAgICAgIGF1dG8qIHRlbXBs
YXRlT2JqZWN0ID0gZ2xvYmFsT2JqZWN0LT50ZW1wbGF0ZVJlZ2lzdHJ5KCkuZ2V0VGVtcGxhdGVP
YmplY3QoZXhlYywganNDYXN0PEpTVGVtcGxhdGVSZWdpc3RyeUtleSo+KGNvbnN0YW50KSk7Cisg
ICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOworICAgICAg
ICAgICAgICAgIGNvbnN0YW50ID0gdGVtcGxhdGVPYmplY3Q7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KIApAQCAtOTE4LDYgKzkyOCw5IEBAIHZvaWQgQ29kZUJsb2NrOjpzZXRDb25zdGFudFJl
Z2lzdGVycyhjb25zdCBWZWN0b3I8V3JpdGVCYXJyaWVyPFVua25vd24+PiYgY29uc3RhCiAgICAg
fQogCiAgICAgbV9jb25zdGFudHNTb3VyY2VDb2RlUmVwcmVzZW50YXRpb24gPSBjb25zdGFudHNT
b3VyY2VDb2RlUmVwcmVzZW50YXRpb247CisKKyAgICBzY29wZS5yZWxlYXNlKCk7CisgICAgcmV0
dXJuIHRydWU7CiB9CiAKIHZvaWQgQ29kZUJsb2NrOjpzZXRBbHRlcm5hdGl2ZShWTSYgdm0sIENv
ZGVCbG9jayogYWx0ZXJuYXRpdmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmgKaW5kZXggYjQ3OGIzNDFiNjZhYTFlNDNiNGJjNzIxM2VhZjBkNDBhOTJiNWIxNi4u
Mzk1ZTc0ODc5OTgxZjdhMDQ2ZjgxZWMyN2NhNWRkNmY0YTZmZjFhNSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaApAQCAtOTIxLDcgKzkyMSw3IEBAIGNsYXNz
IENvZGVCbG9jayA6IHB1YmxpYyBKU0NlbGwgewogCiAgICAgYm9vbCBzZXRDb25zdGFudElkZW50
aWZpZXJTZXRSZWdpc3RlcnMoVk0mLCBjb25zdCBWZWN0b3I8Q29uc3RhbnRJbmRlbnRpZmllclNl
dEVudHJ5PiYgY29uc3RhbnRzKTsKIAotICAgIHZvaWQgc2V0Q29uc3RhbnRSZWdpc3RlcnMoY29u
c3QgVmVjdG9yPFdyaXRlQmFycmllcjxVbmtub3duPj4mIGNvbnN0YW50cywgY29uc3QgVmVjdG9y
PFNvdXJjZUNvZGVSZXByZXNlbnRhdGlvbj4mIGNvbnN0YW50c1NvdXJjZUNvZGVSZXByZXNlbnRh
dGlvbik7CisgICAgYm9vbCBzZXRDb25zdGFudFJlZ2lzdGVycyhjb25zdCBWZWN0b3I8V3JpdGVC
YXJyaWVyPFVua25vd24+PiYgY29uc3RhbnRzLCBjb25zdCBWZWN0b3I8U291cmNlQ29kZVJlcHJl
c2VudGF0aW9uPiYgY29uc3RhbnRzU291cmNlQ29kZVJlcHJlc2VudGF0aW9uKTsKIAogICAgIHZv
aWQgcmVwbGFjZUNvbnN0YW50KGludCBpbmRleCwgSlNWYWx1ZSB2YWx1ZSkKICAgICB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2su
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNw
cAppbmRleCAxYzcxYWE2ZTQ1MzNkNTNjZDJjNDRmZWUwMjFhYzNlZjMzMDk5ZmI5Li5lZmRkYjIz
MzEwMWRjMzA5MjY5YTlkYTc0MjE2YmU3M2I0NjBmNTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHAKQEAgLTQxMCw2ICs0
MTAsNyBAQCB2b2lkIFVubGlua2VkQ29kZUJsb2NrOjpzaHJpbmtUb0ZpdCgpCiAgICAgICAgIG1f
cmFyZURhdGEtPm1fc3dpdGNoSnVtcFRhYmxlcy5zaHJpbmtUb0ZpdCgpOwogICAgICAgICBtX3Jh
cmVEYXRhLT5tX3N0cmluZ1N3aXRjaEp1bXBUYWJsZXMuc2hyaW5rVG9GaXQoKTsKICAgICAgICAg
bV9yYXJlRGF0YS0+bV9leHByZXNzaW9uSW5mb0ZhdFBvc2l0aW9ucy5zaHJpbmtUb0ZpdCgpOwor
ICAgICAgICBtX3JhcmVEYXRhLT5tX29wUHJvZmlsZUNvbnRyb2xGbG93Qnl0ZWNvZGVPZmZzZXRz
LnNocmlua1RvRml0KCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5oCmluZGV4IGEyZmIxMTg0ZmY0MWIxZDQzNGM4
NWQ4M2Y4YTA3OTNjYmEyNjhjZDMuLjM2MzBmZGQ1YzQ1M2ZmYWEwNzUzN2EzM2M4OTZjZDhlNWE1
ZWJjZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Vbmxpbmtl
ZENvZGVCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Vbmxpbmtl
ZENvZGVCbG9jay5oCkBAIC0yMjAsNiArMjIwLDcgQEAgY2xhc3MgVW5saW5rZWRDb2RlQmxvY2sg
OiBwdWJsaWMgSlNDZWxsIHsKICAgICAgICAgbV9jb25zdGFudHNTb3VyY2VDb2RlUmVwcmVzZW50
YXRpb24uYXBwZW5kKFNvdXJjZUNvZGVSZXByZXNlbnRhdGlvbjo6T3RoZXIpOwogICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgIH0KKwogICAgIHVuc2lnbmVkIHJlZ2lzdGVySW5kZXhGb3JMaW5r
VGltZUNvbnN0YW50KExpbmtUaW1lQ29uc3RhbnQgdHlwZSkKICAgICB7CiAgICAgICAgIHVuc2ln
bmVkIGluZGV4ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHR5cGUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApp
bmRleCBlMmYxYzk4YmJkNGE4NjAxNTgxMDc5ZGYwMzMyMDI4ZDAyYmU1MzM2Li40NDA3NGRiZjI1
NDA3MzJkYmU0OTM3Yzk1YmJiOTAwMWM0YWNkNTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAtMzA2
MCwxMiArMzA2MCwxNSBAQCBKU1N0cmluZyogQnl0ZWNvZGVHZW5lcmF0b3I6OmFkZFN0cmluZ0Nv
bnN0YW50KGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIpCiAgICAgcmV0dXJuIHN0cmluZ0lu
TWFwOwogfQogCi1KU1RlbXBsYXRlUmVnaXN0cnlLZXkqIEJ5dGVjb2RlR2VuZXJhdG9yOjphZGRU
ZW1wbGF0ZVJlZ2lzdHJ5S2V5Q29uc3RhbnQoUmVmPFRlbXBsYXRlUmVnaXN0cnlLZXk+JiYgdGVt
cGxhdGVSZWdpc3RyeUtleSkKK1JlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjphZGRUZW1w
bGF0ZVJlZ2lzdHJ5S2V5Q29uc3RhbnQoUmVmPFRlbXBsYXRlUmVnaXN0cnlLZXk+JiYgdGVtcGxh
dGVSZWdpc3RyeUtleSkKIHsKICAgICByZXR1cm4gbV90ZW1wbGF0ZVJlZ2lzdHJ5S2V5TWFwLmVu
c3VyZSh0ZW1wbGF0ZVJlZ2lzdHJ5S2V5LmNvcHlSZWYoKSwgWyZdIHsKICAgICAgICAgYXV0byog
cmVzdWx0ID0gSlNUZW1wbGF0ZVJlZ2lzdHJ5S2V5OjpjcmVhdGUoKnZtKCksIFdURk1vdmUodGVt
cGxhdGVSZWdpc3RyeUtleSkpOwotICAgICAgICBhZGRDb25zdGFudFZhbHVlKHJlc3VsdCk7Ci0g
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIHVuc2lnbmVkIGluZGV4ID0gbV9uZXh0Q29u
c3RhbnRPZmZzZXQ7CisgICAgICAgIG1fY29uc3RhbnRQb29sUmVnaXN0ZXJzLmFwcGVuZChGaXJz
dENvbnN0YW50UmVnaXN0ZXJJbmRleCArIG1fbmV4dENvbnN0YW50T2Zmc2V0KTsKKyAgICAgICAg
KyttX25leHRDb25zdGFudE9mZnNldDsKKyAgICAgICAgbV9jb2RlQmxvY2stPmFkZENvbnN0YW50
KHJlc3VsdCk7CisgICAgICAgIHJldHVybiAmbV9jb25zdGFudFBvb2xSZWdpc3RlcnNbaW5kZXhd
OwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKIH0KIApAQCAtNDMxNCwxMSArNDMxNywxMCBAQCBS
ZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdldFRlbXBsYXRlT2JqZWN0KFJlZ2lz
dGVySUQqIGRzdCwgVGFnZ2VkVGVtcAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjb29rZWRT
dHJpbmdzLmFwcGVuZChzdHJpbmctPmNvb2tlZCgpLT5pbXBsKCkpOwogICAgIH0KLQotICAgIFJl
ZlB0cjxSZWdpc3RlcklEPiBnZXRUZW1wbGF0ZU9iamVjdCA9IGVtaXRHZXRHbG9iYWxQcml2YXRl
KG5ld1RlbXBvcmFyeSgpLCBwcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkuZ2V0VGVtcGxh
dGVPYmplY3RQcml2YXRlTmFtZSgpKTsKLSAgICBDYWxsQXJndW1lbnRzIGFyZ3VtZW50cygqdGhp
cywgbnVsbHB0cik7Ci0gICAgZW1pdExvYWQoYXJndW1lbnRzLnRoaXNSZWdpc3RlcigpLCBKU1Zh
bHVlKGFkZFRlbXBsYXRlUmVnaXN0cnlLZXlDb25zdGFudChtX3ZtLT50ZW1wbGF0ZVJlZ2lzdHJ5
S2V5VGFibGUoKS5jcmVhdGVLZXkoV1RGTW92ZShyYXdTdHJpbmdzKSwgV1RGTW92ZShjb29rZWRT
dHJpbmdzKSkpKSk7Ci0gICAgcmV0dXJuIGVtaXRDYWxsKGRzdCwgZ2V0VGVtcGxhdGVPYmplY3Qu
Z2V0KCksIE5vRXhwZWN0ZWRGdW5jdGlvbiwgYXJndW1lbnRzLCB0YWdnZWRUZW1wbGF0ZS0+ZGl2
b3QoKSwgdGFnZ2VkVGVtcGxhdGUtPmRpdm90U3RhcnQoKSwgdGFnZ2VkVGVtcGxhdGUtPmRpdm90
RW5kKCksIERlYnVnZ2FibGVDYWxsOjpObyk7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGNvbnN0
YW50ID0gYWRkVGVtcGxhdGVSZWdpc3RyeUtleUNvbnN0YW50KG1fdm0tPnRlbXBsYXRlUmVnaXN0
cnlLZXlUYWJsZSgpLmNyZWF0ZUtleShXVEZNb3ZlKHJhd1N0cmluZ3MpLCBXVEZNb3ZlKGNvb2tl
ZFN0cmluZ3MpKSk7CisgICAgaWYgKCFkc3QpCisgICAgICAgIHJldHVybiBjb25zdGFudC5nZXQo
KTsKKyAgICByZXR1cm4gZW1pdE1vdmUoZHN0LCBjb25zdGFudC5nZXQoKSk7CiB9CiAKIFJlZ2lz
dGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0R2xvYmFsUHJpdmF0ZShSZWdpc3RlcklE
KiBkc3QsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCmluZGV4IDAzMjky
MTNhNTg4N2Q5YTNmYzFiY2Y1MGQxMjkwM2JiYzAyNTU3YWUuLjE2YTMwYTA2ODAxYTUwYTFkYTU5
MzVhM2Y5YmEwMGVkMGM5MzdmZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKQEAgLTk0Myw3ICs5NDMsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB0eXBlZGVmIEhhc2hNYXA8ZG91YmxlLCBKU1ZhbHVl
PiBOdW1iZXJNYXA7CiAgICAgICAgIHR5cGVkZWYgSGFzaE1hcDxVbmlxdWVkU3RyaW5nSW1wbCos
IEpTU3RyaW5nKiwgSWRlbnRpZmllclJlcEhhc2g+IElkZW50aWZpZXJTdHJpbmdNYXA7Ci0gICAg
ICAgIHR5cGVkZWYgSGFzaE1hcDxSZWY8VGVtcGxhdGVSZWdpc3RyeUtleT4sIEpTVGVtcGxhdGVS
ZWdpc3RyeUtleSo+IFRlbXBsYXRlUmVnaXN0cnlLZXlNYXA7CisgICAgICAgIHR5cGVkZWYgSGFz
aE1hcDxSZWY8VGVtcGxhdGVSZWdpc3RyeUtleT4sIFJlZ2lzdGVySUQqPiBUZW1wbGF0ZVJlZ2lz
dHJ5S2V5TWFwOwogICAgICAgICAKICAgICAgICAgLy8gSGVscGVyIGZvciBlbWl0Q2FsbCgpIGFu
ZCBlbWl0Q29uc3RydWN0KCkuIFRoaXMgd29ya3MgYmVjYXVzZSB0aGUgc2V0IG9mCiAgICAgICAg
IC8vIGV4cGVjdGVkIGZ1bmN0aW9ucyBoYXZlIGlkZW50aWNhbCBiZWhhdmlvciBmb3IgYm90aCBj
YWxsIGFuZCBjb25zdHJ1Y3QKQEAgLTEwMjgsNyArMTAyOCw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiAgICAgcHVibGljOgogICAgICAgICBKU1N0cmluZyogYWRkU3RyaW5nQ29uc3RhbnQoY29uc3Qg
SWRlbnRpZmllciYpOwotICAgICAgICBKU1RlbXBsYXRlUmVnaXN0cnlLZXkqIGFkZFRlbXBsYXRl
UmVnaXN0cnlLZXlDb25zdGFudChSZWY8VGVtcGxhdGVSZWdpc3RyeUtleT4mJik7CisgICAgICAg
IFJlZ2lzdGVySUQqIGFkZFRlbXBsYXRlUmVnaXN0cnlLZXlDb25zdGFudChSZWY8VGVtcGxhdGVS
ZWdpc3RyeUtleT4mJik7CiAKICAgICAgICAgVmVjdG9yPFVubGlua2VkSW5zdHJ1Y3Rpb24sIDAs
IFVuc2FmZVZlY3Rvck92ZXJmbG93PiYgaW5zdHJ1Y3Rpb25zKCkgeyByZXR1cm4gbV9pbnN0cnVj
dGlvbnM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9O
b2Rlc0NvZGVnZW4uY3BwCmluZGV4IGRkOGU1NzViNGM3NDc5OGUzZjJiMWYyNTE3ODcxYTA4ODcy
ZGFmNGQuLmM5MjllYzdjMjM1ZDUwNjZlZTVmYzc0OTcxYjViMTExOWUzMjk4YjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAK
QEAgLTM0NCw3ICszNDQsNyBAQCBSZWdpc3RlcklEKiBUYWdnZWRUZW1wbGF0ZU5vZGU6OmVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpcwogICAgICAgICAgICAg
dGFnID0gZ2VuZXJhdG9yLmVtaXRHZXRCeUlkKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgYmFz
ZS5nZXQoKSwgZG90LT5pZGVudGlmaWVyKCkpOwogICAgIH0KIAotICAgIFJlZlB0cjxSZWdpc3Rl
cklEPiB0ZW1wbGF0ZU9iamVjdCA9IGdlbmVyYXRvci5lbWl0R2V0VGVtcGxhdGVPYmplY3QoZ2Vu
ZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCB0aGlzKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gdGVt
cGxhdGVPYmplY3QgPSBnZW5lcmF0b3IuZW1pdEdldFRlbXBsYXRlT2JqZWN0KG51bGxwdHIsIHRo
aXMpOwogCiAgICAgdW5zaWduZWQgZXhwcmVzc2lvbnNDb3VudCA9IDA7CiAgICAgZm9yIChUZW1w
bGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSogdGVtcGxhdGVFeHByZXNzaW9uID0gbV90ZW1wbGF0ZUxp
dGVyYWwtPnRlbXBsYXRlRXhwcmVzc2lvbnMoKTsgdGVtcGxhdGVFeHByZXNzaW9uOyB0ZW1wbGF0
ZUV4cHJlc3Npb24gPSB0ZW1wbGF0ZUV4cHJlc3Npb24tPm5leHQoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCA4ZTZlZjU4NGJk
ODMwMDNiMjQ5ZmQ0ZGFiMjkzNjFhYzE4MThjZTM3Li4xYzg0ZWJkN2RmNWJjNzQxMjE2MzFhOTk1
MDdlNGM0YzVjMzhmZTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuY3BwCkBAIC0yOTksMTQgKzI5OSw2IEBAIGNvbnN0IEdsb2JhbE9iamVj
dE1ldGhvZFRhYmxlIEpTR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0g
ewogQGVuZAogKi8KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2V0VGVt
cGxhdGVPYmplY3QoRXhlY1N0YXRlKiBleGVjKQotewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgQVNTRVJUKHRoaXNWYWx1ZS5pbmhlcml0cyhleGVjLT52
bSgpLCBKU1RlbXBsYXRlUmVnaXN0cnlLZXk6OmluZm8oKSkpOwotICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT50ZW1wbGF0ZVJlZ2lzdHJ5KCku
Z2V0VGVtcGxhdGVPYmplY3QoZXhlYywganNDYXN0PEpTVGVtcGxhdGVSZWdpc3RyeUtleSo+KHRo
aXNWYWx1ZSkpKTsKLX0KLQotCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBl
bnF1ZXVlSm9iKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpA
QCAtNzMzLDcgKzcyNSw2IEBAIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT4ganNOYW1lLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0CiAgICAgSlNGdW5jdGlv
biogcHJpdmF0ZUZ1bmNGbG9vciA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3Ry
aW5nKCksIG1hdGhQcm90b0Z1bmNGbG9vciwgRmxvb3JJbnRyaW5zaWMpOwogICAgIEpTRnVuY3Rp
b24qIHByaXZhdGVGdW5jVHJ1bmMgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0
cmluZygpLCBtYXRoUHJvdG9GdW5jVHJ1bmMsIFRydW5jSW50cmluc2ljKTsKIAotICAgIEpTRnVu
Y3Rpb24qIHByaXZhdGVGdW5jR2V0VGVtcGxhdGVPYmplY3QgPSBKU0Z1bmN0aW9uOjpjcmVhdGUo
dm0sIHRoaXMsIDAsIFN0cmluZygpLCBnZXRUZW1wbGF0ZU9iamVjdCk7CiAgICAgSlNGdW5jdGlv
biogcHJpdmF0ZUZ1bmNJbXBvcnRNb2R1bGUgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMs
IDAsIFN0cmluZygpLCBnbG9iYWxGdW5jSW1wb3J0TW9kdWxlKTsKICAgICBKU0Z1bmN0aW9uKiBw
cml2YXRlRnVuY1R5cGVkQXJyYXlMZW5ndGggPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMs
IDAsIFN0cmluZygpLCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jTGVuZ3RoKTsKICAgICBKU0Z1
bmN0aW9uKiBwcml2YXRlRnVuY1R5cGVkQXJyYXlHZXRPcmlnaW5hbENvbnN0cnVjdG9yID0gSlNG
dW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgdHlwZWRBcnJheVZpZXdQcml2
YXRlRnVuY0dldE9yaWdpbmFsQ29uc3RydWN0b3IpOwpAQCAtNzg3LDcgKzc3OCw2IEBAIHB1dERp
cmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT4ganNOYW1lLCBsb3dl
ck5hbWUgIyMgQ29uc3RydWN0CiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5JbmZpbml0eSwganNOdW1iZXIoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+Ojpp
bmZpbml0eSgpKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBH
bG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+dW5kZWZpbmVkS2V5d29yZCwganNV
bmRlZmluZWQoKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBH
bG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkub3duRW51
bWVyYWJsZVByb3BlcnR5S2V5c1ByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwg
dGhpcywgMCwgU3RyaW5nKCksIG93bkVudW1lcmFibGVQcm9wZXJ0eUtleXMpLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZXRUZW1wbGF0ZU9iamVjdFByaXZhdGVOYW1l
KCksIHByaXZhdGVGdW5jR2V0VGVtcGxhdGVPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLmltcG9ydE1vZHVsZVByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jSW1w
b3J0TW9kdWxlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5lbnF1ZXVl
Sm9iUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmco
KSwgZW5xdWV1ZUpvYiksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAg
ICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLkVy
cm9yUHJpdmF0ZU5hbWUoKSwgbV9lcnJvckNvbnN0cnVjdG9yLmdldCgpLCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSksCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1RlbXBsYXRlUmVnaXN0cnlLZXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNUZW1wbGF0ZVJlZ2lzdHJ5S2V5LmNwcAppbmRleCAyZjk4YWIxY2MxNzY1OTEz
ZDdhYWUzZjUwZmNlMDUzZjVlNTc5NWM4Li45NDljMmY3M2EyZTc2YjdjZTBjOWJkM2NhYjkyMzFh
OWU1ZTI3Y2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Rl
bXBsYXRlUmVnaXN0cnlLZXkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTVGVtcGxhdGVSZWdpc3RyeUtleS5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLWNvbnN0IENsYXNzSW5mbyBKU1RlbXBsYXRlUmVnaXN0cnlLZXk6OnNfaW5mbyA9
IHsgIlRlbXBsYXRlUmVnaXN0cnlLZXkiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEpTVGVtcGxhdGVSZWdpc3RyeUtleSkgfTsKK2NvbnN0IENsYXNzSW5mbyBK
U1RlbXBsYXRlUmVnaXN0cnlLZXk6OnNfaW5mbyA9IHsgIlRlbXBsYXRlUmVnaXN0cnlLZXkiLCBu
dWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVtcGxhdGVSZWdpc3RyeUtl
eSkgfTsKIAogCiBKU1RlbXBsYXRlUmVnaXN0cnlLZXk6OkpTVGVtcGxhdGVSZWdpc3RyeUtleShW
TSYgdm0sIFJlZjxUZW1wbGF0ZVJlZ2lzdHJ5S2V5PiYmIHRlbXBsYXRlUmVnaXN0cnlLZXkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1RlbXBsYXRlUmVnaXN0
cnlLZXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVGVtcGxhdGVSZWdpc3Ry
eUtleS5oCmluZGV4IGE4NDM2NTFjNDk2MjJhY2EzOTJkMzcxYzc5MTI1N2Y5NGNlOWZhMmQuLjg2
OTYyOGFiZTQwOTQ4NGM2MGZkYTQ4OTM4ODkwNGQwNWViYzQzMWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVGVtcGxhdGVSZWdpc3RyeUtleS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVGVtcGxhdGVSZWdpc3RyeUtleS5oCkBAIC0z
MSwxOSArMzEsMjEgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIEpTVGVtcGxhdGVSZWdp
c3RyeUtleSBmaW5hbCA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CitjbGFzcyBKU1Rl
bXBsYXRlUmVnaXN0cnlLZXkgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKIHB1YmxpYzoKLSAgICB0
eXBlZGVmIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IEJhc2U7CisgICAgdXNpbmcgQmFzZSA9IEpTQ2Vs
bDsKKworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3QgYm9v
bCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKKyAgICBERUNMQVJFX0lORk87CiAKICAgICBzdGF0
aWMgSlNUZW1wbGF0ZVJlZ2lzdHJ5S2V5KiBjcmVhdGUoVk0mLCBSZWY8VGVtcGxhdGVSZWdpc3Ry
eUtleT4mJik7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgVHlwZUluZm8oQ2VsbFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAK
LSAgICBERUNMQVJFX0lORk87Ci0KICAgICBjb25zdCBUZW1wbGF0ZVJlZ2lzdHJ5S2V5JiB0ZW1w
bGF0ZVJlZ2lzdHJ5S2V5KCkgY29uc3QgeyByZXR1cm4gbV90ZW1wbGF0ZVJlZ2lzdHJ5S2V5Lmdl
dCgpOyB9CiAKIHByb3RlY3RlZDoKQEAgLTU1LDQgKzU3LDE0IEBAIGNsYXNzIEpTVGVtcGxhdGVS
ZWdpc3RyeUtleSBmaW5hbCA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiAgICAgUmVm
PFRlbXBsYXRlUmVnaXN0cnlLZXk+IG1fdGVtcGxhdGVSZWdpc3RyeUtleTsKIH07CiAKK2lubGlu
ZSBib29sIGlzVGVtcGxhdGVSZWdpc3RyeUtleShWTSYgdm0sIEpTQ2VsbCogY2VsbCkKK3sKKyAg
ICByZXR1cm4gY2VsbC0+Y2xhc3NJbmZvKHZtKSA9PSBKU1RlbXBsYXRlUmVnaXN0cnlLZXk6Omlu
Zm8oKTsKK30KKworaW5saW5lIGJvb2wgaXNUZW1wbGF0ZVJlZ2lzdHJ5S2V5KFZNJiB2bSwgSlNW
YWx1ZSB2KQoreworICAgIHJldHVybiB2LmlzQ2VsbCgpICYmIGlzVGVtcGxhdGVSZWdpc3RyeUtl
eSh2bSwgdi5hc0NlbGwoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA3MTJiNGRjNzgzNmM2
NmUxNDE2ZjIzMzU2NDE3ZDBjYWQ3MzdmYWVjLi5mMDYwZTI2ZTFkMjJjM2I5OTUxNTNjZTQzYmZj
NTZhMjk2ZjMzZGVjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTAzLTE2ICBZdXN1a2UgU3V6dWtpICA8
dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtKU0NdIEdlbmVyYXRlIFRlbXBsYXRl
T2JqZWN0cyBhdCBsaW5raW5nIHRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2OTc0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogc3RyZXNzL3RlbXBsYXRlLXN0cmluZy10YWdzLWV2YWwuanM6IEFk
ZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGFnKToKKwogMjAxNy0wMy0xNiAg
Q2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0VTbmV4dF0gSW1w
bGVtZW50IE9iamVjdCBTcHJlYWQKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3RlbXBsYXRl
LXN0cmluZy10YWdzLWV2YWwuanMgYi9KU1Rlc3RzL3N0cmVzcy90ZW1wbGF0ZS1zdHJpbmctdGFn
cy1ldmFsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxNmVkNmE4YWQ0NjE4NjY3MTMwNGQ2YjljY2RiM2ViMmY2
ZmFhNjIKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy90ZW1wbGF0ZS1zdHJpbmct
dGFncy1ldmFsLmpzCkBAIC0wLDAgKzEsMTcgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwg
ZXhwZWN0ZWQpCit7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGFnKHNp
dGUpCit7CisgICAgcmV0dXJuIHNpdGU7Cit9CisKK3ZhciBzaXRlMSA9IGV2YWwoIjAsIHRhZ2BD
b2NvYWAiKTsKK3ZhciBzaXRlMiA9IGV2YWwoIjEsIHRhZ2BDYXBwdWNjaW5vYCIpOwordmFyIHNp
dGUzID0gZXZhbCgiMiwgdGFnYENvY29hYCIpOworCitzaG91bGRCZShzaXRlMSA9PT0gc2l0ZTMs
IHRydWUpOworc2hvdWxkQmUoc2l0ZTEgIT09IHNpdGUyLCB0cnVlKTsK
</data>
<flag name="review"
          id="326182"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
          </attachment>
      

    </bug>

</bugzilla>