<?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>120897</bug_id>
          
          <creation_ts>2013-09-06 14:42:18 -0700</creation_ts>
          <short_desc>Get rid of isBlockFlowFlexBoxOrGrid()</short_desc>
          <delta_ts>2013-09-10 15:24:22 -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>Layout and Rendering</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>84924</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>925859</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-09-06 14:42:18 -0700</bug_when>
    <thetext>Get rid of isBlockFlowFlexBoxOrGrid() by converting all the callers to say what it is they really intended.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925904</commentid>
    <comment_count>1</comment_count>
      <attachid>210813</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-09-06 16:16:15 -0700</bug_when>
    <thetext>Created attachment 210813
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925905</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-06 16:18:26 -0700</bug_when>
    <thetext>Attachment 210813 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/accessibility/AccessibilityRenderObject.cpp&apos;, u&apos;Source/WebCore/dom/Position.cpp&apos;, u&apos;Source/WebCore/dom/PositionIterator.cpp&apos;, u&apos;Source/WebCore/editing/CompositeEditCommand.cpp&apos;, u&apos;Source/WebCore/editing/Editor.cpp&apos;, u&apos;Source/WebCore/editing/FrameSelection.cpp&apos;, u&apos;Source/WebCore/editing/TextIterator.cpp&apos;, u&apos;Source/WebCore/editing/TypingCommand.cpp&apos;, u&apos;Source/WebCore/editing/htmlediting.cpp&apos;, u&apos;Source/WebCore/rendering/LayoutState.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBlock.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBox.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBoxModelObject.h&apos;, u&apos;Source/WebCore/rendering/RenderInline.cpp&apos;, u&apos;Source/WebCore/rendering/RenderLineBoxList.cpp&apos;, u&apos;Source/WebCore/rendering/RenderObject.cpp&apos;, u&apos;Source/WebCore/rendering/RenderObject.h&apos;, u&apos;Source/WebCore/rendering/RenderObjectChildList.cpp&apos;, u&apos;Source/WebCore/rendering/RenderView.h&apos;]&quot; exit_code: 1
Source/WebCore/rendering/RenderBlock.cpp:7095:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 1 in 19 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>925914</commentid>
    <comment_count>3</comment_count>
      <attachid>210813</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-09-06 16:32:57 -0700</bug_when>
    <thetext>Comment on attachment 210813
Patch

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

&gt; Source/WebCore/ChangeLog:169
&gt; +        Need a short description (OOPS!).

It looks like you maybe ran prepare-Changelog twice? You should delete one of the entries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>926815</commentid>
    <comment_count>4</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-09-09 11:36:44 -0700</bug_when>
    <thetext>Fixed in r155366.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927546</commentid>
    <comment_count>5</comment_count>
      <attachid>210813</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2013-09-10 15:24:22 -0700</bug_when>
    <thetext>Comment on attachment 210813
Patch

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

&gt; Source/WebCore/rendering/RenderBlock.cpp:3686
&gt; +    if (!isRenderBlockFlow()) // FIXME: Make multi-column selection gap filling work someday.

I found that you want if (!isRenderBlockFlow() &amp;&amp; !isFlexibleBoxIncludingDeprecated()) here, otherwise you miss selections in buttons (at least on blink).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210813</attachid>
            <date>2013-09-06 16:16:15 -0700</date>
            <delta_ts>2013-09-10 15:24:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>27541</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTIyMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYzIEBACisyMDEzLTA5LTA2ICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBHZXQgcmlkIG9mIGlzQmxvY2tGbG93
