<?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>47493</bug_id>
          
          <creation_ts>2010-10-11 09:59:05 -0700</creation_ts>
          <short_desc>Kill Path::debugString()</short_desc>
          <delta_ts>2010-10-14 05:47:23 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>18994</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>kling</cc>
    
    <cc>mdelaney7</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>292511</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-11 09:59:05 -0700</bug_when>
    <thetext>Remove pathDebugString(), it&apos;s obsolete now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292514</commentid>
    <comment_count>1</comment_count>
      <attachid>70441</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-11 10:02:07 -0700</bug_when>
    <thetext>Created attachment 70441
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292515</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-11 10:03:16 -0700</bug_when>
    <thetext>Attachment 70441 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/svg/SVGGlyphElement.h:83:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Total errors found: 1 in 2 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>292517</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-10-11 10:03:32 -0700</bug_when>
    <thetext>*** Bug 47457 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292518</commentid>
    <comment_count>4</comment_count>
      <attachid>70441</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-10-11 10:04:14 -0700</bug_when>
    <thetext>Comment on attachment 70441
Patch

Nice, r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292522</commentid>
    <comment_count>5</comment_count>
      <attachid>70441</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-10-11 10:08:38 -0700</bug_when>
    <thetext>Comment on attachment 70441
Patch

Hold up, this will only work on Qt where platformPath() is a non-pointer!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292536</commentid>
    <comment_count>6</comment_count>
      <attachid>70448</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-11 10:24:29 -0700</bug_when>
    <thetext>Created attachment 70448
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292538</commentid>
    <comment_count>7</comment_count>
      <attachid>70448</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-10-11 10:25:23 -0700</bug_when>
    <thetext>Comment on attachment 70448
