<?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>48576</bug_id>
          
          <creation_ts>2010-10-28 16:25:11 -0700</creation_ts>
          <short_desc>Let WebKit2 client know when a frame is a frameset</short_desc>
          <delta_ts>2010-10-29 13:28:29 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>301423</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-10-28 16:25:11 -0700</bug_when>
    <thetext>Clients want to know that to present different UI on pages with frames.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301460</commentid>
    <comment_count>1</comment_count>
      <attachid>72259</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-10-28 16:50:37 -0700</bug_when>
    <thetext>Created attachment 72259
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301465</commentid>
    <comment_count>2</comment_count>
      <attachid>72259</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-10-28 16:54:45 -0700</bug_when>
    <thetext>Comment on attachment 72259
proposed patch

It looks to me like this will send the message more times than it needs to. I can browse pages without any framesets all day long and it seems the message will be sent often during that time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301467</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-10-28 16:57:47 -0700</bug_when>
    <thetext>I can easily add a boolean for the last sent value, but it didn&apos;t seem important to me. Should I?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301470</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-10-28 16:59:45 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I can easily add a boolean for the last sent value, but it didn&apos;t seem important to me. Should I?

I’d ask the WebKit2 architects that question. I’m not sure how important it is to avoid sending unneeded messages between processes, but my assumption is that doing so is worthwhile.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301477</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-10-28 17:08:19 -0700</bug_when>
    <thetext>Sam says it&apos;s fine, but he also says that I should be sending a page message, not a process one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301484</commentid>
    <comment_count>6</comment_count>
      <attachid>72267</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-10-28 17:25:43 -0700</bug_when>
    <thetext>Created attachment 72267
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301488</commentid>
    <comment_count>7</comment_count>
      <attachid>72267</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-10-28 17:29:55 -0700</bug_when>
    <thetext>Comment on attachment 72267
updated patch

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

&gt; WebCore/loader/FrameLoaderClient.h:227
&gt; +        virtual void dispatchDidBecomeFrameset(bool) = 0; // Can change back due to navigation or DOM modification.

Not sure the word “back” here is helpful.

&gt; WebKit2/ChangeLog:31
&gt; +2010-10-28  Alexey Proskuryakov  &lt;ap@apple.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).

Double change log.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301496</commentid>
    <comment_count>8</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-10-28 17:41:53 -0700</bug_when>
    <thetext>Attachment 72259 did not build on qt:
Build output: http://queues.webkit.org/results/4826065</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301517</commentid>
    <comment_count>9</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-10-28 18:11:49 -0700</bug_when>
    <thetext>Attachment 72267 did not build on qt:
Build output: http://queues.webkit.org/results/4857057</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301546</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-28 20:00:36 -0700</bug_when>
    <thetext>Attachment 72267 did not build on chromium:
Build output: http://queues.webkit.org/results/4866022</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301732</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-29 06:50:38 -0700</bug_when>
    <thetext>Attachment 72267 did not build on chromium:
Build output: http://queues.webkit.org/results/4789077</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301852</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-10-29 10:28:32 -0700</bug_when>
    <thetext>Committed (with build fixes and comments addressed) in &lt;http://trac.webkit.org/changeset/70894&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302002</commentid>
    <comment_count>13</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-29 13:23:16 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Committed (with build fixes and comments addressed) in &lt;http://trac.webkit.org/changeset/70894&gt;.

This patch broke lots of tests on the bots. Alexey are you already investigating?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302004</commentid>
    <comment_count>14</comment_count>
      <attachid>72267</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-29 13:26:47 -0700</bug_when>
    <thetext>Comment on attachment 72267
updated patch

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

&gt; WebCore/html/HTMLFrameSetElement.cpp:211
&gt; +    if (Frame* frame = document()-&gt;frame())

Hm, a call to HTMLElement::insertedIntoDocument is missing here.

&gt; WebCore/html/HTMLFrameSetElement.cpp:217
&gt; +    if (Frame* frame = document()-&gt;frame())

And here a call to HTMLElement::removedFromDocument is missing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302005</commentid>
    <comment_count>15</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-29 13:28:29 -0700</bug_when>
    <thetext>Sorry, for the noise. Just read about commit r70907, which fixed the world again. Sorry, just spotted breakage on build.webkit.org/waterfall and had a look at this patch...</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72259</attachid>
            <date>2010-10-28 16:50:37 -0700</date>
            <delta_ts>2010-10-28 17:25:43 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>FrameSet.txt</filename>
            <type>text/plain</type>
            <size>24879</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDgyMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTAtMTAtMjggIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4NTc2CisgICAgICAgIExl