RmxleEJveE9yR3JpZCgpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTIwODk3CisKKyAgICAgICAgQ29udmVydCBhbGwgY2FsbGVycyBhbmQgZ2V0IHJp
ZCBvZiB0aGlzIG1ldGhvZC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRlQWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSk6CisgICAgICAgICogZG9tL1Bv
c2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjppc0NhbmRpZGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6Z2V0SW5saW5lQm94QW5kT2Zmc2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpwcmltYXJ5RGlyZWN0aW9uKToKKyAgICAgICAgKiBkb20v
UG9zaXRpb25JdGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbkl0ZXJhdG9y
Ojppc0NhbmRpZGF0ZSk6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6YWRkQmxvY2tQbGFj
ZWhvbGRlcklmTmVlZGVkKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0b3I6OmJhc2VXcml0aW5nRGlyZWN0aW9uRm9yU2VsZWN0aW9uU3RhcnQp
OgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y2FyZXRSZW5kZXJlcik6CisgICAgICAgICogZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dEl0ZXJhdG9yOjpzaG91bGRSZXByZXNlbnROb2RlT2Zmc2V0
WmVybyk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ0NvbW1hbmQ6Om1ha2VFZGl0YWJsZVJvb3RFbXB0eSk6CisgICAgICAgICog
ZWRpdGluZy9odG1sZWRpdGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc0Jsb2NrRmxvd0Vs
ZW1lbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0Qmxv
Y2spOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNvbGxhcHNlTWFyZ2lucyk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6c2VsZWN0aW9uR2Fwcyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9jazo6Zmlyc3RMaW5lQm94QmFzZWxpbmUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6Omxhc3RMaW5lQm94QmFzZWxpbmUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQmxvY2s6OmZpcnN0TGluZUJsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbmRG
aXJzdExldHRlckJsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZENoZWNrTGluZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFkanVzdEZvckJvcmRlckZpdCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
b3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6
OnBvc2l0aW9uRm9yUG9pbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbkhhdmVC
b3hJbmZvSW5SZWdpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjpjb21wdXRlUmVjdEZvclJlcGFpbnQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaW5lQm94TGlzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMaW5lQm94TGlzdDo6ZGlydHlMaW5lc0Zyb21DaGFuZ2VkQ2hpbGQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyT2JqZWN0Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Zmlyc3RMaW5l
U3R5bGVGb3JDYWNoZWRVbmNhY2hlZFR5cGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJP
YmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENoaWxkTGlzdDo6aW5zZXJ0Q2hpbGROb2Rl
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5oOgorCiAyMDEzLTA5LTA2ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGZhc3RO
ZXcvZmFzdERlbGV0ZQpAQCAtMTA2LDYgKzE2Niw1MCBAQAogCiAyMDEzLTA5LTA2ICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAorICAgICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRp
b24gKE9PUFMhKS4KKyAgICAgICAgTmVlZCB0aGUgYnVnIFVSTCAoT09QUyEpLgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09Q
UyEpLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNvbXB1
dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKToKKyAgICAgICAgKiBk
b20vUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmlzQ2FuZGlkYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpnZXRJbmxpbmVCb3hBbmRPZmZzZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OnByaW1hcnlEaXJlY3Rpb24pOgorICAgICAgICAq
IGRvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uSXRl
cmF0b3I6OmlzQ2FuZGlkYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphZGRCbG9j
a1BsYWNlaG9sZGVySWZOZWVkZWQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6YmFzZVdyaXRpbmdEaXJlY3Rpb25Gb3JTZWxlY3Rpb25T
dGFydCk6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjYXJldFJlbmRlcmVyKToKKyAgICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6OnNob3VsZFJlcHJlc2VudE5vZGVP
ZmZzZXRaZXJvKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6bWFrZUVkaXRhYmxlUm9vdEVtcHR5KToKKyAgICAg
ICAgKiBlZGl0aW5nL2h0bWxlZGl0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzQmxvY2tG
bG93RWxlbWVudCk6CisgICAgICAgICogcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dFN0YXRlOjpMYXlvdXRTdGF0ZSk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVS
ZWN0Rm9yUmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnBvc2l0aW9uRm9y
UG9pbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbkhhdmVCb3hJbmZvSW5SZWdp
b24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2UpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2Jq
ZWN0Q2hpbGRMaXN0OjppbnNlcnRDaGlsZE5vZGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJWaWV3Lmg6CisKKzIwMTMtMDktMDYgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgor
CiAgICAgICAgIEFkZCBuZXcgUmVuZGVyQmxvY2tGbG93IGNsYXNzLgogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIwNzc3CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcAkocmV2aXNpb24gMTU1MjEzKQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIy
NSw3ICsxMjI1LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRlQQog
ICAgIGlmIChub2RlICYmIG5vZGUtPmhhc1RhZ05hbWUoc3BhblRhZykpCiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIAotICAgIGlmIChtX3JlbmRlcmVyLT5pc0Jsb2NrRmxvd0ZsZXhCb3hPckdy
aWQoKSAmJiBtX3JlbmRlcmVyLT5jaGlsZHJlbklubGluZSgpICYmICFjYW5TZXRGb2N1c0F0dHJp
YnV0ZSgpKQorICAgIGlmIChtX3JlbmRlcmVyLT5pc1JlbmRlckJsb2NrRmxvdygpICYmIG1fcmVu
ZGVyZXItPmNoaWxkcmVuSW5saW5lKCkgJiYgIWNhblNldEZvY3VzQXR0cmlidXRlKCkpCiAgICAg
ICAgIHJldHVybiAhdG9SZW5kZXJCbG9jayhtX3JlbmRlcmVyKS0+Zmlyc3RMaW5lQm94KCkgJiYg
IW1vdXNlQnV0dG9uTGlzdGVuZXIoKTsKICAgICAKICAgICAvLyBpZ25vcmUgaW1hZ2VzIHNlZW1p
bmdseSB1c2VkIGFzIHNwYWNlcnMKQEAgLTI1NjIsNyArMjU2Miw3IEBAIEFjY2Vzc2liaWxpdHlS
b2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmoKICAgICBpZiAobm9kZSAmJiBub2RlLT5oYXNUYWdO
YW1lKGZvb3RlclRhZykgJiYgIWlzRGVzY2VuZGFudE9mRWxlbWVudFR5cGUoYXJ0aWNsZVRhZykg
JiYgIWlzRGVzY2VuZGFudE9mRWxlbWVudFR5cGUoc2VjdGlvblRhZykpCiAgICAgICAgIHJldHVy
biBGb290ZXJSb2xlOwogCi0gICAgaWYgKG1fcmVuZGVyZXItPmlzQmxvY2tGbG93RmxleEJveE9y
R3JpZCgpKQorICAgIGlmIChtX3JlbmRlcmVyLT5pc1JlbmRlckJsb2NrRmxvdygpKQogICAgICAg
ICByZXR1cm4gR3JvdXBSb2xlOwogICAgIAogICAgIC8vIElmIHRoZSBlbGVtZW50IGRvZXMgbm90
IGhhdmUgcm9sZSwgYnV0IGl0IGhhcyBBUklBIGF0dHJpYnV0ZXMsIGFjY2Vzc2liaWxpdHkgc2hv
dWxkIGZhbGxiYWNrIHRvIGV4cG9zaW5nIGl0IGFzIGEgZ3JvdXAuCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vUG9zaXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Q
b3NpdGlvbi5jcHAJKHJldmlzaW9uIDE1NTIxMykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Qb3Np
dGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyNSw3ICs5MjUsNyBAQCBib29sIFBvc2l0aW9u
Ojppc0NhbmRpZGF0ZSgpIGNvbnN0CiAgICAgaWYgKG1fYW5jaG9yTm9kZS0+aGFzVGFnTmFtZSho
dG1sVGFnKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAKLSAgICBpZiAocmVuZGVy
ZXItPmlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgpKSB7CisgICAgaWYgKHJlbmRlcmVyLT5pc1Jl
bmRlckJsb2NrRmxvdygpKSB7CiAgICAgICAgIGlmICh0b1JlbmRlckJsb2NrKHJlbmRlcmVyKS0+
bG9naWNhbEhlaWdodCgpIHx8IG1fYW5jaG9yTm9kZS0+aGFzVGFnTmFtZShib2R5VGFnKSkgewog
ICAgICAgICAgICAgaWYgKCFQb3NpdGlvbjo6aGFzUmVuZGVyZWROb25Bbm9ueW1vdXNEZXNjZW5k
YW50c1dpdGhIZWlnaHQocmVuZGVyZXIpKQogICAgICAgICAgICAgICAgIHJldHVybiBhdEZpcnN0
RWRpdGluZ1Bvc2l0aW9uRm9yTm9kZSgpICYmICFQb3NpdGlvbjo6bm9kZUlzVXNlclNlbGVjdE5v
bmUoZGVwcmVjYXRlZE5vZGUoKSk7CkBAIC0xMTg1LDcgKzExODUsNyBAQCB2b2lkIFBvc2l0aW9u
OjpnZXRJbmxpbmVCb3hBbmRPZmZzZXQoRUFmCiAKICAgICBpZiAoIXJlbmRlcmVyLT5pc1RleHQo
KSkgewogICAgICAgICBpbmxpbmVCb3ggPSAwOwotICAgICAgICBpZiAoY2FuSGF2ZUNoaWxkcmVu
Rm9yRWRpdGluZyhkZXByZWNhdGVkTm9kZSgpKSAmJiByZW5kZXJlci0+aXNCbG9ja0Zsb3dGbGV4
Qm94T3JHcmlkKCkgJiYgaGFzUmVuZGVyZWROb25Bbm9ueW1vdXNEZXNjZW5kYW50c1dpdGhIZWln
aHQocmVuZGVyZXIpKSB7CisgICAgICAgIGlmIChjYW5IYXZlQ2hpbGRyZW5Gb3JFZGl0aW5nKGRl
cHJlY2F0ZWROb2RlKCkpICYmIHJlbmRlcmVyLT5pc1JlbmRlckJsb2NrRmxvdygpICYmIGhhc1Jl
bmRlcmVkTm9uQW5vbnltb3VzRGVzY2VuZGFudHNXaXRoSGVpZ2h0KHJlbmRlcmVyKSkgewogICAg
ICAgICAgICAgLy8gVHJ5IGEgdmlzdWFsbHkgZXF1aXZhbGVudCBwb3NpdGlvbiB3aXRoIHBvc3Np
Ymx5IG9wcG9zaXRlIGVkaXRhYmlsaXR5LiBUaGlzIGhlbHBzIGluIGNhc2UgfHRoaXN8IGlzIGlu
CiAgICAgICAgICAgICAvLyBhbiBlZGl0YWJsZSBibG9jayBidXQgc3Vycm91bmRlZCBieSBub24t
ZWRpdGFibGUgcG9zaXRpb25zLiBJdCBhY3RzIHRvIG5lZ2F0ZSB0aGUgbG9naWMgYXQgdGhlIGJl
Z2lubmluZwogICAgICAgICAgICAgLy8gb2YgUmVuZGVyT2JqZWN0OjpjcmVhdGVWaXNpYmxlUG9z
aXRpb24oKS4KQEAgLTEzMzMsNyArMTMzMyw3IEBAIFRleHREaXJlY3Rpb24gUG9zaXRpb246OnBy
aW1hcnlEaXJlY3Rpb24KIHsKICAgICBUZXh0RGlyZWN0aW9uIHByaW1hcnlEaXJlY3Rpb24gPSBM
VFI7CiAgICAgZm9yIChjb25zdCBSZW5kZXJPYmplY3QqIHIgPSBtX2FuY2hvck5vZGUtPnJlbmRl
cmVyKCk7IHI7IHIgPSByLT5wYXJlbnQoKSkgewotICAgICAgICBpZiAoci0+aXNCbG9ja0Zsb3dG
bGV4Qm94T3JHcmlkKCkpIHsKKyAgICAgICAgaWYgKHItPmlzUmVuZGVyQmxvY2tGbG93KCkpIHsK
ICAgICAgICAgICAgIHByaW1hcnlEaXJlY3Rpb24gPSByLT5zdHlsZSgpLT5kaXJlY3Rpb24oKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
UG9zaXRpb25JdGVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1Bv
c2l0aW9uSXRlcmF0b3IuY3BwCShyZXZpc2lvbiAxNTUyMTMpCisrKyBTb3VyY2UvV2ViQ29yZS9k
b20vUG9zaXRpb25JdGVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OSw3ICsxNTksNyBA
QCBib29sIFBvc2l0aW9uSXRlcmF0b3I6OmlzQ2FuZGlkYXRlKCkgY29uCiAgICAgaWYgKGlzVGFi
bGVFbGVtZW50KG1fYW5jaG9yTm9kZSkgfHwgZWRpdGluZ0lnbm9yZXNDb250ZW50KG1fYW5jaG9y
Tm9kZSkpCiAgICAgICAgIHJldHVybiAoYXRTdGFydE9mTm9kZSgpIHx8IGF0RW5kT2ZOb2RlKCkp
ICYmICFQb3NpdGlvbjo6bm9kZUlzVXNlclNlbGVjdE5vbmUobV9hbmNob3JOb2RlLT5wYXJlbnRO
b2RlKCkpOwogCi0gICAgaWYgKCFtX2FuY2hvck5vZGUtPmhhc1RhZ05hbWUoaHRtbFRhZykgJiYg
cmVuZGVyZXItPmlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgpKSB7CisgICAgaWYgKCFtX2FuY2hv
ck5vZGUtPmhhc1RhZ05hbWUoaHRtbFRhZykgJiYgcmVuZGVyZXItPmlzUmVuZGVyQmxvY2tGbG93
KCkpIHsKICAgICAgICAgaWYgKHRvUmVuZGVyQmxvY2socmVuZGVyZXIpLT5sb2dpY2FsSGVpZ2h0
KCkgfHwgbV9hbmNob3JOb2RlLT5oYXNUYWdOYW1lKGJvZHlUYWcpKSB7CiAgICAgICAgICAgICBp
ZiAoIVBvc2l0aW9uOjpoYXNSZW5kZXJlZE5vbkFub255bW91c0Rlc2NlbmRhbnRzV2l0aEhlaWdo
dChyZW5kZXJlcikpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGF0U3RhcnRPZk5vZGUoKSAmJiAh
UG9zaXRpb246Om5vZGVJc1VzZXJTZWxlY3ROb25lKG1fYW5jaG9yTm9kZSk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAkocmV2aXNp
b24gMTU1MjEzKQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFu
ZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg3NCw3ICs4NzQsNyBAQCBQYXNzUmVmUHRyPE5vZGU+
IENvbXBvc2l0ZUVkaXRDb21tYW5kOjphCiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25v
cmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBj
b250YWluZXItPnJlbmRlcmVyKCk7Ci0gICAgaWYgKCFyZW5kZXJlciB8fCAhcmVuZGVyZXItPmlz
QmxvY2tGbG93RmxleEJveE9yR3JpZCgpKQorICAgIGlmICghcmVuZGVyZXIgfHwgIXJlbmRlcmVy
LT5pc1JlbmRlckJsb2NrRmxvdygpKQogICAgICAgICByZXR1cm4gMDsKICAgICAKICAgICAvLyBh
cHBlbmQgdGhlIHBsYWNlaG9sZGVyIHRvIG1ha2Ugc3VyZSBpdCBmb2xsb3dzCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuY3BwCShyZXZpc2lvbiAxNTUyMTMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MjksNyArMTQyOSw3IEBA
IFdyaXRpbmdEaXJlY3Rpb24gRWRpdG9yOjpiYXNlV3JpdGluZ0RpcmUKICAgICBpZiAoIXJlbmRl
cmVyKQogICAgICAgICByZXR1cm4gcmVzdWx0OwogCi0gICAgaWYgKCFyZW5kZXJlci0+aXNCbG9j
a0Zsb3dGbGV4Qm94T3JHcmlkKCkpIHsKKyAgICBpZiAoIXJlbmRlcmVyLT5pc1JlbmRlckJsb2Nr
RmxvdygpKSB7CiAgICAgICAgIHJlbmRlcmVyID0gcmVuZGVyZXItPmNvbnRhaW5pbmdCbG9jaygp
OwogICAgICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCShyZXZpc2lvbiAx
NTUyMTMpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTI3MSw3ICsxMjcxLDcgQEAgc3RhdGljIFJlbmRlck9iamVjdCogY2Fy
ZXRSZW5kZXJlcihOb2RlKgogICAgICAgICByZXR1cm4gMDsKIAogICAgIC8vIGlmIGNhcmV0Tm9k
ZSBpcyBhIGJsb2NrIGFuZCBjYXJldCBpcyBpbnNpZGUgaXQgdGhlbiBjYXJldCBzaG91bGQgYmUg
cGFpbnRlZCBieSB0aGF0IGJsb2NrCi0gICAgYm9vbCBwYWludGVkQnlCbG9jayA9IHJlbmRlcmVy
LT5pc0Jsb2NrRmxvd0ZsZXhCb3hPckdyaWQoKSAmJiBjYXJldFJlbmRlcnNJbnNpZGVOb2RlKG5v
ZGUpOworICAgIGJvb2wgcGFpbnRlZEJ5QmxvY2sgPSByZW5kZXJlci0+aXNSZW5kZXJCbG9ja0Zs
b3coKSAmJiBjYXJldFJlbmRlcnNJbnNpZGVOb2RlKG5vZGUpOwogICAgIHJldHVybiBwYWludGVk
QnlCbG9jayA/IHJlbmRlcmVyIDogcmVuZGVyZXItPmNvbnRhaW5pbmdCbG9jaygpOwogfQogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCShyZXZpc2lvbiAxNTUy
MTMpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTkxOCw3ICs5MTgsNyBAQCBib29sIFRleHRJdGVyYXRvcjo6c2hvdWxkUmVwcmVz
ZW50Tm9kZU9mCiAgICAgLy8gQWRkaXRpb25hbGx5LCBpZiB0aGUgcmFuZ2Ugd2UgYXJlIGl0ZXJh
dGluZyBvdmVyIGNvbnRhaW5zIGh1Z2Ugc2VjdGlvbnMgb2YgdW5yZW5kZXJlZCBjb250ZW50LCAK
ICAgICAvLyB3ZSB3b3VsZCBjcmVhdGUgVmlzaWJsZVBvc2l0aW9ucyBvbiBldmVyeSBjYWxsIHRv
IHRoaXMgZnVuY3Rpb24gd2l0aG91dCB0aGlzIGNoZWNrLgogICAgIGlmICghbV9ub2RlLT5yZW5k
ZXJlcigpIHx8IG1fbm9kZS0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9IFZJ
U0lCTEUKLSAgICAgICAgfHwgKG1fbm9kZS0+cmVuZGVyZXIoKS0+aXNCbG9ja0Zsb3dGbGV4Qm94
T3JHcmlkKCkgJiYgIXRvUmVuZGVyQmxvY2sobV9ub2RlLT5yZW5kZXJlcigpKS0+aGVpZ2h0KCkg
JiYgIW1fbm9kZS0+aGFzVGFnTmFtZShib2R5VGFnKSkpCisgICAgICAgIHx8IChtX25vZGUtPnJl
bmRlcmVyKCktPmlzUmVuZGVyQmxvY2tGbG93KCkgJiYgIXRvUmVuZGVyQmxvY2sobV9ub2RlLT5y
ZW5kZXJlcigpKS0+aGVpZ2h0KCkgJiYgIW1fbm9kZS0+aGFzVGFnTmFtZShib2R5VGFnKSkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIFRoZSBzdGFydFBvcy5pc05vdE51bGwoKSBj
aGVjayBpcyBuZWVkZWQgYmVjYXVzZSB0aGUgc3RhcnQgY291bGQgYmUgYmVmb3JlIHRoZSBib2R5
LApJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCShyZXZpc2lv
biAxNTUyMTMpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00MDQsNyArNDA0LDcgQEAgYm9vbCBUeXBpbmdDb21tYW5kOjptYWtl
RWRpdGFibGVSb290RW1wdAogCiAgICAgaWYgKHJvb3QtPmZpcnN0Q2hpbGQoKSA9PSByb290LT5s
YXN0Q2hpbGQoKSAmJiByb290LT5maXJzdEVsZW1lbnRDaGlsZCgpICYmIHJvb3QtPmZpcnN0RWxl
bWVudENoaWxkKCktPmhhc1RhZ05hbWUoYnJUYWcpKSB7CiAgICAgICAgIC8vIElmIHRoZXJlIGlz
IGEgc2luZ2xlIGNoaWxkIGFuZCBpdCBjb3VsZCBiZSBhIHBsYWNlaG9sZGVyLCBsZWF2ZSBpdCBh
bG9uZS4KLSAgICAgICAgaWYgKHJvb3QtPnJlbmRlcmVyKCkgJiYgcm9vdC0+cmVuZGVyZXIoKS0+
aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCkpCisgICAgICAgIGlmIChyb290LT5yZW5kZXJlcigp
ICYmIHJvb3QtPnJlbmRlcmVyKCktPmlzUmVuZGVyQmxvY2tGbG93KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxl
ZGl0aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0
aW5nLmNwcAkocmV2aXNpb24gMTU1MjEzKQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1s
ZWRpdGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOTAsNyArMTI5MCw3IEBAIGJvb2wgaXNC
bG9ja0Zsb3dFbGVtZW50KGNvbnN0IE5vZGUqIG5vZGUKICAgICBpZiAoIW5vZGUtPmlzRWxlbWVu
dE5vZGUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIFJlbmRlck9iamVjdCogcmVuZGVy
ZXIgPSBub2RlLT5yZW5kZXJlcigpOwotICAgIHJldHVybiByZW5kZXJlciAmJiByZW5kZXJlci0+
aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCk7CisgICAgcmV0dXJuIHJlbmRlcmVyICYmIHJlbmRl
cmVyLT5pc1JlbmRlckJsb2NrRmxvdygpOwogfQogCiBFbGVtZW50KiBkZXByZWNhdGVkRW5jbG9z
aW5nQmxvY2tGbG93RWxlbWVudChOb2RlKiBub2RlKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0xheW91dFN0YXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvTGF5b3V0U3RhdGUuY3BwCShyZXZpc2lvbiAxNTUyMTMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEsNyArMTMx
LDcgQEAgTGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKExheW91dFN0YXRlKiBwcgogICAgICAgICBj
b21wdXRlTGluZUdyaWRQYWdpbmF0aW9uT3JpZ2luKHJlbmRlcmVyKTsKIAogICAgIC8vIElmIHdl
IGhhdmUgYSBuZXcgZ3JpZCB0byB0cmFjaywgdGhlbiBhZGQgaXQgdG8gb3VyIHNldC4KLSAgICBp
ZiAocmVuZGVyZXItPnN0eWxlKCktPmxpbmVHcmlkKCkgIT0gUmVuZGVyU3R5bGU6OmluaXRpYWxM
aW5lR3JpZCgpICYmIHJlbmRlcmVyLT5pc0Jsb2NrRmxvd0ZsZXhCb3hPckdyaWQoKSkKKyAgICBp
ZiAocmVuZGVyZXItPnN0eWxlKCktPmxpbmVHcmlkKCkgIT0gUmVuZGVyU3R5bGU6OmluaXRpYWxM
aW5lR3JpZCgpICYmIHJlbmRlcmVyLT5pc1JlbmRlckJsb2NrRmxvdygpKQogICAgICAgICBlc3Rh
Ymxpc2hMaW5lR3JpZCh0b1JlbmRlckJsb2NrKHJlbmRlcmVyKSk7CiAKICAgICAvLyBGSVhNRTog
PGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDQzPiBBcHBseSBjb250
cm9sIGNsaXAgaWYgcHJlc2VudC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcAkocmV2aXNpb24gMTU1MjEzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTcyMCw3ICsxNzIwLDcgQEAgdm9p
ZCBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2soYm9vbCByZWxheQogICAgICAgICBpZiAob2xkSGVp
Z2h0ID4gbmV3SGVpZ2h0ICYmIG1heEZsb2F0TG9naWNhbEJvdHRvbSA+IG5ld0hlaWdodCAmJiAh
Y2hpbGRyZW5JbmxpbmUoKSkgewogICAgICAgICAgICAgLy8gT25lIG9mIG91ciBjaGlsZHJlbidz
IGZsb2F0cyBtYXkgaGF2ZSBiZWNvbWUgYW4gb3ZlcmhhbmdpbmcgZmxvYXQgZm9yIHVzLiBXZSBu
ZWVkIHRvIGxvb2sgZm9yIGl0LgogICAgICAgICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGNoaWxk
ID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewot
ICAgICAgICAgICAgICAgIGlmIChjaGlsZC0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCkgJiYg
IWNoaWxkLT5pc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoY2hpbGQtPmlzUmVuZGVyQmxvY2tGbG93KCkgJiYgIWNoaWxkLT5pc0Zsb2F0aW5n
T3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkpIHsKICAgICAgICAgICAgICAgICAgICAgUmVuZGVyQmxv
Y2sqIGJsb2NrID0gdG9SZW5kZXJCbG9jayhjaGlsZCk7CiAgICAgICAgICAgICAgICAgICAgIGlm
IChibG9jay0+bG93ZXN0RmxvYXRMb2dpY2FsQm90dG9tKCkgKyBibG9jay0+bG9naWNhbFRvcCgp
ID4gbmV3SGVpZ2h0KQogICAgICAgICAgICAgICAgICAgICAgICAgYWRkT3ZlcmhhbmdpbmdGbG9h
dHMoYmxvY2ssIGZhbHNlKTsKQEAgLTIyNTgsNyArMjI1OCw3IEBAIExheW91dFVuaXQgUmVuZGVy
QmxvY2s6OmNvbGxhcHNlTWFyZ2lucygKICAgICBMYXlvdXRVbml0IG9sZExvZ2ljYWxIZWlnaHQg
PSBsb2dpY2FsSGVpZ2h0KCk7CiAgICAgc2V0TG9naWNhbEhlaWdodChsb2dpY2FsVG9wKTsKICAg
ICBSZW5kZXJPYmplY3QqIHByZXYgPSBjaGlsZC0+cHJldmlvdXNTaWJsaW5nKCk7Ci0gICAgaWYg
KHByZXYgJiYgcHJldi0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCkgJiYgIXByZXYtPmlzRmxv
YXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSkgeworICAgIGlmIChwcmV2ICYmIHByZXYtPmlz
UmVuZGVyQmxvY2tGbG93KCkgJiYgIXByZXYtPmlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9u
ZWQoKSkgewogICAgICAgICBSZW5kZXJCbG9jayogYmxvY2sgPSB0b1JlbmRlckJsb2NrKHByZXYp
OwogICAgICAgICBpZiAoYmxvY2stPmNvbnRhaW5zRmxvYXRzKCkgJiYgIWJsb2NrLT5hdm9pZHNG
bG9hdHMoKSAmJiAoYmxvY2stPmxvZ2ljYWxUb3AoKSArIGJsb2NrLT5sb3dlc3RGbG9hdExvZ2lj
YWxCb3R0b20oKSkgPiBsb2dpY2FsVG9wKSAKICAgICAgICAgICAgIGFkZE92ZXJoYW5naW5nRmxv
YXRzKGJsb2NrLCBmYWxzZSk7CkBAIC0zNjgzLDcgKzM2ODMsNyBAQCBHYXBSZWN0cyBSZW5kZXJC
bG9jazo6c2VsZWN0aW9uR2FwcyhSZW5kCiAgICAgLy8gRklYTUU6IG92ZXJmbG93OiBhdXRvL3Nj
cm9sbCByZWdpb25zIG5lZWQgbW9yZSBtYXRoIGhlcmUsIHNpbmNlIHBhaW50aW5nIGluIHRoZSBi
b3JkZXIgYm94IGlzIGRpZmZlcmVudCBmcm9tIHBhaW50aW5nIGluIHRoZSBwYWRkaW5nIGJveCAo
b25lIGlzIHNjcm9sbGVkLCB0aGUgb3RoZXIgaXMKICAgICAvLyBmaXhlZCkuCiAgICAgR2FwUmVj
dHMgcmVzdWx0OwotICAgIGlmICghaXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCkpIC8vIEZJWE1F
OiBNYWtlIG11bHRpLWNvbHVtbiBzZWxlY3Rpb24gZ2FwIGZpbGxpbmcgd29yayBzb21lZGF5Lgor
ICAgIGlmICghaXNSZW5kZXJCbG9ja0Zsb3coKSkgLy8gRklYTUU6IE1ha2UgbXVsdGktY29sdW1u
IHNlbGVjdGlvbiBnYXAgZmlsbGluZyB3b3JrIHNvbWVkYXkuCiAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAKICAgICBpZiAoaGFzQ29sdW1ucygpIHx8IGhhc1RyYW5zZm9ybSgpIHx8IHN0eWxlKCkt
PmNvbHVtblNwYW4oKSkgewpAQCAtNjc2Miw3ICs2NzYyLDcgQEAgaW50IFJlbmRlckJsb2NrOjpi
YXNlbGluZVBvc2l0aW9uKEZvbnRCYQogCiBpbnQgUmVuZGVyQmxvY2s6OmZpcnN0TGluZUJveEJh
c2VsaW5lKCkgY29uc3QKIHsKLSAgICBpZiAoIWlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgpIHx8
IChpc1dyaXRpbmdNb2RlUm9vdCgpICYmICFpc1J1YnlSdW4oKSkpCisgICAgaWYgKGlzV3JpdGlu
Z01vZGVSb290KCkgJiYgIWlzUnVieVJ1bigpKQogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBp
ZiAoY2hpbGRyZW5JbmxpbmUoKSkgewpAQCAtNjc5MSw3ICs2NzkxLDcgQEAgaW50IFJlbmRlckJs
b2NrOjppbmxpbmVCbG9ja0Jhc2VsaW5lKExpbgogCiBpbnQgUmVuZGVyQmxvY2s6Omxhc3RMaW5l
Qm94QmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUgbGluZURpcmVjdGlvbikgY29uc3QKIHsKLSAg
ICBpZiAoIWlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgpIHx8IChpc1dyaXRpbmdNb2RlUm9vdCgp
ICYmICFpc1J1YnlSdW4oKSkpCisgICAgaWYgKGlzV3JpdGluZ01vZGVSb290KCkgJiYgIWlzUnVi
eVJ1bigpKQogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpZiAoY2hpbGRyZW5JbmxpbmUoKSkg
ewpAQCAtNjg1Miw4ICs2ODUyLDcgQEAgUmVuZGVyQmxvY2sqIFJlbmRlckJsb2NrOjpmaXJzdExp
bmVCbG9jawogICAgICAgICAvLyBGSVhNRTogUmVtb3ZlIHdoZW4gYnV0dG9ucyBhcmUgaW1wbGVt
ZW50ZWQgd2l0aCBhbGlnbi1pdGVtcyBpbnN0ZWFkCiAgICAgICAgIC8vIG9mIGZsZXhib3guCiAg
ICAgICAgIGlmIChmaXJzdExpbmVCbG9jay0+aXNSZXBsYWNlZCgpIHx8IGZpcnN0TGluZUJsb2Nr
LT5pc0Zsb2F0aW5nKCkKLSAgICAgICAgICAgIHx8ICFwYXJlbnRCbG9jayB8fCBwYXJlbnRCbG9j
ay0+Zmlyc3RDaGlsZCgpICE9IGZpcnN0TGluZUJsb2NrIHx8ICFwYXJlbnRCbG9jay0+aXNCbG9j
a0Zsb3dGbGV4Qm94T3JHcmlkKCkKLSAgICAgICAgICAgIHx8IChwYXJlbnRCbG9jay0+aXNGbGV4
aWJsZUJveCgpICYmICFwYXJlbnRCbG9jay0+aXNSZW5kZXJCdXR0b24oKSkpCisgICAgICAgICAg
ICB8fCAhcGFyZW50QmxvY2sgfHwgcGFyZW50QmxvY2stPmZpcnN0Q2hpbGQoKSAhPSBmaXJzdExp
bmVCbG9jayB8fCAoIXBhcmVudEJsb2NrLT5pc1JlbmRlckJsb2NrRmxvdygpICYmICFwYXJlbnRC
bG9jay0+aXNSZW5kZXJCdXR0b24oKSkpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ocGFyZW50QmxvY2stPmlzUmVuZGVyQmxvY2so
KSk7CiAgICAgICAgIGZpcnN0TGluZUJsb2NrID0gdG9SZW5kZXJCbG9jayhwYXJlbnRCbG9jayk7
CkBAIC02OTExLDcgKzY5MTAsNyBAQCBzdGF0aWMgaW5saW5lIFJlbmRlck9iamVjdCogZmluZEZp
cnN0TGV0CiAKICAgICAgICAgUmVuZGVyT2JqZWN0KiBwYXJlbnRCbG9jayA9IGZpcnN0TGV0dGVy
QmxvY2stPnBhcmVudCgpOwogICAgICAgICBpZiAoZmlyc3RMZXR0ZXJCbG9jay0+aXNSZXBsYWNl
ZCgpIHx8ICFwYXJlbnRCbG9jayB8fCBwYXJlbnRCbG9jay0+Zmlyc3RDaGlsZCgpICE9IGZpcnN0
TGV0dGVyQmxvY2sgfHwgCi0gICAgICAgICAgICAhcGFyZW50QmxvY2stPmlzQmxvY2tGbG93Rmxl
eEJveE9yR3JpZCgpIHx8IChwYXJlbnRCbG9jay0+aXNGbGV4aWJsZUJveCgpICYmICFwYXJlbnRC
bG9jay0+aXNSZW5kZXJCdXR0b24oKSkpCisgICAgICAgICAgICAoIXBhcmVudEJsb2NrLT5pc1Jl
bmRlckJsb2NrRmxvdygpICYmICFwYXJlbnRCbG9jay0+aXNSZW5kZXJCdXR0b24oKSkpCiAgICAg
ICAgICAgICByZXR1cm4gMDsKICAgICAgICAgZmlyc3RMZXR0ZXJCbG9jayA9IHBhcmVudEJsb2Nr
OwogICAgIH0gCkBAIC03MDkzLDcgKzcwOTIsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjp1cGRhdGVG
aXJzdExldHRlcigpCiBzdGF0aWMgYm9vbCBzaG91bGRDaGVja0xpbmVzKFJlbmRlck9iamVjdCog
b2JqKQogewogICAgIHJldHVybiAhb2JqLT5pc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVk
KCkgJiYgIW9iai0+aXNSdW5JbigpCi0gICAgICAgICAgICAmJiBvYmotPmlzQmxvY2tGbG93Rmxl
eEJveE9yR3JpZCgpICYmIG9iai0+c3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCkKKyAgICAgICAg
ICAgICYmIG9iai0+aXNSZW5kZXJCbG9jaygpICYmIG9iai0+c3R5bGUoKS0+aGVpZ2h0KCkuaXNB
dXRvKCkKICAgICAgICAgICAgICYmICghb2JqLT5pc0RlcHJlY2F0ZWRGbGV4aWJsZUJveCgpIHx8
IG9iai0+c3R5bGUoKS0+Ym94T3JpZW50KCkgPT0gVkVSVElDQUwpOwogfQogCkBAIC03MTk4LDcg
KzcxOTcsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjphZGp1c3RGb3JCb3JkZXJGaXQoTGF5CiAgICAg
ICAgIGVsc2UgewogICAgICAgICAgICAgZm9yIChSZW5kZXJCb3gqIG9iaiA9IGZpcnN0Q2hpbGRC
b3goKTsgb2JqOyBvYmogPSBvYmotPm5leHRTaWJsaW5nQm94KCkpIHsKICAgICAgICAgICAgICAg
ICBpZiAoIW9iai0+aXNGbG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgpKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChvYmotPmlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgpICYmICFvYmot
Pmhhc092ZXJmbG93Q2xpcCgpKQorICAgICAgICAgICAgICAgICAgICBpZiAob2JqLT5pc1JlbmRl
ckJsb2NrRmxvdygpICYmICFvYmotPmhhc092ZXJmbG93Q2xpcCgpKQogICAgICAgICAgICAgICAg
ICAgICAgICAgdG9SZW5kZXJCbG9jayhvYmopLT5hZGp1c3RGb3JCb3JkZXJGaXQoeCArIG9iai0+
eCgpLCBsZWZ0LCByaWdodCk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKG9iai0+c3R5
bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEUpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIFdlIGFyZSBhIHJlcGxhY2VkIGVsZW1lbnQgb3Igc29tZSBraW5kIG9mIG5vbi1ibG9jay1m
bG93IG9iamVjdC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCShy
ZXZpc2lvbiAxNTUyMTMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjEwMyw3ICsyMTAzLDcgQEAgdm9pZCBSZW5kZXJCb3g6OmNv
bXB1dGVSZWN0Rm9yUmVwYWludChjbwogICAgICAgICB0b3BMZWZ0ICs9IGxheWVyKCktPm9mZnNl
dEZvckluRmxvd1Bvc2l0aW9uKCk7CiAgICAgfQogICAgIAotICAgIGlmIChwb3NpdGlvbiAhPSBB
YnNvbHV0ZVBvc2l0aW9uICYmIHBvc2l0aW9uICE9IEZpeGVkUG9zaXRpb24gJiYgby0+aGFzQ29s
dW1ucygpICYmIG8tPmlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgpKSB7CisgICAgaWYgKHBvc2l0
aW9uICE9IEFic29sdXRlUG9zaXRpb24gJiYgcG9zaXRpb24gIT0gRml4ZWRQb3NpdGlvbiAmJiBv
LT5oYXNDb2x1bW5zKCkgJiYgby0+aXNSZW5kZXJCbG9ja0Zsb3coKSkgewogICAgICAgICBMYXlv
dXRSZWN0IHJlcGFpbnRSZWN0KHRvcExlZnQsIHJlY3Quc2l6ZSgpKTsKICAgICAgICAgdG9SZW5k
ZXJCbG9jayhvKS0+YWRqdXN0UmVjdEZvckNvbHVtbnMocmVwYWludFJlY3QpOwogICAgICAgICB0
b3BMZWZ0ID0gcmVwYWludFJlY3QubG9jYXRpb24oKTsKQEAgLTQwOTMsNyArNDA5Myw3IEBAIFZp
c2libGVQb3NpdGlvbiBSZW5kZXJCb3g6OnBvc2l0aW9uRm9yUG8KICAgICAgICAgYWRqdXN0ZWRQ
b2ludC5tb3ZlQnkobG9jYXRpb24oKSk7CiAKICAgICBmb3IgKFJlbmRlck9iamVjdCogcmVuZGVy
T2JqZWN0ID0gZmlyc3RDaGlsZCgpOyByZW5kZXJPYmplY3Q7IHJlbmRlck9iamVjdCA9IHJlbmRl
ck9iamVjdC0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICBpZiAoKCFyZW5kZXJPYmplY3QtPmZp
cnN0Q2hpbGQoKSAmJiAhcmVuZGVyT2JqZWN0LT5pc0lubGluZSgpICYmICFyZW5kZXJPYmplY3Qt
PmlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgpICkKKyAgICAgICAgaWYgKCghcmVuZGVyT2JqZWN0
LT5maXJzdENoaWxkKCkgJiYgIXJlbmRlck9iamVjdC0+aXNJbmxpbmUoKSAmJiAhcmVuZGVyT2Jq
ZWN0LT5pc1JlbmRlckJsb2NrRmxvdygpICkKICAgICAgICAgICAgIHx8IHJlbmRlck9iamVjdC0+
c3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9IFZJU0lCTEUpCiAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxP
YmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
TW9kZWxPYmplY3QuaAkocmV2aXNpb24gMTU1MjEzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw3ICsxNzUs
NyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0aW9uU3RhdGUoU2VsZWN0
aW9uU3RhdGUgcyk7CiAKLSAgICBib29sIGNhbkhhdmVCb3hJbmZvSW5SZWdpb24oKSBjb25zdCB7
IHJldHVybiAhaXNGbG9hdGluZygpICYmICFpc1JlcGxhY2VkKCkgJiYgIWlzSW5saW5lKCkgJiYg
IWhhc0NvbHVtbnMoKSAmJiAhaXNUYWJsZUNlbGwoKSAmJiBpc0Jsb2NrRmxvd0ZsZXhCb3hPckdy
aWQoKSAmJiAhaXNSZW5kZXJTVkdCbG9jaygpOyB9CisgICAgYm9vbCBjYW5IYXZlQm94SW5mb0lu
UmVnaW9uKCkgY29uc3QgeyByZXR1cm4gIWlzRmxvYXRpbmcoKSAmJiAhaXNSZXBsYWNlZCgpICYm
ICFpc0lubGluZSgpICYmICFoYXNDb2x1bW5zKCkgJiYgIWlzVGFibGVDZWxsKCkgJiYgaXNSZW5k
ZXJCbG9jaygpICYmICFpc1JlbmRlclNWR0Jsb2NrKCk7IH0KIAogCiAgICAgdm9pZCBnZXRHZW9t
ZXRyeUZvckJhY2tncm91bmRJbWFnZShjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBwYWlu
dENvbnRhaW5lciwgSW50UmVjdCYgZGVzdFJlY3QsIEludFBvaW50JiBwaGFzZSwgSW50U2l6ZSYg
dGlsZVNpemUpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklu
bGluZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklu
bGluZS5jcHAJKHJldmlzaW9uIDE1NTIxMykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbmxpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDg3LDcgKzEwODcsNyBAQCB2b2lk
IFJlbmRlcklubGluZTo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50CiAKICAgICBMYXlvdXRQb2ludCB0
b3BMZWZ0ID0gcmVjdC5sb2NhdGlvbigpOwogCi0gICAgaWYgKG8tPmlzQmxvY2tGbG93RmxleEJv
eE9yR3JpZCgpICYmICFzdHlsZSgpLT5oYXNPdXRPZkZsb3dQb3NpdGlvbigpKSB7CisgICAgaWYg
KG8tPmlzUmVuZGVyQmxvY2tGbG93KCkgJiYgIXN0eWxlKCktPmhhc091dE9mRmxvd1Bvc2l0aW9u
KCkpIHsKICAgICAgICAgUmVuZGVyQmxvY2sqIGNiID0gdG9SZW5kZXJCbG9jayhvKTsKICAgICAg
ICAgaWYgKGNiLT5oYXNDb2x1bW5zKCkpIHsKICAgICAgICAgICAgIExheW91dFJlY3QgcmVwYWlu
dFJlY3QodG9wTGVmdCwgcmVjdC5zaXplKCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpbmVCb3hMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGluZUJveExpc3QuY3BwCShyZXZpc2lvbiAxNTUyMTMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJveExpc3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMTEsNyArMzExLDcgQEAgYm9vbCBSZW5kZXJMaW5lQm94TGlzdDo6aGl0VGVzdChSZW5k
ZXJCbwogCiB2b2lkIFJlbmRlckxpbmVCb3hMaXN0OjpkaXJ0eUxpbmVzRnJvbUNoYW5nZWRDaGls
ZChSZW5kZXJPYmplY3QqIGNvbnRhaW5lciwgUmVuZGVyT2JqZWN0KiBjaGlsZCkKIHsKLSAgICBp
ZiAoIWNvbnRhaW5lci0+cGFyZW50KCkgfHwgKGNvbnRhaW5lci0+aXNSZW5kZXJCbG9jaygpICYm
IChjb250YWluZXItPnNlbGZOZWVkc0xheW91dCgpIHx8ICFjb250YWluZXItPmlzQmxvY2tGbG93
RmxleEJveE9yR3JpZCgpKSkpCisgICAgaWYgKCFjb250YWluZXItPnBhcmVudCgpIHx8IChjb250
YWluZXItPmlzUmVuZGVyQmxvY2soKSAmJiAoY29udGFpbmVyLT5zZWxmTmVlZHNMYXlvdXQoKSB8
fCAhY29udGFpbmVyLT5pc1JlbmRlckJsb2NrRmxvdygpKSkpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIFJlbmRlcklubGluZSogaW5saW5lQ29udGFpbmVyID0gY29udGFpbmVyLT5pc1JlbmRlcklu
bGluZSgpID8gdG9SZW5kZXJJbmxpbmUoY29udGFpbmVyKSA6IDA7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gMTU1MjEzKQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE1NTcsNyArMTU1Nyw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0Ojpjb21wdXRlUmVjdEZvclJlcGFp
bnQKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKFJlbmRlck9iamVjdCogbyA9IHBhcmVudCgp
KSB7Ci0gICAgICAgIGlmIChvLT5pc0Jsb2NrRmxvd0ZsZXhCb3hPckdyaWQoKSkgeworICAgICAg
ICBpZiAoby0+aXNSZW5kZXJCbG9ja0Zsb3coKSkgewogICAgICAgICAgICAgUmVuZGVyQmxvY2sq
IGNiID0gdG9SZW5kZXJCbG9jayhvKTsKICAgICAgICAgICAgIGlmIChjYi0+aGFzQ29sdW1ucygp
KQogICAgICAgICAgICAgICAgIGNiLT5hZGp1c3RSZWN0Rm9yQ29sdW1ucyhyZWN0KTsKQEAgLTE5
NjQsNyArMTk2NCw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGUK
IAogICAgICAgICBzX2FmZmVjdHNQYXJlbnRCbG9jayA9IGlzRmxvYXRpbmdPck91dE9mRmxvd1Bv
c2l0aW9uZWQoKQogICAgICAgICAgICAgJiYgKCFuZXdTdHlsZS0+aXNGbG9hdGluZygpICYmICFu
ZXdTdHlsZS0+aGFzT3V0T2ZGbG93UG9zaXRpb24oKSkKLSAgICAgICAgICAgICYmIHBhcmVudCgp
ICYmIChwYXJlbnQoKS0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCkgfHwgcGFyZW50KCktPmlz
UmVuZGVySW5saW5lKCkpOworICAgICAgICAgICAgJiYgcGFyZW50KCkgJiYgKHBhcmVudCgpLT5p
c1JlbmRlckJsb2NrRmxvdygpIHx8IHBhcmVudCgpLT5pc1JlbmRlcklubGluZSgpKTsKIAogICAg
ICAgICBzX25vTG9uZ2VyQWZmZWN0c1BhcmVudEJsb2NrID0gKCghaXNGbG9hdGluZygpICYmIG5l
d1N0eWxlLT5pc0Zsb2F0aW5nKCkpIHx8ICghaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgbmV3
U3R5bGUtPmhhc091dE9mRmxvd1Bvc2l0aW9uKCkpKQogICAgICAgICAgICAgJiYgcGFyZW50KCkg
JiYgcGFyZW50KCktPmlzUmVuZGVyQmxvY2soKTsKQEAgLTI3OTYsNyArMjc5Niw3IEBAIHN0YXRp
YyBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBmaXJzdExpbmUKICAgICBpZiAocmVuZGVyZXItPmlz
QmVmb3JlT3JBZnRlckNvbnRlbnQoKSkKICAgICAgICAgcmVuZGVyZXJGb3JGaXJzdExpbmVTdHls
ZSA9IHJlbmRlcmVyLT5wYXJlbnQoKTsKIAotICAgIGlmIChyZW5kZXJlckZvckZpcnN0TGluZVN0
eWxlLT5pc0Jsb2NrRmxvd0ZsZXhCb3hPckdyaWQoKSkgeworICAgIGlmIChyZW5kZXJlckZvckZp
cnN0TGluZVN0eWxlLT5pc1JlbmRlckJsb2NrRmxvdygpIHx8IHJlbmRlcmVyRm9yRmlyc3RMaW5l
U3R5bGUtPmlzUmVuZGVyQnV0dG9uKCkpIHsKICAgICAgICAgaWYgKFJlbmRlckJsb2NrKiBmaXJz
dExpbmVCbG9jayA9IHJlbmRlcmVyRm9yRmlyc3RMaW5lU3R5bGUtPmZpcnN0TGluZUJsb2NrKCkp
IHsKICAgICAgICAgICAgIGlmICh0eXBlID09IENhY2hlZCkKICAgICAgICAgICAgICAgICByZXR1
cm4gZmlyc3RMaW5lQmxvY2stPmdldENhY2hlZFBzZXVkb1N0eWxlKEZJUlNUX0xJTkUsIHN0eWxl
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHJldmlzaW9u
IDE1NTIxMykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAkod29y
a2luZyBjb3B5KQpAQCAtNDA2LDEyICs0MDYsNiBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzVGFi
bGVQYXJ0KCkgY29uc3QgeyByZXR1cm4gaXNUYWJsZUNlbGwoKSB8fCBpc1JlbmRlclRhYmxlQ29s
KCkgfHwgaXNUYWJsZUNhcHRpb24oKSB8fCBpc1RhYmxlUm93KCkgfHwgaXNUYWJsZVNlY3Rpb24o
KTsgfQogCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgdGhlIHJlbmFtZWQgdmVyc2lvbiBvZiBpc0Js
b2NrRmxvdygpIGFuZCBpdCBtYWtlcyBpdCBtb3JlIG9idmlvdXMgdGhhdCBmbGV4aWJsZSBib3hl
cyBhbmQgZ3JpZHMgYXJlIGJlaW5nIGluY2x1ZGVkLiBNb3N0Ci0gICAgLy8gb2YgdGhlIGN1cnJl
bnQgY2FsbGVycyBkaWQgbm90IGluIGZhY3QgaW50ZW5kIHRvIGluY2x1ZGUgZmxleGlibGUgYm94
ZXMgYW5kIGdyaWRzIChidXQgaGF2ZSBiZWVuIGZvciB5ZWFycyksIHNvIHdlIHdpbGwgd2FudCB0
bwotICAgIC8vIGNvbnZlcnQgdGhvc2UgY2FsbGVycyBvdmVyIHRvIGlzUmVuZGVyQmxvY2tGbG93
KCkgaW5zdGVhZC4gV2UnbGwgZG8gdGhpcyBjYWxsIHNpdGUgYnkgY2FsbCBzaXRlIGluIG9yZGVy
IHRvIHRyeSB0byBmaW5kIHRoZQotICAgIC8vIGNvZGUgdGhhdCBpcyBtYWtpbmcgYmFkIGFzc3Vt
cHRpb25zIGFuZCBjaGFuZ2UgaXQuIE9uY2UgdGhhdCdzIGZpbmlzaGVkLCB0aGlzIG1ldGhvZCB3
aWxsIGp1c3QgZ28gYXdheS4KLSAgICBib29sIGlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgpIGNv
bnN0IHsgcmV0dXJuIGlzUmVuZGVyQmxvY2tGbG93KCkgfHwgaXNGbGV4aWJsZUJveEluY2x1ZGlu
Z0RlcHJlY2F0ZWQoKSB8fCBpc1JlbmRlckdyaWQoKTsgfQotCiAgICAgaW5saW5lIGJvb2wgaXNC
ZWZvcmVDb250ZW50KCkgY29uc3Q7CiAgICAgaW5saW5lIGJvb2wgaXNBZnRlckNvbnRlbnQoKSBj
b25zdDsKICAgICBpbmxpbmUgYm9vbCBpc0JlZm9yZU9yQWZ0ZXJDb250ZW50KCkgY29uc3Q7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRM
aXN0LmNwcAkocmV2aXNpb24gMTU1MjEzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdENoaWxkTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOCw3ICsxMTgsNyBA
QCBSZW5kZXJPYmplY3QqIFJlbmRlck9iamVjdENoaWxkTGlzdDo6cmVtCiB2b2lkIFJlbmRlck9i
amVjdENoaWxkTGlzdDo6aW5zZXJ0Q2hpbGROb2RlKFJlbmRlck9iamVjdCogb3duZXIsIFJlbmRl
ck9iamVjdCogbmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQsIGJvb2wgbm90aWZ5
UmVuZGVyZXIpCiB7CiAgICAgQVNTRVJUKCFuZXdDaGlsZC0+cGFyZW50KCkpOwotICAgIEFTU0VS
VCghb3duZXItPmlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgpIHx8ICghbmV3Q2hpbGQtPmlzVGFi
bGVTZWN0aW9uKCkgJiYgIW5ld0NoaWxkLT5pc1RhYmxlUm93KCkgJiYgIW5ld0NoaWxkLT5pc1Rh
YmxlQ2VsbCgpKSk7CisgICAgQVNTRVJUKCFvd25lci0+aXNSZW5kZXJCbG9ja0Zsb3coKSB8fCAo
IW5ld0NoaWxkLT5pc1RhYmxlU2VjdGlvbigpICYmICFuZXdDaGlsZC0+aXNUYWJsZVJvdygpICYm
ICFuZXdDaGlsZC0+aXNUYWJsZUNlbGwoKSkpOwogCiAgICAgd2hpbGUgKGJlZm9yZUNoaWxkICYm
IGJlZm9yZUNoaWxkLT5wYXJlbnQoKSAmJiBiZWZvcmVDaGlsZC0+cGFyZW50KCkgIT0gb3duZXIp
CiAgICAgICAgIGJlZm9yZUNoaWxkID0gYmVmb3JlQ2hpbGQtPnBhcmVudCgpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCShyZXZpc2lvbiAxNTUyMTMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTMs
NyArMjUzLDcgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAgIC8vIFdlIHB1c2ggTGF5b3V0U3Rh
dGUgZXZlbiBpZiBsYXlvdXRTdGF0ZSBpcyBkaXNhYmxlZCBiZWNhdXNlIGl0IHN0b3JlcyBsYXlv
dXREZWx0YSB0b28uCiAgICAgICAgIGlmICghZG9pbmdGdWxsUmVwYWludCgpIHx8IG1fbGF5b3V0
U3RhdGUtPmlzUGFnaW5hdGVkKCkgfHwgcmVuZGVyZXItPmhhc0NvbHVtbnMoKSB8fCByZW5kZXJl
ci0+Zmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaygpCi0gICAgICAgICAgICB8fCBtX2xheW91dFN0
YXRlLT5saW5lR3JpZCgpIHx8IChyZW5kZXJlci0+c3R5bGUoKS0+bGluZUdyaWQoKSAhPSBSZW5k
ZXJTdHlsZTo6aW5pdGlhbExpbmVHcmlkKCkgJiYgcmVuZGVyZXItPmlzQmxvY2tGbG93RmxleEJv
eE9yR3JpZCgpKQorICAgICAgICAgICAgfHwgbV9sYXlvdXRTdGF0ZS0+bGluZUdyaWQoKSB8fCAo
cmVuZGVyZXItPnN0eWxlKCktPmxpbmVHcmlkKCkgIT0gUmVuZGVyU3R5bGU6OmluaXRpYWxMaW5l
R3JpZCgpICYmIHJlbmRlcmVyLT5pc1JlbmRlckJsb2NrRmxvdygpKQogI2lmIEVOQUJMRShDU1Nf
U0hBUEVTKQogICAgICAgICAgICAgfHwgKHJlbmRlcmVyLT5pc1JlbmRlckJsb2NrKCkgJiYgdG9S
ZW5kZXJCbG9jayhyZW5kZXJlciktPnNoYXBlSW5zaWRlSW5mbygpKQogICAgICAgICAgICAgfHwg
KG1fbGF5b3V0U3RhdGUtPnNoYXBlSW5zaWRlSW5mbygpICYmIHJlbmRlcmVyLT5pc1JlbmRlckJs
b2NrKCkgJiYgIXRvUmVuZGVyQmxvY2socmVuZGVyZXIpLT5hbGxvd3NTaGFwZUluc2lkZUluZm9T
aGFyaW5nKCkpCg==
</data>
<flag name="review"
          id="232898"
          type_id="1"
          status="+"
          setter="bdakin"
    />
          </attachment>
      

    </bug>

</bugzilla>