<?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>69105</bug_id>
          
          <creation_ts>2011-09-29 14:14:37 -0700</creation_ts>
          <short_desc>[Qt][WK2] Event delivery in QDesktopWebView is broken after merge of Qt5 refactor branch</short_desc>
          <delta_ts>2011-09-30 04:57:40 -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>WebKit Qt</component>
          <version>528+ (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>
          
          <blocked>69104</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zeno Albisser">zeno</reporter>
          <assigned_to name="Zeno Albisser">zeno</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>475671</commentid>
    <comment_count>0</comment_count>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2011-09-29 14:14:37 -0700</bug_when>
    <thetext>inputMethodEvents produce endless loops due to QSGItem::event(), QSGItem::inputMethodEvent() and virtual functions in QDesktopWebView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475678</commentid>
    <comment_count>1</comment_count>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2011-09-29 14:31:25 -0700</bug_when>
    <thetext>it seems that QSGItem changed from using QGraphicsSceneMouseEvents to QMouseEvents.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475990</commentid>
    <comment_count>2</comment_count>
      <attachid>109269</attachid>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2011-09-30 02:27:59 -0700</bug_when>
    <thetext>Created attachment 109269
patch for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475991</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-30 02:30:37 -0700</bug_when>
    <thetext>Attachment 109269 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1

Source/WebKit2/Shared/qt/WebEventFactoryQt.h:44:  The parameter name &quot;event&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/Shared/qt/WebEventFactoryQt.h:45:  The parameter name &quot;event&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/Shared/qt/WebEventFactoryQt.cpp:56:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Total errors found: 3 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475996</commentid>
    <comment_count>4</comment_count>
      <attachid>109269</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-09-30 02:48:12 -0700</bug_when>
    <thetext>Comment on attachment 109269
patch for review.

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

&gt; Source/WebKit2/UIProcess/API/qt/qdesktopwebview.cpp:360
&gt; +    if (ev-&gt;type() == QEvent::InputMethod)
&gt; +        return false; // This is necessary to avoid an endless loop in connection with QSGItem::event().

I thought that happened because we reimplemented inputMethodEvent()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475998</commentid>
    <comment_count>5</comment_count>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2011-09-30 02:56:42 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 109269 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=109269&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qdesktopwebview.cpp:360
&gt; &gt; +    if (ev-&gt;type() == QEvent::InputMethod)
&gt; &gt; +        return false; // This is necessary to avoid an endless loop in connection with QSGItem::event().
&gt; 
&gt; I thought that happened because we reimplemented inputMethodEvent()?

Yes... this, or the other way round.
I did not remove the inputMethodEvent() function because it seems we still need to feed the events into QSGItem. But we don&apos;t want QSGItem to return us the same events again.
I think there is still room for improvement in QSGItem. I don&apos;t see why this one only handles InputMethodEvents but no other events.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476014</commentid>
    <comment_count>6</comment_count>
      <attachid>109278</attachid>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2011-09-30 03:43:58 -0700</bug_when>
    <thetext>Created attachment 109278
patch for review - fixed coding style issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476017</commentid>
    <comment_count>7</comment_count>
      <attachid>109278</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-09-30 03:53:34 -0700</bug_when>
    <thetext>Comment on attachment 109278
patch for review - fixed coding style issues

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476031</commentid>
    <comment_count>8</comment_count>
      <attachid>109278</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-30 04:57:36 -0700</bug_when>
    <thetext>Comment on attachment 109278
patch for review - fixed coding style issues

Clearing flags on attachment: 109278

Committed r96399: &lt;http://trac.webkit.org/changeset/96399&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476032</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-30 04:57:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109269</attachid>
            <date>2011-09-30 02:27:59 -0700</date>
            <delta_ts>2011-09-30 03:43:58 -0700</delta_ts>
            <desc>patch for review.</desc>
            <filename>69105.patch</filename>
            <type>text/plain</type>
            <size>19941</size>
            <attacher name="Zeno Albisser">zeno</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAxNjIxNjhmLi5mOWMxMWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcg
QEAKKzIwMTEtMDktMzAgIFplbm8gQWxiaXNzZXIgIDx6ZW5vLmFsYmlzc2VyQG5va2lhLmNvbT4K
KworICAgICAgICBbUXRdW1dLMl0gRXZlbnQgZGVsaXZlcnkgaW4gUURlc2t0b3BXZWJWaWV3IGlz
IGJyb2tlbiBhZnRlciBtZXJnZSBvZiBRdDUgcmVmYWN0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTA1CisKKyAgICAgICAgVGhpcyBjaGFuZ2Vz
IFFEZXNrdG9wV2ViVmlldyBhbmQgUURlc2t0b3BXZWJQYWdlUHJveHkgdG8gdXNlIFFNb3VzZUV2
ZW50IGluc3RlYWQKKyAgICAgICAgb2YgUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50LgorICAgICAg
ICBGdXJ0aGVyIGl0IHJlbW92ZXMgYW4gZW5kbGVzcyBsb29wIGludHJvZHVjZWQgYnkgdGhlIFFT
R0l0ZW06OmV2ZW50KCkgZnVuY3Rpb24KKyAgICAgICAgZGVsaXZlcmluZyBpbnB1dE1ldGhvZEV2
ZW50cyBidXQgbm8gb3RoZXIgZXZlbnRzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogU2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQuaDoKKyAgICAg
ICAgKFdlYktpdDo6TmF0aXZlV2ViTW91c2VFdmVudDo6bmF0aXZlRXZlbnQpOgorICAgICAgICAq
IFNoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50Lmg6CisgICAgICAgIChXZWJLaXQ6Ok5hdGl2ZVdl
YldoZWVsRXZlbnQ6Om5hdGl2ZUV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvcXQvTmF0aXZlV2Vi
TW91c2VFdmVudFF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmF0aXZlV2ViTW91c2VFdmVudDo6
TmF0aXZlV2ViTW91c2VFdmVudCk6CisgICAgICAgICogU2hhcmVkL3F0L05hdGl2ZVdlYldoZWVs
RXZlbnRRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQ6Ok5hdGl2
ZVdlYldoZWVsRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9xdC9XZWJFdmVudEZhY3RvcnlRdC5j
cHA6CisgICAgICAgIChXZWJLaXQ6Om1vdXNlQnV0dG9uRm9yRXZlbnQpOgorICAgICAgICAoV2Vi
S2l0Ojp3ZWJFdmVudFR5cGVGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFj
dG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFj
dG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudCk6CisgICAgICAgICogU2hhcmVkL3F0L1dlYkV2ZW50
RmFjdG9yeVF0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXcu
Y3BwOgorICAgICAgICAoUURlc2t0b3BXZWJWaWV3Ojptb3VzZVByZXNzRXZlbnQpOgorICAgICAg
ICAoUURlc2t0b3BXZWJWaWV3Ojptb3VzZU1vdmVFdmVudCk6CisgICAgICAgIChRRGVza3RvcFdl
YlZpZXc6Om1vdXNlUmVsZWFzZUV2ZW50KToKKyAgICAgICAgKFFEZXNrdG9wV2ViVmlldzo6bW91
c2VEb3VibGVDbGlja0V2ZW50KToKKyAgICAgICAgKFFEZXNrdG9wV2ViVmlldzo6d2hlZWxFdmVu
dCk6CisgICAgICAgIChRRGVza3RvcFdlYlZpZXc6OmV2ZW50KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3F0L3FkZXNrdG9wd2Vidmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9xZGVz
a3RvcHdlYnBhZ2Vwcm94eS5jcHA6CisgICAgICAgIChRRGVza3RvcFdlYlBhZ2VQcm94eTo6aGFu
ZGxlRXZlbnQpOgorICAgICAgICAoUURlc2t0b3BXZWJQYWdlUHJveHk6OmhhbmRsZU1vdXNlTW92
ZUV2ZW50KToKKyAgICAgICAgKFFEZXNrdG9wV2ViUGFnZVByb3h5OjpoYW5kbGVNb3VzZVByZXNz
RXZlbnQpOgorICAgICAgICAoUURlc2t0b3BXZWJQYWdlUHJveHk6OmhhbmRsZU1vdXNlUmVsZWFz
ZUV2ZW50KToKKyAgICAgICAgKFFEZXNrdG9wV2ViUGFnZVByb3h5OjpoYW5kbGVNb3VzZURvdWJs
ZUNsaWNrRXZlbnQpOgorICAgICAgICAoUURlc2t0b3BXZWJQYWdlUHJveHk6OmhhbmRsZVdoZWVs
RXZlbnQpOgorICAgICAgICAoUURlc2t0b3BXZWJQYWdlUHJveHk6OmhhbmRsZUhvdmVyTW92ZUV2
ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvcWRlc2t0b3B3ZWJwYWdlcHJveHkuaDoKKwog
MjAxMS0wOS0yOSAgUmF2aSBQaGFuZWVuZHJhIEthc2liaGF0bGEgIDxyYXZpLmthc2liaGF0bGFA
bW90b3JvbGEuY29tPgogCiAgICAgICAgIEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgV2ViSW5z
cGVjdG9yIGZvciBXZWJLaXQyIEdUSyBwb3J0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRp
dmVXZWJNb3VzZUV2ZW50LmgKaW5kZXggN2E5ZjBhZi4uYTczZjk1OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oCkBAIC0zMiw3ICszMiw3IEBACiAjaW5j
bHVkZSA8d3RmL1JldGFpblB0ci5oPgogT0JKQ19DTEFTUyBOU1ZpZXc7CiAjZWxpZiBQTEFURk9S
TShRVCkKLSNpbmNsdWRlIDxxZ3JhcGhpY3NzY2VuZWV2ZW50Lmg+CisjaW5jbHVkZSA8cWV2ZW50
Lmg+CiAjZWxpZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSA8R093blB0ckd0ay5oPgogdHlwZWRl
ZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZlbnQ7CkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICNl
bGlmIFBMQVRGT1JNKFdJTikKICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50KEhXTkQsIFVJTlQgbWVz
c2FnZSwgV1BBUkFNLCBMUEFSQU0sIGJvb2wpOwogI2VsaWYgUExBVEZPUk0oUVQpCi0gICAgZXhw
bGljaXQgTmF0aXZlV2ViTW91c2VFdmVudChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqLCBpbnQp
OworICAgIGV4cGxpY2l0IE5hdGl2ZVdlYk1vdXNlRXZlbnQoUU1vdXNlRXZlbnQqLCBpbnQpOwog
I2VsaWYgUExBVEZPUk0oR1RLKQogICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQoY29uc3QgTmF0aXZl
V2ViTW91c2VFdmVudCYpOwogICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQoR2RrRXZlbnQqLCBpbnQp
OwpAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAjZWxpZiBQTEFURk9STShXSU4pCiAgICAgY29u
c3QgTVNHKiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuICZtX25hdGl2ZUV2ZW50OyB9CiAj
ZWxpZiBQTEFURk9STShRVCkKLSAgICBjb25zdCBRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqIG5h
dGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVFdmVudDsgfQorICAgIGNvbnN0IFFN
b3VzZUV2ZW50KiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlRXZlbnQ7IH0K
ICNlbGlmIFBMQVRGT1JNKEdUSykKICAgICBjb25zdCBHZGtFdmVudCogbmF0aXZlRXZlbnQoKSBj
b25zdCB7IHJldHVybiBtX25hdGl2ZUV2ZW50LmdldCgpOyB9CiAjZWxpZiBQTEFURk9STShFRkwp
CkBAIC03Nyw3ICs3Nyw3IEBAIHByaXZhdGU6CiAjZWxpZiBQTEFURk9STShXSU4pCiAgICAgTVNH
IG1fbmF0aXZlRXZlbnQ7CiAjZWxpZiBQTEFURk9STShRVCkKLSAgICBRR3JhcGhpY3NTY2VuZU1v
dXNlRXZlbnQqIG1fbmF0aXZlRXZlbnQ7CisgICAgUU1vdXNlRXZlbnQqIG1fbmF0aXZlRXZlbnQ7
CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAgR093blB0cjxHZGtFdmVudD4gbV9uYXRpdmVFdmVu
dDsKICNlbGlmIFBMQVRGT1JNKEVGTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2Vi
V2hlZWxFdmVudC5oCmluZGV4IDQ0ODEyZmIuLjAzM2FiODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaApAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUg
PHd0Zi9SZXRhaW5QdHIuaD4KIE9CSkNfQ0xBU1MgTlNWaWV3OwogI2VsaWYgUExBVEZPUk0oUVQp
Ci0jaW5jbHVkZSA8cWdyYXBoaWNzc2NlbmVldmVudC5oPgorI2luY2x1ZGUgPHFldmVudC5oPgog
I2VsaWYgUExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPEdPd25QdHJHdGsuaD4KIHR5cGVkZWYgdW5p
b24gX0dka0V2ZW50IEdka0V2ZW50OwpAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAjZWxpZiBQ
TEFURk9STShXSU4pCiAgICAgTmF0aXZlV2ViV2hlZWxFdmVudChIV05ELCBVSU5UIG1lc3NhZ2Us
IFdQQVJBTSwgTFBBUkFNKTsKICNlbGlmIFBMQVRGT1JNKFFUKQotICAgIGV4cGxpY2l0IE5hdGl2
ZVdlYldoZWVsRXZlbnQoUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50Kik7CisgICAgZXhwbGljaXQg
TmF0aXZlV2ViV2hlZWxFdmVudChRV2hlZWxFdmVudCopOwogI2VsaWYgUExBVEZPUk0oR1RLKQog
ICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYpOwogICAg
IE5hdGl2ZVdlYldoZWVsRXZlbnQoR2RrRXZlbnQqKTsKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGlj
OgogI2VsaWYgUExBVEZPUk0oV0lOKQogICAgIGNvbnN0IE1TRyogbmF0aXZlRXZlbnQoKSBjb25z
dCB7IHJldHVybiAmbV9uYXRpdmVFdmVudDsgfQogI2VsaWYgUExBVEZPUk0oUVQpCi0gICAgY29u
c3QgUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50KiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJu
IG1fbmF0aXZlRXZlbnQ7IH0KKyAgICBjb25zdCBRV2hlZWxFdmVudCogbmF0aXZlRXZlbnQoKSBj
b25zdCB7IHJldHVybiBtX25hdGl2ZUV2ZW50OyB9CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAg
Y29uc3QgR2RrRXZlbnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVFdmVu
dC5nZXQoKTsgfQogI2VsaWYgUExBVEZPUk0oRUZMKQpAQCAtNzUsNyArNzUsNyBAQCBwcml2YXRl
OgogI2VsaWYgUExBVEZPUk0oV0lOKQogICAgIE1TRyBtX25hdGl2ZUV2ZW50OwogI2VsaWYgUExB
VEZPUk0oUVQpCi0gICAgUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50KiBtX25hdGl2ZUV2ZW50Owor
ICAgIFFXaGVlbEV2ZW50KiBtX25hdGl2ZUV2ZW50OwogI2VsaWYgUExBVEZPUk0oR1RLKQogICAg
IEdPd25QdHI8R2RrRXZlbnQ+IG1fbmF0aXZlRXZlbnQ7CiAjZWxpZiBQTEFURk9STShFRkwpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvTmF0aXZlV2ViTW91c2VFdmVudFF0
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9OYXRpdmVXZWJNb3VzZUV2ZW50UXQuY3Bw
CmluZGV4IGE2ZjZlMzQuLmVlNzMxZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9xdC9OYXRpdmVXZWJNb3VzZUV2ZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9xdC9OYXRpdmVXZWJNb3VzZUV2ZW50UXQuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi1OYXRpdmVXZWJNb3VzZUV2ZW50OjpOYXRpdmVXZWJNb3VzZUV2ZW50
KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCogZXZlbnQsIGludCBldmVudENsaWNrQ291bnQpCitO
YXRpdmVXZWJNb3VzZUV2ZW50OjpOYXRpdmVXZWJNb3VzZUV2ZW50KFFNb3VzZUV2ZW50KiBldmVu
dCwgaW50IGV2ZW50Q2xpY2tDb3VudCkKICAgICA6IFdlYk1vdXNlRXZlbnQoV2ViRXZlbnRGYWN0
b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGV2ZW50LCBldmVudENsaWNrQ291bnQpKQogICAgICwg
bV9uYXRpdmVFdmVudChldmVudCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9xdC9OYXRpdmVXZWJXaGVlbEV2ZW50UXQuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0
L05hdGl2ZVdlYldoZWVsRXZlbnRRdC5jcHAKaW5kZXggMjJlMTFlMy4uNWZmMjI0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L05hdGl2ZVdlYldoZWVsRXZlbnRRdC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L05hdGl2ZVdlYldoZWVsRXZlbnRRdC5jcHAK
QEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLU5hdGl2ZVdlYldoZWVs
RXZlbnQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50KiBldmVu
dCkKK05hdGl2ZVdlYldoZWVsRXZlbnQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoUVdoZWVsRXZlbnQq
IGV2ZW50KQogICAgIDogV2ViV2hlZWxFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldo
ZWVsRXZlbnQoZXZlbnQpKQogICAgICwgbV9uYXRpdmVFdmVudChldmVudCkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9XZWJFdmVudEZhY3RvcnlRdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuY3BwCmluZGV4IGJlZjRiMzFm
Li5mOTE4NWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRG
YWN0b3J5UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9XZWJFdmVudEZhY3Rv
cnlRdC5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCi1zdGF0aWMgV2ViTW91c2VFdmVudDo6QnV0dG9uIG1vdXNlQnV0
dG9uRm9yRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50ICpldmVudCkKK3N0YXRpYyBXZWJN
b3VzZUV2ZW50OjpCdXR0b24gbW91c2VCdXR0b25Gb3JFdmVudChRTW91c2VFdmVudCAqZXZlbnQp
CiB7CiAgICAgaWYgKGV2ZW50LT5idXR0b24oKSA9PSBRdDo6TGVmdEJ1dHRvbiB8fCAoZXZlbnQt
PmJ1dHRvbnMoKSAmIFF0OjpMZWZ0QnV0dG9uKSkKICAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZl
bnQ6OkxlZnRCdXR0b247CkBAIC01MywxMiArNTMsMTIgQEAgc3RhdGljIFdlYk1vdXNlRXZlbnQ6
OkJ1dHRvbiBtb3VzZUJ1dHRvbkZvckV2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCAqZXZl
bnQKIHN0YXRpYyBXZWJFdmVudDo6VHlwZSB3ZWJFdmVudFR5cGVGb3JFdmVudChjb25zdCBRRXZl
bnQqIGV2ZW50KQogewogICAgIHN3aXRjaCAoZXZlbnQtPnR5cGUoKSkgewotICAgICAgICBjYXNl
IFFFdmVudDo6R3JhcGhpY3NTY2VuZU1vdXNlRG91YmxlQ2xpY2s6Ci0gICAgICAgIGNhc2UgUUV2
ZW50OjpHcmFwaGljc1NjZW5lTW91c2VQcmVzczoKKyAgICAgICAgY2FzZSBRRXZlbnQ6Ok1vdXNl
QnV0dG9uRGJsQ2xpY2s6CisgICAgICAgIGNhc2UgUUV2ZW50OjpNb3VzZUJ1dHRvblByZXNzOgog
ICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZURvd247Ci0gICAgICAgIGNhc2UgUUV2
ZW50OjpHcmFwaGljc1NjZW5lTW91c2VSZWxlYXNlOgorICAgICAgICBjYXNlIFFFdmVudDo6TW91
c2VCdXR0b25SZWxlYXNlOgogICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZVVwOwot
ICAgICAgICBjYXNlIFFFdmVudDo6R3JhcGhpY3NTY2VuZU1vdXNlTW92ZToKKyAgICAgICAgY2Fz
ZSBRRXZlbnQ6Ok1vdXNlTW92ZToKICAgICAgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VN
b3ZlOwogICAgICAgICBjYXNlIFFFdmVudDo6V2hlZWw6CiAgICAgICAgICAgICByZXR1cm4gV2Vi
RXZlbnQ6OldoZWVsOwpAQCAtOTQsMjIgKzk0LDIzIEBAIHN0YXRpYyBpbmxpbmUgV2ViRXZlbnQ6
Ok1vZGlmaWVycyBtb2RpZmllcnNGb3JFdmVudChRdDo6S2V5Ym9hcmRNb2RpZmllcnMgbW9kaWZp
CiAgICAgcmV0dXJuIChXZWJFdmVudDo6TW9kaWZpZXJzKXJlc3VsdDsKIH0KIAotV2ViTW91c2VF
dmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoUUdyYXBoaWNzU2NlbmVN
b3VzZUV2ZW50KiBldmVudCwgaW50IGV2ZW50Q2xpY2tDb3VudCkKK1dlYk1vdXNlRXZlbnQgV2Vi
RXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KFFNb3VzZUV2ZW50KiBldmVudCwgaW50
IGV2ZW50Q2xpY2tDb3VudCkKIHsKLSAgICBGbG9hdFBvaW50IGRlbHRhKGV2ZW50LT5wb3MoKS54
KCkgLSBldmVudC0+bGFzdFBvcygpLngoKSwgZXZlbnQtPnBvcygpLnkoKSAtIGV2ZW50LT5sYXN0
UG9zKCkueSgpKTsKKyAgICBzdGF0aWMgRmxvYXRQb2ludCBsYXN0UG9zID0gRmxvYXRQb2ludCgw
LCAwKTsKIAogICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgICAgICAgICAgICAgPSB3ZWJFdmVudFR5
cGVGb3JFdmVudChldmVudCk7CiAgICAgV2ViTW91c2VFdmVudDo6QnV0dG9uIGJ1dHRvbiAgICA9
IG1vdXNlQnV0dG9uRm9yRXZlbnQoZXZlbnQpOwotICAgIGZsb2F0IGRlbHRhWCAgICAgICAgICAg
ICAgICAgICAgPSBkZWx0YS54KCk7Ci0gICAgZmxvYXQgZGVsdGFZICAgICAgICAgICAgICAgICAg
ICA9IGRlbHRhLnkoKTsKKyAgICBmbG9hdCBkZWx0YVggICAgICAgICAgICAgICAgICAgID0gZXZl
bnQtPnBvcygpLngoKSAtIGxhc3RQb3MueCgpOworICAgIGZsb2F0IGRlbHRhWSAgICAgICAgICAg
ICAgICAgICAgPSBldmVudC0+cG9zKCkueSgpIC0gbGFzdFBvcy55KCk7CiAgICAgaW50IGNsaWNr
Q291bnQgICAgICAgICAgICAgICAgICA9IGV2ZW50Q2xpY2tDb3VudDsKICAgICBXZWJFdmVudDo6
TW9kaWZpZXJzIG1vZGlmaWVycyAgID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQtPm1vZGlmaWVy
cygpKTsKICAgICBkb3VibGUgdGltZXN0YW1wICAgICAgICAgICAgICAgID0gV1RGOjpjdXJyZW50
VGltZSgpOworICAgIGxhc3RQb3Muc2V0KGV2ZW50LT5sb2NhbFBvcygpLngoKSwgZXZlbnQtPmxv
Y2FsUG9zKCkueSgpKTsKIAotICAgIHJldHVybiBXZWJNb3VzZUV2ZW50KHR5cGUsIGJ1dHRvbiwg
ZXZlbnQtPnBvcygpLnRvUG9pbnQoKSwgZXZlbnQtPnNjcmVlblBvcygpLCBkZWx0YVgsIGRlbHRh
WSwgMC4wZiwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lc3RhbXApOworICAgIHJldHVybiBX
ZWJNb3VzZUV2ZW50KHR5cGUsIGJ1dHRvbiwgZXZlbnQtPmxvY2FsUG9zKCkudG9Qb2ludCgpLCBl
dmVudC0+c2NyZWVuUG9zKCkudG9Qb2ludCgpLCBkZWx0YVgsIGRlbHRhWSwgMC4wZiwgY2xpY2tD
b3VudCwgbW9kaWZpZXJzLCB0aW1lc3RhbXApOwogfQogCi1XZWJXaGVlbEV2ZW50IFdlYkV2ZW50
RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChRR3JhcGhpY3NTY2VuZVdoZWVsRXZlbnQqIGUp
CitXZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChRV2hl
ZWxFdmVudCogZSkKIHsKICAgICBmbG9hdCBkZWx0YVggICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAwOwogICAgIGZsb2F0IGRlbHRhWSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDA7
CkBAIC0xMzgsNyArMTM5LDcgQEAgV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0
ZVdlYldoZWVsRXZlbnQoUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50KiBlKQogICAgIGRlbHRhWCAq
PSAoZnVsbFRpY2spID8gUUFwcGxpY2F0aW9uOjp3aGVlbFNjcm9sbExpbmVzKCkgKiBjRGVmYXVs
dFF0U2Nyb2xsU3RlcCA6IDE7CiAgICAgZGVsdGFZICo9IChmdWxsVGljaykgPyBRQXBwbGljYXRp
b246OndoZWVsU2Nyb2xsTGluZXMoKSAqIGNEZWZhdWx0UXRTY3JvbGxTdGVwIDogMTsKIAotICAg
IHJldHVybiBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50OjpXaGVlbCwgZS0+cG9zKCkudG9Qb2ludCgp
LCBlLT5zY3JlZW5Qb3MoKSwgRmxvYXRTaXplKGRlbHRhWCwgZGVsdGFZKSwgRmxvYXRTaXplKHdo
ZWVsVGlja3NYLCB3aGVlbFRpY2tzWSksIGdyYW51bGFyaXR5LCBtb2RpZmllcnMsIHRpbWVzdGFt
cCk7CisgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBlLT5wb3NGKCku
dG9Qb2ludCgpLCBlLT5nbG9iYWxQb3NGKCkudG9Qb2ludCgpLCBGbG9hdFNpemUoZGVsdGFYLCBk
ZWx0YVkpLCBGbG9hdFNpemUod2hlZWxUaWNrc1gsIHdoZWVsVGlja3NZKSwgZ3JhbnVsYXJpdHks
IG1vZGlmaWVycywgdGltZXN0YW1wKTsKIH0KIAogV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZh
Y3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoUUtleUV2ZW50KiBldmVudCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9XZWJFdmVudEZhY3RvcnlRdC5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL3F0L1dlYkV2ZW50RmFjdG9yeVF0LmgKaW5kZXggZDU0ODdjYy4uZTkx
ZDMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L1dlYkV2ZW50RmFjdG9y
eVF0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L1dlYkV2ZW50RmFjdG9yeVF0LmgK
QEAgLTMzLDE2ICszMywxNiBAQAogY2xhc3MgUVRvdWNoRXZlbnQ7CiAjZW5kaWYKIAotY2xhc3Mg
UUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50OwotY2xhc3MgUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50
OworY2xhc3MgUU1vdXNlRXZlbnQ7CitjbGFzcyBRV2hlZWxFdmVudDsKIGNsYXNzIFFLZXlFdmVu
dDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkV2ZW50RmFjdG9yeSB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFdlYk1vdXNlRXZlbnQgY3JlYXRlV2ViTW91c2VFdmVudChRR3JhcGhp
Y3NTY2VuZU1vdXNlRXZlbnQqIGV2ZW50LCBpbnQgZXZlbnRDbGlja0NvdW50KTsKLSAgICBzdGF0
aWMgV2ViV2hlZWxFdmVudCBjcmVhdGVXZWJXaGVlbEV2ZW50KFFHcmFwaGljc1NjZW5lV2hlZWxF
dmVudCogZXZlbnQpOworICAgIHN0YXRpYyBXZWJNb3VzZUV2ZW50IGNyZWF0ZVdlYk1vdXNlRXZl
bnQoUU1vdXNlRXZlbnQqIGV2ZW50LCBpbnQgZXZlbnRDbGlja0NvdW50KTsKKyAgICBzdGF0aWMg
V2ViV2hlZWxFdmVudCBjcmVhdGVXZWJXaGVlbEV2ZW50KFFXaGVlbEV2ZW50KiBldmVudCk7CiAg
ICAgc3RhdGljIFdlYktleWJvYXJkRXZlbnQgY3JlYXRlV2ViS2V5Ym9hcmRFdmVudChRS2V5RXZl
bnQqIGV2ZW50KTsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHN0YXRpYyBXZWJUb3Vj
aEV2ZW50IGNyZWF0ZVdlYlRvdWNoRXZlbnQoY29uc3QgUVRvdWNoRXZlbnQqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmNwcAppbmRl
eCAyN2VkMTA2Li42OTZiNjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FkZXNrdG9wd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuY3BwCkBAIC0yNjksNDAgKzI2OSwyOSBAQCB2b2lkIFFE
ZXNrdG9wV2ViVmlldzo6Zm9jdXNPdXRFdmVudChRRm9jdXNFdmVudCogZXZlbnQpCiAgICAgdGhp
cy0+ZXZlbnQoZXZlbnQpOwogfQogCi12b2lkIFFEZXNrdG9wV2ViVmlldzo6bW91c2VQcmVzc0V2
ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCogZXZlbnQpCit2b2lkIFFEZXNrdG9wV2ViVmll
dzo6bW91c2VQcmVzc0V2ZW50KFFNb3VzZUV2ZW50KiBldmVudCkKIHsKICAgICB0aGlzLT5ldmVu
dChldmVudCk7CiB9CiAKLXZvaWQgUURlc2t0b3BXZWJWaWV3Ojptb3VzZU1vdmVFdmVudChRR3Jh
cGhpY3NTY2VuZU1vdXNlRXZlbnQqIGV2ZW50KQordm9pZCBRRGVza3RvcFdlYlZpZXc6Om1vdXNl
TW92ZUV2ZW50KFFNb3VzZUV2ZW50KiBldmVudCkKIHsKICAgICB0aGlzLT5ldmVudChldmVudCk7
CiB9CiAKLXZvaWQgUURlc2t0b3BXZWJWaWV3Ojptb3VzZVJlbGVhc2VFdmVudChRR3JhcGhpY3NT
Y2VuZU1vdXNlRXZlbnQqIGV2ZW50KQordm9pZCBRRGVza3RvcFdlYlZpZXc6Om1vdXNlUmVsZWFz
ZUV2ZW50KFFNb3VzZUV2ZW50KiBldmVudCkKIHsKICAgICB0aGlzLT5ldmVudChldmVudCk7CiB9
CiAKLXZvaWQgUURlc2t0b3BXZWJWaWV3Ojptb3VzZURvdWJsZUNsaWNrRXZlbnQoUUdyYXBoaWNz
U2NlbmVNb3VzZUV2ZW50KiBldmVudCkKK3ZvaWQgUURlc2t0b3BXZWJWaWV3Ojptb3VzZURvdWJs
ZUNsaWNrRXZlbnQoUU1vdXNlRXZlbnQqIGV2ZW50KQogewogICAgIHRoaXMtPmV2ZW50KGV2ZW50
KTsKIH0KIAogdm9pZCBRRGVza3RvcFdlYlZpZXc6OndoZWVsRXZlbnQoUVdoZWVsRXZlbnQqIGV2
ZW50KQogewotICAgIC8vIEZJWE1FOiBmb3Igc29tZSByZWFzb24sIHRoZSBzY2VuZSBncmFwaCBk
ZWxpdmVycyBRV2hlZWxFdmVudCBpbnN0ZWFkIG9mIFFHcmFwaGljc1NjZW5lV2hlZWxFdmVudC4K
LSAgICAvLyBXZSB0cmFuc2Zvcm0gdGhlbSBpbiBRR3JhcGhpY3NTY2VuZVdoZWVsRXZlbnQgZm9y
IGNvbnNpc3RlbmN5LiBPdGhlcndpc2UgdGhlIHBvc2l0aW9uIHdvdWxkIGJlIGNvbXBsZXRlIG1h
Z2ljLgotICAgIC8vIFdlIHNob3VkIG1vZGlmeSB0aGUgc2NlbmVncmFwaCB0byBnZXQgdGhlIGNv
cnJlY3QgdHlwZSBvZiBldmVudHMuCi0gICAgUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50IGdyYXBo
aWNzRXZlbnQoUUV2ZW50OjpHcmFwaGljc1NjZW5lV2hlZWwpOwotICAgIGdyYXBoaWNzRXZlbnQu
c2V0UG9zKGV2ZW50LT5wb3MoKSk7Ci0gICAgZ3JhcGhpY3NFdmVudC5zZXRCdXR0b25zKGV2ZW50
LT5idXR0b25zKCkpOwotICAgIGdyYXBoaWNzRXZlbnQuc2V0RGVsdGEoZXZlbnQtPmRlbHRhKCkp
OwotICAgIGdyYXBoaWNzRXZlbnQuc2V0TW9kaWZpZXJzKGV2ZW50LT5tb2RpZmllcnMoKSk7Ci0g
ICAgZ3JhcGhpY3NFdmVudC5zZXRPcmllbnRhdGlvbihldmVudC0+b3JpZW50YXRpb24oKSk7Ci0g
ICAgZ3JhcGhpY3NFdmVudC5zZXRTY2VuZVBvcyhtYXBUb1NjZW5lKGV2ZW50LT5wb3MoKSkpOwot
ICAgIGdyYXBoaWNzRXZlbnQuc2V0U2NyZWVuUG9zKGV2ZW50LT5nbG9iYWxQb3MoKSk7Ci0gICAg
dGhpcy0+ZXZlbnQoJmdyYXBoaWNzRXZlbnQpOworICAgIHRoaXMtPmV2ZW50KGV2ZW50KTsKIH0K
IAogdm9pZCBRRGVza3RvcFdlYlZpZXc6OnRvdWNoRXZlbnQoUVRvdWNoRXZlbnQqIGV2ZW50KQpA
QCAtMzY3LDYgKzM1Niw4IEBAIGJvb2wgUURlc2t0b3BXZWJWaWV3OjpldmVudChRRXZlbnQqIGV2
KQogewogICAgIGlmIChkLT5wYWdlLmhhbmRsZUV2ZW50KGV2KSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgaWYgKGV2LT50eXBlKCkgPT0gUUV2ZW50OjpJbnB1dE1ldGhvZCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOyAvLyBUaGlzIGlzIG5lY2Vzc2FyeSB0byBhdm9pZCBhbiBlbmRsZXNzIGxv
b3AgaW4gY29ubmVjdGlvbiB3aXRoIFFTR0l0ZW06OmV2ZW50KCkuCiAgICAgcmV0dXJuIFFTR0l0
ZW06OmV2ZW50KGV2KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcWRlc2t0b3B3ZWJ2aWV3LmgKaW5kZXggMmE4NTRhMC4uYjI1ZGRlZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FkZXNrdG9wd2Vidmlldy5oCkBAIC0zMiw3
ICszMiw3IEBAIGNsYXNzIFFXZWJOYXZpZ2F0aW9uQ29udHJvbGxlcjsKIAogUVRfQkVHSU5fTkFN
RVNQQUNFCiBjbGFzcyBRRm9jdXNFdmVudDsKLWNsYXNzIFFHcmFwaGljc1NjZW5lTW91c2VFdmVu
dDsKK2NsYXNzIFFNb3VzZUV2ZW50OwogY2xhc3MgUUhvdmVyRXZlbnQ7CiBjbGFzcyBRSW5wdXRN
ZXRob2RFdmVudDsKIGNsYXNzIFFLZXlFdmVudDsKQEAgLTk2LDEwICs5NiwxMCBAQCBwcm90ZWN0
ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGlucHV0TWV0aG9kRXZlbnQoUUlucHV0TWV0aG9kRXZlbnQq
KTsKICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNJbkV2ZW50KFFGb2N1c0V2ZW50Kik7CiAgICAgdmly
dHVhbCB2b2lkIGZvY3VzT3V0RXZlbnQoUUZvY3VzRXZlbnQqKTsKLSAgICB2aXJ0dWFsIHZvaWQg
bW91c2VQcmVzc0V2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCopOwotICAgIHZpcnR1YWwg
dm9pZCBtb3VzZU1vdmVFdmVudChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqKTsKLSAgICB2aXJ0
dWFsIHZvaWQgbW91c2VSZWxlYXNlRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50Kik7Ci0g
ICAgdmlydHVhbCB2b2lkIG1vdXNlRG91YmxlQ2xpY2tFdmVudChRR3JhcGhpY3NTY2VuZU1vdXNl
RXZlbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgbW91c2VQcmVzc0V2ZW50KFFNb3VzZUV2ZW50ICop
OworICAgIHZpcnR1YWwgdm9pZCBtb3VzZU1vdmVFdmVudChRTW91c2VFdmVudCAqKTsKKyAgICB2
aXJ0dWFsIHZvaWQgbW91c2VSZWxlYXNlRXZlbnQoUU1vdXNlRXZlbnQgKik7CisgICAgdmlydHVh
bCB2b2lkIG1vdXNlRG91YmxlQ2xpY2tFdmVudChRTW91c2VFdmVudCAqKTsKICAgICB2aXJ0dWFs
IHZvaWQgd2hlZWxFdmVudChRV2hlZWxFdmVudCopOwogICAgIHZpcnR1YWwgdm9pZCB0b3VjaEV2
ZW50KFFUb3VjaEV2ZW50Kik7CiAgICAgdmlydHVhbCB2b2lkIGhvdmVyRW50ZXJFdmVudChRSG92
ZXJFdmVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3FkZXNr
dG9wd2VicGFnZXByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9xZGVza3Rv
cHdlYnBhZ2Vwcm94eS5jcHAKaW5kZXggMDRmOTBiZi4uNTIzZDc3NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3FkZXNrdG9wd2VicGFnZXByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvcWRlc2t0b3B3ZWJwYWdlcHJveHkuY3BwCkBAIC05
MCwxNiArOTAsMTYgQEAgUGFzc1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gUURlc2t0b3BXZWJQ
YWdlUHJveHk6OmNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2UKIGJvb2wgUURlc2t0b3BXZWJQ
YWdlUHJveHk6OmhhbmRsZUV2ZW50KFFFdmVudCogZXYpCiB7CiAgICAgc3dpdGNoIChldi0+dHlw
ZSgpKSB7Ci0gICAgY2FzZSBRRXZlbnQ6OkdyYXBoaWNzU2NlbmVNb3VzZU1vdmU6Ci0gICAgICAg
IHJldHVybiBoYW5kbGVNb3VzZU1vdmVFdmVudChyZWludGVycHJldF9jYXN0PFFHcmFwaGljc1Nj
ZW5lTW91c2VFdmVudCo+KGV2KSk7Ci0gICAgY2FzZSBRRXZlbnQ6OkdyYXBoaWNzU2NlbmVNb3Vz
ZVByZXNzOgotICAgICAgICByZXR1cm4gaGFuZGxlTW91c2VQcmVzc0V2ZW50KHJlaW50ZXJwcmV0
X2Nhc3Q8UUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50Kj4oZXYpKTsKLSAgICBjYXNlIFFFdmVudDo6
R3JhcGhpY3NTY2VuZU1vdXNlUmVsZWFzZToKLSAgICAgICAgcmV0dXJuIGhhbmRsZU1vdXNlUmVs
ZWFzZUV2ZW50KHJlaW50ZXJwcmV0X2Nhc3Q8UUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50Kj4oZXYp
KTsKLSAgICBjYXNlIFFFdmVudDo6R3JhcGhpY3NTY2VuZU1vdXNlRG91YmxlQ2xpY2s6Ci0gICAg
ICAgIHJldHVybiBoYW5kbGVNb3VzZURvdWJsZUNsaWNrRXZlbnQocmVpbnRlcnByZXRfY2FzdDxR
R3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqPihldikpOwotICAgIGNhc2UgUUV2ZW50OjpHcmFwaGlj
c1NjZW5lV2hlZWw6Ci0gICAgICAgIHJldHVybiBoYW5kbGVXaGVlbEV2ZW50KHJlaW50ZXJwcmV0
X2Nhc3Q8UUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50Kj4oZXYpKTsKKyAgICBjYXNlIFFFdmVudDo6
TW91c2VNb3ZlOgorICAgICAgICByZXR1cm4gaGFuZGxlTW91c2VNb3ZlRXZlbnQocmVpbnRlcnBy
ZXRfY2FzdDxRTW91c2VFdmVudCo+KGV2KSk7CisgICAgY2FzZSBRRXZlbnQ6Ok1vdXNlQnV0dG9u
UHJlc3M6CisgICAgICAgIHJldHVybiBoYW5kbGVNb3VzZVByZXNzRXZlbnQocmVpbnRlcnByZXRf
Y2FzdDxRTW91c2VFdmVudCo+KGV2KSk7CisgICAgY2FzZSBRRXZlbnQ6Ok1vdXNlQnV0dG9uUmVs
ZWFzZToKKyAgICAgICAgcmV0dXJuIGhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KHJlaW50ZXJwcmV0
X2Nhc3Q8UU1vdXNlRXZlbnQqPihldikpOworICAgIGNhc2UgUUV2ZW50OjpNb3VzZUJ1dHRvbkRi
bENsaWNrOgorICAgICAgICByZXR1cm4gaGFuZGxlTW91c2VEb3VibGVDbGlja0V2ZW50KHJlaW50
ZXJwcmV0X2Nhc3Q8UU1vdXNlRXZlbnQqPihldikpOworICAgIGNhc2UgUUV2ZW50OjpXaGVlbDoK
KyAgICAgICAgcmV0dXJuIGhhbmRsZVdoZWVsRXZlbnQocmVpbnRlcnByZXRfY2FzdDxRV2hlZWxF
dmVudCo+KGV2KSk7CiAgICAgY2FzZSBRRXZlbnQ6OkhvdmVyTW92ZToKICAgICAgICAgcmV0dXJu
IGhhbmRsZUhvdmVyTW92ZUV2ZW50KHJlaW50ZXJwcmV0X2Nhc3Q8UUhvdmVyRXZlbnQqPihldikp
OwogICAgIGNhc2UgUUV2ZW50OjpHcmFwaGljc1NjZW5lRHJhZ0VudGVyOgpAQCAtMTE0LDcgKzEx
NCw3IEBAIGJvb2wgUURlc2t0b3BXZWJQYWdlUHJveHk6OmhhbmRsZUV2ZW50KFFFdmVudCogZXYp
CiAgICAgcmV0dXJuIFF0V2ViUGFnZVByb3h5OjpoYW5kbGVFdmVudChldik7CiB9CiAKLWJvb2wg
UURlc2t0b3BXZWJQYWdlUHJveHk6OmhhbmRsZU1vdXNlTW92ZUV2ZW50KFFHcmFwaGljc1NjZW5l
TW91c2VFdmVudCogZXYpCitib29sIFFEZXNrdG9wV2ViUGFnZVByb3h5OjpoYW5kbGVNb3VzZU1v
dmVFdmVudChRTW91c2VFdmVudCogZXYpCiB7CiAgICAgLy8gRm9yIHNvbWUgcmVhc29uIG1vdXNl
IHByZXNzIHJlc3VsdHMgaW4gbW91c2UgaG92ZXIgKHdoaWNoIGlzCiAgICAgLy8gY29udmVydGVk
IHRvIG1vdXNlIG1vdmUgZm9yIFdlYktpdCkuIFdlIGlnbm9yZSB0aGVzZSBob3ZlcgpAQCAtMTMx
LDcgKzEzMSw3IEBAIGJvb2wgUURlc2t0b3BXZWJQYWdlUHJveHk6OmhhbmRsZU1vdXNlTW92ZUV2
ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCogZXYpCiAgICAgcmV0dXJuIGV2LT5pc0FjY2Vw
dGVkKCk7CiB9CiAKLWJvb2wgUURlc2t0b3BXZWJQYWdlUHJveHk6OmhhbmRsZU1vdXNlUHJlc3NF
dmVudChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqIGV2KQorYm9vbCBRRGVza3RvcFdlYlBhZ2VQ
cm94eTo6aGFuZGxlTW91c2VQcmVzc0V2ZW50KFFNb3VzZUV2ZW50KiBldikKIHsKICAgICBpZiAo
bV90cmlwbGVDbGlja1RpbWVyLmlzQWN0aXZlKCkgJiYgKGV2LT5wb3MoKSAtIG1fdHJpcGxlQ2xp
Y2spLm1hbmhhdHRhbkxlbmd0aCgpIDwgUUFwcGxpY2F0aW9uOjpzdGFydERyYWdEaXN0YW5jZSgp
KSB7CiAgICAgICAgIG1fd2ViUGFnZVByb3h5LT5oYW5kbGVNb3VzZUV2ZW50KE5hdGl2ZVdlYk1v
dXNlRXZlbnQoZXYsIC8qZXZlbnRDbGlja0NvdW50PSovMykpOwpAQCAtMTQyLDIyICsxNDIsMjIg
QEAgYm9vbCBRRGVza3RvcFdlYlBhZ2VQcm94eTo6aGFuZGxlTW91c2VQcmVzc0V2ZW50KFFHcmFw
aGljc1NjZW5lTW91c2VFdmVudCogZXYpCiAgICAgcmV0dXJuIGV2LT5pc0FjY2VwdGVkKCk7CiB9
CiAKLWJvb2wgUURlc2t0b3BXZWJQYWdlUHJveHk6OmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KFFH
cmFwaGljc1NjZW5lTW91c2VFdmVudCogZXYpCitib29sIFFEZXNrdG9wV2ViUGFnZVByb3h5Ojpo
YW5kbGVNb3VzZVJlbGVhc2VFdmVudChRTW91c2VFdmVudCogZXYpCiB7CiAgICAgbV93ZWJQYWdl
UHJveHktPmhhbmRsZU1vdXNlRXZlbnQoTmF0aXZlV2ViTW91c2VFdmVudChldiwgLypldmVudENs
aWNrQ291bnQ9Ki8wKSk7CiAgICAgcmV0dXJuIGV2LT5pc0FjY2VwdGVkKCk7CiB9CiAKLWJvb2wg
UURlc2t0b3BXZWJQYWdlUHJveHk6OmhhbmRsZU1vdXNlRG91YmxlQ2xpY2tFdmVudChRR3JhcGhp
Y3NTY2VuZU1vdXNlRXZlbnQqIGV2KQorYm9vbCBRRGVza3RvcFdlYlBhZ2VQcm94eTo6aGFuZGxl
TW91c2VEb3VibGVDbGlja0V2ZW50KFFNb3VzZUV2ZW50KiBldikKIHsKICAgICBtX3dlYlBhZ2VQ
cm94eS0+aGFuZGxlTW91c2VFdmVudChOYXRpdmVXZWJNb3VzZUV2ZW50KGV2LCAvKmV2ZW50Q2xp
Y2tDb3VudD0qLzIpKTsKIAogICAgIG1fdHJpcGxlQ2xpY2tUaW1lci5zdGFydChRQXBwbGljYXRp
b246OmRvdWJsZUNsaWNrSW50ZXJ2YWwoKSwgdGhpcyk7Ci0gICAgbV90cmlwbGVDbGljayA9IGV2
LT5wb3MoKS50b1BvaW50KCk7CisgICAgbV90cmlwbGVDbGljayA9IGV2LT5sb2NhbFBvcygpLnRv
UG9pbnQoKTsKICAgICByZXR1cm4gZXYtPmlzQWNjZXB0ZWQoKTsKIH0KIAotYm9vbCBRRGVza3Rv
cFdlYlBhZ2VQcm94eTo6aGFuZGxlV2hlZWxFdmVudChRR3JhcGhpY3NTY2VuZVdoZWVsRXZlbnQq
IGV2KQorYm9vbCBRRGVza3RvcFdlYlBhZ2VQcm94eTo6aGFuZGxlV2hlZWxFdmVudChRV2hlZWxF
dmVudCogZXYpCiB7CiAgICAgbV93ZWJQYWdlUHJveHktPmhhbmRsZVdoZWVsRXZlbnQoTmF0aXZl
V2ViV2hlZWxFdmVudChldikpOwogICAgIHJldHVybiBldi0+aXNBY2NlcHRlZCgpOwpAQCAtMTY1
LDggKzE2NSw3IEBAIGJvb2wgUURlc2t0b3BXZWJQYWdlUHJveHk6OmhhbmRsZVdoZWVsRXZlbnQo
UUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50KiBldikKIAogYm9vbCBRRGVza3RvcFdlYlBhZ2VQcm94
eTo6aGFuZGxlSG92ZXJNb3ZlRXZlbnQoUUhvdmVyRXZlbnQqIGV2KQogewotICAgIFFHcmFwaGlj
c1NjZW5lTW91c2VFdmVudCBtZShRRXZlbnQ6OkdyYXBoaWNzU2NlbmVNb3VzZU1vdmUpOwotICAg
IG1lLnNldFBvcyhldi0+cG9zKCkpOworICAgIFFNb3VzZUV2ZW50IG1lKFFFdmVudDo6TW91c2VN
b3ZlLCBldi0+cG9zKCksIFF0OjpOb0J1dHRvbiwgUXQ6Ok5vQnV0dG9uLCBRdDo6Tm9Nb2RpZmll
cik7CiAgICAgbWUuc2V0QWNjZXB0ZWQoZXYtPmlzQWNjZXB0ZWQoKSk7CiAKICAgICByZXR1cm4g
aGFuZGxlTW91c2VNb3ZlRXZlbnQoJm1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9xZGVza3RvcHdlYnBhZ2Vwcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L3FkZXNrdG9wd2VicGFnZXByb3h5LmgKaW5kZXggNzFkZTc2OS4uODEwMzFmNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3FkZXNrdG9wd2VicGFnZXByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3FkZXNrdG9wd2VicGFnZXByb3h5
LmgKQEAgLTUxLDExICs1MSwxMSBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIHRpbWVy
RXZlbnQoUVRpbWVyRXZlbnQqKTsKIAotICAgIGJvb2wgaGFuZGxlTW91c2VNb3ZlRXZlbnQoUUdy
YXBoaWNzU2NlbmVNb3VzZUV2ZW50Kik7Ci0gICAgYm9vbCBoYW5kbGVNb3VzZVByZXNzRXZlbnQo
UUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50Kik7Ci0gICAgYm9vbCBoYW5kbGVNb3VzZVJlbGVhc2VF
dmVudChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqKTsKLSAgICBib29sIGhhbmRsZU1vdXNlRG91
YmxlQ2xpY2tFdmVudChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqKTsKLSAgICBib29sIGhhbmRs
ZVdoZWVsRXZlbnQoUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50Kik7CisgICAgYm9vbCBoYW5kbGVN
b3VzZU1vdmVFdmVudChRTW91c2VFdmVudCopOworICAgIGJvb2wgaGFuZGxlTW91c2VQcmVzc0V2
ZW50KFFNb3VzZUV2ZW50Kik7CisgICAgYm9vbCBoYW5kbGVNb3VzZVJlbGVhc2VFdmVudChRTW91
c2VFdmVudCopOworICAgIGJvb2wgaGFuZGxlTW91c2VEb3VibGVDbGlja0V2ZW50KFFNb3VzZUV2
ZW50Kik7CisgICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50KFFXaGVlbEV2ZW50Kik7CiAgICAgYm9v
bCBoYW5kbGVIb3Zlck1vdmVFdmVudChRSG92ZXJFdmVudCopOwogICAgIGJvb2wgaGFuZGxlRHJh
Z0VudGVyRXZlbnQoUUdyYXBoaWNzU2NlbmVEcmFnRHJvcEV2ZW50Kik7CiAgICAgYm9vbCBoYW5k
bGVEcmFnTGVhdmVFdmVudChRR3JhcGhpY3NTY2VuZURyYWdEcm9wRXZlbnQqKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109278</attachid>
            <date>2011-09-30 03:43:58 -0700</date>
            <delta_ts>2011-09-30 04:57:36 -0700</delta_ts>
            <desc>patch for review - fixed coding style issues</desc>
            <filename>69105_2.patch</filename>
            <type>text/plain</type>
            <size>21043</size>
            <attacher name="Zeno Albisser">zeno</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAxNjIxNjhmLi5mOWMxMWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcg
QEAKKzIwMTEtMDktMzAgIFplbm8gQWxiaXNzZXIgIDx6ZW5vLmFsYmlzc2VyQG5va2lhLmNvbT4K
KworICAgICAgICBbUXRdW1dLMl0gRXZlbnQgZGVsaXZlcnkgaW4gUURlc2t0b3BXZWJWaWV3IGlz
IGJyb2tlbiBhZnRlciBtZXJnZSBvZiBRdDUgcmVmYWN0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTA1CisKKyAgICAgICAgVGhpcyBjaGFuZ2Vz
IFFEZXNrdG9wV2ViVmlldyBhbmQgUURlc2t0b3BXZWJQYWdlUHJveHkgdG8gdXNlIFFNb3VzZUV2
ZW50IGluc3RlYWQKKyAgICAgICAgb2YgUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50LgorICAgICAg
ICBGdXJ0aGVyIGl0IHJlbW92ZXMgYW4gZW5kbGVzcyBsb29wIGludHJvZHVjZWQgYnkgdGhlIFFT
R0l0ZW06OmV2ZW50KCkgZnVuY3Rpb24KKyAgICAgICAgZGVsaXZlcmluZyBpbnB1dE1ldGhvZEV2
ZW50cyBidXQgbm8gb3RoZXIgZXZlbnRzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogU2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQuaDoKKyAgICAg
ICAgKFdlYktpdDo6TmF0aXZlV2ViTW91c2VFdmVudDo6bmF0aXZlRXZlbnQpOgorICAgICAgICAq
IFNoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50Lmg6CisgICAgICAgIChXZWJLaXQ6Ok5hdGl2ZVdl
YldoZWVsRXZlbnQ6Om5hdGl2ZUV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvcXQvTmF0aXZlV2Vi
TW91c2VFdmVudFF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmF0aXZlV2ViTW91c2VFdmVudDo6
TmF0aXZlV2ViTW91c2VFdmVudCk6CisgICAgICAgICogU2hhcmVkL3F0L05hdGl2ZVdlYldoZWVs
RXZlbnRRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQ6Ok5hdGl2
ZVdlYldoZWVsRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9xdC9XZWJFdmVudEZhY3RvcnlRdC5j
cHA6CisgICAgICAgIChXZWJLaXQ6Om1vdXNlQnV0dG9uRm9yRXZlbnQpOgorICAgICAgICAoV2Vi
S2l0Ojp3ZWJFdmVudFR5cGVGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFj
dG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFj
dG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudCk6CisgICAgICAgICogU2hhcmVkL3F0L1dlYkV2ZW50
RmFjdG9yeVF0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXcu
Y3BwOgorICAgICAgICAoUURlc2t0b3BXZWJWaWV3Ojptb3VzZVByZXNzRXZlbnQpOgorICAgICAg
ICAoUURlc2t0b3BXZWJWaWV3Ojptb3VzZU1vdmVFdmVudCk6CisgICAgICAgIChRRGVza3RvcFdl
YlZpZXc6Om1vdXNlUmVsZWFzZUV2ZW50KToKKyAgICAgICAgKFFEZXNrdG9wV2ViVmlldzo6bW91
c2VEb3VibGVDbGlja0V2ZW50KToKKyAgICAgICAgKFFEZXNrdG9wV2ViVmlldzo6d2hlZWxFdmVu
dCk6CisgICAgICAgIChRRGVza3RvcFdlYlZpZXc6OmV2ZW50KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3F0L3FkZXNrdG9wd2Vidmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9xZGVz
a3RvcHdlYnBhZ2Vwcm94eS5jcHA6CisgICAgICAgIChRRGVza3RvcFdlYlBhZ2VQcm94eTo6aGFu
ZGxlRXZlbnQpOgorICAgICAgICAoUURlc2t0b3BXZWJQYWdlUHJveHk6OmhhbmRsZU1vdXNlTW92
ZUV2ZW50KToKKyAgICAgICAgKFFEZXNrdG9wV2ViUGFnZVByb3h5OjpoYW5kbGVNb3VzZVByZXNz
RXZlbnQpOgorICAgICAgICAoUURlc2t0b3BXZWJQYWdlUHJveHk6OmhhbmRsZU1vdXNlUmVsZWFz
ZUV2ZW50KToKKyAgICAgICAgKFFEZXNrdG9wV2ViUGFnZVByb3h5OjpoYW5kbGVNb3VzZURvdWJs
ZUNsaWNrRXZlbnQpOgorICAgICAgICAoUURlc2t0b3BXZWJQYWdlUHJveHk6OmhhbmRsZVdoZWVs
RXZlbnQpOgorICAgICAgICAoUURlc2t0b3BXZWJQYWdlUHJveHk6OmhhbmRsZUhvdmVyTW92ZUV2
ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvcWRlc2t0b3B3ZWJwYWdlcHJveHkuaDoKKwog
MjAxMS0wOS0yOSAgUmF2aSBQaGFuZWVuZHJhIEthc2liaGF0bGEgIDxyYXZpLmthc2liaGF0bGFA
bW90b3JvbGEuY29tPgogCiAgICAgICAgIEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgV2ViSW5z
cGVjdG9yIGZvciBXZWJLaXQyIEdUSyBwb3J0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRp
dmVXZWJNb3VzZUV2ZW50LmgKaW5kZXggN2E5ZjBhZi4uYTczZjk1OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oCkBAIC0zMiw3ICszMiw3IEBACiAjaW5j
bHVkZSA8d3RmL1JldGFpblB0ci5oPgogT0JKQ19DTEFTUyBOU1ZpZXc7CiAjZWxpZiBQTEFURk9S
TShRVCkKLSNpbmNsdWRlIDxxZ3JhcGhpY3NzY2VuZWV2ZW50Lmg+CisjaW5jbHVkZSA8cWV2ZW50
Lmg+CiAjZWxpZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSA8R093blB0ckd0ay5oPgogdHlwZWRl
ZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZlbnQ7CkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICNl
bGlmIFBMQVRGT1JNKFdJTikKICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50KEhXTkQsIFVJTlQgbWVz
c2FnZSwgV1BBUkFNLCBMUEFSQU0sIGJvb2wpOwogI2VsaWYgUExBVEZPUk0oUVQpCi0gICAgZXhw
bGljaXQgTmF0aXZlV2ViTW91c2VFdmVudChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqLCBpbnQp
OworICAgIGV4cGxpY2l0IE5hdGl2ZVdlYk1vdXNlRXZlbnQoUU1vdXNlRXZlbnQqLCBpbnQpOwog
I2VsaWYgUExBVEZPUk0oR1RLKQogICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQoY29uc3QgTmF0aXZl
V2ViTW91c2VFdmVudCYpOwogICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQoR2RrRXZlbnQqLCBpbnQp
OwpAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAjZWxpZiBQTEFURk9STShXSU4pCiAgICAgY29u
c3QgTVNHKiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuICZtX25hdGl2ZUV2ZW50OyB9CiAj
ZWxpZiBQTEFURk9STShRVCkKLSAgICBjb25zdCBRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqIG5h
dGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVFdmVudDsgfQorICAgIGNvbnN0IFFN
b3VzZUV2ZW50KiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlRXZlbnQ7IH0K
ICNlbGlmIFBMQVRGT1JNKEdUSykKICAgICBjb25zdCBHZGtFdmVudCogbmF0aXZlRXZlbnQoKSBj
b25zdCB7IHJldHVybiBtX25hdGl2ZUV2ZW50LmdldCgpOyB9CiAjZWxpZiBQTEFURk9STShFRkwp
CkBAIC03Nyw3ICs3Nyw3IEBAIHByaXZhdGU6CiAjZWxpZiBQTEFURk9STShXSU4pCiAgICAgTVNH
IG1fbmF0aXZlRXZlbnQ7CiAjZWxpZiBQTEFURk9STShRVCkKLSAgICBRR3JhcGhpY3NTY2VuZU1v
dXNlRXZlbnQqIG1fbmF0aXZlRXZlbnQ7CisgICAgUU1vdXNlRXZlbnQqIG1fbmF0aXZlRXZlbnQ7
CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAgR093blB0cjxHZGtFdmVudD4gbV9uYXRpdmVFdmVu
dDsKICNlbGlmIFBMQVRGT1JNKEVGTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2Vi
V2hlZWxFdmVudC5oCmluZGV4IDQ0ODEyZmIuLjAzM2FiODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaApAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUg
PHd0Zi9SZXRhaW5QdHIuaD4KIE9CSkNfQ0xBU1MgTlNWaWV3OwogI2VsaWYgUExBVEZPUk0oUVQp
Ci0jaW5jbHVkZSA8cWdyYXBoaWNzc2NlbmVldmVudC5oPgorI2luY2x1ZGUgPHFldmVudC5oPgog
I2VsaWYgUExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPEdPd25QdHJHdGsuaD4KIHR5cGVkZWYgdW5p
b24gX0dka0V2ZW50IEdka0V2ZW50OwpAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAjZWxpZiBQ
TEFURk9STShXSU4pCiAgICAgTmF0aXZlV2ViV2hlZWxFdmVudChIV05ELCBVSU5UIG1lc3NhZ2Us
IFdQQVJBTSwgTFBBUkFNKTsKICNlbGlmIFBMQVRGT1JNKFFUKQotICAgIGV4cGxpY2l0IE5hdGl2
ZVdlYldoZWVsRXZlbnQoUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50Kik7CisgICAgZXhwbGljaXQg
TmF0aXZlV2ViV2hlZWxFdmVudChRV2hlZWxFdmVudCopOwogI2VsaWYgUExBVEZPUk0oR1RLKQog
ICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYpOwogICAg
IE5hdGl2ZVdlYldoZWVsRXZlbnQoR2RrRXZlbnQqKTsKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGlj
OgogI2VsaWYgUExBVEZPUk0oV0lOKQogICAgIGNvbnN0IE1TRyogbmF0aXZlRXZlbnQoKSBjb25z
dCB7IHJldHVybiAmbV9uYXRpdmVFdmVudDsgfQogI2VsaWYgUExBVEZPUk0oUVQpCi0gICAgY29u
c3QgUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50KiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJu
IG1fbmF0aXZlRXZlbnQ7IH0KKyAgICBjb25zdCBRV2hlZWxFdmVudCogbmF0aXZlRXZlbnQoKSBj
b25zdCB7IHJldHVybiBtX25hdGl2ZUV2ZW50OyB9CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAg
Y29uc3QgR2RrRXZlbnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVFdmVu
dC5nZXQoKTsgfQogI2VsaWYgUExBVEZPUk0oRUZMKQpAQCAtNzUsNyArNzUsNyBAQCBwcml2YXRl
OgogI2VsaWYgUExBVEZPUk0oV0lOKQogICAgIE1TRyBtX25hdGl2ZUV2ZW50OwogI2VsaWYgUExB
VEZPUk0oUVQpCi0gICAgUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50KiBtX25hdGl2ZUV2ZW50Owor
ICAgIFFXaGVlbEV2ZW50KiBtX25hdGl2ZUV2ZW50OwogI2VsaWYgUExBVEZPUk0oR1RLKQogICAg
IEdPd25QdHI8R2RrRXZlbnQ+IG1fbmF0aXZlRXZlbnQ7CiAjZWxpZiBQTEFURk9STShFRkwpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvTmF0aXZlV2ViTW91c2VFdmVudFF0
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9OYXRpdmVXZWJNb3VzZUV2ZW50UXQuY3Bw
CmluZGV4IGE2ZjZlMzQuLmVlNzMxZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9xdC9OYXRpdmVXZWJNb3VzZUV2ZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9xdC9OYXRpdmVXZWJNb3VzZUV2ZW50UXQuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi1OYXRpdmVXZWJNb3VzZUV2ZW50OjpOYXRpdmVXZWJNb3VzZUV2ZW50
KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCogZXZlbnQsIGludCBldmVudENsaWNrQ291bnQpCitO
YXRpdmVXZWJNb3VzZUV2ZW50OjpOYXRpdmVXZWJNb3VzZUV2ZW50KFFNb3VzZUV2ZW50KiBldmVu
dCwgaW50IGV2ZW50Q2xpY2tDb3VudCkKICAgICA6IFdlYk1vdXNlRXZlbnQoV2ViRXZlbnRGYWN0
b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGV2ZW50LCBldmVudENsaWNrQ291bnQpKQogICAgICwg
bV9uYXRpdmVFdmVudChldmVudCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9xdC9OYXRpdmVXZWJXaGVlbEV2ZW50UXQuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0
L05hdGl2ZVdlYldoZWVsRXZlbnRRdC5jcHAKaW5kZXggMjJlMTFlMy4uNWZmMjI0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L05hdGl2ZVdlYldoZWVsRXZlbnRRdC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L05hdGl2ZVdlYldoZWVsRXZlbnRRdC5jcHAK
QEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLU5hdGl2ZVdlYldoZWVs
RXZlbnQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50KiBldmVu
dCkKK05hdGl2ZVdlYldoZWVsRXZlbnQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoUVdoZWVsRXZlbnQq
IGV2ZW50KQogICAgIDogV2ViV2hlZWxFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldo
ZWVsRXZlbnQoZXZlbnQpKQogICAgICwgbV9uYXRpdmVFdmVudChldmVudCkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9XZWJFdmVudEZhY3RvcnlRdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuY3BwCmluZGV4IGJlZjRiMzFm
Li43MzgwMTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRG
YWN0b3J5UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9XZWJFdmVudEZhY3Rv
cnlRdC5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCi1zdGF0aWMgV2ViTW91c2VFdmVudDo6QnV0dG9uIG1vdXNlQnV0
dG9uRm9yRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50ICpldmVudCkKK3N0YXRpYyBXZWJN
b3VzZUV2ZW50OjpCdXR0b24gbW91c2VCdXR0b25Gb3JFdmVudChRTW91c2VFdmVudCAqZXZlbnQp
CiB7CiAgICAgaWYgKGV2ZW50LT5idXR0b24oKSA9PSBRdDo6TGVmdEJ1dHRvbiB8fCAoZXZlbnQt
PmJ1dHRvbnMoKSAmIFF0OjpMZWZ0QnV0dG9uKSkKICAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZl
bnQ6OkxlZnRCdXR0b247CkBAIC01MywzMCArNTMsMzAgQEAgc3RhdGljIFdlYk1vdXNlRXZlbnQ6
OkJ1dHRvbiBtb3VzZUJ1dHRvbkZvckV2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCAqZXZl
bnQKIHN0YXRpYyBXZWJFdmVudDo6VHlwZSB3ZWJFdmVudFR5cGVGb3JFdmVudChjb25zdCBRRXZl
bnQqIGV2ZW50KQogewogICAgIHN3aXRjaCAoZXZlbnQtPnR5cGUoKSkgewotICAgICAgICBjYXNl
IFFFdmVudDo6R3JhcGhpY3NTY2VuZU1vdXNlRG91YmxlQ2xpY2s6Ci0gICAgICAgIGNhc2UgUUV2
ZW50OjpHcmFwaGljc1NjZW5lTW91c2VQcmVzczoKLSAgICAgICAgICAgIHJldHVybiBXZWJFdmVu
dDo6TW91c2VEb3duOwotICAgICAgICBjYXNlIFFFdmVudDo6R3JhcGhpY3NTY2VuZU1vdXNlUmVs
ZWFzZToKLSAgICAgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VVcDsKLSAgICAgICAgY2Fz
ZSBRRXZlbnQ6OkdyYXBoaWNzU2NlbmVNb3VzZU1vdmU6Ci0gICAgICAgICAgICByZXR1cm4gV2Vi
RXZlbnQ6Ok1vdXNlTW92ZTsKLSAgICAgICAgY2FzZSBRRXZlbnQ6OldoZWVsOgotICAgICAgICAg
ICAgcmV0dXJuIFdlYkV2ZW50OjpXaGVlbDsKLSAgICAgICAgY2FzZSBRRXZlbnQ6OktleVByZXNz
OgotICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpLZXlEb3duOwotICAgICAgICBjYXNlIFFF
dmVudDo6S2V5UmVsZWFzZToKLSAgICAgICAgICAgIHJldHVybiBXZWJFdmVudDo6S2V5VXA7Cisg
ICAgY2FzZSBRRXZlbnQ6Ok1vdXNlQnV0dG9uRGJsQ2xpY2s6CisgICAgY2FzZSBRRXZlbnQ6Ok1v
dXNlQnV0dG9uUHJlc3M6CisgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VEb3duOworICAg
IGNhc2UgUUV2ZW50OjpNb3VzZUJ1dHRvblJlbGVhc2U6CisgICAgICAgIHJldHVybiBXZWJFdmVu
dDo6TW91c2VVcDsKKyAgICBjYXNlIFFFdmVudDo6TW91c2VNb3ZlOgorICAgICAgICByZXR1cm4g
V2ViRXZlbnQ6Ok1vdXNlTW92ZTsKKyAgICBjYXNlIFFFdmVudDo6V2hlZWw6CisgICAgICAgIHJl
dHVybiBXZWJFdmVudDo6V2hlZWw7CisgICAgY2FzZSBRRXZlbnQ6OktleVByZXNzOgorICAgICAg
ICByZXR1cm4gV2ViRXZlbnQ6OktleURvd247CisgICAgY2FzZSBRRXZlbnQ6OktleVJlbGVhc2U6
CisgICAgICAgIHJldHVybiBXZWJFdmVudDo6S2V5VXA7CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5U
UykKLSAgICAgICAgY2FzZSBRRXZlbnQ6OlRvdWNoQmVnaW46Ci0gICAgICAgICAgICByZXR1cm4g
V2ViRXZlbnQ6OlRvdWNoU3RhcnQ7Ci0gICAgICAgIGNhc2UgUUV2ZW50OjpUb3VjaFVwZGF0ZToK
LSAgICAgICAgICAgIHJldHVybiBXZWJFdmVudDo6VG91Y2hNb3ZlOwotICAgICAgICBjYXNlIFFF
dmVudDo6VG91Y2hFbmQ6Ci0gICAgICAgICAgICByZXR1cm4gV2ViRXZlbnQ6OlRvdWNoRW5kOwor
ICAgIGNhc2UgUUV2ZW50OjpUb3VjaEJlZ2luOgorICAgICAgICByZXR1cm4gV2ViRXZlbnQ6OlRv
dWNoU3RhcnQ7CisgICAgY2FzZSBRRXZlbnQ6OlRvdWNoVXBkYXRlOgorICAgICAgICByZXR1cm4g
V2ViRXZlbnQ6OlRvdWNoTW92ZTsKKyAgICBjYXNlIFFFdmVudDo6VG91Y2hFbmQ6CisgICAgICAg
IHJldHVybiBXZWJFdmVudDo6VG91Y2hFbmQ7CiAjZW5kaWYKLSAgICAgICAgZGVmYXVsdDoKLSAg
ICAgICAgICAgIC8vIGFzc2VydAotICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZU1v
dmU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgLy8gYXNzZXJ0CisgICAgICAgIHJldHVybiBXZWJF
dmVudDo6TW91c2VNb3ZlOwogICAgIH0KIH0KIApAQCAtOTQsMjIgKzk0LDIzIEBAIHN0YXRpYyBp
bmxpbmUgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnNGb3JFdmVudChRdDo6S2V5Ym9hcmRN
b2RpZmllcnMgbW9kaWZpCiAgICAgcmV0dXJuIChXZWJFdmVudDo6TW9kaWZpZXJzKXJlc3VsdDsK
IH0KIAotV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQo
UUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50KiBldmVudCwgaW50IGV2ZW50Q2xpY2tDb3VudCkKK1dl
Yk1vdXNlRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KFFNb3VzZUV2
ZW50KiBldmVudCwgaW50IGV2ZW50Q2xpY2tDb3VudCkKIHsKLSAgICBGbG9hdFBvaW50IGRlbHRh
KGV2ZW50LT5wb3MoKS54KCkgLSBldmVudC0+bGFzdFBvcygpLngoKSwgZXZlbnQtPnBvcygpLnko
KSAtIGV2ZW50LT5sYXN0UG9zKCkueSgpKTsKKyAgICBzdGF0aWMgRmxvYXRQb2ludCBsYXN0UG9z
ID0gRmxvYXRQb2ludCgwLCAwKTsKIAogICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgICAgICAgICAg
ICAgPSB3ZWJFdmVudFR5cGVGb3JFdmVudChldmVudCk7CiAgICAgV2ViTW91c2VFdmVudDo6QnV0
dG9uIGJ1dHRvbiAgICA9IG1vdXNlQnV0dG9uRm9yRXZlbnQoZXZlbnQpOwotICAgIGZsb2F0IGRl
bHRhWCAgICAgICAgICAgICAgICAgICAgPSBkZWx0YS54KCk7Ci0gICAgZmxvYXQgZGVsdGFZICAg
ICAgICAgICAgICAgICAgICA9IGRlbHRhLnkoKTsKKyAgICBmbG9hdCBkZWx0YVggICAgICAgICAg
ICAgICAgICAgID0gZXZlbnQtPnBvcygpLngoKSAtIGxhc3RQb3MueCgpOworICAgIGZsb2F0IGRl
bHRhWSAgICAgICAgICAgICAgICAgICAgPSBldmVudC0+cG9zKCkueSgpIC0gbGFzdFBvcy55KCk7
CiAgICAgaW50IGNsaWNrQ291bnQgICAgICAgICAgICAgICAgICA9IGV2ZW50Q2xpY2tDb3VudDsK
ICAgICBXZWJFdmVudDo6TW9kaWZpZXJzIG1vZGlmaWVycyAgID0gbW9kaWZpZXJzRm9yRXZlbnQo
ZXZlbnQtPm1vZGlmaWVycygpKTsKICAgICBkb3VibGUgdGltZXN0YW1wICAgICAgICAgICAgICAg
ID0gV1RGOjpjdXJyZW50VGltZSgpOworICAgIGxhc3RQb3Muc2V0KGV2ZW50LT5sb2NhbFBvcygp
LngoKSwgZXZlbnQtPmxvY2FsUG9zKCkueSgpKTsKIAotICAgIHJldHVybiBXZWJNb3VzZUV2ZW50
KHR5cGUsIGJ1dHRvbiwgZXZlbnQtPnBvcygpLnRvUG9pbnQoKSwgZXZlbnQtPnNjcmVlblBvcygp
LCBkZWx0YVgsIGRlbHRhWSwgMC4wZiwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lc3RhbXAp
OworICAgIHJldHVybiBXZWJNb3VzZUV2ZW50KHR5cGUsIGJ1dHRvbiwgZXZlbnQtPmxvY2FsUG9z
KCkudG9Qb2ludCgpLCBldmVudC0+c2NyZWVuUG9zKCkudG9Qb2ludCgpLCBkZWx0YVgsIGRlbHRh
WSwgMC4wZiwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lc3RhbXApOwogfQogCi1XZWJXaGVl
bEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChRR3JhcGhpY3NTY2Vu
ZVdoZWVsRXZlbnQqIGUpCitXZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2Vi
V2hlZWxFdmVudChRV2hlZWxFdmVudCogZSkKIHsKICAgICBmbG9hdCBkZWx0YVggICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAwOwogICAgIGZsb2F0IGRlbHRhWSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDA7CkBAIC0xMzgsNyArMTM5LDcgQEAgV2ViV2hlZWxFdmVudCBXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50KiBl
KQogICAgIGRlbHRhWCAqPSAoZnVsbFRpY2spID8gUUFwcGxpY2F0aW9uOjp3aGVlbFNjcm9sbExp
bmVzKCkgKiBjRGVmYXVsdFF0U2Nyb2xsU3RlcCA6IDE7CiAgICAgZGVsdGFZICo9IChmdWxsVGlj
aykgPyBRQXBwbGljYXRpb246OndoZWVsU2Nyb2xsTGluZXMoKSAqIGNEZWZhdWx0UXRTY3JvbGxT
dGVwIDogMTsKIAotICAgIHJldHVybiBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50OjpXaGVlbCwgZS0+
cG9zKCkudG9Qb2ludCgpLCBlLT5zY3JlZW5Qb3MoKSwgRmxvYXRTaXplKGRlbHRhWCwgZGVsdGFZ
KSwgRmxvYXRTaXplKHdoZWVsVGlja3NYLCB3aGVlbFRpY2tzWSksIGdyYW51bGFyaXR5LCBtb2Rp
ZmllcnMsIHRpbWVzdGFtcCk7CisgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6Oldo
ZWVsLCBlLT5wb3NGKCkudG9Qb2ludCgpLCBlLT5nbG9iYWxQb3NGKCkudG9Qb2ludCgpLCBGbG9h
dFNpemUoZGVsdGFYLCBkZWx0YVkpLCBGbG9hdFNpemUod2hlZWxUaWNrc1gsIHdoZWVsVGlja3NZ
KSwgZ3JhbnVsYXJpdHksIG1vZGlmaWVycywgdGltZXN0YW1wKTsKIH0KIAogV2ViS2V5Ym9hcmRF
dmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoUUtleUV2ZW50KiBl
dmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9XZWJFdmVudEZhY3Rv
cnlRdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L1dlYkV2ZW50RmFjdG9yeVF0LmgKaW5k
ZXggZDU0ODdjYy4uNGNlNjQ4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0
L1dlYkV2ZW50RmFjdG9yeVF0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L1dlYkV2
ZW50RmFjdG9yeVF0LmgKQEAgLTMzLDE3ICszMywxNyBAQAogY2xhc3MgUVRvdWNoRXZlbnQ7CiAj
ZW5kaWYKIAotY2xhc3MgUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50OwotY2xhc3MgUUdyYXBoaWNz
U2NlbmVXaGVlbEV2ZW50OworY2xhc3MgUU1vdXNlRXZlbnQ7CitjbGFzcyBRV2hlZWxFdmVudDsK
IGNsYXNzIFFLZXlFdmVudDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkV2ZW50
RmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFdlYk1vdXNlRXZlbnQgY3JlYXRlV2ViTW91
c2VFdmVudChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqIGV2ZW50LCBpbnQgZXZlbnRDbGlja0Nv
dW50KTsKLSAgICBzdGF0aWMgV2ViV2hlZWxFdmVudCBjcmVhdGVXZWJXaGVlbEV2ZW50KFFHcmFw
aGljc1NjZW5lV2hlZWxFdmVudCogZXZlbnQpOwotICAgIHN0YXRpYyBXZWJLZXlib2FyZEV2ZW50
IGNyZWF0ZVdlYktleWJvYXJkRXZlbnQoUUtleUV2ZW50KiBldmVudCk7CisgICAgc3RhdGljIFdl
Yk1vdXNlRXZlbnQgY3JlYXRlV2ViTW91c2VFdmVudChRTW91c2VFdmVudCosIGludCBldmVudENs
aWNrQ291bnQpOworICAgIHN0YXRpYyBXZWJXaGVlbEV2ZW50IGNyZWF0ZVdlYldoZWVsRXZlbnQo
UVdoZWVsRXZlbnQqKTsKKyAgICBzdGF0aWMgV2ViS2V5Ym9hcmRFdmVudCBjcmVhdGVXZWJLZXli
b2FyZEV2ZW50KFFLZXlFdmVudCopOwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgc3Rh
dGljIFdlYlRvdWNoRXZlbnQgY3JlYXRlV2ViVG91Y2hFdmVudChjb25zdCBRVG91Y2hFdmVudCop
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fk
ZXNrdG9wd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FkZXNr
dG9wd2Vidmlldy5jcHAKaW5kZXggMjdlZDEwNi4uNjk2YjY3NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmNwcApAQCAtMjY5LDQw
ICsyNjksMjkgQEAgdm9pZCBRRGVza3RvcFdlYlZpZXc6OmZvY3VzT3V0RXZlbnQoUUZvY3VzRXZl
bnQqIGV2ZW50KQogICAgIHRoaXMtPmV2ZW50KGV2ZW50KTsKIH0KIAotdm9pZCBRRGVza3RvcFdl
YlZpZXc6Om1vdXNlUHJlc3NFdmVudChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqIGV2ZW50KQor
dm9pZCBRRGVza3RvcFdlYlZpZXc6Om1vdXNlUHJlc3NFdmVudChRTW91c2VFdmVudCogZXZlbnQp
CiB7CiAgICAgdGhpcy0+ZXZlbnQoZXZlbnQpOwogfQogCi12b2lkIFFEZXNrdG9wV2ViVmlldzo6
bW91c2VNb3ZlRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50KiBldmVudCkKK3ZvaWQgUURl
c2t0b3BXZWJWaWV3Ojptb3VzZU1vdmVFdmVudChRTW91c2VFdmVudCogZXZlbnQpCiB7CiAgICAg
dGhpcy0+ZXZlbnQoZXZlbnQpOwogfQogCi12b2lkIFFEZXNrdG9wV2ViVmlldzo6bW91c2VSZWxl
YXNlRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50KiBldmVudCkKK3ZvaWQgUURlc2t0b3BX
ZWJWaWV3Ojptb3VzZVJlbGVhc2VFdmVudChRTW91c2VFdmVudCogZXZlbnQpCiB7CiAgICAgdGhp
cy0+ZXZlbnQoZXZlbnQpOwogfQogCi12b2lkIFFEZXNrdG9wV2ViVmlldzo6bW91c2VEb3VibGVD
bGlja0V2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCogZXZlbnQpCit2b2lkIFFEZXNrdG9w
V2ViVmlldzo6bW91c2VEb3VibGVDbGlja0V2ZW50KFFNb3VzZUV2ZW50KiBldmVudCkKIHsKICAg
ICB0aGlzLT5ldmVudChldmVudCk7CiB9CiAKIHZvaWQgUURlc2t0b3BXZWJWaWV3Ojp3aGVlbEV2
ZW50KFFXaGVlbEV2ZW50KiBldmVudCkKIHsKLSAgICAvLyBGSVhNRTogZm9yIHNvbWUgcmVhc29u
LCB0aGUgc2NlbmUgZ3JhcGggZGVsaXZlcnMgUVdoZWVsRXZlbnQgaW5zdGVhZCBvZiBRR3JhcGhp
Y3NTY2VuZVdoZWVsRXZlbnQuCi0gICAgLy8gV2UgdHJhbnNmb3JtIHRoZW0gaW4gUUdyYXBoaWNz
U2NlbmVXaGVlbEV2ZW50IGZvciBjb25zaXN0ZW5jeS4gT3RoZXJ3aXNlIHRoZSBwb3NpdGlvbiB3
b3VsZCBiZSBjb21wbGV0ZSBtYWdpYy4KLSAgICAvLyBXZSBzaG91ZCBtb2RpZnkgdGhlIHNjZW5l
Z3JhcGggdG8gZ2V0IHRoZSBjb3JyZWN0IHR5cGUgb2YgZXZlbnRzLgotICAgIFFHcmFwaGljc1Nj
ZW5lV2hlZWxFdmVudCBncmFwaGljc0V2ZW50KFFFdmVudDo6R3JhcGhpY3NTY2VuZVdoZWVsKTsK
LSAgICBncmFwaGljc0V2ZW50LnNldFBvcyhldmVudC0+cG9zKCkpOwotICAgIGdyYXBoaWNzRXZl
bnQuc2V0QnV0dG9ucyhldmVudC0+YnV0dG9ucygpKTsKLSAgICBncmFwaGljc0V2ZW50LnNldERl
bHRhKGV2ZW50LT5kZWx0YSgpKTsKLSAgICBncmFwaGljc0V2ZW50LnNldE1vZGlmaWVycyhldmVu
dC0+bW9kaWZpZXJzKCkpOwotICAgIGdyYXBoaWNzRXZlbnQuc2V0T3JpZW50YXRpb24oZXZlbnQt
Pm9yaWVudGF0aW9uKCkpOwotICAgIGdyYXBoaWNzRXZlbnQuc2V0U2NlbmVQb3MobWFwVG9TY2Vu
ZShldmVudC0+cG9zKCkpKTsKLSAgICBncmFwaGljc0V2ZW50LnNldFNjcmVlblBvcyhldmVudC0+
Z2xvYmFsUG9zKCkpOwotICAgIHRoaXMtPmV2ZW50KCZncmFwaGljc0V2ZW50KTsKKyAgICB0aGlz
LT5ldmVudChldmVudCk7CiB9CiAKIHZvaWQgUURlc2t0b3BXZWJWaWV3Ojp0b3VjaEV2ZW50KFFU
b3VjaEV2ZW50KiBldmVudCkKQEAgLTM2Nyw2ICszNTYsOCBAQCBib29sIFFEZXNrdG9wV2ViVmll
dzo6ZXZlbnQoUUV2ZW50KiBldikKIHsKICAgICBpZiAoZC0+cGFnZS5oYW5kbGVFdmVudChldikp
CiAgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChldi0+dHlwZSgpID09IFFFdmVudDo6SW5w
dXRNZXRob2QpCisgICAgICAgIHJldHVybiBmYWxzZTsgLy8gVGhpcyBpcyBuZWNlc3NhcnkgdG8g
YXZvaWQgYW4gZW5kbGVzcyBsb29wIGluIGNvbm5lY3Rpb24gd2l0aCBRU0dJdGVtOjpldmVudCgp
LgogICAgIHJldHVybiBRU0dJdGVtOjpldmVudChldik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FkZXNrdG9wd2Vidmlldy5oCmluZGV4IDJhODU0YTAuLmIy
NWRkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0
b3B3ZWJ2aWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xZGVza3Rv
cHdlYnZpZXcuaApAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBRV2ViTmF2aWdhdGlvbkNvbnRyb2xs
ZXI7CiAKIFFUX0JFR0lOX05BTUVTUEFDRQogY2xhc3MgUUZvY3VzRXZlbnQ7Ci1jbGFzcyBRR3Jh
cGhpY3NTY2VuZU1vdXNlRXZlbnQ7CitjbGFzcyBRTW91c2VFdmVudDsKIGNsYXNzIFFIb3ZlckV2
ZW50OwogY2xhc3MgUUlucHV0TWV0aG9kRXZlbnQ7CiBjbGFzcyBRS2V5RXZlbnQ7CkBAIC05Niwx
MCArOTYsMTAgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBpbnB1dE1ldGhvZEV2ZW50
KFFJbnB1dE1ldGhvZEV2ZW50Kik7CiAgICAgdmlydHVhbCB2b2lkIGZvY3VzSW5FdmVudChRRm9j
dXNFdmVudCopOwogICAgIHZpcnR1YWwgdm9pZCBmb2N1c091dEV2ZW50KFFGb2N1c0V2ZW50Kik7
Ci0gICAgdmlydHVhbCB2b2lkIG1vdXNlUHJlc3NFdmVudChRR3JhcGhpY3NTY2VuZU1vdXNlRXZl
bnQqKTsKLSAgICB2aXJ0dWFsIHZvaWQgbW91c2VNb3ZlRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3Vz
ZUV2ZW50Kik7Ci0gICAgdmlydHVhbCB2b2lkIG1vdXNlUmVsZWFzZUV2ZW50KFFHcmFwaGljc1Nj
ZW5lTW91c2VFdmVudCopOwotICAgIHZpcnR1YWwgdm9pZCBtb3VzZURvdWJsZUNsaWNrRXZlbnQo
UUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50Kik7CisgICAgdmlydHVhbCB2b2lkIG1vdXNlUHJlc3NF
dmVudChRTW91c2VFdmVudCAqKTsKKyAgICB2aXJ0dWFsIHZvaWQgbW91c2VNb3ZlRXZlbnQoUU1v
dXNlRXZlbnQgKik7CisgICAgdmlydHVhbCB2b2lkIG1vdXNlUmVsZWFzZUV2ZW50KFFNb3VzZUV2
ZW50ICopOworICAgIHZpcnR1YWwgdm9pZCBtb3VzZURvdWJsZUNsaWNrRXZlbnQoUU1vdXNlRXZl
bnQgKik7CiAgICAgdmlydHVhbCB2b2lkIHdoZWVsRXZlbnQoUVdoZWVsRXZlbnQqKTsKICAgICB2
aXJ0dWFsIHZvaWQgdG91Y2hFdmVudChRVG91Y2hFdmVudCopOwogICAgIHZpcnR1YWwgdm9pZCBo
b3ZlckVudGVyRXZlbnQoUUhvdmVyRXZlbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9xZGVza3RvcHdlYnBhZ2Vwcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvcWRlc2t0b3B3ZWJwYWdlcHJveHkuY3BwCmluZGV4IDA0ZjkwYmYuLjUyM2Q3
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9xZGVza3RvcHdlYnBh
Z2Vwcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3FkZXNrdG9wd2Vi
cGFnZXByb3h5LmNwcApAQCAtOTAsMTYgKzkwLDE2IEBAIFBhc3NSZWZQdHI8V2ViUG9wdXBNZW51
UHJveHk+IFFEZXNrdG9wV2ViUGFnZVByb3h5OjpjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdl
CiBib29sIFFEZXNrdG9wV2ViUGFnZVByb3h5OjpoYW5kbGVFdmVudChRRXZlbnQqIGV2KQogewog
ICAgIHN3aXRjaCAoZXYtPnR5cGUoKSkgewotICAgIGNhc2UgUUV2ZW50OjpHcmFwaGljc1NjZW5l
TW91c2VNb3ZlOgotICAgICAgICByZXR1cm4gaGFuZGxlTW91c2VNb3ZlRXZlbnQocmVpbnRlcnBy
ZXRfY2FzdDxRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqPihldikpOwotICAgIGNhc2UgUUV2ZW50
OjpHcmFwaGljc1NjZW5lTW91c2VQcmVzczoKLSAgICAgICAgcmV0dXJuIGhhbmRsZU1vdXNlUHJl
c3NFdmVudChyZWludGVycHJldF9jYXN0PFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCo+KGV2KSk7
Ci0gICAgY2FzZSBRRXZlbnQ6OkdyYXBoaWNzU2NlbmVNb3VzZVJlbGVhc2U6Ci0gICAgICAgIHJl
dHVybiBoYW5kbGVNb3VzZVJlbGVhc2VFdmVudChyZWludGVycHJldF9jYXN0PFFHcmFwaGljc1Nj
ZW5lTW91c2VFdmVudCo+KGV2KSk7Ci0gICAgY2FzZSBRRXZlbnQ6OkdyYXBoaWNzU2NlbmVNb3Vz
ZURvdWJsZUNsaWNrOgotICAgICAgICByZXR1cm4gaGFuZGxlTW91c2VEb3VibGVDbGlja0V2ZW50
KHJlaW50ZXJwcmV0X2Nhc3Q8UUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50Kj4oZXYpKTsKLSAgICBj
YXNlIFFFdmVudDo6R3JhcGhpY3NTY2VuZVdoZWVsOgotICAgICAgICByZXR1cm4gaGFuZGxlV2hl
ZWxFdmVudChyZWludGVycHJldF9jYXN0PFFHcmFwaGljc1NjZW5lV2hlZWxFdmVudCo+KGV2KSk7
CisgICAgY2FzZSBRRXZlbnQ6Ok1vdXNlTW92ZToKKyAgICAgICAgcmV0dXJuIGhhbmRsZU1vdXNl
TW92ZUV2ZW50KHJlaW50ZXJwcmV0X2Nhc3Q8UU1vdXNlRXZlbnQqPihldikpOworICAgIGNhc2Ug
UUV2ZW50OjpNb3VzZUJ1dHRvblByZXNzOgorICAgICAgICByZXR1cm4gaGFuZGxlTW91c2VQcmVz
c0V2ZW50KHJlaW50ZXJwcmV0X2Nhc3Q8UU1vdXNlRXZlbnQqPihldikpOworICAgIGNhc2UgUUV2
ZW50OjpNb3VzZUJ1dHRvblJlbGVhc2U6CisgICAgICAgIHJldHVybiBoYW5kbGVNb3VzZVJlbGVh
c2VFdmVudChyZWludGVycHJldF9jYXN0PFFNb3VzZUV2ZW50Kj4oZXYpKTsKKyAgICBjYXNlIFFF
dmVudDo6TW91c2VCdXR0b25EYmxDbGljazoKKyAgICAgICAgcmV0dXJuIGhhbmRsZU1vdXNlRG91
YmxlQ2xpY2tFdmVudChyZWludGVycHJldF9jYXN0PFFNb3VzZUV2ZW50Kj4oZXYpKTsKKyAgICBj
YXNlIFFFdmVudDo6V2hlZWw6CisgICAgICAgIHJldHVybiBoYW5kbGVXaGVlbEV2ZW50KHJlaW50
ZXJwcmV0X2Nhc3Q8UVdoZWVsRXZlbnQqPihldikpOwogICAgIGNhc2UgUUV2ZW50OjpIb3Zlck1v
dmU6CiAgICAgICAgIHJldHVybiBoYW5kbGVIb3Zlck1vdmVFdmVudChyZWludGVycHJldF9jYXN0
PFFIb3ZlckV2ZW50Kj4oZXYpKTsKICAgICBjYXNlIFFFdmVudDo6R3JhcGhpY3NTY2VuZURyYWdF
bnRlcjoKQEAgLTExNCw3ICsxMTQsNyBAQCBib29sIFFEZXNrdG9wV2ViUGFnZVByb3h5OjpoYW5k
bGVFdmVudChRRXZlbnQqIGV2KQogICAgIHJldHVybiBRdFdlYlBhZ2VQcm94eTo6aGFuZGxlRXZl
bnQoZXYpOwogfQogCi1ib29sIFFEZXNrdG9wV2ViUGFnZVByb3h5OjpoYW5kbGVNb3VzZU1vdmVF
dmVudChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqIGV2KQorYm9vbCBRRGVza3RvcFdlYlBhZ2VQ
cm94eTo6aGFuZGxlTW91c2VNb3ZlRXZlbnQoUU1vdXNlRXZlbnQqIGV2KQogewogICAgIC8vIEZv
ciBzb21lIHJlYXNvbiBtb3VzZSBwcmVzcyByZXN1bHRzIGluIG1vdXNlIGhvdmVyICh3aGljaCBp
cwogICAgIC8vIGNvbnZlcnRlZCB0byBtb3VzZSBtb3ZlIGZvciBXZWJLaXQpLiBXZSBpZ25vcmUg
dGhlc2UgaG92ZXIKQEAgLTEzMSw3ICsxMzEsNyBAQCBib29sIFFEZXNrdG9wV2ViUGFnZVByb3h5
OjpoYW5kbGVNb3VzZU1vdmVFdmVudChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqIGV2KQogICAg
IHJldHVybiBldi0+aXNBY2NlcHRlZCgpOwogfQogCi1ib29sIFFEZXNrdG9wV2ViUGFnZVByb3h5
OjpoYW5kbGVNb3VzZVByZXNzRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50KiBldikKK2Jv
b2wgUURlc2t0b3BXZWJQYWdlUHJveHk6OmhhbmRsZU1vdXNlUHJlc3NFdmVudChRTW91c2VFdmVu
dCogZXYpCiB7CiAgICAgaWYgKG1fdHJpcGxlQ2xpY2tUaW1lci5pc0FjdGl2ZSgpICYmIChldi0+
cG9zKCkgLSBtX3RyaXBsZUNsaWNrKS5tYW5oYXR0YW5MZW5ndGgoKSA8IFFBcHBsaWNhdGlvbjo6
c3RhcnREcmFnRGlzdGFuY2UoKSkgewogICAgICAgICBtX3dlYlBhZ2VQcm94eS0+aGFuZGxlTW91
c2VFdmVudChOYXRpdmVXZWJNb3VzZUV2ZW50KGV2LCAvKmV2ZW50Q2xpY2tDb3VudD0qLzMpKTsK
QEAgLTE0MiwyMiArMTQyLDIyIEBAIGJvb2wgUURlc2t0b3BXZWJQYWdlUHJveHk6OmhhbmRsZU1v
dXNlUHJlc3NFdmVudChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqIGV2KQogICAgIHJldHVybiBl
di0+aXNBY2NlcHRlZCgpOwogfQogCi1ib29sIFFEZXNrdG9wV2ViUGFnZVByb3h5OjpoYW5kbGVN
b3VzZVJlbGVhc2VFdmVudChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqIGV2KQorYm9vbCBRRGVz
a3RvcFdlYlBhZ2VQcm94eTo6aGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoUU1vdXNlRXZlbnQqIGV2
KQogewogICAgIG1fd2ViUGFnZVByb3h5LT5oYW5kbGVNb3VzZUV2ZW50KE5hdGl2ZVdlYk1vdXNl
RXZlbnQoZXYsIC8qZXZlbnRDbGlja0NvdW50PSovMCkpOwogICAgIHJldHVybiBldi0+aXNBY2Nl
cHRlZCgpOwogfQogCi1ib29sIFFEZXNrdG9wV2ViUGFnZVByb3h5OjpoYW5kbGVNb3VzZURvdWJs
ZUNsaWNrRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50KiBldikKK2Jvb2wgUURlc2t0b3BX
ZWJQYWdlUHJveHk6OmhhbmRsZU1vdXNlRG91YmxlQ2xpY2tFdmVudChRTW91c2VFdmVudCogZXYp
CiB7CiAgICAgbV93ZWJQYWdlUHJveHktPmhhbmRsZU1vdXNlRXZlbnQoTmF0aXZlV2ViTW91c2VF
dmVudChldiwgLypldmVudENsaWNrQ291bnQ9Ki8yKSk7CiAKICAgICBtX3RyaXBsZUNsaWNrVGlt
ZXIuc3RhcnQoUUFwcGxpY2F0aW9uOjpkb3VibGVDbGlja0ludGVydmFsKCksIHRoaXMpOwotICAg
IG1fdHJpcGxlQ2xpY2sgPSBldi0+cG9zKCkudG9Qb2ludCgpOworICAgIG1fdHJpcGxlQ2xpY2sg
PSBldi0+bG9jYWxQb3MoKS50b1BvaW50KCk7CiAgICAgcmV0dXJuIGV2LT5pc0FjY2VwdGVkKCk7
CiB9CiAKLWJvb2wgUURlc2t0b3BXZWJQYWdlUHJveHk6OmhhbmRsZVdoZWVsRXZlbnQoUUdyYXBo
aWNzU2NlbmVXaGVlbEV2ZW50KiBldikKK2Jvb2wgUURlc2t0b3BXZWJQYWdlUHJveHk6OmhhbmRs
ZVdoZWVsRXZlbnQoUVdoZWVsRXZlbnQqIGV2KQogewogICAgIG1fd2ViUGFnZVByb3h5LT5oYW5k
bGVXaGVlbEV2ZW50KE5hdGl2ZVdlYldoZWVsRXZlbnQoZXYpKTsKICAgICByZXR1cm4gZXYtPmlz
QWNjZXB0ZWQoKTsKQEAgLTE2NSw4ICsxNjUsNyBAQCBib29sIFFEZXNrdG9wV2ViUGFnZVByb3h5
OjpoYW5kbGVXaGVlbEV2ZW50KFFHcmFwaGljc1NjZW5lV2hlZWxFdmVudCogZXYpCiAKIGJvb2wg
UURlc2t0b3BXZWJQYWdlUHJveHk6OmhhbmRsZUhvdmVyTW92ZUV2ZW50KFFIb3ZlckV2ZW50KiBl
dikKIHsKLSAgICBRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQgbWUoUUV2ZW50OjpHcmFwaGljc1Nj
ZW5lTW91c2VNb3ZlKTsKLSAgICBtZS5zZXRQb3MoZXYtPnBvcygpKTsKKyAgICBRTW91c2VFdmVu
dCBtZShRRXZlbnQ6Ok1vdXNlTW92ZSwgZXYtPnBvcygpLCBRdDo6Tm9CdXR0b24sIFF0OjpOb0J1
dHRvbiwgUXQ6Ok5vTW9kaWZpZXIpOwogICAgIG1lLnNldEFjY2VwdGVkKGV2LT5pc0FjY2VwdGVk
KCkpOwogCiAgICAgcmV0dXJuIGhhbmRsZU1vdXNlTW92ZUV2ZW50KCZtZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvcWRlc2t0b3B3ZWJwYWdlcHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9xZGVza3RvcHdlYnBhZ2Vwcm94eS5oCmluZGV4IDcx
ZGU3NjkuLjgxMDMxZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9x
ZGVza3RvcHdlYnBhZ2Vwcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9x
ZGVza3RvcHdlYnBhZ2Vwcm94eS5oCkBAIC01MSwxMSArNTEsMTEgQEAgcHJpdmF0ZToKIAogICAg
IHZpcnR1YWwgdm9pZCB0aW1lckV2ZW50KFFUaW1lckV2ZW50Kik7CiAKLSAgICBib29sIGhhbmRs
ZU1vdXNlTW92ZUV2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCopOwotICAgIGJvb2wgaGFu
ZGxlTW91c2VQcmVzc0V2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCopOwotICAgIGJvb2wg
aGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50Kik7Ci0gICAg
Ym9vbCBoYW5kbGVNb3VzZURvdWJsZUNsaWNrRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50
Kik7Ci0gICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50KFFHcmFwaGljc1NjZW5lV2hlZWxFdmVudCop
OworICAgIGJvb2wgaGFuZGxlTW91c2VNb3ZlRXZlbnQoUU1vdXNlRXZlbnQqKTsKKyAgICBib29s
IGhhbmRsZU1vdXNlUHJlc3NFdmVudChRTW91c2VFdmVudCopOworICAgIGJvb2wgaGFuZGxlTW91
c2VSZWxlYXNlRXZlbnQoUU1vdXNlRXZlbnQqKTsKKyAgICBib29sIGhhbmRsZU1vdXNlRG91Ymxl
Q2xpY2tFdmVudChRTW91c2VFdmVudCopOworICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVudChRV2hl
ZWxFdmVudCopOwogICAgIGJvb2wgaGFuZGxlSG92ZXJNb3ZlRXZlbnQoUUhvdmVyRXZlbnQqKTsK
ICAgICBib29sIGhhbmRsZURyYWdFbnRlckV2ZW50KFFHcmFwaGljc1NjZW5lRHJhZ0Ryb3BFdmVu
dCopOwogICAgIGJvb2wgaGFuZGxlRHJhZ0xlYXZlRXZlbnQoUUdyYXBoaWNzU2NlbmVEcmFnRHJv
cEV2ZW50Kik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>