dCBXZWJLaXQyIGNsaWVudCBrbm93IHdoZW4gYSBmcmFtZSBpcyBhIGZyYW1lc2V0CisKKyAgICAg
ICAgVGhpcyBjYW4gY2hhbmdlIGluIHR3byBjYXNlcywgd2hlbiBkb2N1bWVudCBjaGFuZ2VzLCBh
bmQgd2hlbiBmcmFtZSBpcyBuYXZpZ2F0ZWQgdG8gYW5vdGhlcgorICAgICAgICBkb2N1bWVudC4K
KworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6IChXZWJDb3JlOjpEb2N1bWVudDo6ZG9jdW1l
bnREaWRCZWNvbWVBY3RpdmUpOiBVcGRhdGUgdGhlIGNsaWVudCB3aGVuCisgICAgICAgIGEgZG9j
dW1lbnQgaXMgcmVzdG9yZWQgZnJvbSBwYWdlIGNhY2hlLgorCisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50Lmg6IEFkZGVkIGEgbmV3IGNsaWVudCBjYWxsIHRvIG5vdGlmeSBjbGll
bnQuCisKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaDoKKyAgICAgICAgKiBo
dG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1l
U2V0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEZyYW1lU2V0RWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCk6CisgICAgICAgIFVwZGF0ZSB0
aGUgY2xpZW50IHdoZW4gZG9jdW1lbnQgY2hhbmdlcywgcG90ZW50aWFsbHkgYmVjb21pbmcgYSBm
cmFtZXNldC4gUGVyIFdlYkNvcmUKKyAgICAgICAgZGVmaW5pdGlvbiwgYSBkb2N1bWVudCBpcyBh
IGZyYW1lc2V0IHdoZW4gaXQgaGFzIGEgRlJBTUVTRVQgZWxlbWVudCBhcyBkaXJlY3QgY2hpbGQg
b2YKKyAgICAgICAgZG9jdW1lbnQgZWxlbWVudCAoaXQgbWF5IGFsc28gaGF2ZSBib2R5IGVsZW1l
bnRzKS4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDogKFdlYkNvcmU6OkVtcHR5
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQpOgorICAgICAgICBB
ZGRlZCBhbiBlbXB0eSBpbXBsZW1lbnRhdGlvbi4KKwogMjAxMC0xMC0yOCAgTWloYWkgUGFycGFy
aXRhICA8bWloYWlwQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBB
ZGxlci4KSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDcwNTgzKQorKysgV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiRm9j
dXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRl
ci5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVl
LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSGFzaENoYW5nZUV2ZW50Lmgi
CkBAIC0zODYyLDYgKzM4NjMsOSBAQCB2b2lkIERvY3VtZW50Ojpkb2N1bWVudERpZEJlY29tZUFj
dGl2ZSgpCiAgICAgaWYgKHJlbmRlcmVyKCkpCiAgICAgICAgIHJlbmRlclZpZXcoKS0+ZGlkTW92
ZU9uc2NyZWVuKCk7CiAjZW5kaWYKKworICAgIEFTU0VSVChtX2ZyYW1lKTsKKyAgICBtX2ZyYW1l
LT5sb2FkZXIoKS0+Y2xpZW50KCktPmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoaXNGcmFtZVNl
dCgpKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6cmVnaXN0ZXJGb3JEb2N1bWVudEFjdGl2YXRpb25D
YWxsYmFja3MoRWxlbWVudCogZSkKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5j
cHAJKHJldmlzaW9uIDcwNTgzKQorKysgV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCiAjaW5jbHVkZSAiTGVuZ3RoLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgpA
QCAtMjA0LDQgKzIwNiwxNiBAQCB2b2lkIEhUTUxGcmFtZVNldEVsZW1lbnQ6OnJlY2FsY1N0eWxl
KFN0CiAgICAgSFRNTEVsZW1lbnQ6OnJlY2FsY1N0eWxlKGNoKTsKIH0KIAordm9pZCBIVE1MRnJh
bWVTZXRFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCgpCit7CisgICAgaWYgKEZyYW1lKiBm
cmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCkpCisgICAgICAgIGZyYW1lLT5sb2FkZXIoKS0+Y2xp
ZW50KCktPmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoZG9jdW1lbnQoKS0+aXNGcmFtZVNldCgp
KTsKK30KKwordm9pZCBIVE1MRnJhbWVTZXRFbGVtZW50OjpyZW1vdmVkRnJvbURvY3VtZW50KCkK
K3sKKyAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKSkKKyAgICAgICAg
ZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChkb2N1
bWVudCgpLT5pc0ZyYW1lU2V0KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmgJKHJldmlzaW9uIDcwNTgzKQorKysgV2ViQ29y
ZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNzcsNyArNzcs
MTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVu
dCopOwogCiAgICAgdmlydHVhbCB2b2lkIHJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlKTsKLSAgICAK
KworICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOworICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVkRnJvbURvY3VtZW50KCk7CisKICAgICBPd25BcnJheVB0cjxMZW5ndGg+IG1f
cm93TGVuZ3RoczsKICAgICBPd25BcnJheVB0cjxMZW5ndGg+IG1fY29sTGVuZ3RoczsKIApJbmRl
eDogV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmgJKHJldmlzaW9uIDcwNTgzKQorKysgV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyNSw2ICszMjUsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHRyYW5zaXRpb25Ub0NvbW1pdHRlZEZyb21DYWNoZWRGcmFtZShD
YWNoZWRGcmFtZSopIHsgfQogICAgIHZpcnR1YWwgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRG
b3JOZXdQYWdlKCkgeyB9ICAgIAogCisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQmVjb21l
RnJhbWVzZXQoYm9vbCkgeyB9CisKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2xvYmFsSGlzdG9y
eSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHbG9iYWxIaXN0b3J5UmVkaXJlY3RMaW5r
cygpIHsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRHb1RvSGlzdG9yeUl0ZW0oSGlzdG9yeUl0
ZW0qKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpJbmRleDogV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNs
aWVudC5oCShyZXZpc2lvbiA3MDU4MykKKysrIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyNCw2ICsyMjQsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGcm9tQ2FjaGVk
RnJhbWUoQ2FjaGVkRnJhbWUqKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0cmFuc2l0aW9u
VG9Db21taXR0ZWRGb3JOZXdQYWdlKCkgPSAwOwogCisgICAgICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpID0gMDsgLy8gQ2FuIGNoYW5nZSBiYWNrIGR1ZSB0
byBuYXZpZ2F0aW9uIG9yIERPTSBtb2RpZmljYXRpb24uCisKICAgICAgICAgdmlydHVhbCBib29s
IGNhbkNhY2hlUGFnZSgpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRvd25sb2Fk
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpID0gMDsKIApJbmRleDogV2ViS2l0Mi9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDcwODIz
KQorKysgV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMiBAQAor
MjAxMC0xMC0yOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg1NzYKKyAgICAgICAgTGV0IFdlYktpdDIgY2xpZW50
IGtub3cgd2hlbiBhIGZyYW1lIGlzIGEgZnJhbWVzZXQKKworICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQcm94eTo6V2ViRnJh
bWVQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWVQcm94eTo6c2V0SXNGcmFtZVNldCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkZyYW1lUHJveHk6OmlzRnJhbWVTZXQpOgorICAgICAgICBSZW1lbWJlciB3aGV0aGVyIHRo
ZSBmcmFtZSBpcyBjdXJyZW50bHkgYSBmcmFtZXNldC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS0ZyYW1lLmNwcDogKFdLRnJhbWVJc0ZyYW1lU2V0KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0MvV0tGcmFtZS5oOgorICAgICAgICBBZGRlZCBjbGllbnQgQVBJLgorCisgICAgICAg
ICogU2hhcmVkL0NvcmVJUENTdXBwb3J0L1dlYlByb2Nlc3NQcm94eU1lc3NhZ2VLaW5kcy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6
ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRp
ZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIFBhc3Mg
bm90aWZpY2F0aW9uIGZyb20gd2ViIHByb2Nlc3MgdG8gVUkgcHJvY2Vzcy4KKwogMjAxMC0xMC0y
OCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBXZWJLaXQyL1NoYXJlZC9Db3JlSVBDU3VwcG9ydC9X
ZWJQcm9jZXNzUHJveHlNZXNzYWdlS2luZHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJl
ZC9Db3JlSVBDU3VwcG9ydC9XZWJQcm9jZXNzUHJveHlNZXNzYWdlS2luZHMuaAkocmV2aXNpb24g
NzA1ODMpCisrKyBXZWJLaXQyL1NoYXJlZC9Db3JlSVBDU3VwcG9ydC9XZWJQcm9jZXNzUHJveHlN
ZXNzYWdlS2luZHMuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksNyBAQCBlbnVtIEtpbmQg
ewogICAgIERpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCwKICAgICBEaWRQZXJmb3JtU2VydmVyUmVk
aXJlY3QsCiAgICAgRGlkVXBkYXRlSGlzdG9yeVRpdGxlLAorICAgIEZyYW1lRGlkQmVjb21lRnJh
bWVTZXQsCiAgICAgRGlkRGVzdHJveUZyYW1lLAogICAgIEdldFBsdWdpblBhdGgsCiAjaWYgRU5B
QkxFKFBMVUdJTl9QUk9DRVNTKQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAJ
KHJldmlzaW9uIDcwNTgzKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBXZWJG
cmFtZVByb3h5OjpXZWJGcmFtZVByb3h5KFdlYlBhZ2VQcm94eSogcGFnZSwgdWludDY0X3QgZnJh
bWVJRCkKICAgICA6IG1fcGFnZShwYWdlKQogICAgICwgbV9sb2FkU3RhdGUoTG9hZFN0YXRlRmlu
aXNoZWQpCisgICAgLCBtX2lzRnJhbWVTZXQoZmFsc2UpCiAgICAgLCBtX2ZyYW1lSUQoZnJhbWVJ
RCkKIHsKIH0KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgJKHJldmlzaW9uIDcwNTgz
KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBA
IC02OSw2ICs2OSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNjb25uZWN0KCk7CiAKICAgICBi
b29sIGlzTWFpbkZyYW1lKCkgY29uc3Q7CisKKyAgICB2b2lkIHNldElzRnJhbWVTZXQoYm9vbCB2
YWx1ZSkgeyBtX2lzRnJhbWVTZXQgPSB2YWx1ZTsgfQorICAgIGJvb2wgaXNGcmFtZVNldCgpIGNv
bnN0IHsgcmV0dXJuIG1faXNGcmFtZVNldDsgfQorCiAgICAgTG9hZFN0YXRlIGxvYWRTdGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbG9hZFN0YXRlOyB9CiAKICAgICBjb25zdCBTdHJpbmcmIHVybCgp
IGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9CkBAIC0xMDgsNiArMTEyLDcgQEAgcHJpdmF0ZToKICAg
ICBTdHJpbmcgbV9wcm92aXNpb25hbFVSTDsKICAgICBTdHJpbmcgbV91bnJlYWNoYWJsZVVSTDsK
ICAgICBTdHJpbmcgbV9NSU1FVHlwZTsKKyAgICBib29sIG1faXNGcmFtZVNldDsKICAgICBSZWZQ
dHI8V2ViQ2VydGlmaWNhdGVJbmZvPiBtX2NlcnRpZmljYXRlSW5mbzsKICAgICBSZWZQdHI8V2Vi
RnJhbWVMaXN0ZW5lclByb3h5PiBtX2FjdGl2ZUxpc3RlbmVyOwogICAgIHVpbnQ2NF90IG1fZnJh
bWVJRDsKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gNzA1ODQp
CisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02ODUsNiArNjg1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFt
ZQogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gcHJvY2VzcygpLT53ZWJGcmFtZShmcmFtZUlE
KTsKIAogICAgIGZyYW1lLT5zZXRNSU1FVHlwZShtaW1lVHlwZSk7CisgICAgZnJhbWUtPnNldElz
RnJhbWVTZXQoZmFsc2UpOwogICAgIGZyYW1lLT5zZXRDZXJ0aWZpY2F0ZUluZm8oV2ViQ2VydGlm
aWNhdGVJbmZvOjpjcmVhdGUoY2VydGlmaWNhdGVJbmZvKSk7CiAgICAgZnJhbWUtPmRpZENvbW1p
dExvYWQoKTsKICAgICBtX2xvYWRlckNsaWVudC5kaWRDb21taXRMb2FkRm9yRnJhbWUodGhpcywg
ZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcAkocmV2aXNpb24gNzA1ODMpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODcsNiArMjg3LDE3IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSgKICAgICAgICAgICAgICAgICBtX2NvbnRleHQt
PmRpZFVwZGF0ZUhpc3RvcnlUaXRsZSh3ZWJGcmFtZShmcmFtZUlEKSwgdGl0bGUsIHVybCk7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIFdl
YlByb2Nlc3NQcm94eU1lc3NhZ2U6OkZyYW1lRGlkQmVjb21lRnJhbWVTZXQ6IHsKKyAgICAgICAg
ICAgICAgICB1aW50NjRfdCBwYWdlSUQ7CisgICAgICAgICAgICAgICAgYm9vbCB2YWx1ZTsKKyAg
ICAgICAgICAgICAgICB1aW50NjRfdCBmcmFtZUlEOworICAgICAgICAgICAgICAgIGlmICghYXJn
dW1lbnRzLT5kZWNvZGUoQ29yZUlQQzo6T3V0KHBhZ2VJRCwgdmFsdWUsIGZyYW1lSUQpKSkKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAgaWYgKFdlYkZyYW1l
UHJveHkqIGZyYW1lID0gd2ViRnJhbWUoZnJhbWVJRCkpCisgICAgICAgICAgICAgICAgICAgIGZy
YW1lLT5zZXRJc0ZyYW1lU2V0KHZhbHVlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIGNhc2UgV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZTo6RGlkRGVz
dHJveUZyYW1lOiB7CiAgICAgICAgICAgICAgICAgdWludDY0X3QgZnJhbWVJRDsKICAgICAgICAg
ICAgICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKENvcmVJUEM6Ok91dChmcmFtZUlEKSkpCkBA
IC0zNzMsNiArMzg0LDcgQEAgQ29yZUlQQzo6U3luY1JlcGx5TW9kZSBXZWJQcm9jZXNzUHJveHk6
OgogICAgICAgICAgICAgY2FzZSBXZWJQcm9jZXNzUHJveHlNZXNzYWdlOjpEaWRVcGRhdGVIaXN0
b3J5VGl0bGU6CiAgICAgICAgICAgICBjYXNlIFdlYlByb2Nlc3NQcm94eU1lc3NhZ2U6OkFkZEJh
Y2tGb3J3YXJkSXRlbToKICAgICAgICAgICAgIGNhc2UgV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZTo6
QWRkVmlzaXRlZExpbms6CisgICAgICAgICAgICBjYXNlIFdlYlByb2Nlc3NQcm94eU1lc3NhZ2U6
OkZyYW1lRGlkQmVjb21lRnJhbWVTZXQ6CiAgICAgICAgICAgICBjYXNlIFdlYlByb2Nlc3NQcm94
eU1lc3NhZ2U6OkRpZERlc3Ryb3lGcmFtZToKICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQ29yZUlQQzo6QXV0b21hdGljUmVwbHk7
CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lLmNwcAkocmV2aXNpb24gNzA1ODMpCisr
KyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
OTAsMyArOTAsOCBAQCBib29sIFdLRnJhbWVDYW5Qcm92aWRlU291cmNlKFdLRnJhbWVSZWYgCiB7
CiAgICAgcmV0dXJuIHRvSW1wbChmcmFtZVJlZiktPmNhblByb3ZpZGVTb3VyY2UoKTsKIH0KKwor
Ym9vbCBXS0ZyYW1lSXNGcmFtZVNldChXS0ZyYW1lUmVmIGZyYW1lUmVmKQoreworICAgIHJldHVy
biB0b0ltcGwoZnJhbWVSZWYpLT5pc0ZyYW1lU2V0KCk7Cit9CkluZGV4OiBXZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0ZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tGcmFtZS5oCShyZXZpc2lvbiA3MDU4MykKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtNjAsNiArNjAsOCBAQCBXS19FWFBPUlQgV0tD
ZXJ0aWZpY2F0ZUluZm9SZWYgV0tGcmFtZUdlCiAKIFdLX0VYUE9SVCBib29sIFdLRnJhbWVDYW5Q
cm92aWRlU291cmNlKFdLRnJhbWVSZWYgZnJhbWUpOwogCitXS19FWFBPUlQgYm9vbCBXS0ZyYW1l
SXNGcmFtZVNldChXS0ZyYW1lUmVmIGZyYW1lKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAj
ZW5kaWYKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAkocmV2aXNpb24gNzA1ODQpCisrKyBXZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC05MzUsNiArOTM1LDE1IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OnRyYW5zaXRpb25Ub0MKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wgdmFsdWUpCit7
CisgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKKyAgICBpZiAoIXdlYlBh
Z2UpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rp
b24oKS0+c2VuZChXZWJQcm9jZXNzUHJveHlNZXNzYWdlOjpGcmFtZURpZEJlY29tZUZyYW1lU2V0
LCAwLCBDb3JlSVBDOjpJbih3ZWJQYWdlLT5wYWdlSUQoKSwgdmFsdWUsIG1fZnJhbWUtPmZyYW1l
SUQoKSkpOworfQorCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9Db21t
aXR0ZWRGb3JOZXdQYWdlKCkKIHsKICAgICBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+Y3JlYXRlVmll
dyhtX2ZyYW1lLT5wYWdlKCktPnNpemUoKSwgQ29sb3I6OndoaXRlLCBmYWxzZSwgSW50U2l6ZSgp
LCBmYWxzZSk7CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAkocmV2aXNpb24gNzA1ODMpCisrKyBXZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMTY5LDcgKzE2OSw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IHNhdmVQbGF0Zm9ybURhdGFUb0NhY2hlZEZyYW1lKFdlYkNvcmU6OkNhY2hlZEZyYW1lKik7CiAg
ICAgdmlydHVhbCB2b2lkIHRyYW5zaXRpb25Ub0NvbW1pdHRlZEZyb21DYWNoZWRGcmFtZShXZWJD
b3JlOjpDYWNoZWRGcmFtZSopOwogICAgIHZpcnR1YWwgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0
ZWRGb3JOZXdQYWdlKCk7Ci0gICAgCisKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRCZWNv
bWVGcmFtZXNldChib29sKTsKKwogICAgIHZpcnR1YWwgYm9vbCBjYW5DYWNoZVBhZ2UoKSBjb25z
dDsKICAgICB2aXJ0dWFsIHZvaWQgZG93bmxvYWQoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgCkluZGV4OiBX
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cJKHJldmlzaW9uIDcwODIzKQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEwLTI4ICBBbGV4ZXkgUHJvc2t1
cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
ODU3NgorICAgICAgICBMZXQgV2ViS2l0MiBjbGllbnQga25vdyB3aGVuIGEgZnJhbWUgaXMgYSBm
cmFtZXNldAorCisgICAgICAgIEFkZGVkIGEgYmxhbmsgaW1wbGVtZW50YXRpb24gb2YgdGhlIG5l
dyBGcmFtZUxvYWRlckNsaWVudCBtZXRob2QuCisKKyAgICAgICAgKiBzcmMvRnJhbWVMb2FkZXJD
bGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjpk
aXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KToKKwogMjAxMC0xMC0yOCAgTWloYWkgUGFycGFyaXRh
ICA8bWloYWlwQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5j
cHAJKHJldmlzaW9uIDcwNTgzKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNs
aWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQyLDYgKzEzNDIsMTAgQEAgdm9pZCBG
cmFtZUxvYWRlckNsaWVudEltcGw6OnRyYW5zaXRpb25UbwogICAgIG1ha2VEb2N1bWVudFZpZXco
KTsKIH0KIAordm9pZCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpc3BhdGNoRGlkQmVjb21lRnJh
bWVzZXQoYm9vbCkKK3sKK30KKwogYm9vbCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmNhbkNhY2hl
UGFnZSgpIGNvbnN0CiB7CiAgICAgLy8gU2luY2Ugd2UgbWFuYWdlIHRoZSBjYWNoZSwgYWx3YXlz
IHJlcG9ydCB0aGlzIHBhZ2UgYXMgbm9uLWNhY2hlYWJsZSB0bwpJbmRleDogV2ViS2l0L2VmbC9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHJldmlzaW9uIDcw
ODIzKQorKysgV2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NSBAQAorMjAxMC0xMC0yOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg1NzYKKyAgICAgICAgTGV0IFdlYktpdDIg
Y2xpZW50IGtub3cgd2hlbiBhIGZyYW1lIGlzIGEgZnJhbWVzZXQKKworICAgICAgICBBZGRlZCBh
IGJsYW5rIGltcGxlbWVudGF0aW9uIG9mIHRoZSBuZXcgRnJhbWVMb2FkZXJDbGllbnQgbWV0aG9k
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkQmVjb21l
RnJhbWVzZXQpOgorCiAyMDEwLTEwLTI2ICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERtaXRyeSBUaXRvdi4KSW5kZXg6IFdlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCShy
ZXZpc2lvbiA3MDU4MykKKysrIFdlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRFZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MjMsNiArOTIzLDEwIEBAIHZvaWQgRnJh
bWVMb2FkZXJDbGllbnRFZmw6OnRyYW5zaXRpb25Ub0MKICAgICAgICAgZXdrX3ZpZXdfZnJhbWVf
bWFpbl9jbGVhcmVkKG1fdmlldyk7CiB9CiAKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRp
c3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkKK3sKK30KKwogUGFzc1JlZlB0cjxGcmFtZU5l
dHdvcmtpbmdDb250ZXh0PiBGcmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlTmV0d29ya2luZ0Nv
bnRleHQoKQogewogICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsOjpjcmVhdGUo
ZXdrX2ZyYW1lX2NvcmVfZ2V0KG1fZnJhbWUpKTsKSW5kZXg6IFdlYktpdC9ndGsvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MDgyMykKKysr
IFdlYktpdC9ndGsvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTAtMTAtMjggIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4NTc2CisgICAgICAgIExldCBXZWJLaXQyIGNsaWVudCBr
bm93IHdoZW4gYSBmcmFtZSBpcyBhIGZyYW1lc2V0CisKKyAgICAgICAgQWRkZWQgYSBibGFuayBp
bXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV3IEZyYW1lTG9hZGVyQ2xpZW50IG1ldGhvZC4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQpOgor
CiAyMDEwLTEwLTI4ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KSW5kZXg6IFdlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCShyZXZpc2lv
biA3MDU4MykKKysrIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRH
dGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEyLDYgKzEzMTIsMTAgQEAgdm9pZCBGcmFtZUxv
YWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbQogICAgIHBvc3RDb21taXRGcmFtZVZpZXdTZXR1
cChtX2ZyYW1lLCBmcmFtZS0+dmlldygpLCB0cnVlKTsKIH0KIAordm9pZCBGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKQoreworfQorCiBQYXNzUmVmUHRy
PEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IEZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3Jr
aW5nQ29udGV4dCgpCiB7CiAgICAgcmV0dXJuIEZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGs6OmNy
ZWF0ZShjb3JlKG1fZnJhbWUpKTsKSW5kZXg6IFdlYktpdC9oYWlrdS9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwkocmV2aXNpb24gNzA4MjMpCisrKyBXZWJL
aXQvaGFpa3UvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAt
MTAtMjggIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ4NTc2CisgICAgICAgIExldCBXZWJLaXQyIGNsaWVudCBrbm93
IHdoZW4gYSBmcmFtZSBpcyBhIGZyYW1lc2V0CisKKyAgICAgICAgQWRkZWQgYSBibGFuayBpbXBs
ZW1lbnRhdGlvbiBvZiB0aGUgbmV3IEZyYW1lTG9hZGVyQ2xpZW50IG1ldGhvZC4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50SGFpa3UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRIYWlrdTo6ZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNl
dCk6CisKIDIwMTAtMTAtMjYgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRG1pdHJ5IFRpdG92LgpJbmRleDogV2ViS2l0L2hhaWt1
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50SGFpa3UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEhhaWt1LmNwcAko
cmV2aXNpb24gNzA1ODMpCisrKyBXZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRIYWlrdS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg1Nyw0ICs4NTcsOCBAQCB2b2lk
IEZyYW1lTG9hZGVyQ2xpZW50SGFpa3U6OnRyYW5zaXRpb25UCiAgICAgICAgIG1fZnJhbWUtPnZp
ZXcoKS0+c2V0U2Nyb2xsYmFyTW9kZXMob3duZXItPnNjcm9sbGluZ01vZGUoKSwgb3duZXItPnNj
cm9sbGluZ01vZGUoKSk7CiB9CiAKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRIYWlrdTo6ZGlzcGF0
Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKQoreworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBXZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL0No
YW5nZUxvZwkocmV2aXNpb24gNzA4MjMpCisrKyBXZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEwLTEwLTI4ICBBbGV4ZXkgUHJvc2t1cnlha292
ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODU3Ngor
ICAgICAgICBMZXQgV2ViS2l0MiBjbGllbnQga25vdyB3aGVuIGEgZnJhbWUgaXMgYSBmcmFtZXNl
dAorCisgICAgICAgIEFkZGVkIGEgYmxhbmsgaW1wbGVtZW50YXRpb24gb2YgdGhlIG5ldyBGcmFt
ZUxvYWRlckNsaWVudCBtZXRob2QuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lm1tOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQmVj
b21lRnJhbWVzZXQpOgorCiAyMDEwLTEwLTI4ICBJdmFuIEtyc3RpxIcgIDxpa2VAYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgUm93ZS4KSW5kZXg6IFdlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgJKHJldmlzaW9uIDcwNTgz
KQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNzUsNiArMTc1LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgdHJhbnNpdGlvblRvQ29tbWl0dGVkRnJvbUNhY2hlZEZyYW1lKFdlYkNvcmU6OkNhY2hlZEZy
YW1lKik7CiAgICAgdmlydHVhbCB2b2lkIHRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2Uo
KTsKIAorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpOwor
CiAgICAgdmlydHVhbCBib29sIGNhbkhhbmRsZVJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGNhblNob3dNSU1FVHlwZShjb25z
dCBXVEY6OlN0cmluZyYgTUlNRVR5cGUpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBjYW5TaG93
TUlNRVR5cGVBc0hUTUwoY29uc3QgV1RGOjpTdHJpbmcmIE1JTUVUeXBlKSBjb25zdDsKSW5kZXg6
IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bQkocmV2aXNpb24gNzA1ODMpCisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMjUzLDYgKzEyNTMsMTAgQEAgdm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQwogICAgIH0KIH0KIAordm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKQorewor
fQorCiBSZXRhaW5QdHI8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lcj4gV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OnNldFVwUG9saWN5TGlzdGVuZXIoRnJhbWVQb2xpY3lGdW5jdGlvbiBmdW5jdGlvbikKIHsK
ICAgICAvLyBGSVhNRTogPHJkYXI6Ly81NjM0MzgxPiBXZSBuZWVkIHRvIHN1cHBvcnQgbXVsdGlw
bGUgYWN0aXZlIHBvbGljeSBsaXN0ZW5lcnMuCkluZGV4OiBXZWJLaXQvcXQvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDcwODIzKQorKysgV2Vi
S2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEw
LTI4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00ODU3NgorICAgICAgICBMZXQgV2ViS2l0MiBjbGllbnQga25vdyB3
aGVuIGEgZnJhbWUgaXMgYSBmcmFtZXNldAorCisgICAgICAgIEFkZGVkIGEgYmxhbmsgaW1wbGVt
ZW50YXRpb24gb2YgdGhlIG5ldyBGcmFtZUxvYWRlckNsaWVudCBtZXRob2QuCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQpOgorCiAy
MDEwLTEwLTI4ICBOb2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBBcml5YSBIaWRheWF0LgpJbmRleDogV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAkocmV2aXNpb24gNzA1ODMp
CisrKyBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI4Miw2ICsyODIsOSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6
OnRyYW5zaXRpb25Ub0NvCiAgICAgICAgICAgICAgICAgICAgICAgICB2U2Nyb2xsYmFyLCB2TG9j
ayk7CiB9CiAKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRRdDo6ZGlzcGF0Y2hEaWRCZWNvbWVGcmFt
ZXNldChib29sKQoreworfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6Om1ha2VSZXByZXNl
bnRhdGlvbihEb2N1bWVudExvYWRlciopCiB7CkluZGV4OiBXZWJLaXQvd2luL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gNzA4MjMpCisrKyBX
ZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEw
LTEwLTI4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00ODU3NgorICAgICAgICBMZXQgV2ViS2l0MiBjbGllbnQga25v
dyB3aGVuIGEgZnJhbWUgaXMgYSBmcmFtZXNldAorCisgICAgICAgIEFkZGVkIGEgYmxhbmsgaW1w
bGVtZW50YXRpb24gb2YgdGhlIG5ldyBGcmFtZUxvYWRlckNsaWVudCBtZXRob2QuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldCk6CisKIDIwMTAt
MTAtMjYgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQgYnVpbGQgZml4LgpJbmRleDogV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAJKHJldmlzaW9uIDcwNTgzKQorKysgV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTcxNCw2ICs3MTQsMTAgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNp
dGlvblRvQwogICAgIGNvcmUobV93ZWJGcmFtZSktPmNyZWF0ZVZpZXcoSW50UmVjdChyZWN0KS5z
aXplKCksIGJhY2tncm91bmRDb2xvciwgdHJhbnNwYXJlbnQsIEludFNpemUoKSwgZmFsc2UpOwog
fQogCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0
KGJvb2wpCit7Cit9CisKIGJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbkNhY2hlUGFnZSgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CkluZGV4OiBXZWJLaXQvd2luY2UvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC93aW5jZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDcwODIzKQor
KysgV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBA
CisyMDEwLTEwLTI4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODU3NgorICAgICAgICBMZXQgV2ViS2l0MiBjbGll
bnQga25vdyB3aGVuIGEgZnJhbWUgaXMgYSBmcmFtZXNldAorCisgICAgICAgIEFkZGVkIGEgYmxh
bmsgaW1wbGVtZW50YXRpb24gb2YgdGhlIG5ldyBGcmFtZUxvYWRlckNsaWVudCBtZXRob2QuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRXaW5DRTo6ZGlzcGF0Y2hEaWRCZWNvbWVG
cmFtZXNldCk6CisKIDIwMTAtMTAtMjYgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRG1pdHJ5IFRpdG92LgpJbmRleDogV2ViS2l0
L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNF
LmNwcAkocmV2aXNpb24gNzA1ODMpCisrKyBXZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRXaW5DRS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzMCw2ICs2MzAsMTAg
QEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbkNFOjp0cmFuc2l0aW9uVAogICAgICAgICBtX2Zy
YW1lLT5vd25lclJlbmRlcmVyKCktPnNldFdpZGdldChmcmFtZVZpZXcpOwogfQogCit2b2lkIEZy
YW1lTG9hZGVyQ2xpZW50V2luQ0U6OmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkKK3sK
K30KKwogUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBGcmFtZUxv
YWRlckNsaWVudFdpbkNFOjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpCiB7CiAgICAgcmV0dXJu
IEZyYW1lTmV0d29ya2luZ0NvbnRleHRXaW5DRTo6Y3JlYXRlKG1fZnJhbWUsIHVzZXJBZ2VudChL
VVJMKCkpKTsKSW5kZXg6IFdlYktpdC93eC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L3d4L0NoYW5nZUxvZwkocmV2aXNpb24gNzA4MjMpCisrKyBXZWJLaXQvd3gvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMjggIEFsZXhleSBQcm9za3Vy
eWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4
NTc2CisgICAgICAgIExldCBXZWJLaXQyIGNsaWVudCBrbm93IHdoZW4gYSBmcmFtZSBpcyBhIGZy
YW1lc2V0CisKKyAgICAgICAgQWRkZWQgYSBibGFuayBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV3
IEZyYW1lTG9hZGVyQ2xpZW50IG1ldGhvZC4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVu
dFd4OjpkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KToKKwogMjAxMC0xMC0yNiAgSmVubiBCcmFp
dGh3YWl0ZSAgPGplbm5iQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEbWl0
cnkgVGl0b3YuCkluZGV4OiBXZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dFd4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudFd4LmNwcAkocmV2aXNpb24gNzA1ODMpCisrKyBXZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFd4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTY2LDYgKzk2Niwx
MCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V3g6OnRyYW5zaXRpb25Ub0NvCiAgICAgICAgIG1f
ZnJhbWUtPmNyZWF0ZVZpZXcoc2l6ZSwgYmFja2dyb3VuZENvbG9yLCB0cmFuc3BhcmVudCwgSW50
U2l6ZSgpLCBmYWxzZSk7IAogfQogCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V3g6OmRpc3BhdGNo
RGlkQmVjb21lRnJhbWVzZXQoYm9vbCkKK3sKK30KKwogYm9vbCBGcmFtZUxvYWRlckNsaWVudFd4
OjpzaG91bGRVc2VQbHVnaW5Eb2N1bWVudChjb25zdCBTdHJpbmcgJm1pbWVUeXBlKSBjb25zdAog
ewogICAgIC8vIE5PVEU6IFBsdWdpbiBEb2N1bWVudHMgYXJlIHVzZWQgZm9yIHZpZXdpbmcgUERG
cywgZXRjLiBpbmxpbmUsIGFuZCBzaG91bGQK
</data>
<flag name="review"
          id="62484"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72267</attachid>
            <date>2010-10-28 17:25:43 -0700</date>
            <delta_ts>2010-10-29 13:26:47 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>FrameSet.txt</filename>
            <type>text/plain</type>
            <size>25897</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDgyMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTAtMTAtMjggIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4NTc2CisgICAgICAgIExl