Patch v2

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292540</commentid>
    <comment_count>8</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-10-11 10:26:17 -0700</bug_when>
    <thetext>(Note: After discussion on IRC, we realized that comparing the paths in SVGGlyphIdentifier was pointless anyway.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292542</commentid>
    <comment_count>9</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-11 10:27:56 -0700</bug_when>
    <thetext>Landed in r69505.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294074</commentid>
    <comment_count>10</comment_count>
      <attachid>70448</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-10-14 05:47:23 -0700</bug_when>
    <thetext>Comment on attachment 70448
Patch v2

Removing from pending-commit since it was landed in r69505.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70441</attachid>
            <date>2010-10-11 10:02:07 -0700</date>
            <delta_ts>2010-10-11 10:24:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>KillPathDebug.diff</filename>
            <type>text/plain</type>
            <size>15409</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTUwMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMTAtMTEgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJt
YW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgS2lsbCBQYXRoOjpkZWJ1Z1N0cmluZygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzQ5MworCisgICAgICAgIFJlbW92ZSB0aGUgb2Jzb2xl
dGUgUGF0aDo6ZGVidWdTdHJpbmcoKSBtZXRob2QuIERSVCBub3cgZHVtcHMgcGF0aHMgaW4gYSBw
bGF0Zm9ybSBpbmRlcGVuZGFudCB3YXkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Q
YXRoLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2hhaWt1L1BhdGhIYWlrdS5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbnZnL1BhdGhPcGVuVkcuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3F0L1BhdGhRdC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QYXRo
U2tpYS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvUGF0aFdpbkNFLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9QbGF0Zm9ybVBhdGhXaW5DRS5j
cHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvUGxhdGZvcm1QYXRoV2luQ0Uu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93eC9QYXRoV3guY3BwOgorICAgICAgICAq
IHN2Zy9TVkdHbHlwaEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0dseXBoSWRlbnRp
Zmllcjo6b3BlcmF0b3I9PSk6CisKIDIwMTAtMTAtMTEgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2Jp
bnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oCShyZXZpc2lvbiA2OTQ2NCkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUGF0aC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDAsOCArMTQwLDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQgdHJhbnNsYXRlKGNvbnN0IEZsb2F0
U2l6ZSYpOwogCi0gICAgICAgIFN0cmluZyBkZWJ1Z1N0cmluZygpIGNvbnN0OwotCiAgICAgICAg
IFBsYXRmb3JtUGF0aFB0ciBwbGF0Zm9ybVBhdGgoKSBjb25zdCB7IHJldHVybiBtX3BhdGg7IH0K
IAogICAgICAgICBzdGF0aWMgUGF0aCBjcmVhdGVSb3VuZGVkUmVjdGFuZ2xlKGNvbnN0IEZsb2F0
UmVjdCYsIGNvbnN0IEZsb2F0U2l6ZSYgcm91bmRpbmdSYWRpaSk7CkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwCShyZXZpc2lvbiA2OTQ2NCkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzM3LDQwICszMzcsNCBAQCB2b2lkIFBhdGg6OnRyYW5zZm9ybShjb25zdCBB
ZmZpbmVUcmFuc2ZvCiAgICAgY2Fpcm9fdHJhbnNmb3JtKGNyLCAmY19tYXRyaXgpOwogfQogCi1T
dHJpbmcgUGF0aDo6ZGVidWdTdHJpbmcoKSBjb25zdAotewotICAgIGlmIChpc0VtcHR5KCkpCi0g
ICAgICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAgIFN0cmluZyBwYXRoU3RyaW5nOwotICAgIE93
blB0cjxjYWlyb19wYXRoX3Q+IHBhdGgoY2Fpcm9fY29weV9wYXRoKHBsYXRmb3JtUGF0aCgpLT5j
b250ZXh0KCkpKTsKLSAgICBjYWlyb19wYXRoX2RhdGFfdCogZGF0YTsKLQotICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgcGF0aC0+bnVtX2RhdGE7IGkgKz0gcGF0aC0+ZGF0YVtpXS5oZWFkZXIubGVu
Z3RoKSB7Ci0gICAgICAgIGRhdGEgPSAmcGF0aC0+ZGF0YVtpXTsKLSAgICAgICAgc3dpdGNoIChk
YXRhLT5oZWFkZXIudHlwZSkgewotICAgICAgICBjYXNlIENBSVJPX1BBVEhfTU9WRV9UTzoKLSAg
ICAgICAgICAgIGlmIChpIDwgKHBhdGgtPm51bV9kYXRhIC0gcGF0aC0+ZGF0YVtpXS5oZWFkZXIu
bGVuZ3RoKSkKLSAgICAgICAgICAgICAgICBwYXRoU3RyaW5nICs9IFN0cmluZzo6Zm9ybWF0KCJN
JS4yZiwlLjJmICIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFb
MV0ucG9pbnQueCwgZGF0YVsxXS5wb2ludC55KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIENBSVJPX1BBVEhfTElORV9UTzoKLSAgICAgICAgICAgIHBhdGhTdHJpbmcgKz0gU3Ry
aW5nOjpmb3JtYXQoIkwlLjJmLCUuMmYgIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGF0YVsxXS5wb2ludC54LCBkYXRhWzFdLnBvaW50LnkpOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQ0FJUk9fUEFUSF9DVVJWRV9UTzoKLSAgICAgICAgICAgIHBh
dGhTdHJpbmcgKz0gU3RyaW5nOjpmb3JtYXQoIkMlLjJmLCUuMmYsJS4yZiwlLjJmLCUuMmYsJS4y
ZiAiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWzFdLnBvaW50
LngsIGRhdGFbMV0ucG9pbnQueSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGF0YVsyXS5wb2ludC54LCBkYXRhWzJdLnBvaW50LnksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRhdGFbM10ucG9pbnQueCwgZGF0YVszXS5wb2ludC55KTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENBSVJPX1BBVEhfQ0xPU0VfUEFUSDoKLSAg
ICAgICAgICAgIHBhdGhTdHJpbmcgKz0gIlogIjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIHBhdGhTdHJpbmcuc2ltcGxpZnlXaGl0ZVNwYWNlKCk7
Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvUGF0aENHLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL1BhdGhDRy5jcHAJKHJldmlzaW9uIDY5NDY0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9QYXRoQ0cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTQsNjEgKzI1NCw5IEBA
IEZsb2F0UG9pbnQgUGF0aDo6Y3VycmVudFBvaW50KCkgY29uc3QgCiAgICAgcmV0dXJuIENHUGF0
aEdldEN1cnJlbnRQb2ludChtX3BhdGgpOwogfQogCi1zdGF0aWMgdm9pZCBDR1BhdGhUb0NGU3Ry
aW5nQXBwbGllckZ1bmN0aW9uKHZvaWQqIGluZm8sIGNvbnN0IENHUGF0aEVsZW1lbnQgKmVsZW1l
bnQpCi17Ci0gICAgQ0ZNdXRhYmxlU3RyaW5nUmVmIHN0cmluZyA9IHN0YXRpY19jYXN0PENGTXV0
YWJsZVN0cmluZ1JlZj4oaW5mbyk7Ci0KLSAgICBDR1BvaW50KiBwb2ludHMgPSBlbGVtZW50LT5w
b2ludHM7Ci0gICAgc3dpdGNoIChlbGVtZW50LT50eXBlKSB7Ci0gICAgY2FzZSBrQ0dQYXRoRWxl
bWVudE1vdmVUb1BvaW50OgotICAgICAgICBDRlN0cmluZ0FwcGVuZEZvcm1hdChzdHJpbmcsIDAs
IENGU1RSKCJNJS4yZiwlLjJmICIpLCBwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIGtDR1BhdGhFbGVtZW50QWRkTGluZVRvUG9pbnQ6Ci0gICAgICAg
IENGU3RyaW5nQXBwZW5kRm9ybWF0KHN0cmluZywgMCwgQ0ZTVFIoIkwlLjJmLCUuMmYgIiksIHBv
aW50c1swXS54LCBwb2ludHNbMF0ueSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Uga0NHUGF0
aEVsZW1lbnRBZGRRdWFkQ3VydmVUb1BvaW50OgotICAgICAgICBDRlN0cmluZ0FwcGVuZEZvcm1h
dChzdHJpbmcsIDAsIENGU1RSKCJRJS4yZiwlLjJmLCUuMmYsJS4yZiAiKSwKLSAgICAgICAgICAg
ICAgICBwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnksIHBvaW50c1sxXS54LCBwb2ludHNbMV0ueSk7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Uga0NHUGF0aEVsZW1lbnRBZGRDdXJ2ZVRvUG9pbnQ6
Ci0gICAgICAgIENGU3RyaW5nQXBwZW5kRm9ybWF0KHN0cmluZywgMCwgQ0ZTVFIoIkMlLjJmLCUu
MmYsJS4yZiwlLjJmLCUuMmYsJS4yZiAiKSwKLSAgICAgICAgICAgICAgICBwb2ludHNbMF0ueCwg
cG9pbnRzWzBdLnksIHBvaW50c1sxXS54LCBwb2ludHNbMV0ueSwKLSAgICAgICAgICAgICAgICBw
b2ludHNbMl0ueCwgcG9pbnRzWzJdLnkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIGtDR1Bh
dGhFbGVtZW50Q2xvc2VTdWJwYXRoOgotICAgICAgICBDRlN0cmluZ0FwcGVuZEZvcm1hdChzdHJp
bmcsIDAsIENGU1RSKCJaICIpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi1zdGF0aWMg
Q0ZTdHJpbmdSZWYgQ0ZTdHJpbmdGcm9tQ0dQYXRoKENHUGF0aFJlZiBwYXRoKQotewotICAgIGlm
ICghcGF0aCkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBDRk11dGFibGVTdHJpbmdSZWYgc3Ry
aW5nID0gQ0ZTdHJpbmdDcmVhdGVNdXRhYmxlKE5VTEwsIDApOwotICAgIENHUGF0aEFwcGx5KHBh
dGgsIHN0cmluZywgQ0dQYXRoVG9DRlN0cmluZ0FwcGxpZXJGdW5jdGlvbik7Ci0gICAgQ0ZTdHJp
bmdUcmltV2hpdGVzcGFjZShzdHJpbmcpOwotCi0KLSAgICByZXR1cm4gc3RyaW5nOwotfQotCi0K
ICNwcmFnbWEgbWFyayAtCiAjcHJhZ21hIG1hcmsgUGF0aCBNYW5hZ2VtZW50CiAKLVN0cmluZyBQ
YXRoOjpkZWJ1Z1N0cmluZygpIGNvbnN0Ci17Ci0gICAgU3RyaW5nIHJlc3VsdDsKLSAgICBpZiAo
IWlzRW1wdHkoKSkgewotICAgICAgICBDRlN0cmluZ1JlZiBwYXRoU3RyaW5nID0gQ0ZTdHJpbmdG
cm9tQ0dQYXRoKG1fcGF0aCk7Ci0gICAgICAgIHJlc3VsdCA9IFN0cmluZyhwYXRoU3RyaW5nKTsK
LSAgICAgICAgQ0ZSZWxlYXNlKHBhdGhTdHJpbmcpOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0
OwotfQotCiBzdHJ1Y3QgUGF0aEFwcGxpZXJJbmZvIHsKICAgICB2b2lkKiBpbmZvOwogICAgIFBh
dGhBcHBsaWVyRnVuY3Rpb24gZnVuY3Rpb247CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2hhaWt1L1BhdGhIYWlrdS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9oYWlrdS9QYXRoSGFpa3UuY3BwCShyZXZpc2lvbiA2OTQ2NCkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvUGF0aEhhaWt1LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTQ0LDEyICsxNDQsNiBAQCBib29sIFBhdGg6OmlzRW1wdHkoKSBjb25zdAogICAgIHJldHVybiAh
bV9wYXRoLT5GcmFtZSgpLklzVmFsaWQoKTsKIH0KIAotU3RyaW5nIFBhdGg6OmRlYnVnU3RyaW5n
KCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsK
LX0KLQogdm9pZCBQYXRoOjphcHBseSh2b2lkKiBpbmZvLCBQYXRoQXBwbGllckZ1bmN0aW9uIGZ1
bmN0aW9uKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW52Zy9QYXRoT3BlblZHLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52Zy9QYXRoT3BlblZHLmNwcAkocmV2aXNpb24gNjk0
NjQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52Zy9QYXRoT3BlblZHLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDM2LDE4ICs0MzYsNiBAQCBib29sIFBhdGg6Omhhc0N1cnJlbnRQ
b2ludCgpIGNvbnN0CiAgICAgcmV0dXJuIHZnR2V0UGFyYW1ldGVyaShtX3BhdGgtPnZnUGF0aCgp
LCBWR19QQVRIX05VTV9TRUdNRU5UUykgPiAwOwogfQogCi1TdHJpbmcgUGF0aDo6ZGVidWdTdHJp
bmcoKSBjb25zdAotewotICAgIFN0cmluZyBkZWJ1Z1N0cmluZyA9ICIiOwotCi0gICAgLy8gT3Bl
blZHIHByb3ZpZGVzIG5vIG1lYW5zIHRvIHJldHJpZXZlIHBhdGggc2VnbWVudCBpbmZvcm1hdGlv
bi4KLSAgICAvLyBUaGlzIGlzIGEgYml0IHVuZm9ydHVuYXRlLCB3ZSBtaWdodCBuZWVkIHRvIHN0
b3JlIHRoZSBzZWdtZW50cyBpbgotICAgIC8vIG1lbW9yeSBpZiB3ZSB3YW50IHRvIGltcGxlbWVu
dCB0aGlzIGZ1bmN0aW9uIHByb3Blcmx5LgotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0KLSAgICBy
ZXR1cm4gZGVidWdTdHJpbmc7Ci19Ci0KIHZvaWQgUGF0aDo6YXBwbHkodm9pZCogaW5mbywgUGF0
aEFwcGxpZXJGdW5jdGlvbiBmdW5jdGlvbikgY29uc3QKIHsKICAgICAvLyBPcGVuVkcgcHJvdmlk
ZXMgbm8gbWVhbnMgdG8gcmV0cmlldmUgcGF0aCBzZWdtZW50IGluZm9ybWF0aW9uLgpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9QYXRoUXQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvUGF0aFF0LmNwcAkocmV2aXNpb24gNjk0NjQpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdGhRdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM1Nyw0MSArMzU3LDYgQEAgRmxvYXRQb2ludCBQYXRoOjpjdXJyZW50UG9pbnQoKSBjb25z
dCAKICAgICByZXR1cm4gbV9wYXRoLmN1cnJlbnRQb3NpdGlvbigpOwogfQogCi1TdHJpbmcgUGF0
aDo6ZGVidWdTdHJpbmcoKSBjb25zdAotewotICAgIFFTdHJpbmcgcmV0OwotICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgbV9wYXRoLmVsZW1lbnRDb3VudCgpOyArK2kpIHsKLSAgICAgICAgY29uc3Qg
UVBhaW50ZXJQYXRoOjpFbGVtZW50ICZjdXIgPSBtX3BhdGguZWxlbWVudEF0KGkpOwotCi0gICAg
ICAgIHN3aXRjaCAoY3VyLnR5cGUpIHsKLSAgICAgICAgICAgIGNhc2UgUVBhaW50ZXJQYXRoOjpN
b3ZlVG9FbGVtZW50OgotICAgICAgICAgICAgICAgIHJldCArPSBRU3RyaW5nKFFMYXRpbjFTdHJp
bmcoIk0lMSwlMiAiKSkuYXJnKGN1ci54LCAwLCAnZicsIDIpLmFyZyhjdXIueSwgMCwgJ2YnLCAy
KTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgUVBhaW50ZXJQYXRo
OjpMaW5lVG9FbGVtZW50OgotICAgICAgICAgICAgICAgIHJldCArPSBRU3RyaW5nKFFMYXRpbjFT
dHJpbmcoIkwlMSwlMiAiKSkuYXJnKGN1ci54LCAwLCAnZicsIDIpLmFyZyhjdXIueSwgMCwgJ2Yn
LCAyKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgUVBhaW50ZXJQ
YXRoOjpDdXJ2ZVRvRWxlbWVudDoKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjb25z
dCBRUGFpbnRlclBhdGg6OkVsZW1lbnQgJmMxID0gbV9wYXRoLmVsZW1lbnRBdChpICsgMSk7Ci0g
ICAgICAgICAgICAgICAgY29uc3QgUVBhaW50ZXJQYXRoOjpFbGVtZW50ICZjMiA9IG1fcGF0aC5l
bGVtZW50QXQoaSArIDIpOwotCi0gICAgICAgICAgICAgICAgUV9BU1NFUlQoYzEudHlwZSA9PSBR
UGFpbnRlclBhdGg6OkN1cnZlVG9EYXRhRWxlbWVudCk7Ci0gICAgICAgICAgICAgICAgUV9BU1NF
UlQoYzIudHlwZSA9PSBRUGFpbnRlclBhdGg6OkN1cnZlVG9EYXRhRWxlbWVudCk7Ci0KLSAgICAg
ICAgICAgICAgICByZXQgKz0gUVN0cmluZyhRTGF0aW4xU3RyaW5nKCJDJTEsJTIsJTMsJTQsJTUs
JTYgIikpLmFyZyhjdXIueCwgMCwgJ2YnLCAyKS5hcmcoY3VyLnksIDAsICdmJywgMikuYXJnKGMx
LngsIDAsICdmJywgMikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFyZyhjMS55LCAwLCAnZicsIDIpLmFyZyhjMi54
LCAwLCAnZicsIDIpLmFyZyhjMi55LCAwLCAnZicsIDIpOwotICAgICAgICAgICAgICAgIGkgKz0g
MjsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNh
c2UgUVBhaW50ZXJQYXRoOjpDdXJ2ZVRvRGF0YUVsZW1lbnQ6Ci0gICAgICAgICAgICAgICAgUV9B
U1NFUlQoZmFsc2UpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQot
Ci0gICAgcmV0dXJuIHJldC50cmltbWVkKCk7Ci19Ci0KIHZvaWQgUGF0aDo6YXBwbHkodm9pZCog
aW5mbywgUGF0aEFwcGxpZXJGdW5jdGlvbiBmdW5jdGlvbikgY29uc3QKIHsKICAgICBQYXRoRWxl
bWVudCBwZWxlbWVudDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QYXRo
U2tpYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1Bh
dGhTa2lhLmNwcAkocmV2aXNpb24gNjk0NjQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3NraWEvUGF0aFNraWEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjcsNjIgKzIyNyw2IEBAIHZv
aWQgUGF0aDo6dHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm8KICAgICBtX3BhdGgtPnRyYW5z
Zm9ybSh4Zm9ybSk7CiB9CiAKLVN0cmluZyBQYXRoOjpkZWJ1Z1N0cmluZygpIGNvbnN0Ci17Ci0g
ICAgU3RyaW5nIHJlc3VsdDsKLQotICAgIFNrUGF0aDo6SXRlciBpdGVyKCptX3BhdGgsIGZhbHNl
KTsKLSAgICBTa1BvaW50IHB0c1s0XTsKLQotICAgIGludCBudW1Qb2ludHMgPSBtX3BhdGgtPmdl
dFBvaW50cygwLCAwKTsKLSAgICBTa1BhdGg6OlZlcmIgdmVyYjsKLQotICAgIGRvIHsKLSAgICAg
ICAgdmVyYiA9IGl0ZXIubmV4dChwdHMpOwotICAgICAgICBzd2l0Y2ggKHZlcmIpIHsKLSAgICAg
ICAgY2FzZSBTa1BhdGg6OmtNb3ZlX1ZlcmI6Ci0gICAgICAgICAgICByZXN1bHQgKz0gU3RyaW5n
Ojpmb3JtYXQoIk0lLjJmLCUuMmYgIiwgcHRzWzBdLmZYLCBwdHNbMF0uZlkpOwotICAgICAgICAg
ICAgbnVtUG9pbnRzIC09IDE7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTa1Bh
dGg6OmtMaW5lX1ZlcmI6Ci0gICAgICAgICAgaWYgKCFpdGVyLmlzQ2xvc2VMaW5lKCkpIHsKLSAg
ICAgICAgICAgICAgICByZXN1bHQgKz0gU3RyaW5nOjpmb3JtYXQoIkwlLjJmLCUuMmYgIiwgcHRz
WzFdLmZYLCBwdHNbMV0uZlkpOyAKLSAgICAgICAgICAgICAgICBudW1Qb2ludHMgLT0gMTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNrUGF0aDo6a1F1
YWRfVmVyYjoKLSAgICAgICAgICAgIHJlc3VsdCArPSBTdHJpbmc6OmZvcm1hdCgiUSUuMmYsJS4y
ZiwlLjJmLCUuMmYgIiwKLSAgICAgICAgICAgICAgICBwdHNbMV0uZlgsIHB0c1sxXS5mWSwKLSAg
ICAgICAgICAgICAgICBwdHNbMl0uZlgsIHB0c1syXS5mWSk7Ci0gICAgICAgICAgICBudW1Qb2lu
dHMgLT0gMjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNrUGF0aDo6a0N1Ymlj
X1ZlcmI6Ci0gICAgICAgICAgICByZXN1bHQgKz0gU3RyaW5nOjpmb3JtYXQoIkMlLjJmLCUuMmYs
JS4yZiwlLjJmLCUuMmYsJS4yZiAiLAotICAgICAgICAgICAgICAgIHB0c1sxXS5mWCwgcHRzWzFd
LmZZLAotICAgICAgICAgICAgICAgIHB0c1syXS5mWCwgcHRzWzJdLmZZLAotICAgICAgICAgICAg
ICAgIHB0c1szXS5mWCwgcHRzWzNdLmZZKTsKLSAgICAgICAgICAgIG51bVBvaW50cyAtPSAzOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2tQYXRoOjprQ2xvc2VfVmVyYjoKLSAg
ICAgICAgICAgIHJlc3VsdCArPSAiWiAiOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgU2tQYXRoOjprRG9uZV9WZXJiOgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAg
ICB9IHdoaWxlICh2ZXJiICE9IFNrUGF0aDo6a0RvbmVfVmVyYik7Ci0KLSAgICAvLyBJZiB5b3Ug
aGF2ZSBhIHBhdGggdGhhdCBlbmRzIHdpdGggYW4gTSwgU2tpYSB3aWxsIG5vdCBpdGVyYXRlIHRo
ZQotICAgIC8vIHRyYWlsaW5nIE0uIFRoYXQncyBuaWNlIG9mIGl0LCBidXQgQXBwbGUncyBwYXRo
cyBvdXRwdXQgdGhlIHRyYWlsaW5nIE0KLSAgICAvLyBhbmQgd2Ugd2FudCBvdXQgbGF5b3V0IGR1
bXBzIHRvIGxvb2sgbGlrZSB0aGVpcnMKLSAgICBpZiAobnVtUG9pbnRzKSB7Ci0gICAgICAgIEFT
U0VSVChudW1Qb2ludHM9PTEpOwotICAgICAgICBtX3BhdGgtPmdldExhc3RQdChwdHMpOwotICAg
ICAgICByZXN1bHQgKz0gU3RyaW5nOjpmb3JtYXQoIk0lLjJmLCUuMmYgIiwgcHRzWzBdLmZYLCBw
dHNbMF0uZlkpOwotICAgIH0KLQotICAgIHJldHVybiByZXN1bHQuc3RyaXBXaGl0ZVNwYWNlKCk7
Ci19Ci0KIC8vIENvbXB1dGVzIHRoZSBib3VuZGluZyBib3ggZm9yIHRoZSBzdHJva2UgYW5kIHN0
eWxlIGN1cnJlbnRseSBzZWxlY3RlZCBpbnRvCiAvLyB0aGUgZ2l2ZW4gYm91bmRpbmcgYm94LiBU
aGlzIGFsc28gdGFrZXMgaW50byBhY2NvdW50IHRoZSBzdHJva2Ugd2lkdGguCiBzdGF0aWMgRmxv
YXRSZWN0IGJvdW5kaW5nQm94Rm9yQ3VycmVudFN0cm9rZShjb25zdCBHcmFwaGljc0NvbnRleHQq
IGNvbnRleHQpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL1BhdGhXaW5D
RS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9QYXRo
V2luQ0UuY3BwCShyZXZpc2lvbiA2OTQ2NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luY2UvUGF0aFdpbkNFLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIzLDExICsxMjMsNiBAQCBi
b29sIFBhdGg6OmlzRW1wdHkoKSBjb25zdAogICAgIHJldHVybiBtX3BhdGgtPmlzRW1wdHkoKTsK
IH0KIAotU3RyaW5nIFBhdGg6OmRlYnVnU3RyaW5nKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9w
YXRoLT5kZWJ1Z1N0cmluZygpOwotfQotCiB2b2lkIFBhdGg6OmFwcGx5KHZvaWQqIGluZm8sIFBh
dGhBcHBsaWVyRnVuY3Rpb24gZnVuY3Rpb24pIGNvbnN0CiB7CiAgICAgbV9wYXRoLT5hcHBseShp
bmZvLCBmdW5jdGlvbik7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL1Bs
YXRmb3JtUGF0aFdpbkNFLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbmNlL1BsYXRmb3JtUGF0aFdpbkNFLmNwcAkocmV2aXNpb24gNjk0NjQpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL1BsYXRmb3JtUGF0aFdpbkNFLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzU0LDQzICs3NTQsNiBAQCB2b2lkIFBsYXRmb3JtUGF0aDo6YWRkRWxsaXBz
ZShjb25zdCBGbG9hCiAgICAgYWRkRWxsaXBzZShyLmxvY2F0aW9uKCkgKyByYWRpdXMsIHJhZGl1
cy53aWR0aCgpLCByYWRpdXMuaGVpZ2h0KCksIDAsIDAsIHRydWUpOwogfQogCi1TdHJpbmcgUGxh
dGZvcm1QYXRoOjpkZWJ1Z1N0cmluZygpIGNvbnN0Ci17Ci0gICAgU3RyaW5nIHJldDsKLSAgICBm
b3IgKFBsYXRmb3JtUGF0aEVsZW1lbnRzOjpjb25zdF9pdGVyYXRvciBpKG1fZWxlbWVudHMuYmVn
aW4oKSk7IGkgIT0gbV9lbGVtZW50cy5lbmQoKTsgKytpKSB7Ci0gICAgICAgIHN3aXRjaCAoaS0+
cGxhdGZvcm1UeXBlKCkpIHsKLSAgICAgICAgY2FzZSBQbGF0Zm9ybVBhdGhFbGVtZW50OjpQYXRo
TW92ZVRvOgotICAgICAgICBjYXNlIFBsYXRmb3JtUGF0aEVsZW1lbnQ6OlBhdGhMaW5lVG86Ci0g
ICAgICAgICAgICByZXQgKz0gU3RyaW5nOjpmb3JtYXQoIk0gJWYgJWZcbiIsIGktPnBvaW50QXQo
MCkubV94LCBpLT5wb2ludEF0KDApLm1feSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBQbGF0Zm9ybVBhdGhFbGVtZW50OjpQYXRoQXJjVG86Ci0gICAgICAgICAgICByZXQgKz0g
U3RyaW5nOjpmb3JtYXQoIkEgJWYgJWYgJWYgJWYgJWYgJWYgJWNcbiIKLSAgICAgICAgICAgICAg
ICAsIGktPmFyY1RvKCkubV9lbmQubV94LCBpLT5hcmNUbygpLm1fZW5kLm1feQotICAgICAgICAg
ICAgICAgICwgaS0+YXJjVG8oKS5tX2NlbnRlci5tX3gsIGktPmFyY1RvKCkubV9jZW50ZXIubV95
Ci0gICAgICAgICAgICAgICAgLCBpLT5hcmNUbygpLm1fcmFkaXVzLm1feCwgaS0+YXJjVG8oKS5t
X3JhZGl1cy5tX3kKLSAgICAgICAgICAgICAgICAsIGktPmFyY1RvKCkubV9jbG9ja3dpc2U/ICdZ
JyA6ICdOJyk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBQbGF0Zm9ybVBhdGhF
bGVtZW50OjpQYXRoUXVhZEN1cnZlVG86Ci0gICAgICAgICAgICByZXQgKz0gU3RyaW5nOjpmb3Jt
YXQoIlEgJWYgJWYgJWYgJWZcbiIKLSAgICAgICAgICAgICAgICAsIGktPnBvaW50QXQoMCkubV94
LCBpLT5wb2ludEF0KDApLm1feQotICAgICAgICAgICAgICAgICwgaS0+cG9pbnRBdCgxKS5tX3gs
IGktPnBvaW50QXQoMSkubV95KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBs
YXRmb3JtUGF0aEVsZW1lbnQ6OlBhdGhCZXppZXJDdXJ2ZVRvOgotICAgICAgICAgICAgcmV0ICs9
IFN0cmluZzo6Zm9ybWF0KCJCICVmICVmICVmICVmICVmICVmXG4iCi0gICAgICAgICAgICAgICAg
LCBpLT5wb2ludEF0KDApLm1feCwgaS0+cG9pbnRBdCgwKS5tX3kKLSAgICAgICAgICAgICAgICAs
IGktPnBvaW50QXQoMSkubV94LCBpLT5wb2ludEF0KDEpLm1feQotICAgICAgICAgICAgICAgICwg
aS0+cG9pbnRBdCgyKS5tX3gsIGktPnBvaW50QXQoMikubV95KTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgQVNTRVJUKGktPnBsYXRmb3JtVHlwZSgp
ID09IFBsYXRmb3JtUGF0aEVsZW1lbnQ6OlBhdGhDbG9zZVN1YnBhdGgpOwotICAgICAgICAgICAg
cmV0ICs9ICJTXG4iOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAg
ICByZXR1cm4gcmV0OwotfQotCiB2b2lkIFBsYXRmb3JtUGF0aDo6YXBwbHkodm9pZCogaW5mbywg
UGF0aEFwcGxpZXJGdW5jdGlvbiBmdW5jdGlvbikgY29uc3QKIHsKICAgICBQYXRoRWxlbWVudCBw
ZWxlbWVudDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvUGxhdGZvcm1Q
YXRoV2luQ0UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNl
L1BsYXRmb3JtUGF0aFdpbkNFLmgJKHJldmlzaW9uIDY5NDY0KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW5jZS9QbGF0Zm9ybVBhdGhXaW5DRS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
NjQsNyArMTY0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGFkZEVsbGlw
c2UoY29uc3QgRmxvYXRQb2ludCYgcCwgZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgc2FyLCBmbG9h
dCBlYXIsIGJvb2wgYW50aWNsb2Nrd2lzZSk7CiAgICAgICAgIHZvaWQgYWRkUmVjdChjb25zdCBG
bG9hdFJlY3QmIHIpOwogICAgICAgICB2b2lkIGFkZEVsbGlwc2UoY29uc3QgRmxvYXRSZWN0JiBy
KTsKLSAgICAgICAgU3RyaW5nIGRlYnVnU3RyaW5nKCkgY29uc3Q7CiAgICAgICAgIHZvaWQgYXBw
bHkodm9pZCogaW5mbywgUGF0aEFwcGxpZXJGdW5jdGlvbiBmdW5jdGlvbikgY29uc3Q7CiAKICAg
ICBwcml2YXRlOgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9QYXRoV3guY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvUGF0aFd4LmNwcAko
cmV2aXNpb24gNjk0NjQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L1BhdGhXeC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTExNywxMiArMTE3LDYgQEAgYm9vbCBQYXRoOjpzdHJva2VD
b250YWlucyhTdHJva2VTdHlsZUFwcAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotU3RyaW5nIFBh
dGg6OmRlYnVnU3RyaW5nKCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJl
dHVybiBTdHJpbmcoKTsKLX0KLQogUGF0aCYgUGF0aDo6b3BlcmF0b3I9KGNvbnN0IFBhdGgmIHBh
dGgpCiB7IAogICAgICptX3BhdGggPSAqcGF0aC5wbGF0Zm9ybVBhdGgoKTsKSW5kZXg6IFdlYkNv
cmUvc3ZnL1NWR0dseXBoRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ds
eXBoRWxlbWVudC5oCShyZXZpc2lvbiA2OTQ2NCkKKysrIFdlYkNvcmUvc3ZnL1NWR0dseXBoRWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC04MCw3ICs4MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbE9yaWdpblggPT0gb3RoZXIudmVydGljYWxP
cmlnaW5YICYmCiAgICAgICAgICAgICAgICAgICAgdmVydGljYWxPcmlnaW5ZID09IG90aGVyLnZl
cnRpY2FsT3JpZ2luWSAmJgogICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsQWR2YW5jZVkgPT0g
b3RoZXIudmVydGljYWxBZHZhbmNlWSAmJgotICAgICAgICAgICAgICAgICAgIHBhdGhEYXRhLmRl
YnVnU3RyaW5nKCkgPT0gb3RoZXIucGF0aERhdGEuZGVidWdTdHJpbmcoKSAmJgorICAgICAgICAg
ICAgICAgICAgIHBhdGhEYXRhLnBsYXRmb3JtUGF0aCgpID09IG90aGVyLnBhdGhEYXRhLnBsYXRm
b3JtUGF0aCgpICYmCiAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VzID09IG90aGVyLmxhbmd1
YWdlczsKICAgICAgICAgfQogCg==
</data>
<flag name="review"
          id="60286"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70448</attachid>
            <date>2010-10-11 10:24:29 -0700</date>
            <delta_ts>2010-10-14 05:47:23 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>KillPathDebug.diff</filename>
            <type>text/plain</type>
            <size>16214</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTUwMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMTAtMTEgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJt
YW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KKworICAg
ICAgICBLaWxsIFBhdGg6OmRlYnVnU3RyaW5nKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3NDkzCisKKyAgICAgICAgUmVtb3ZlIHRoZSBvYnNvbGV0
ZSBQYXRoOjpkZWJ1Z1N0cmluZygpIG1ldGhvZC4gRFJUIG5vdyBkdW1wcyBwYXRocyBpbiBhIHBs
YXRmb3JtIGluZGVwZW5kYW50IHdheS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1Bh
dGguaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdGhDRy5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvaGFpa3UvUGF0aEhhaWt1LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9vcGVudmcvUGF0aE9wZW5WRy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvUGF0aFF0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BhdGhT
a2lhLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9QYXRoV2luQ0UuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL1BsYXRmb3JtUGF0aFdpbkNFLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9QbGF0Zm9ybVBhdGhXaW5DRS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3d4L1BhdGhXeC5jcHA6CisgICAgICAgICog
c3ZnL1NWR0dseXBoRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR2x5cGhJZGVudGlm
aWVyOjpvcGVyYXRvcj09KToKKwogMjAxMC0xMC0xMSAgTWFydGluIFJvYmluc29uICA8bXJvYmlu
c29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9QYXRoLmgJKHJldmlzaW9uIDY5NDY0KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9QYXRoLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0MCw4ICsxNDAsNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCB0cmFuc2xhdGUoY29uc3QgRmxvYXRT
aXplJik7CiAKLSAgICAgICAgU3RyaW5nIGRlYnVnU3RyaW5nKCkgY29uc3Q7Ci0KICAgICAgICAg
UGxhdGZvcm1QYXRoUHRyIHBsYXRmb3JtUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcGF0aDsgfQog
CiAgICAgICAgIHN0YXRpYyBQYXRoIGNyZWF0ZVJvdW5kZWRSZWN0YW5nbGUoY29uc3QgRmxvYXRS
ZWN0JiwgY29uc3QgRmxvYXRTaXplJiByb3VuZGluZ1JhZGlpKTsKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAJKHJldmlzaW9uIDY5NDY0KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMzcsNDAgKzMzNyw0IEBAIHZvaWQgUGF0aDo6dHJhbnNmb3JtKGNvbnN0IEFm
ZmluZVRyYW5zZm8KICAgICBjYWlyb190cmFuc2Zvcm0oY3IsICZjX21hdHJpeCk7CiB9CiAKLVN0
cmluZyBQYXRoOjpkZWJ1Z1N0cmluZygpIGNvbnN0Ci17Ci0gICAgaWYgKGlzRW1wdHkoKSkKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygpOwotCi0gICAgU3RyaW5nIHBhdGhTdHJpbmc7Ci0gICAgT3du
UHRyPGNhaXJvX3BhdGhfdD4gcGF0aChjYWlyb19jb3B5X3BhdGgocGxhdGZvcm1QYXRoKCktPmNv
bnRleHQoKSkpOwotICAgIGNhaXJvX3BhdGhfZGF0YV90KiBkYXRhOwotCi0gICAgZm9yIChpbnQg
aSA9IDA7IGkgPCBwYXRoLT5udW1fZGF0YTsgaSArPSBwYXRoLT5kYXRhW2ldLmhlYWRlci5sZW5n
dGgpIHsKLSAgICAgICAgZGF0YSA9ICZwYXRoLT5kYXRhW2ldOwotICAgICAgICBzd2l0Y2ggKGRh
dGEtPmhlYWRlci50eXBlKSB7Ci0gICAgICAgIGNhc2UgQ0FJUk9fUEFUSF9NT1ZFX1RPOgotICAg
ICAgICAgICAgaWYgKGkgPCAocGF0aC0+bnVtX2RhdGEgLSBwYXRoLT5kYXRhW2ldLmhlYWRlci5s
ZW5ndGgpKQotICAgICAgICAgICAgICAgIHBhdGhTdHJpbmcgKz0gU3RyaW5nOjpmb3JtYXQoIk0l
LjJmLCUuMmYgIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsx
XS5wb2ludC54LCBkYXRhWzFdLnBvaW50LnkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgQ0FJUk9fUEFUSF9MSU5FX1RPOgotICAgICAgICAgICAgcGF0aFN0cmluZyArPSBTdHJp
bmc6OmZvcm1hdCgiTCUuMmYsJS4yZiAiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkYXRhWzFdLnBvaW50LngsIGRhdGFbMV0ucG9pbnQueSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBDQUlST19QQVRIX0NVUlZFX1RPOgotICAgICAgICAgICAgcGF0
aFN0cmluZyArPSBTdHJpbmc6OmZvcm1hdCgiQyUuMmYsJS4yZiwlLjJmLCUuMmYsJS4yZiwlLjJm
ICIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbMV0ucG9pbnQu
eCwgZGF0YVsxXS5wb2ludC55LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkYXRhWzJdLnBvaW50LngsIGRhdGFbMl0ucG9pbnQueSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGF0YVszXS5wb2ludC54LCBkYXRhWzNdLnBvaW50LnkpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ0FJUk9fUEFUSF9DTE9TRV9QQVRIOgotICAg
ICAgICAgICAgcGF0aFN0cmluZyArPSAiWiAiOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IH0KLSAgICB9Ci0KLSAgICByZXR1cm4gcGF0aFN0cmluZy5zaW1wbGlmeVdoaXRlU3BhY2UoKTsK
LX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9QYXRoQ0cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvUGF0aENHLmNwcAkocmV2aXNpb24gNjk0NjQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL1BhdGhDRy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1NCw2MSArMjU0LDkgQEAg
RmxvYXRQb2ludCBQYXRoOjpjdXJyZW50UG9pbnQoKSBjb25zdCAKICAgICByZXR1cm4gQ0dQYXRo
R2V0Q3VycmVudFBvaW50KG1fcGF0aCk7CiB9CiAKLXN0YXRpYyB2b2lkIENHUGF0aFRvQ0ZTdHJp
bmdBcHBsaWVyRnVuY3Rpb24odm9pZCogaW5mbywgY29uc3QgQ0dQYXRoRWxlbWVudCAqZWxlbWVu
dCkKLXsKLSAgICBDRk11dGFibGVTdHJpbmdSZWYgc3RyaW5nID0gc3RhdGljX2Nhc3Q8Q0ZNdXRh
YmxlU3RyaW5nUmVmPihpbmZvKTsKLQotICAgIENHUG9pbnQqIHBvaW50cyA9IGVsZW1lbnQtPnBv
aW50czsKLSAgICBzd2l0Y2ggKGVsZW1lbnQtPnR5cGUpIHsKLSAgICBjYXNlIGtDR1BhdGhFbGVt
ZW50TW92ZVRvUG9pbnQ6Ci0gICAgICAgIENGU3RyaW5nQXBwZW5kRm9ybWF0KHN0cmluZywgMCwg
Q0ZTVFIoIk0lLjJmLCUuMmYgIiksIHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2Uga0NHUGF0aEVsZW1lbnRBZGRMaW5lVG9Qb2ludDoKLSAgICAgICAg
Q0ZTdHJpbmdBcHBlbmRGb3JtYXQoc3RyaW5nLCAwLCBDRlNUUigiTCUuMmYsJS4yZiAiKSwgcG9p
bnRzWzBdLngsIHBvaW50c1swXS55KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBrQ0dQYXRo
RWxlbWVudEFkZFF1YWRDdXJ2ZVRvUG9pbnQ6Ci0gICAgICAgIENGU3RyaW5nQXBwZW5kRm9ybWF0
KHN0cmluZywgMCwgQ0ZTVFIoIlElLjJmLCUuMmYsJS4yZiwlLjJmICIpLAotICAgICAgICAgICAg
ICAgIHBvaW50c1swXS54LCBwb2ludHNbMF0ueSwgcG9pbnRzWzFdLngsIHBvaW50c1sxXS55KTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBrQ0dQYXRoRWxlbWVudEFkZEN1cnZlVG9Qb2ludDoK
LSAgICAgICAgQ0ZTdHJpbmdBcHBlbmRGb3JtYXQoc3RyaW5nLCAwLCBDRlNUUigiQyUuMmYsJS4y
ZiwlLjJmLCUuMmYsJS4yZiwlLjJmICIpLAotICAgICAgICAgICAgICAgIHBvaW50c1swXS54LCBw
b2ludHNbMF0ueSwgcG9pbnRzWzFdLngsIHBvaW50c1sxXS55LAotICAgICAgICAgICAgICAgIHBv
aW50c1syXS54LCBwb2ludHNbMl0ueSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Uga0NHUGF0
aEVsZW1lbnRDbG9zZVN1YnBhdGg6Ci0gICAgICAgIENGU3RyaW5nQXBwZW5kRm9ybWF0KHN0cmlu
ZywgMCwgQ0ZTVFIoIlogIikpOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KLXN0YXRpYyBD
RlN0cmluZ1JlZiBDRlN0cmluZ0Zyb21DR1BhdGgoQ0dQYXRoUmVmIHBhdGgpCi17Ci0gICAgaWYg
KCFwYXRoKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIENGTXV0YWJsZVN0cmluZ1JlZiBzdHJp
bmcgPSBDRlN0cmluZ0NyZWF0ZU11dGFibGUoTlVMTCwgMCk7Ci0gICAgQ0dQYXRoQXBwbHkocGF0
aCwgc3RyaW5nLCBDR1BhdGhUb0NGU3RyaW5nQXBwbGllckZ1bmN0aW9uKTsKLSAgICBDRlN0cmlu
Z1RyaW1XaGl0ZXNwYWNlKHN0cmluZyk7Ci0KLQotICAgIHJldHVybiBzdHJpbmc7Ci19Ci0KLQog
I3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFyayBQYXRoIE1hbmFnZW1lbnQKIAotU3RyaW5nIFBh
dGg6OmRlYnVnU3RyaW5nKCkgY29uc3QKLXsKLSAgICBTdHJpbmcgcmVzdWx0OwotICAgIGlmICgh
aXNFbXB0eSgpKSB7Ci0gICAgICAgIENGU3RyaW5nUmVmIHBhdGhTdHJpbmcgPSBDRlN0cmluZ0Zy
b21DR1BhdGgobV9wYXRoKTsKLSAgICAgICAgcmVzdWx0ID0gU3RyaW5nKHBhdGhTdHJpbmcpOwot
ICAgICAgICBDRlJlbGVhc2UocGF0aFN0cmluZyk7Ci0gICAgfQotICAgIHJldHVybiByZXN1bHQ7
Ci19Ci0KIHN0cnVjdCBQYXRoQXBwbGllckluZm8gewogICAgIHZvaWQqIGluZm87CiAgICAgUGF0
aEFwcGxpZXJGdW5jdGlvbiBmdW5jdGlvbjsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvaGFpa3UvUGF0aEhhaWt1LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2hhaWt1L1BhdGhIYWlrdS5jcHAJKHJldmlzaW9uIDY5NDY0KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9QYXRoSGFpa3UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NDQsMTIgKzE0NCw2IEBAIGJvb2wgUGF0aDo6aXNFbXB0eSgpIGNvbnN0CiAgICAgcmV0dXJuICFt
X3BhdGgtPkZyYW1lKCkuSXNWYWxpZCgpOwogfQogCi1TdHJpbmcgUGF0aDo6ZGVidWdTdHJpbmco
KSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwot
fQotCiB2b2lkIFBhdGg6OmFwcGx5KHZvaWQqIGluZm8sIFBhdGhBcHBsaWVyRnVuY3Rpb24gZnVu
Y3Rpb24pIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL1BhdGhPcGVuVkcuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL1BhdGhPcGVuVkcuY3BwCShyZXZpc2lvbiA2OTQ2
NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL1BhdGhPcGVuVkcuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00MzYsMTggKzQzNiw2IEBAIGJvb2wgUGF0aDo6aGFzQ3VycmVudFBv
aW50KCkgY29uc3QKICAgICByZXR1cm4gdmdHZXRQYXJhbWV0ZXJpKG1fcGF0aC0+dmdQYXRoKCks
IFZHX1BBVEhfTlVNX1NFR01FTlRTKSA+IDA7CiB9CiAKLVN0cmluZyBQYXRoOjpkZWJ1Z1N0cmlu
ZygpIGNvbnN0Ci17Ci0gICAgU3RyaW5nIGRlYnVnU3RyaW5nID0gIiI7Ci0KLSAgICAvLyBPcGVu
VkcgcHJvdmlkZXMgbm8gbWVhbnMgdG8gcmV0cmlldmUgcGF0aCBzZWdtZW50IGluZm9ybWF0aW9u
LgotICAgIC8vIFRoaXMgaXMgYSBiaXQgdW5mb3J0dW5hdGUsIHdlIG1pZ2h0IG5lZWQgdG8gc3Rv
cmUgdGhlIHNlZ21lbnRzIGluCi0gICAgLy8gbWVtb3J5IGlmIHdlIHdhbnQgdG8gaW1wbGVtZW50
IHRoaXMgZnVuY3Rpb24gcHJvcGVybHkuCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKLQotICAgIHJl
dHVybiBkZWJ1Z1N0cmluZzsKLX0KLQogdm9pZCBQYXRoOjphcHBseSh2b2lkKiBpbmZvLCBQYXRo
QXBwbGllckZ1bmN0aW9uIGZ1bmN0aW9uKSBjb25zdAogewogICAgIC8vIE9wZW5WRyBwcm92aWRl
cyBubyBtZWFucyB0byByZXRyaWV2ZSBwYXRoIHNlZ21lbnQgaW5mb3JtYXRpb24uCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1BhdGhRdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9QYXRoUXQuY3BwCShyZXZpc2lvbiA2OTQ2NCkKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvUGF0aFF0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzU3LDQxICszNTcsNiBAQCBGbG9hdFBvaW50IFBhdGg6OmN1cnJlbnRQb2ludCgpIGNvbnN0
IAogICAgIHJldHVybiBtX3BhdGguY3VycmVudFBvc2l0aW9uKCk7CiB9CiAKLVN0cmluZyBQYXRo
OjpkZWJ1Z1N0cmluZygpIGNvbnN0Ci17Ci0gICAgUVN0cmluZyByZXQ7Ci0gICAgZm9yIChpbnQg
aSA9IDA7IGkgPCBtX3BhdGguZWxlbWVudENvdW50KCk7ICsraSkgewotICAgICAgICBjb25zdCBR
UGFpbnRlclBhdGg6OkVsZW1lbnQgJmN1ciA9IG1fcGF0aC5lbGVtZW50QXQoaSk7Ci0KLSAgICAg
ICAgc3dpdGNoIChjdXIudHlwZSkgewotICAgICAgICAgICAgY2FzZSBRUGFpbnRlclBhdGg6Ok1v
dmVUb0VsZW1lbnQ6Ci0gICAgICAgICAgICAgICAgcmV0ICs9IFFTdHJpbmcoUUxhdGluMVN0cmlu
ZygiTSUxLCUyICIpKS5hcmcoY3VyLngsIDAsICdmJywgMikuYXJnKGN1ci55LCAwLCAnZicsIDIp
OwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBRUGFpbnRlclBhdGg6
OkxpbmVUb0VsZW1lbnQ6Ci0gICAgICAgICAgICAgICAgcmV0ICs9IFFTdHJpbmcoUUxhdGluMVN0
cmluZygiTCUxLCUyICIpKS5hcmcoY3VyLngsIDAsICdmJywgMikuYXJnKGN1ci55LCAwLCAnZics
IDIpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBRUGFpbnRlclBh
dGg6OkN1cnZlVG9FbGVtZW50OgotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNvbnN0
IFFQYWludGVyUGF0aDo6RWxlbWVudCAmYzEgPSBtX3BhdGguZWxlbWVudEF0KGkgKyAxKTsKLSAg
ICAgICAgICAgICAgICBjb25zdCBRUGFpbnRlclBhdGg6OkVsZW1lbnQgJmMyID0gbV9wYXRoLmVs
ZW1lbnRBdChpICsgMik7Ci0KLSAgICAgICAgICAgICAgICBRX0FTU0VSVChjMS50eXBlID09IFFQ
YWludGVyUGF0aDo6Q3VydmVUb0RhdGFFbGVtZW50KTsKLSAgICAgICAgICAgICAgICBRX0FTU0VS
VChjMi50eXBlID09IFFQYWludGVyUGF0aDo6Q3VydmVUb0RhdGFFbGVtZW50KTsKLQotICAgICAg
ICAgICAgICAgIHJldCArPSBRU3RyaW5nKFFMYXRpbjFTdHJpbmcoIkMlMSwlMiwlMywlNCwlNSwl
NiAiKSkuYXJnKGN1ci54LCAwLCAnZicsIDIpLmFyZyhjdXIueSwgMCwgJ2YnLCAyKS5hcmcoYzEu
eCwgMCwgJ2YnLCAyKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAuYXJnKGMxLnksIDAsICdmJywgMikuYXJnKGMyLngs
IDAsICdmJywgMikuYXJnKGMyLnksIDAsICdmJywgMik7Ci0gICAgICAgICAgICAgICAgaSArPSAy
OwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2Fz
ZSBRUGFpbnRlclBhdGg6OkN1cnZlVG9EYXRhRWxlbWVudDoKLSAgICAgICAgICAgICAgICBRX0FT
U0VSVChmYWxzZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0K
LSAgICByZXR1cm4gcmV0LnRyaW1tZWQoKTsKLX0KLQogdm9pZCBQYXRoOjphcHBseSh2b2lkKiBp
bmZvLCBQYXRoQXBwbGllckZ1bmN0aW9uIGZ1bmN0aW9uKSBjb25zdAogewogICAgIFBhdGhFbGVt
ZW50IHBlbGVtZW50OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BhdGhT
a2lhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGF0
aFNraWEuY3BwCShyZXZpc2lvbiA2OTQ2NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c2tpYS9QYXRoU2tpYS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyNyw2MiArMjI3LDYgQEAgdm9p
ZCBQYXRoOjp0cmFuc2Zvcm0oY29uc3QgQWZmaW5lVHJhbnNmbwogICAgIG1fcGF0aC0+dHJhbnNm
b3JtKHhmb3JtKTsKIH0KIAotU3RyaW5nIFBhdGg6OmRlYnVnU3RyaW5nKCkgY29uc3QKLXsKLSAg
ICBTdHJpbmcgcmVzdWx0OwotCi0gICAgU2tQYXRoOjpJdGVyIGl0ZXIoKm1fcGF0aCwgZmFsc2Up
OwotICAgIFNrUG9pbnQgcHRzWzRdOwotCi0gICAgaW50IG51bVBvaW50cyA9IG1fcGF0aC0+Z2V0
UG9pbnRzKDAsIDApOwotICAgIFNrUGF0aDo6VmVyYiB2ZXJiOwotCi0gICAgZG8gewotICAgICAg
ICB2ZXJiID0gaXRlci5uZXh0KHB0cyk7Ci0gICAgICAgIHN3aXRjaCAodmVyYikgewotICAgICAg
ICBjYXNlIFNrUGF0aDo6a01vdmVfVmVyYjoKLSAgICAgICAgICAgIHJlc3VsdCArPSBTdHJpbmc6
OmZvcm1hdCgiTSUuMmYsJS4yZiAiLCBwdHNbMF0uZlgsIHB0c1swXS5mWSk7Ci0gICAgICAgICAg
ICBudW1Qb2ludHMgLT0gMTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNrUGF0
aDo6a0xpbmVfVmVyYjoKLSAgICAgICAgICBpZiAoIWl0ZXIuaXNDbG9zZUxpbmUoKSkgewotICAg
ICAgICAgICAgICAgIHJlc3VsdCArPSBTdHJpbmc6OmZvcm1hdCgiTCUuMmYsJS4yZiAiLCBwdHNb
MV0uZlgsIHB0c1sxXS5mWSk7IAotICAgICAgICAgICAgICAgIG51bVBvaW50cyAtPSAxOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2tQYXRoOjprUXVh
ZF9WZXJiOgotICAgICAgICAgICAgcmVzdWx0ICs9IFN0cmluZzo6Zm9ybWF0KCJRJS4yZiwlLjJm
LCUuMmYsJS4yZiAiLAotICAgICAgICAgICAgICAgIHB0c1sxXS5mWCwgcHRzWzFdLmZZLAotICAg
ICAgICAgICAgICAgIHB0c1syXS5mWCwgcHRzWzJdLmZZKTsKLSAgICAgICAgICAgIG51bVBvaW50
cyAtPSAyOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2tQYXRoOjprQ3ViaWNf
VmVyYjoKLSAgICAgICAgICAgIHJlc3VsdCArPSBTdHJpbmc6OmZvcm1hdCgiQyUuMmYsJS4yZiwl
LjJmLCUuMmYsJS4yZiwlLjJmICIsCi0gICAgICAgICAgICAgICAgcHRzWzFdLmZYLCBwdHNbMV0u
ZlksCi0gICAgICAgICAgICAgICAgcHRzWzJdLmZYLCBwdHNbMl0uZlksCi0gICAgICAgICAgICAg
ICAgcHRzWzNdLmZYLCBwdHNbM10uZlkpOwotICAgICAgICAgICAgbnVtUG9pbnRzIC09IDM7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTa1BhdGg6OmtDbG9zZV9WZXJiOgotICAg
ICAgICAgICAgcmVzdWx0ICs9ICJaICI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBTa1BhdGg6OmtEb25lX1ZlcmI6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAg
IH0gd2hpbGUgKHZlcmIgIT0gU2tQYXRoOjprRG9uZV9WZXJiKTsKLQotICAgIC8vIElmIHlvdSBo
YXZlIGEgcGF0aCB0aGF0IGVuZHMgd2l0aCBhbiBNLCBTa2lhIHdpbGwgbm90IGl0ZXJhdGUgdGhl
Ci0gICAgLy8gdHJhaWxpbmcgTS4gVGhhdCdzIG5pY2Ugb2YgaXQsIGJ1dCBBcHBsZSdzIHBhdGhz
IG91dHB1dCB0aGUgdHJhaWxpbmcgTQotICAgIC8vIGFuZCB3ZSB3YW50IG91dCBsYXlvdXQgZHVt
cHMgdG8gbG9vayBsaWtlIHRoZWlycwotICAgIGlmIChudW1Qb2ludHMpIHsKLSAgICAgICAgQVNT
RVJUKG51bVBvaW50cz09MSk7Ci0gICAgICAgIG1fcGF0aC0+Z2V0TGFzdFB0KHB0cyk7Ci0gICAg
ICAgIHJlc3VsdCArPSBTdHJpbmc6OmZvcm1hdCgiTSUuMmYsJS4yZiAiLCBwdHNbMF0uZlgsIHB0
c1swXS5mWSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJlc3VsdC5zdHJpcFdoaXRlU3BhY2UoKTsK
LX0KLQogLy8gQ29tcHV0ZXMgdGhlIGJvdW5kaW5nIGJveCBmb3IgdGhlIHN0cm9rZSBhbmQgc3R5
bGUgY3VycmVudGx5IHNlbGVjdGVkIGludG8KIC8vIHRoZSBnaXZlbiBib3VuZGluZyBib3guIFRo
aXMgYWxzbyB0YWtlcyBpbnRvIGFjY291bnQgdGhlIHN0cm9rZSB3aWR0aC4KIHN0YXRpYyBGbG9h
dFJlY3QgYm91bmRpbmdCb3hGb3JDdXJyZW50U3Ryb2tlKGNvbnN0IEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvUGF0aFdpbkNF
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL1BhdGhX
aW5DRS5jcHAJKHJldmlzaW9uIDY5NDY0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW5jZS9QYXRoV2luQ0UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjMsMTEgKzEyMyw2IEBAIGJv
b2wgUGF0aDo6aXNFbXB0eSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGF0aC0+aXNFbXB0eSgpOwog
fQogCi1TdHJpbmcgUGF0aDo6ZGVidWdTdHJpbmcoKSBjb25zdAotewotICAgIHJldHVybiBtX3Bh
dGgtPmRlYnVnU3RyaW5nKCk7Ci19Ci0KIHZvaWQgUGF0aDo6YXBwbHkodm9pZCogaW5mbywgUGF0
aEFwcGxpZXJGdW5jdGlvbiBmdW5jdGlvbikgY29uc3QKIHsKICAgICBtX3BhdGgtPmFwcGx5KGlu
Zm8sIGZ1bmN0aW9uKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvUGxh
dGZvcm1QYXRoV2luQ0UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luY2UvUGxhdGZvcm1QYXRoV2luQ0UuY3BwCShyZXZpc2lvbiA2OTQ2NCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvUGxhdGZvcm1QYXRoV2luQ0UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03NTQsNDMgKzc1NCw2IEBAIHZvaWQgUGxhdGZvcm1QYXRoOjphZGRFbGxpcHNl
KGNvbnN0IEZsb2EKICAgICBhZGRFbGxpcHNlKHIubG9jYXRpb24oKSArIHJhZGl1cywgcmFkaXVz
LndpZHRoKCksIHJhZGl1cy5oZWlnaHQoKSwgMCwgMCwgdHJ1ZSk7CiB9CiAKLVN0cmluZyBQbGF0
Zm9ybVBhdGg6OmRlYnVnU3RyaW5nKCkgY29uc3QKLXsKLSAgICBTdHJpbmcgcmV0OwotICAgIGZv
ciAoUGxhdGZvcm1QYXRoRWxlbWVudHM6OmNvbnN0X2l0ZXJhdG9yIGkobV9lbGVtZW50cy5iZWdp
bigpKTsgaSAhPSBtX2VsZW1lbnRzLmVuZCgpOyArK2kpIHsKLSAgICAgICAgc3dpdGNoIChpLT5w
bGF0Zm9ybVR5cGUoKSkgewotICAgICAgICBjYXNlIFBsYXRmb3JtUGF0aEVsZW1lbnQ6OlBhdGhN
b3ZlVG86Ci0gICAgICAgIGNhc2UgUGxhdGZvcm1QYXRoRWxlbWVudDo6UGF0aExpbmVUbzoKLSAg
ICAgICAgICAgIHJldCArPSBTdHJpbmc6OmZvcm1hdCgiTSAlZiAlZlxuIiwgaS0+cG9pbnRBdCgw
KS5tX3gsIGktPnBvaW50QXQoMCkubV95KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIFBsYXRmb3JtUGF0aEVsZW1lbnQ6OlBhdGhBcmNUbzoKLSAgICAgICAgICAgIHJldCArPSBT
dHJpbmc6OmZvcm1hdCgiQSAlZiAlZiAlZiAlZiAlZiAlZiAlY1xuIgotICAgICAgICAgICAgICAg
ICwgaS0+YXJjVG8oKS5tX2VuZC5tX3gsIGktPmFyY1RvKCkubV9lbmQubV95Ci0gICAgICAgICAg
ICAgICAgLCBpLT5hcmNUbygpLm1fY2VudGVyLm1feCwgaS0+YXJjVG8oKS5tX2NlbnRlci5tX3kK
LSAgICAgICAgICAgICAgICAsIGktPmFyY1RvKCkubV9yYWRpdXMubV94LCBpLT5hcmNUbygpLm1f
cmFkaXVzLm1feQotICAgICAgICAgICAgICAgICwgaS0+YXJjVG8oKS5tX2Nsb2Nrd2lzZT8gJ1kn
IDogJ04nKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBsYXRmb3JtUGF0aEVs
ZW1lbnQ6OlBhdGhRdWFkQ3VydmVUbzoKLSAgICAgICAgICAgIHJldCArPSBTdHJpbmc6OmZvcm1h
dCgiUSAlZiAlZiAlZiAlZlxuIgotICAgICAgICAgICAgICAgICwgaS0+cG9pbnRBdCgwKS5tX3gs
IGktPnBvaW50QXQoMCkubV95Ci0gICAgICAgICAgICAgICAgLCBpLT5wb2ludEF0KDEpLm1feCwg
aS0+cG9pbnRBdCgxKS5tX3kpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUGxh
dGZvcm1QYXRoRWxlbWVudDo6UGF0aEJlemllckN1cnZlVG86Ci0gICAgICAgICAgICByZXQgKz0g
U3RyaW5nOjpmb3JtYXQoIkIgJWYgJWYgJWYgJWYgJWYgJWZcbiIKLSAgICAgICAgICAgICAgICAs
IGktPnBvaW50QXQoMCkubV94LCBpLT5wb2ludEF0KDApLm1feQotICAgICAgICAgICAgICAgICwg
aS0+cG9pbnRBdCgxKS5tX3gsIGktPnBvaW50QXQoMSkubV95Ci0gICAgICAgICAgICAgICAgLCBp
LT5wb2ludEF0KDIpLm1feCwgaS0+cG9pbnRBdCgyKS5tX3kpOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlQoaS0+cGxhdGZvcm1UeXBlKCkg
PT0gUGxhdGZvcm1QYXRoRWxlbWVudDo6UGF0aENsb3NlU3VicGF0aCk7Ci0gICAgICAgICAgICBy
ZXQgKz0gIlNcbiI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IHJldHVybiByZXQ7Ci19Ci0KIHZvaWQgUGxhdGZvcm1QYXRoOjphcHBseSh2b2lkKiBpbmZvLCBQ
YXRoQXBwbGllckZ1bmN0aW9uIGZ1bmN0aW9uKSBjb25zdAogewogICAgIFBhdGhFbGVtZW50IHBl
bGVtZW50OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9QbGF0Zm9ybVBh
dGhXaW5DRS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2Uv
UGxhdGZvcm1QYXRoV2luQ0UuaAkocmV2aXNpb24gNjk0NjQpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbmNlL1BsYXRmb3JtUGF0aFdpbkNFLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2
NCw3ICsxNjQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgYWRkRWxsaXBz
ZShjb25zdCBGbG9hdFBvaW50JiBwLCBmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBzYXIsIGZsb2F0
IGVhciwgYm9vbCBhbnRpY2xvY2t3aXNlKTsKICAgICAgICAgdm9pZCBhZGRSZWN0KGNvbnN0IEZs
b2F0UmVjdCYgcik7CiAgICAgICAgIHZvaWQgYWRkRWxsaXBzZShjb25zdCBGbG9hdFJlY3QmIHIp
OwotICAgICAgICBTdHJpbmcgZGVidWdTdHJpbmcoKSBjb25zdDsKICAgICAgICAgdm9pZCBhcHBs
eSh2b2lkKiBpbmZvLCBQYXRoQXBwbGllckZ1bmN0aW9uIGZ1bmN0aW9uKSBjb25zdDsKIAogICAg
IHByaXZhdGU6CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L1BhdGhXeC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9QYXRoV3guY3BwCShy
ZXZpc2lvbiA2OTQ2NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvUGF0aFd4LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTE3LDEyICsxMTcsNiBAQCBib29sIFBhdGg6OnN0cm9rZUNv
bnRhaW5zKFN0cm9rZVN0eWxlQXBwCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1TdHJpbmcgUGF0
aDo6ZGVidWdTdHJpbmcoKSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0
dXJuIFN0cmluZygpOwotfQotCiBQYXRoJiBQYXRoOjpvcGVyYXRvcj0oY29uc3QgUGF0aCYgcGF0
aCkKIHsgCiAgICAgKm1fcGF0aCA9ICpwYXRoLnBsYXRmb3JtUGF0aCgpOwpJbmRleDogV2ViQ29y
ZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHR2x5
cGhFbGVtZW50LmgJKHJldmlzaW9uIDY5NDY0KQorKysgV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDE2ICs3MiwxNSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNWR0dseXBoSWRlbnRpZmllciYg
b3RoZXIpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBpc1ZhbGlkID09IG90
aGVyLmlzVmFsaWQgJiYKLSAgICAgICAgICAgICAgICAgICBvcmllbnRhdGlvbiA9PSBvdGhlci5v
cmllbnRhdGlvbiAmJgotICAgICAgICAgICAgICAgICAgIGFyYWJpY0Zvcm0gPT0gb3RoZXIuYXJh
YmljRm9ybSAmJgotICAgICAgICAgICAgICAgICAgIGdseXBoTmFtZSA9PSBvdGhlci5nbHlwaE5h
bWUgJiYKLSAgICAgICAgICAgICAgICAgICBob3Jpem9udGFsQWR2YW5jZVggPT0gb3RoZXIuaG9y
aXpvbnRhbEFkdmFuY2VYICYmCi0gICAgICAgICAgICAgICAgICAgdmVydGljYWxPcmlnaW5YID09
IG90aGVyLnZlcnRpY2FsT3JpZ2luWCAmJgotICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsT3Jp
Z2luWSA9PSBvdGhlci52ZXJ0aWNhbE9yaWdpblkgJiYKLSAgICAgICAgICAgICAgICAgICB2ZXJ0
aWNhbEFkdmFuY2VZID09IG90aGVyLnZlcnRpY2FsQWR2YW5jZVkgJiYKLSAgICAgICAgICAgICAg
ICAgICBwYXRoRGF0YS5kZWJ1Z1N0cmluZygpID09IG90aGVyLnBhdGhEYXRhLmRlYnVnU3RyaW5n
KCkgJiYKLSAgICAgICAgICAgICAgICAgICBsYW5ndWFnZXMgPT0gb3RoZXIubGFuZ3VhZ2VzOwor
ICAgICAgICAgICAgcmV0dXJuIGlzVmFsaWQgPT0gb3RoZXIuaXNWYWxpZAorICAgICAgICAgICAg
ICAgICYmIG9yaWVudGF0aW9uID09IG90aGVyLm9yaWVudGF0aW9uCisgICAgICAgICAgICAgICAg
JiYgYXJhYmljRm9ybSA9PSBvdGhlci5hcmFiaWNGb3JtCisgICAgICAgICAgICAgICAgJiYgZ2x5
cGhOYW1lID09IG90aGVyLmdseXBoTmFtZQorICAgICAgICAgICAgICAgICYmIGhvcml6b250YWxB
ZHZhbmNlWCA9PSBvdGhlci5ob3Jpem9udGFsQWR2YW5jZVgKKyAgICAgICAgICAgICAgICAmJiB2
ZXJ0aWNhbE9yaWdpblggPT0gb3RoZXIudmVydGljYWxPcmlnaW5YCisgICAgICAgICAgICAgICAg
JiYgdmVydGljYWxPcmlnaW5ZID09IG90aGVyLnZlcnRpY2FsT3JpZ2luWQorICAgICAgICAgICAg
ICAgICYmIHZlcnRpY2FsQWR2YW5jZVkgPT0gb3RoZXIudmVydGljYWxBZHZhbmNlWQorICAgICAg
ICAgICAgICAgICYmIGxhbmd1YWdlcyA9PSBvdGhlci5sYW5ndWFnZXM7CiAgICAgICAgIH0KIAog
ICAgICAgICBib29sIGlzVmFsaWQgOiAxOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>