dCBXZWJLaXQyIGNsaWVudCBrbm93IHdoZW4gYSBmcmFtZSBpcyBhIGZyYW1lc2V0CisKKyAgICAg
ICAgVGhpcyBjYW4gY2hhbmdlIGluIHR3byBjYXNlcywgd2hlbiBkb2N1bWVudCBjaGFuZ2VzLCBh
bmQgd2hlbiBmcmFtZSBpcyBuYXZpZ2F0ZWQgdG8gYW5vdGhlcgorICAgICAgICBkb2N1bWVudC4K
KworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6IChXZWJDb3JlOjpEb2N1bWVudDo6ZG9jdW1l
bnREaWRCZWNvbWVBY3RpdmUpOiBVcGRhdGUgdGhlIGNsaWVudCB3aGVuCisgICAgICAgIGEgZG9j
dW1lbnQgaXMgcmVzdG9yZWQgZnJvbSBwYWdlIGNhY2hlLgorCisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50Lmg6IEFkZGVkIGEgbmV3IGNsaWVudCBjYWxsIHRvIG5vdGlmeSBjbGll
bnQuCisKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaDoKKyAgICAgICAgKiBo
dG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1l
U2V0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEZyYW1lU2V0RWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCk6CisgICAgICAgIFVwZGF0ZSB0
aGUgY2xpZW50IHdoZW4gZG9jdW1lbnQgY2hhbmdlcywgcG90ZW50aWFsbHkgYmVjb21pbmcgYSBm
cmFtZXNldC4gUGVyIFdlYkNvcmUKKyAgICAgICAgZGVmaW5pdGlvbiwgYSBkb2N1bWVudCBpcyBh
IGZyYW1lc2V0IHdoZW4gaXQgaGFzIGEgRlJBTUVTRVQgZWxlbWVudCBhcyBkaXJlY3QgY2hpbGQg
b2YKKyAgICAgICAgZG9jdW1lbnQgZWxlbWVudCAoaXQgbWF5IGFsc28gaGF2ZSBib2R5IGVsZW1l
bnRzKS4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDogKFdlYkNvcmU6OkVtcHR5
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQpOgorICAgICAgICBB
ZGRlZCBhbiBlbXB0eSBpbXBsZW1lbnRhdGlvbi4KKwogMjAxMC0xMC0yOCAgTWloYWkgUGFycGFy
aXRhICA8bWloYWlwQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBB
ZGxlci4KSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDcwNTgzKQorKysgV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiRm9j
dXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRl
ci5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVl
LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSGFzaENoYW5nZUV2ZW50Lmgi
CkBAIC0zODYyLDYgKzM4NjMsOSBAQCB2b2lkIERvY3VtZW50Ojpkb2N1bWVudERpZEJlY29tZUFj
dGl2ZSgpCiAgICAgaWYgKHJlbmRlcmVyKCkpCiAgICAgICAgIHJlbmRlclZpZXcoKS0+ZGlkTW92
ZU9uc2NyZWVuKCk7CiAjZW5kaWYKKworICAgIEFTU0VSVChtX2ZyYW1lKTsKKyAgICBtX2ZyYW1l
LT5sb2FkZXIoKS0+Y2xpZW50KCktPmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoaXNGcmFtZVNl
dCgpKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6cmVnaXN0ZXJGb3JEb2N1bWVudEFjdGl2YXRpb25D
YWxsYmFja3MoRWxlbWVudCogZSkKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5j
cHAJKHJldmlzaW9uIDcwNTgzKQorKysgV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCiAjaW5jbHVkZSAiTGVuZ3RoLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgpA
QCAtMjA0LDQgKzIwNiwxNiBAQCB2b2lkIEhUTUxGcmFtZVNldEVsZW1lbnQ6OnJlY2FsY1N0eWxl
KFN0CiAgICAgSFRNTEVsZW1lbnQ6OnJlY2FsY1N0eWxlKGNoKTsKIH0KIAordm9pZCBIVE1MRnJh
bWVTZXRFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCgpCit7CisgICAgaWYgKEZyYW1lKiBm
cmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCkpCisgICAgICAgIGZyYW1lLT5sb2FkZXIoKS0+Y2xp
ZW50KCktPmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoZG9jdW1lbnQoKS0+aXNGcmFtZVNldCgp
KTsKK30KKwordm9pZCBIVE1MRnJhbWVTZXRFbGVtZW50OjpyZW1vdmVkRnJvbURvY3VtZW50KCkK
K3sKKyAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKSkKKyAgICAgICAg
ZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChkb2N1
bWVudCgpLT5pc0ZyYW1lU2V0KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmgJKHJldmlzaW9uIDcwNTgzKQorKysgV2ViQ29y
ZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNzcsNyArNzcs
MTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVu
dCopOwogCiAgICAgdmlydHVhbCB2b2lkIHJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlKTsKLSAgICAK
KworICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOworICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVkRnJvbURvY3VtZW50KCk7CisKICAgICBPd25BcnJheVB0cjxMZW5ndGg+IG1f
cm93TGVuZ3RoczsKICAgICBPd25BcnJheVB0cjxMZW5ndGg+IG1fY29sTGVuZ3RoczsKIApJbmRl
eDogV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmgJKHJldmlzaW9uIDcwNTgzKQorKysgV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyNSw2ICszMjUsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHRyYW5zaXRpb25Ub0NvbW1pdHRlZEZyb21DYWNoZWRGcmFtZShD
YWNoZWRGcmFtZSopIHsgfQogICAgIHZpcnR1YWwgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRG
b3JOZXdQYWdlKCkgeyB9ICAgIAogCisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQmVjb21l
RnJhbWVzZXQoYm9vbCkgeyB9CisKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2xvYmFsSGlzdG9y
eSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHbG9iYWxIaXN0b3J5UmVkaXJlY3RMaW5r
cygpIHsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRHb1RvSGlzdG9yeUl0ZW0oSGlzdG9yeUl0
ZW0qKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpJbmRleDogV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNs
aWVudC5oCShyZXZpc2lvbiA3MDU4MykKKysrIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyNCw2ICsyMjQsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGcm9tQ2FjaGVk
RnJhbWUoQ2FjaGVkRnJhbWUqKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0cmFuc2l0aW9u
VG9Db21taXR0ZWRGb3JOZXdQYWdlKCkgPSAwOwogCisgICAgICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpID0gMDsgLy8gQ2FuIGNoYW5nZSBiYWNrIGR1ZSB0
byBuYXZpZ2F0aW9uIG9yIERPTSBtb2RpZmljYXRpb24uCisKICAgICAgICAgdmlydHVhbCBib29s
IGNhbkNhY2hlUGFnZSgpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRvd25sb2Fk
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpID0gMDsKIApJbmRleDogV2ViS2l0Mi9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDcwODI4
KQorKysgV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1OSBAQAor
MjAxMC0xMC0yOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg1NzYKKyAgICAgICAgTGV0IFdlYktpdDIgY2xpZW50
IGtub3cgd2hlbiBhIGZyYW1lIGlzIGEgZnJhbWVzZXQKKworICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQcm94eTo6V2ViRnJh
bWVQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWVQcm94eTo6c2V0SXNGcmFtZVNldCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkZyYW1lUHJveHk6OmlzRnJhbWVTZXQpOgorICAgICAgICBSZW1lbWJlciB3aGV0aGVyIHRo
ZSBmcmFtZSBpcyBjdXJyZW50bHkgYSBmcmFtZXNldC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS0ZyYW1lLmNwcDogKFdLRnJhbWVJc0ZyYW1lU2V0KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0MvV0tGcmFtZS5oOgorICAgICAgICBBZGRlZCBjbGllbnQgQVBJLgorCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpmcmFtZURpZEJlY29tZUZyYW1lU2V0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlk
QmVjb21lRnJhbWVzZXQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgUGFzcyBub3RpZmljYXRpb24gZnJvbSB3ZWIg
cHJvY2VzcyB0byBVSSBwcm9jZXNzLgorCisyMDEwLTEwLTI4ICBBbGV4ZXkgUHJvc2t1cnlha292
ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODU3Ngor
ICAgICAgICBMZXQgV2ViS2l0MiBjbGllbnQga25vdyB3aGVuIGEgZnJhbWUgaXMgYSBmcmFtZXNl
dAorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZVByb3h5OjpXZWJGcmFtZVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViRnJhbWVQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZVByb3h5OjpzZXRJc0Zy
YW1lU2V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQcm94eTo6aXNGcmFtZVNldCk6CisK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tGcmFtZS5jcHA6IChXS0ZyYW1lSXNGcmFtZVNl
dCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWUuaDoKKyAgICAgICAgQWRkZWQg
Y2xpZW50IEFQSS4KKworICAgICAgICAqIFNoYXJlZC9Db3JlSVBDU3VwcG9ydC9XZWJQcm9jZXNz
UHJveHlNZXNzYWdlS2luZHMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNl
dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oOgorICAgICAgICBQYXNzIG5vdGlmaWNhdGlvbiBmcm9tIHdlYiBwcm9jZXNzIHRvIFVJ
IHByb2Nlc3MuCisKIDIwMTAtMTAtMjggIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYktpdDIv
VUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9j
ZXNzL1dlYkZyYW1lUHJveHkuY3BwCShyZXZpc2lvbiA3MDU4MykKKysrIFdlYktpdDIvVUlQcm9j
ZXNzL1dlYkZyYW1lUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogV2ViRnJhbWVQcm94eTo6V2ViRnJhbWVQcm94eShXZWJQYWdlUHJv
eHkqIHBhZ2UsIHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgOiBtX3BhZ2UocGFnZSkKICAgICAsIG1f
bG9hZFN0YXRlKExvYWRTdGF0ZUZpbmlzaGVkKQorICAgICwgbV9pc0ZyYW1lU2V0KGZhbHNlKQog
ICAgICwgbV9mcmFtZUlEKGZyYW1lSUQpCiB7CiB9CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQ
cm94eS5oCShyZXZpc2lvbiA3MDU4MykKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJv
eHkuaAkod29ya2luZyBjb3B5KQpAQCAtNjksNiArNjksMTAgQEAgcHVibGljOgogICAgIHZvaWQg
ZGlzY29ubmVjdCgpOwogCiAgICAgYm9vbCBpc01haW5GcmFtZSgpIGNvbnN0OworCisgICAgdm9p
ZCBzZXRJc0ZyYW1lU2V0KGJvb2wgdmFsdWUpIHsgbV9pc0ZyYW1lU2V0ID0gdmFsdWU7IH0KKyAg
ICBib29sIGlzRnJhbWVTZXQoKSBjb25zdCB7IHJldHVybiBtX2lzRnJhbWVTZXQ7IH0KKwogICAg
IExvYWRTdGF0ZSBsb2FkU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2xvYWRTdGF0ZTsgfQogCiAg
ICAgY29uc3QgU3RyaW5nJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQpAQCAtMTA4LDYg
KzExMiw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcHJvdmlzaW9uYWxVUkw7CiAgICAgU3Ry
aW5nIG1fdW5yZWFjaGFibGVVUkw7CiAgICAgU3RyaW5nIG1fTUlNRVR5cGU7CisgICAgYm9vbCBt
X2lzRnJhbWVTZXQ7CiAgICAgUmVmUHRyPFdlYkNlcnRpZmljYXRlSW5mbz4gbV9jZXJ0aWZpY2F0
ZUluZm87CiAgICAgUmVmUHRyPFdlYkZyYW1lTGlzdGVuZXJQcm94eT4gbV9hY3RpdmVMaXN0ZW5l
cjsKICAgICB1aW50NjRfdCBtX2ZyYW1lSUQ7CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAJKHJldmlzaW9uIDcwNTg0KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjg1LDYgKzY4NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRDb21taXRMb2FkRm9yRnJhbWUKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IHByb2Nl
c3MoKS0+d2ViRnJhbWUoZnJhbWVJRCk7CiAKICAgICBmcmFtZS0+c2V0TUlNRVR5cGUobWltZVR5
cGUpOworICAgIGZyYW1lLT5zZXRJc0ZyYW1lU2V0KGZhbHNlKTsKICAgICBmcmFtZS0+c2V0Q2Vy
dGlmaWNhdGVJbmZvKFdlYkNlcnRpZmljYXRlSW5mbzo6Y3JlYXRlKGNlcnRpZmljYXRlSW5mbykp
OwogICAgIGZyYW1lLT5kaWRDb21taXRMb2FkKCk7CiAgICAgbV9sb2FkZXJDbGllbnQuZGlkQ29t
bWl0TG9hZEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1c2VyRGF0YS5nZXQoKSk7CkBAIC04MDYsNiAr
ODA3LDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSdW5JbnNlY3VyZUNvbnRlbnQKICAgICBt
X2xvYWRlckNsaWVudC5kaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh0aGlzLCBmcmFtZSwg
dXNlckRhdGEuZ2V0KCkpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6ZnJhbWVEaWRCZWNvbWVG
cmFtZVNldCh1aW50NjRfdCBmcmFtZUlELCBib29sIHZhbHVlKQoreworICAgIFdlYkZyYW1lUHJv
eHkqIGZyYW1lID0gcHJvY2VzcygpLT53ZWJGcmFtZShmcmFtZUlEKTsKKworICAgIGZyYW1lLT5z
ZXRJc0ZyYW1lU2V0KHZhbHVlKTsKK30KKwogLy8gUG9saWN5Q2xpZW50CiAKIHZvaWQgV2ViUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQzMl90IG9wYXF1ZU5hdmlnYXRpb25UeXBlLCB1aW50MzJfdCBvcGFxdWVNb2RpZmllcnMs
IGludDMyX3Qgb3BhcXVlTW91c2VCdXR0b24sIGNvbnN0IFN0cmluZyYgdXJsLCB1aW50NjRfdCBs
aXN0ZW5lcklEKQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDcwNTg0
KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI1MSw2ICsyNTEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVtb3ZlRnJhbWVGcm9tSGll
cmFyY2h5KHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogICAg
IHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250
ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
CisgICAgdm9pZCBmcmFtZURpZEJlY29tZUZyYW1lU2V0KHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wp
OwogICAgIHZvaWQgZGlkU3RhcnRQcm9ncmVzcygpOwogICAgIHZvaWQgZGlkQ2hhbmdlUHJvZ3Jl
c3MoZG91YmxlKTsKICAgICB2b2lkIGRpZEZpbmlzaFByb2dyZXNzKCk7CkluZGV4OiBXZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiA3MDU4NCkKKysr
IFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5
KQpAQCAtNzIsNiArNzIsOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIERpZERp
c3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6Oklu
amVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQogICAgIERpZFJ1bkluc2Vj
dXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpCiAKKyAgICBGcmFtZURpZEJlY29tZUZyYW1l
U2V0KHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgdmFsdWUpCisKICAgICAjIEZvcm1zIG1lc3NhZ2Vz
LgogICAgIFdpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZy
YW1lSUQsIFdlYktpdDo6U3RyaW5nUGFpclZlY3RvciB0ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIgdXNl
ckRhdGEpCiAKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWUuY3BwCShyZXZpc2lvbiA3
MDU4MykKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC05MCwzICs5MCw4IEBAIGJvb2wgV0tGcmFtZUNhblByb3ZpZGVTb3VyY2UoV0tGcmFt
ZVJlZiAKIHsKICAgICByZXR1cm4gdG9JbXBsKGZyYW1lUmVmKS0+Y2FuUHJvdmlkZVNvdXJjZSgp
OwogfQorCitib29sIFdLRnJhbWVJc0ZyYW1lU2V0KFdLRnJhbWVSZWYgZnJhbWVSZWYpCit7Cisg
ICAgcmV0dXJuIHRvSW1wbChmcmFtZVJlZiktPmlzRnJhbWVTZXQoKTsKK30KSW5kZXg6IFdlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0ZyYW1lLmgJKHJldmlzaW9uIDcwNTgzKQorKysgV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2MCw4IEBAIFdLX0VY
UE9SVCBXS0NlcnRpZmljYXRlSW5mb1JlZiBXS0ZyYW1lR2UKIAogV0tfRVhQT1JUIGJvb2wgV0tG
cmFtZUNhblByb3ZpZGVTb3VyY2UoV0tGcmFtZVJlZiBmcmFtZSk7CiAKK1dLX0VYUE9SVCBib29s
IFdLRnJhbWVJc0ZyYW1lU2V0KFdLRnJhbWVSZWYgZnJhbWUpOworCiAjaWZkZWYgX19jcGx1c3Bs
dXMKIH0KICNlbmRpZgpJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCShyZXZpc2lvbiA3MDU4NCkK
KysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkzNSw2ICs5MzUsMTUgQEAgdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6dHJhbnNpdGlvblRvQwogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK3Zv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCB2
YWx1ZSkKK3sKKyAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpOworICAgIGlm
ICghd2ViUGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCku
Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZyYW1lRGlkQmVjb21l
RnJhbWVTZXQobV9mcmFtZS0+ZnJhbWVJRCgpLCB2YWx1ZSksIHdlYlBhZ2UtPnBhZ2VJRCgpKTsK
K30KKwogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9y
TmV3UGFnZSgpCiB7CiAgICAgbV9mcmFtZS0+Y29yZUZyYW1lKCktPmNyZWF0ZVZpZXcobV9mcmFt
ZS0+cGFnZSgpLT5zaXplKCksIENvbG9yOjp3aGl0ZSwgZmFsc2UsIEludFNpemUoKSwgZmFsc2Up
OwpJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgJKHJldmlzaW9uIDcwNTgzKQorKysgV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE2OSw3ICsxNjksOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzYXZlUGxh
dGZvcm1EYXRhVG9DYWNoZWRGcmFtZShXZWJDb3JlOjpDYWNoZWRGcmFtZSopOwogICAgIHZpcnR1
YWwgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGcm9tQ2FjaGVkRnJhbWUoV2ViQ29yZTo6Q2Fj
aGVkRnJhbWUqKTsKICAgICB2aXJ0dWFsIHZvaWQgdHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3
UGFnZSgpOwotICAgIAorCisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQmVjb21lRnJhbWVz
ZXQoYm9vbCk7CisKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29uc3Q7CiAgICAg
dmlydHVhbCB2b2lkIGRvd25sb2FkKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogICAgIApJbmRleDogV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDgyMykKKysrIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0xMC0yOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAg
PGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg1NzYKKyAg
ICAgICAgTGV0IFdlYktpdDIgY2xpZW50IGtub3cgd2hlbiBhIGZyYW1lIGlzIGEgZnJhbWVzZXQK
KworICAgICAgICBBZGRlZCBhIGJsYW5rIGltcGxlbWVudGF0aW9uIG9mIHRoZSBuZXcgRnJhbWVM
b2FkZXJDbGllbnQgbWV0aG9kLgorCisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlzcGF0Y2hE
aWRCZWNvbWVGcmFtZXNldCk6CisKIDIwMTAtMTAtMjggIE1paGFpIFBhcnBhcml0YSAgPG1paGFp
cEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4
OiBXZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCShyZXZp
c2lvbiA3MDU4MykKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBs
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM0Miw2ICsxMzQyLDEwIEBAIHZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRJbXBsOjp0cmFuc2l0aW9uVG8KICAgICBtYWtlRG9jdW1lbnRWaWV3KCk7CiB9CiAK
K3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KGJv
b2wpCit7Cit9CisKIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpjYW5DYWNoZVBhZ2UoKSBj
b25zdAogewogICAgIC8vIFNpbmNlIHdlIG1hbmFnZSB0aGUgY2FjaGUsIGFsd2F5cyByZXBvcnQg
dGhpcyBwYWdlIGFzIG5vbi1jYWNoZWFibGUgdG8KSW5kZXg6IFdlYktpdC9lZmwvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9lZmwvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MDgyMykKKysr
IFdlYktpdC9lZmwvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTAtMTAtMjggIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4NTc2CisgICAgICAgIExldCBXZWJLaXQyIGNsaWVudCBr
bm93IHdoZW4gYSBmcmFtZSBpcyBhIGZyYW1lc2V0CisKKyAgICAgICAgQWRkZWQgYSBibGFuayBp
bXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV3IEZyYW1lTG9hZGVyQ2xpZW50IG1ldGhvZC4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0
KToKKwogMjAxMC0xMC0yNiAgSmVubiBCcmFpdGh3YWl0ZSAgPGplbm5iQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEbWl0cnkgVGl0b3YuCkluZGV4OiBXZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAkocmV2aXNpb24g
NzA1ODMpCisrKyBXZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZs
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTIzLDYgKzkyMywxMCBAQCB2b2lkIEZyYW1lTG9hZGVy
Q2xpZW50RWZsOjp0cmFuc2l0aW9uVG9DCiAgICAgICAgIGV3a192aWV3X2ZyYW1lX21haW5fY2xl
YXJlZChtX3ZpZXcpOwogfQogCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERp
ZEJlY29tZUZyYW1lc2V0KGJvb2wpCit7Cit9CisKIFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5n
Q29udGV4dD4gRnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkK
IHsKICAgICByZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbDo6Y3JlYXRlKGV3a19mcmFt
ZV9jb3JlX2dldChtX2ZyYW1lKSk7CkluZGV4OiBXZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkocmV2aXNpb24gNzA4MjMpCisrKyBXZWJLaXQv
Z3RrL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEwLTI4
ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00ODU3NgorICAgICAgICBMZXQgV2ViS2l0MiBjbGllbnQga25vdyB3aGVu
IGEgZnJhbWUgaXMgYSBmcmFtZXNldAorCisgICAgICAgIEFkZGVkIGEgYmxhbmsgaW1wbGVtZW50
YXRpb24gb2YgdGhlIG5ldyBGcmFtZUxvYWRlckNsaWVudCBtZXRob2QuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KToKKwogMjAxMC0x
MC0yOCAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCkluZGV4OiBXZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAkocmV2aXNpb24gNzA1ODMp
CisrKyBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTMxMiw2ICsxMzEyLDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGll
bnQ6OnRyYW5zaXRpb25Ub0NvbW0KICAgICBwb3N0Q29tbWl0RnJhbWVWaWV3U2V0dXAobV9mcmFt
ZSwgZnJhbWUtPnZpZXcoKSwgdHJ1ZSk7CiB9CiAKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkKK3sKK30KKwogUGFzc1JlZlB0cjxGcmFtZU5l
dHdvcmtpbmdDb250ZXh0PiBGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRl
eHQoKQogewogICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrOjpjcmVhdGUoY29y
ZShtX2ZyYW1lKSk7CkluZGV4OiBXZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9oYWlrdS9DaGFuZ2VMb2cJKHJldmlzaW9uIDcwODIzKQorKysgV2ViS2l0L2hhaWt1
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEwLTI4ICBB
bGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00ODU3NgorICAgICAgICBMZXQgV2ViS2l0MiBjbGllbnQga25vdyB3aGVuIGEg
ZnJhbWUgaXMgYSBmcmFtZXNldAorCisgICAgICAgIEFkZGVkIGEgYmxhbmsgaW1wbGVtZW50YXRp
b24gb2YgdGhlIG5ldyBGcmFtZUxvYWRlckNsaWVudCBtZXRob2QuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEhhaWt1LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyQ2xpZW50SGFpa3U6OmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQpOgorCiAy
MDEwLTEwLTI2ICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERtaXRyeSBUaXRvdi4KSW5kZXg6IFdlYktpdC9oYWlrdS9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEhhaWt1LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
aGFpa3UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRIYWlrdS5jcHAJKHJldmlzaW9u
IDcwNTgzKQorKysgV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
SGFpa3UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NTcsNCArODU3LDggQEAgdm9pZCBGcmFtZUxv
YWRlckNsaWVudEhhaWt1Ojp0cmFuc2l0aW9uVAogICAgICAgICBtX2ZyYW1lLT52aWV3KCktPnNl
dFNjcm9sbGJhck1vZGVzKG93bmVyLT5zY3JvbGxpbmdNb2RlKCksIG93bmVyLT5zY3JvbGxpbmdN
b2RlKCkpOwogfQogCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SGFpa3U6OmRpc3BhdGNoRGlkQmVj
b21lRnJhbWVzZXQoYm9vbCkKK3sKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
V2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDcwODIzKQorKysgV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMC0yOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg1NzYKKyAgICAgICAg
TGV0IFdlYktpdDIgY2xpZW50IGtub3cgd2hlbiBhIGZyYW1lIGlzIGEgZnJhbWVzZXQKKworICAg
ICAgICBBZGRlZCBhIGJsYW5rIGltcGxlbWVudGF0aW9uIG9mIHRoZSBuZXcgRnJhbWVMb2FkZXJD
bGllbnQgbWV0aG9kLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEJlY29tZUZyYW1l
c2V0KToKKwogMjAxMC0xMC0yOCAgSXZhbiBLcnN0acSHICA8aWtlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCShyZXZpc2lvbiA3MDU4MykKKysrIFdl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMTc1LDYgKzE3NSw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHRyYW5z
aXRpb25Ub0NvbW1pdHRlZEZyb21DYWNoZWRGcmFtZShXZWJDb3JlOjpDYWNoZWRGcmFtZSopOwog
ICAgIHZpcnR1YWwgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCk7CiAKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKTsKKwogICAgIHZp
cnR1YWwgYm9vbCBjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBjYW5TaG93TUlNRVR5cGUoY29uc3QgV1RGOjpT
dHJpbmcmIE1JTUVUeXBlKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2hvd01JTUVUeXBl
QXNIVE1MKGNvbnN0IFdURjo6U3RyaW5nJiBNSU1FVHlwZSkgY29uc3Q7CkluZGV4OiBXZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0JKHJldmlz
aW9uIDcwNTgzKQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMTI1Myw2ICsxMjUzLDEwIEBAIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0MKICAgICB9CiB9CiAKK3ZvaWQgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkKK3sKK30KKwogUmV0
YWluUHRyPFdlYkZyYW1lUG9saWN5TGlzdGVuZXI+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzZXRV
cFBvbGljeUxpc3RlbmVyKEZyYW1lUG9saWN5RnVuY3Rpb24gZnVuY3Rpb24pCiB7CiAgICAgLy8g
RklYTUU6IDxyZGFyOi8vNTYzNDM4MT4gV2UgbmVlZCB0byBzdXBwb3J0IG11bHRpcGxlIGFjdGl2
ZSBwb2xpY3kgbGlzdGVuZXJzLgpJbmRleDogV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MDgyMykKKysrIFdlYktpdC9xdC9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0xMC0yOCAgQWxl
eGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDg1NzYKKyAgICAgICAgTGV0IFdlYktpdDIgY2xpZW50IGtub3cgd2hlbiBhIGZy
YW1lIGlzIGEgZnJhbWVzZXQKKworICAgICAgICBBZGRlZCBhIGJsYW5rIGltcGxlbWVudGF0aW9u
IG9mIHRoZSBuZXcgRnJhbWVMb2FkZXJDbGllbnQgbWV0aG9kLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlckNsaWVudFF0OjpkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KToKKwogMjAxMC0xMC0y
OCAgTm9hbSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgQXJpeWEgSGlkYXlhdC4KSW5kZXg6IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAJKHJldmlzaW9uIDcwNTgzKQorKysgV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yODIsNiArMjgyLDkgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0Ojp0cmFuc2l0
aW9uVG9DbwogICAgICAgICAgICAgICAgICAgICAgICAgdlNjcm9sbGJhciwgdkxvY2spOwogfQog
Cit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9v
bCkKK3sKK30KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0OjptYWtlUmVwcmVzZW50YXRpb24o
RG9jdW1lbnRMb2FkZXIqKQogewpJbmRleDogV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDcwODIzKQorKysgV2ViS2l0L3dp
bi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0xMC0yOCAg
QWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDg1NzYKKyAgICAgICAgTGV0IFdlYktpdDIgY2xpZW50IGtub3cgd2hlbiBh
IGZyYW1lIGlzIGEgZnJhbWVzZXQKKworICAgICAgICBBZGRlZCBhIGJsYW5rIGltcGxlbWVudGF0
aW9uIG9mIHRoZSBuZXcgRnJhbWVMb2FkZXJDbGllbnQgbWV0aG9kLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQpOgorCiAyMDEwLTEwLTI2ICBC
cmVudCBGdWxnaGFtICA8YmZ1bGdoYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
IGJ1aWxkIGZpeC4KSW5kZXg6IFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCShyZXZpc2lvbiA3MDU4MykKKysrIFdlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03
MTQsNiArNzE0LDEwIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0MK
ICAgICBjb3JlKG1fd2ViRnJhbWUpLT5jcmVhdGVWaWV3KEludFJlY3QocmVjdCkuc2l6ZSgpLCBi
YWNrZ3JvdW5kQ29sb3IsIHRyYW5zcGFyZW50LCBJbnRTaXplKCksIGZhbHNlKTsKIH0KIAordm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKQor
eworfQorCiBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5DYWNoZVBhZ2UoKSBjb25zdAog
ewogICAgIHJldHVybiB0cnVlOwpJbmRleDogV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvd2luY2UvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MDgyMykKKysrIFdlYktp
dC93aW5jZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0x
MC0yOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDg1NzYKKyAgICAgICAgTGV0IFdlYktpdDIgY2xpZW50IGtub3cg
d2hlbiBhIGZyYW1lIGlzIGEgZnJhbWVzZXQKKworICAgICAgICBBZGRlZCBhIGJsYW5rIGltcGxl
bWVudGF0aW9uIG9mIHRoZSBuZXcgRnJhbWVMb2FkZXJDbGllbnQgbWV0aG9kLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50V2luQ0U6OmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQp
OgorCiAyMDEwLTEwLTI2ICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERtaXRyeSBUaXRvdi4KSW5kZXg6IFdlYktpdC93aW5jZS9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAJKHJl
dmlzaW9uIDcwNTgzKQorKysgV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50V2luQ0UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MzAsNiArNjMwLDEwIEBAIHZvaWQg
RnJhbWVMb2FkZXJDbGllbnRXaW5DRTo6dHJhbnNpdGlvblQKICAgICAgICAgbV9mcmFtZS0+b3du
ZXJSZW5kZXJlcigpLT5zZXRXaWRnZXQoZnJhbWVWaWV3KTsKIH0KIAordm9pZCBGcmFtZUxvYWRl
ckNsaWVudFdpbkNFOjpkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpCit7Cit9CisKIFBh
c3NSZWZQdHI8V2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gRnJhbWVMb2FkZXJDbGll
bnRXaW5DRTo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKQogewogICAgIHJldHVybiBGcmFtZU5l
dHdvcmtpbmdDb250ZXh0V2luQ0U6OmNyZWF0ZShtX2ZyYW1lLCB1c2VyQWdlbnQoS1VSTCgpKSk7
CkluZGV4OiBXZWJLaXQvd3gvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93eC9DaGFu
Z2VMb2cJKHJldmlzaW9uIDcwODIzKQorKysgV2ViS2l0L3d4L0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEwLTI4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8
YXBAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODU3NgorICAg
ICAgICBMZXQgV2ViS2l0MiBjbGllbnQga25vdyB3aGVuIGEgZnJhbWUgaXMgYSBmcmFtZXNldAor
CisgICAgICAgIEFkZGVkIGEgYmxhbmsgaW1wbGVtZW50YXRpb24gb2YgdGhlIG5ldyBGcmFtZUxv
YWRlckNsaWVudCBtZXRob2QuCisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50V3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRXeDo6ZGlz
cGF0Y2hEaWRCZWNvbWVGcmFtZXNldCk6CisKIDIwMTAtMTAtMjYgIEplbm4gQnJhaXRod2FpdGUg
IDxqZW5uYkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRG1pdHJ5IFRpdG92
LgpJbmRleDogV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRX
eC5jcHAJKHJldmlzaW9uIDcwNTgzKQorKysgV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRXeC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk2Niw2ICs5NjYsMTAgQEAgdm9p
ZCBGcmFtZUxvYWRlckNsaWVudFd4Ojp0cmFuc2l0aW9uVG9DbwogICAgICAgICBtX2ZyYW1lLT5j
cmVhdGVWaWV3KHNpemUsIGJhY2tncm91bmRDb2xvciwgdHJhbnNwYXJlbnQsIEludFNpemUoKSwg
ZmFsc2UpOyAKIH0KIAordm9pZCBGcmFtZUxvYWRlckNsaWVudFd4OjpkaXNwYXRjaERpZEJlY29t
ZUZyYW1lc2V0KGJvb2wpCit7Cit9CisKIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRXeDo6c2hvdWxk
VXNlUGx1Z2luRG9jdW1lbnQoY29uc3QgU3RyaW5nICZtaW1lVHlwZSkgY29uc3QKIHsKICAgICAv
LyBOT1RFOiBQbHVnaW4gRG9jdW1lbnRzIGFyZSB1c2VkIGZvciB2aWV3aW5nIFBERnMsIGV0Yy4g
aW5saW5lLCBhbmQgc2hvdWxkCg==
</data>
<flag name="review"
          id="62492"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>