Generated banner for Beautiful Shadows
Generated logo for Beautiful Shadows

Beautiful Shadows

Meng ToCommunityCreated by Meng To

  • Skill
  • Tool integration
  • Software development
  • MIT
  • Medium risk

From the author

Apply exact Tailwind arbitrary shadow utilities for polished, layered neutral elevation. Use when compact cards, controls, panels, popovers, hero media, feature callouts, or modal-like containers need refined shadows without default Tailwind shadow scales or colored tinting.
— the description by Meng To

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

Beautiful Shadows provides a set of specific Tailwind CSS arbitrary shadow utilities designed to create refined, neutral depth for UI elements. By moving beyond default shadow scales, these utilities allow developers to apply consistent, layered elevation to components like cards, popovers, and hero media without introducing colored tints.

What it does

  • Provides specific Tailwind arbitrary shadow classes for three levels of elevation: sm, md, and lg.
  • Offers a neutral aesthetic for UI surfaces to avoid generic or blunt shadow appearances.
  • Defines clear use cases for applying different shadow strengths based on component type.
  • Establishes rules for maintaining consistent visual depth across a design system.

When to use it

  • When default Tailwind shadow scales do not meet the desired visual requirements.
  • When designing compact UI elements like form controls, pills, or small cards.
  • When creating elevated surfaces such as panels, popovers, or modal-like containers.
  • When applying depth to hero media or feature callouts.

Advantages

  • Ensures a consistent, neutral look for layered UI components.
  • Provides ready-to-use arbitrary shadow strings for immediate implementation.
  • Helps maintain visual hierarchy through distinct elevation levels.
  • Prevents common design issues like mixing incompatible shadow styles.

Usage examples

“Apply a subtle shadow to a compact form control.”
The agent provides the shadow-[0px_2px_3px_-1px_rgba(0,0,0,0.1),0px_1px_0px_0px_rgba(25,28,33,0.02),0px_0px_0px_1px_rgba(25,28,33,0.08)] utility class.
“What shadow should I use for a modal container?”
The agent recommends the Beautiful lg shadow utility for the strongest lift required by modal-like containers.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/mengto/beautiful-shadows/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip beautiful-shadows.zip -d .agents/skills

Documentation by Meng To

Beautiful Shadows

Use When

  • A surface needs polished, layered elevation.

  • Default Tailwind shadows feel too generic or blunt.

  • The design needs neutral, refined depth without colored glow.

Shadow Utilities

Use these exact Tailwind classes.

Beautiful sm

Use for compact cards, form controls, pills, and quieter surfaces.

shadow-[0px_2px_3px_-1px_rgba(0,0,0,0.1),0px_1px_0px_0px_rgba(25,28,33,0.02),0px_0px_0px_1px_rgba(25,28,33,0.08)]
Beautiful md

Use for cards, panels, popovers, and the default elevated surface style.

shadow-[0px_0px_0px_1px_rgba(0,0,0,0.06),0px_1px_1px_-0.5px_rgba(0,0,0,0.06),0px_3px_3px_-1.5px_rgba(0,0,0,0.06),_0px_6px_6px_-3px_rgba(0,0,0,0.06),0px_12px_12px_-6px_rgba(0,0,0,0.06),0px_24px_24px_-12px_rgba(0,0,0,0.06)]
Beautiful lg

Use for hero media, feature callouts, modal-like containers, and the strongest lift.

shadow-[0_2.8px_2.2px_rgba(0,_0,_0,_0.034),_0_6.7px_5.3px_rgba(0,_0,_0,_0.048),_0_12.5px_10px_rgba(0,_0,_0,_0.06),_0_22.3px_17.9px_rgba(0,_0,_0,_0.072),_0_41.8px_33.4px_rgba(0,_0,_0,_0.086),_0_100px_80px_rgba(0,_0,_0,_0.12)]

Examples

<div class="rounded-xl bg-white shadow-[0px_0px_0px_1px_rgba(0,0,0,0.06),0px_1px_1px_-0.5px_rgba(0,0,0,0.06),0px_3px_3px_-1.5px_rgba(0,0,0,0.06),_0px_6px_6px_-3px_rgba(0,0,0,0.06),0px_12px_12px_-6px_rgba(0,0,0,0.06),0px_24px_24px_-12px_rgba(0,0,0,0.06)]">
  ...
</div>

Usage Rules

  • Use Beautiful sm for compact cards, form controls, pills, and quieter surfaces.

  • Use Beautiful md for cards, panels, popovers, and the default elevated surface style.

  • Use Beautiful lg for hero media, feature callouts, modal-like containers, and the strongest lift.

  • Pair with a clean surface fill and a consistent radius.

  • Use one shadow strength per component state unless an interaction clearly changes elevation.

Avoid

  • Mixing these with default Tailwind shadow scales on the same component.

  • Tinting these shadows with strong colors; keep them neutral and refined.

  • Applying Beautiful lg to dense lists or tiny controls.

  • Stacking multiple shadow utilities on one element.

  • Using these as a substitute for clear borders in very low-contrast layouts.

Files

demo/index.html

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="neuform-sandboxed-demo" content="1">
  <meta http-equiv="Content-Security-Policy" content="default-src 'none'; connect-src 'self'; frame-src 'self'; script-src 'unsafe-inline'; style-src 'unsafe-inline'; base-uri 'none'; form-action 'none'; object-src 'none'">
  <title>Sandboxed Neuform demo</title>
  <style>
    html, body, iframe { width: 100%; height: 100%; margin: 0; border: 0; }
    body { overflow: hidden; background: #0b0b0b; }
    iframe { display: block; background: white; }
    .error { box-sizing: border-box; min-height: 100%; padding: 32px; color: #fff; font: 16px/1.5 system-ui, sans-serif; }
  </style>
</head>
<body>
  <iframe id="neuform-demo" title="Sandboxed Neuform design demo" sandbox="allow-scripts" referrerpolicy="no-referrer"></iframe>
  <script>
    const encodedHtml = "PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtU2VjdXJpdHktUG9saWN5IiBjb250ZW50PSJkZWZhdWx0LXNyYyAnbm9uZSc7IGJhc2UtdXJpICdub25lJzsgY29ubmVjdC1zcmMgJ25vbmUnOyBmb250LXNyYyBkYXRhOiBodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tOyBmb3JtLWFjdGlvbiAnbm9uZSc7IGZyYW1lLXNyYyAnbm9uZSc7IGltZy1zcmMgYmxvYjo7IG1lZGlhLXNyYyBibG9iOjsgbmF2aWdhdGUtdG8gJ25vbmUnOyBvYmplY3Qtc3JjICdub25lJzsgc2NyaXB0LXNyYyAndW5zYWZlLWlubGluZScgX19ORVVGT1JNX1JVTlRJTUVfU09VUkNFU19fOyBzdHlsZS1zcmMgJ3Vuc2FmZS1pbmxpbmUnIGh0dHBzOi8vYXBpLmZvbnRzaGFyZS5jb20gaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbTsgd29ya2VyLXNyYyAnbm9uZSciPgo8c2NyaXB0IGRhdGEtbmV1Zm9ybS1hc3NldC1ib290c3RyYXA+CigoKSA9PiB7CiAgbGV0IHJlY2VpdmVkID0gZmFsc2U7CiAgY29uc3Qgb2JqZWN0VXJscyA9IFtdOwogIGNvbnN0IHJlcGxhY2VBbGwgPSAodmFsdWUsIHJlcGxhY2VtZW50cykgPT4gewogICAgbGV0IG5leHQgPSBTdHJpbmcodmFsdWUgfHwgIiIpOwogICAgZm9yIChjb25zdCBbZmlsZSwgb2JqZWN0VXJsXSBvZiByZXBsYWNlbWVudHMpIG5leHQgPSBuZXh0LnNwbGl0KGZpbGUpLmpvaW4ob2JqZWN0VXJsKTsKICAgIHJldHVybiBuZXh0OwogIH07CiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCAoZXZlbnQpID0+IHsKICAgIGlmIChyZWNlaXZlZCB8fCBldmVudC5zb3VyY2UgIT09IHBhcmVudCB8fCBldmVudC5kYXRhPy50eXBlICE9PSAibmV1Zm9ybS1hc3NldHMtdjEiKSByZXR1cm47CiAgICByZWNlaXZlZCA9IHRydWU7CiAgICBjb25zdCByZXBsYWNlbWVudHMgPSBbXTsKICAgIGZvciAoY29uc3QgYXNzZXQgb2YgZXZlbnQuZGF0YS5hc3NldHMgfHwgW10pIHsKICAgICAgaWYgKCFhc3NldCB8fCB0eXBlb2YgYXNzZXQuZmlsZSAhPT0gInN0cmluZyIgfHwgdHlwZW9mIGFzc2V0LmJhc2U2NCAhPT0gInN0cmluZyIpIGNvbnRpbnVlOwogICAgICBjb25zdCBiaW5hcnkgPSBhdG9iKGFzc2V0LmJhc2U2NCk7CiAgICAgIGNvbnN0IGJ5dGVzID0gVWludDhBcnJheS5mcm9tKGJpbmFyeSwgKGNoYXJhY3RlcikgPT4gY2hhcmFjdGVyLmNoYXJDb2RlQXQoMCkpOwogICAgICBjb25zdCBvYmplY3RVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFtieXRlc10sIHsgdHlwZTogYXNzZXQuY29udGVudFR5cGUgfHwgImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIgfSkpOwogICAgICBvYmplY3RVcmxzLnB1c2gob2JqZWN0VXJsKTsKICAgICAgcmVwbGFjZW1lbnRzLnB1c2goW2Fzc2V0LmZpbGUsIG9iamVjdFVybF0pOwogICAgfQogICAgZm9yIChjb25zdCBlbGVtZW50IG9mIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIioiKSkgewogICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgWyJzcmMiLCAicG9zdGVyIiwgInNyY3NldCIsICJzdHlsZSJdKSB7CiAgICAgICAgY29uc3QgdmFsdWUgPSBlbGVtZW50LmdldEF0dHJpYnV0ZShuYW1lKTsKICAgICAgICBpZiAodmFsdWUpIGVsZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUsIHJlcGxhY2VBbGwodmFsdWUsIHJlcGxhY2VtZW50cykpOwogICAgICB9CiAgICB9CiAgICBmb3IgKGNvbnN0IHN0eWxlIG9mIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInN0eWxlIikpIHsKICAgICAgc3R5bGUudGV4dENvbnRlbnQgPSByZXBsYWNlQWxsKHN0eWxlLnRleHRDb250ZW50LCByZXBsYWNlbWVudHMpOwogICAgfQogIH0pOwogIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlaGlkZSIsICgpID0+IHsKICAgIGZvciAoY29uc3Qgb2JqZWN0VXJsIG9mIG9iamVjdFVybHMpIFVSTC5yZXZva2VPYmplY3RVUkwob2JqZWN0VXJsKTsKICB9LCB7IG9uY2U6IHRydWUgfSk7Cn0pKCk7Cjwvc2NyaXB0PgoKPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgogICAgPHRpdGxlPkF1cmFsaXMgLSBOZXVyYWwgQXVkaW8gRW5naW5lPC90aXRsZT4KICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9hc3NldHMvcnVudGltZS9ydW50aW1lLWNjYzg4OTRiMzQxOC1ydW50aW1lLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9hc3NldHMvcnVudGltZS9ydW50aW1lLTE2M2ViZDA4N2NmYy1pY29uaWZ5LWljb24tbWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9hc3NldHMvcnVudGltZS9ydW50aW1lLTI1MDIzYjUyMWQ3Ny10aHJlZS1taW4uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2Fzc2V0cy9ydW50aW1lL3J1bnRpbWUtMDI3MDUxZWZmYTQ3LWdzYXAtbWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9hc3NldHMvcnVudGltZS9ydW50aW1lLTY4OWNhOGRkYTQ0Yy1zY3JvbGx0cmlnZ2VyLW1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUdlaXN0OndnaHRAMzAwOzQwMDs1MDA7NjAwOzcwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CjwvaGVhZD4KPGJvZHkgY2xhc3M9ImFudGlhbGlhc2VkIHRleHQtZ3JheS05MDAgYmctd2hpdGUgb3ZlcmZsb3cteC1oaWRkZW4gbWluLWgtc2NyZWVuIGZsZXggZmxleC1jb2wgc2VsZWN0aW9uOmJnLW9yYW5nZS0xMDAgc2VsZWN0aW9uOnRleHQtb3JhbmdlLTkwMCIgc3R5bGU9ImZvbnQtZmFtaWx5OiAnR2Vpc3QnLCBzYW5zLXNlcmlmOyI+CgogICAgPCEtLSBCYWNrZ3JvdW5kIEVmZmVjdCBDb250YWluZXIgLS0+CiAgICA8ZGl2IGNsYXNzPSJmaXhlZCBpbnNldC15LTAgcmlnaHQtMCB3LVsxMjB2d10gbWQ6dy1bNzB2d10gdHJhbnNsYXRlLXgtWzEwJV0gbWQ6dHJhbnNsYXRlLXgtMCB6LTAgb3ZlcmZsb3ctaGlkZGVuIHBvaW50ZXItZXZlbnRzLW5vbmUiPgogICAgICAgIAogICAgICAgIDwhLS0gV2ViR0wgQW5pbWF0ZWQgR3JhZGllbnQgQ2FudmFzIC0tPgogICAgICAgIDxjYW52YXMgaWQ9IndlYmdsLWNhbnZhcyIgY2xhc3M9ImFic29sdXRlIGluc2V0LTAgdy1mdWxsIGgtZnVsbCI+PC9jYW52YXM+CgogICAgICAgIDwhLS0gR2xhc3MgU2xpY2VzIE92ZXJsYXkgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0iYWJzb2x1dGUgaW5zZXQtMCBmbGV4Ij4KICAgICAgICAgICAgPCEtLSBTbGljZSAxOiBTZWFtbGVzcyBibGVuZCB3aXRoIGJvZHkgYmFja2dyb3VuZCAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaC1mdWxsIGZsZXgtMSByZWxhdGl2ZSBib3JkZXItbCBib3JkZXItdHJhbnNwYXJlbnQiIHN0eWxlPSJiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LDI1NSwyNTUsMSkgMCUsIHJnYmEoMjU1LDI1NSwyNTUsMC44NSkgMTAwJSk7Ij48L2Rpdj4KCiAgICAgICAgICAgIDwhLS0gU2xpY2UgMiAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaC1mdWxsIGZsZXgtMSByZWxhdGl2ZSBib3JkZXItbCBib3JkZXItd2hpdGUvNjAgc2hhZG93LVstMTVweF8wXzMwcHhfLTEwcHhfcmdiYSgyNTUsMjU1LDI1NSwxKV0iIHN0eWxlPSJiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LDI1NSwyNTUsMC44NSksIHJnYmEoMjU1LDI1NSwyNTUsMC42NSkpOyBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTZweCk7Ij48L2Rpdj4KCiAgICAgICAgICAgIDwhLS0gU2xpY2UgMyAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaC1mdWxsIGZsZXgtMSByZWxhdGl2ZSBib3JkZXItbCBib3JkZXItd2hpdGUvNDAgc2hhZG93LVstMTVweF8wXzMwcHhfLTEwcHhfcmdiYSgyNTUsMjU1LDI1NSwwLjkpXSIgc3R5bGU9ImJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsMjU1LDI1NSwwLjY1KSwgcmdiYSgyNTUsMjU1LDI1NSwwLjQpKTsgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpOyI+PC9kaXY+CgogICAgICAgICAgICA8IS0tIFNsaWNlIDQgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImgtZnVsbCBmbGV4LTEgcmVsYXRpdmUgYm9yZGVyLWwgYm9yZGVyLXdoaXRlLzIwIHNoYWRvdy1bLTE1cHhfMF8zMHB4Xy0xMHB4X3JnYmEoMjU1LDI1NSwyNTUsMC42KV0iIHN0eWxlPSJiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LDI1NSwyNTUsMC40KSwgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSk7IGJhY2tkcm9wLWZpbHRlcjogYmx1cig2cHgpOyI+PC9kaXY+CgogICAgICAgICAgICA8IS0tIFNsaWNlIDUgKFJpZ2h0bW9zdCwgbW9zdCB0cmFuc3BhcmVudCkgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImgtZnVsbCBmbGV4LTEgcmVsYXRpdmUgYm9yZGVyLWwgYm9yZGVyLXdoaXRlLzEwIHNoYWRvdy1bLTE1cHhfMF8zMHB4Xy0xMHB4X3JnYmEoMjU1LDI1NSwyNTUsMC4zKV0iIHN0eWxlPSJiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSksIHJnYmEoMjU1LDI1NSwyNTUsMC4wMikpOyBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMnB4KTsiPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPCEtLSBNYWluIENvbnRlbnQgQ29udGFpbmVyIC0tPgogICAgPGRpdiBjbGFzcz0icmVsYXRpdmUgei0xMCB3LWZ1bGwgbWF4LXctWzg4cmVtXSBteC1hdXRvIHB4LTYgc206cHgtOCBtZDpweC0xMiBsZzpweC0xNiBmbGV4IGZsZXgtY29sIG1pbi1oLXNjcmVlbiI+CiAgICAgICAgCiAgICAgICAgPCEtLSBIZWFkZXIgLS0+CiAgICAgICAgPGhlYWRlciBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHB5LTggYW5pbS1lbGVtZW50IiBzdHlsZT0ib3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsgdHJhbnNpdGlvbjogYWxsIDAuOHMgY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSk7Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEgdGV4dC1sZyBmb250LW5vcm1hbCB0cmFja2luZy10aWdodCB0ZXh0LWdyYXktOTAwIHVwcGVyY2FzZSI+CiAgICAgICAgICAgICAgICBBVVJBTElTPHNwYW4gY2xhc3M9InRleHQtWyNlYTU4MGNdIHRleHQteGwgbGVhZGluZy1ub25lIj7CsDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8bmF2IGNsYXNzPSJoaWRkZW4gbWQ6ZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEwIHRleHQtc20gZm9udC1ub3JtYWwgdGV4dC1ncmF5LTYwMCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iaG92ZXI6dGV4dC1ncmF5LTkwMCB0cmFuc2l0aW9uLWNvbG9ycyI+UGxhdGZvcm08L2E+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iaG92ZXI6dGV4dC1ncmF5LTkwMCB0cmFuc2l0aW9uLWNvbG9ycyI+U29sdXRpb25zPC9hPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImhvdmVyOnRleHQtZ3JheS05MDAgdHJhbnNpdGlvbi1jb2xvcnMiPkRldmVsb3BlcnM8L2E+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iaG92ZXI6dGV4dC1ncmF5LTkwMCB0cmFuc2l0aW9uLWNvbG9ycyI+Q29tcGFueTwvYT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJob3Zlcjp0ZXh0LWdyYXktOTAwIHRyYW5zaXRpb24tY29sb3JzIj5Eb2NzPC9hPgogICAgICAgICAgICA8L25hdj4KCiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0idGV4dC1zbSBmb250LW5vcm1hbCB0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtZ3JheS05MDAgdHJhbnNpdGlvbi1jb2xvcnMiPlNpZ24gaW48L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvaGVhZGVyPgoKICAgICAgICA8IS0tIEhlcm8gU2VjdGlvbiAtLT4KICAgICAgICA8bWFpbiBjbGFzcz0iZmxleC0xIGZsZXggZmxleC1jb2wganVzdGlmeS1jZW50ZXIgbWF4LXctMnhsIHB0LTE2IHBiLTI0Ij4KICAgICAgICAgICAgCiAgICAgICAgICAgIDwhLS0gQmFkZ2UgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFuaW0tZWxlbWVudCBtYi04IHctbWF4IGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBweC0zLjUgcHktMS41IHRleHQteHMgZm9udC1ub3JtYWwgdGV4dC1vcmFuZ2UtNjAwIHNoYWRvdy1bMHB4XzJweF8zcHhfLTFweF9yZ2JhKDAsMCwwLDAuMSksMHB4XzFweF8wcHhfMHB4X3JnYmEoMjUsMjgsMzMsMC4wMiksMHB4XzBweF8wcHhfMXB4X3JnYmEoMjUsMjgsMzMsMC4wOCldIGJhY2tkcm9wLWJsdXItbWQiIHN0eWxlPSJjbGlwLXBhdGg6IHBvbHlnb24oOHB4IDAsIDEwMCUgMCwgMTAwJSBjYWxjKDEwMCUgLSA4cHgpLCBjYWxjKDEwMCUgLSA4cHgpIDEwMCUsIDAgMTAwJSwgMCA4cHgpOyBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHJnYmEoMjU1LDIzNywyMTMsMC42KSwgcmdiYSgyNTUsMjM3LDIxMywwLjYpKSBwYWRkaW5nLWJveCwgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZkYmE3NCwgI2ZkYTRhZikgYm9yZGVyLWJveDsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE1cHgpOyB0cmFuc2l0aW9uOiBhbGwgMC44cyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKTsiPgogICAgICAgICAgICAgICAgPGljb25pZnktaWNvbiBpY29uPSJzb2xhcjptaWNyb3Bob25lLTMtbGluZWFyIiBjbGFzcz0idGV4dC1iYXNlIiBzdHJva2Utd2lkdGg9IjEuNSI+PC9pY29uaWZ5LWljb24+CiAgICAgICAgICAgICAgICBBZHZhbmNlZCBWb2NhbCBTeW50aGVzaXMKICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8IS0tIEhlYWRsaW5lIHdpdGggTWFza2VkIFJldmVhbCAtLT4KICAgICAgICAgICAgPGgxIGNsYXNzPSJ0ZXh0LTV4bCBzbTp0ZXh0LTZ4bCBtZDp0ZXh0LTd4bCBsZzp0ZXh0LTh4bCB0ZXh0LWdyYXktOTAwIGxlYWRpbmctWzEuMDVdIGZvbnQtbGlnaHQgdHJhY2tpbmctdGlnaHRlciBncy1yZXZlYWwtY29udGFpbmVyIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmxpbmUtZmxleCBvdmVyZmxvdy1oaWRkZW4gcGItMSBwdC0xIj48c3BhbiBjbGFzcz0iZ3MtcmV2ZWFsLXdvcmQgdHJhbnNsYXRlLXktWzExMCVdIHdpbGwtY2hhbmdlLXRyYW5zZm9ybSI+Q29udmVyc2U8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImlubGluZS1mbGV4IG92ZXJmbG93LWhpZGRlbiBwYi0xIHB0LTEiPjxzcGFuIGNsYXNzPSJncy1yZXZlYWwtd29yZCB0cmFuc2xhdGUteS1bMTEwJV0gd2lsbC1jaGFuZ2UtdHJhbnNmb3JtIj5OYXR1cmFsbHkuPC9zcGFuPjwvc3Bhbj48YnI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5saW5lLWZsZXggb3ZlcmZsb3ctaGlkZGVuIHBiLTEgcHQtMSI+PHNwYW4gY2xhc3M9ImdzLXJldmVhbC13b3JkIHRyYW5zbGF0ZS15LVsxMTAlXSB3aWxsLWNoYW5nZS10cmFuc2Zvcm0iPkJleW9uZDwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5saW5lLWZsZXggb3ZlcmZsb3ctaGlkZGVuIHBiLTEgcHQtMSI+PHNwYW4gY2xhc3M9ImdzLXJldmVhbC13b3JkIHRyYW5zbGF0ZS15LVsxMTAlXSB3aWxsLWNoYW5nZS10cmFuc2Zvcm0iPkJvdW5kYXJpZXMuPC9zcGFuPjwvc3Bhbj48YnI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5saW5lLWZsZXggb3ZlcmZsb3ctaGlkZGVuIHBiLTEgcHQtMSI+PHNwYW4gY2xhc3M9ImdzLXJldmVhbC13b3JkIHRyYW5zbGF0ZS15LVsxMTAlXSB3aWxsLWNoYW5nZS10cmFuc2Zvcm0gdGV4dC10cmFuc3BhcmVudCBiZy1jbGlwLXRleHQgYmctZ3JhZGllbnQtdG8tciBmcm9tLVsjZWE1ODBjXSB0by1bI2UxMWQ0OF0iPkluZmluaXRlIFNjYWxlLjwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgIDwvaDE+CgogICAgICAgICAgICA8IS0tIFN1YmhlYWRsaW5lIC0tPgogICAgICAgICAgICA8cCBjbGFzcz0iYW5pbS1lbGVtZW50IG10LTcgdGV4dC1iYXNlIG1kOnRleHQtbGcgdGV4dC1ncmF5LTYwMCBsZWFkaW5nLXJlbGF4ZWQgbWF4LXctWzI4cmVtXSIgc3R5bGU9Im9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNXB4KTsgdHJhbnNpdGlvbjogYWxsIDAuOHMgY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSk7IHRyYW5zaXRpb24tZGVsYXk6IDAuM3M7Ij4KICAgICAgICAgICAgICAgIEdlbmVyYXRlIGhpZ2hseSByZWFsaXN0aWMgaHVtYW4gYXVkaW8gaW5zdGFudGx5LCByZXBsaWNhdGluZyB2b2NhbCBzaWduYXR1cmVzIHdpdGggc3R1bm5pbmcgcHJlY2lzaW9uLiBFbWJlZCBzbW9vdGhseSBpbnRvIGFwcGxpY2F0aW9ucywgbWVkaWEsIGFuZCBpbnRlcmFjdGl2ZSBpbnRlcmZhY2VzLiBTd2lmdC4gUHJpdmF0ZS4gQnJvYWRjYXN0LXJlYWR5LgogICAgICAgICAgICA8L3A+CgogICAgICAgICAgICA8IS0tIENUQSBCdXR0b25zIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbmltLWVsZW1lbnQgbXQtMTAgZmxleCBmbGV4LXdyYXAgaXRlbXMtY2VudGVyIGdhcC00IiBzdHlsZT0ib3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE1cHgpOyB0cmFuc2l0aW9uOiBhbGwgMC44cyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKTsgdHJhbnNpdGlvbi1kZWxheTogMC40czsiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtMiBiZy1bIzFjMWMxZV0gcHgtNyBweS0zLjUgdGV4dC1zbSBmb250LW5vcm1hbCB0ZXh0LXdoaXRlIGhvdmVyOmJnLWJsYWNrIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCBzaGFkb3ctWzBweF8wcHhfMHB4XzFweF9yZ2JhKDAsMCwwLDAuMDYpLDBweF8xcHhfMXB4Xy0wLjVweF9yZ2JhKDAsMCwwLDAuMDYpLDBweF8zcHhfM3B4Xy0xLjVweF9yZ2JhKDAsMCwwLDAuMDYpLF8wcHhfNnB4XzZweF8tM3B4X3JnYmEoMCwwLDAsMC4wNiksMHB4XzEycHhfMTJweF8tNnB4X3JnYmEoMCwwLDAsMC4wNiksMHB4XzI0cHhfMjRweF8tMTJweF9yZ2JhKDAsMCwwLDAuMDYpXSBob3ZlcjotdHJhbnNsYXRlLXktMC41IiBzdHlsZT0iY2xpcC1wYXRoOiBwb2x5Z29uKDEycHggMCwgMTAwJSAwLCAxMDAlIGNhbGMoMTAwJSAtIDEycHgpLCBjYWxjKDEwMCUgLSAxMnB4KSAxMDAlLCAwIDEwMCUsIDAgMTJweCk7Ij4KICAgICAgICAgICAgICAgICAgICBTdGFydCBidWlsZGluZyB0b2RheQogICAgICAgICAgICAgICAgICAgIDxpY29uaWZ5LWljb24gaWNvbj0ic29sYXI6YXJyb3ctcmlnaHQtdXAtbGluZWFyIiBjbGFzcz0idGV4dC1sZyBvcGFjaXR5LTgwIiBzdHJva2Utd2lkdGg9IjEuNSI+PC9pY29uaWZ5LWljb24+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJhY2tkcm9wLWJsdXItbWQgcHgtNyBweS0zLjUgdGV4dC1zbSBmb250LW5vcm1hbCB0ZXh0LW9yYW5nZS02MDAgaG92ZXI6dGV4dC1vcmFuZ2UtNzAwIGhvdmVyOi10cmFuc2xhdGUteS0wLjUgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwIHNoYWRvdy1bMHB4XzJweF8zcHhfLTFweF9yZ2JhKDAsMCwwLDAuMSksMHB4XzFweF8wcHhfMHB4X3JnYmEoMjUsMjgsMzMsMC4wMiksMHB4XzBweF8wcHhfMXB4X3JnYmEoMjUsMjgsMzMsMC4wOCldIiBzdHlsZT0iY2xpcC1wYXRoOiBwb2x5Z29uKDEycHggMCwgMTAwJSAwLCAxMDAlIGNhbGMoMTAwJSAtIDEycHgpLCBjYWxjKDEwMCUgLSAxMnB4KSAxMDAlLCAwIDEwMCUsIDAgMTJweCk7IGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgyNTUsMjU1LDI1NSwwLjYpLCByZ2JhKDI1NSwyNTUsMjU1LDAuNikpIHBhZGRpbmctYm94LCBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZmRiYTc0LCAjZmRhNGFmKSBib3JkZXItYm94OyI+CiAgICAgICAgICAgICAgICAgICAgQ29udGFjdCBFbnRlcnByaXNlCiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvbWFpbj4KCiAgICAgICAgPCEtLSBCb3R0b20gRmVhdHVyZXMgUm93IC0tPgogICAgICAgIDxkaXYgY2xhc3M9ImFuaW0tZWxlbWVudCBwYi0xMiBwdC04IGZsZXggZmxleC1jb2wgc206ZmxleC1yb3cgZ2FwLTEwIHNtOmdhcC0xNCBib3JkZXItdCBib3JkZXItdHJhbnNwYXJlbnQiIHN0eWxlPSJvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTVweCk7IHRyYW5zaXRpb246IGFsbCAwLjhzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpOyB0cmFuc2l0aW9uLWRlbGF5OiAwLjVzOyI+CiAgICAgICAgICAgIAogICAgICAgICAgICA8IS0tIEZlYXR1cmUgMSAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTQgZ3JvdXAgY3Vyc29yLWRlZmF1bHQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBoLTExIHctMTEgc2hyaW5rLTAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJnLW9yYW5nZS01MCB0ZXh0LW9yYW5nZS01MDAgZ3JvdXAtaG92ZXI6c2NhbGUtMTEwIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMCBzaGFkb3ctWzBweF8ycHhfM3B4Xy0xcHhfcmdiYSgwLDAsMCwwLjEpLDBweF8xcHhfMHB4XzBweF9yZ2JhKDI1LDI4LDMzLDAuMDIpLDBweF8wcHhfMHB4XzFweF9yZ2JhKDI1LDI4LDMzLDAuMDgpXSIgc3R5bGU9ImNsaXAtcGF0aDogcG9seWdvbig4cHggMCwgMTAwJSAwLCAxMDAlIGNhbGMoMTAwJSAtIDhweCksIGNhbGMoMTAwJSAtIDhweCkgMTAwJSwgMCAxMDAlLCAwIDhweCk7Ij4KICAgICAgICAgICAgICAgICAgICA8aWNvbmlmeS1pY29uIGljb249InNvbGFyOnNlcnZlci1saW5lYXIiIGNsYXNzPSJ0ZXh0LXhsIiBzdHJva2Utd2lkdGg9IjEuNSI+PC9pY29uaWZ5LWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtbm9ybWFsIHRleHQtZ3JheS05MDAiPlNlYW1sZXNzIFN0cmVhbWluZzwvaDM+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCBtdC0wLjUiPkluc3RhbnQgdm9pY2UgZ2VuZXJhdGlvbjwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwhLS0gRmVhdHVyZSAyIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNCBncm91cCBjdXJzb3ItZGVmYXVsdCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGgtMTEgdy0xMSBzaHJpbmstMCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYmctb3JhbmdlLTUwIHRleHQtb3JhbmdlLTUwMCBncm91cC1ob3ZlcjpzY2FsZS0xMTAgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIHNoYWRvdy1bMHB4XzJweF8zcHhfLTFweF9yZ2JhKDAsMCwwLDAuMSksMHB4XzFweF8wcHhfMHB4X3JnYmEoMjUsMjgsMzMsMC4wMiksMHB4XzBweF8wcHhfMXB4X3JnYmEoMjUsMjgsMzMsMC4wOCldIiBzdHlsZT0iY2xpcC1wYXRoOiBwb2x5Z29uKDhweCAwLCAxMDAlIDAsIDEwMCUgY2FsYygxMDAlIC0gOHB4KSwgY2FsYygxMDAlIC0gOHB4KSAxMDAlLCAwIDEwMCUsIDAgOHB4KTsiPgogICAgICAgICAgICAgICAgICAgIDxpY29uaWZ5LWljb24gaWNvbj0ic29sYXI6c291bmR3YXZlLWxpbmVhciIgY2xhc3M9InRleHQteGwiIHN0cm9rZS13aWR0aD0iMS41Ij48L2ljb25pZnktaWNvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtc20gZm9udC1ub3JtYWwgdGV4dC1ncmF5LTkwMCI+Vm9jYWwgQ2xvbmluZzwvaDM+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCBtdC0wLjUiPlN0dWRpby1ncmFkZSBwcmVjaXNpb248L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8IS0tIEZlYXR1cmUgMyAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTQgZ3JvdXAgY3Vyc29yLWRlZmF1bHQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBoLTExIHctMTEgc2hyaW5rLTAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJnLW9yYW5nZS01MCB0ZXh0LW9yYW5nZS01MDAgZ3JvdXAtaG92ZXI6c2NhbGUtMTEwIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMCBzaGFkb3ctWzBweF8ycHhfM3B4Xy0xcHhfcmdiYSgwLDAsMCwwLjEpLDBweF8xcHhfMHB4XzBweF9yZ2JhKDI1LDI4LDMzLDAuMDIpLDBweF8wcHhfMHB4XzFweF9yZ2JhKDI1LDI4LDMzLDAuMDgpXSIgc3R5bGU9ImNsaXAtcGF0aDogcG9seWdvbig4cHggMCwgMTAwJSAwLCAxMDAlIGNhbGMoMTAwJSAtIDhweCksIGNhbGMoMTAwJSAtIDhweCkgMTAwJSwgMCAxMDAlLCAwIDhweCk7Ij4KICAgICAgICAgICAgICAgICAgICA8aWNvbmlmeS1pY29uIGljb249InNvbGFyOnNoaWVsZC1jaGVjay1saW5lYXIiIGNsYXNzPSJ0ZXh0LXhsIiBzdHJva2Utd2lkdGg9IjEuNSI+PC9pY29uaWZ5LWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtbm9ybWFsIHRleHQtZ3JheS05MDAiPkVudGVycHJpc2UtUmVhZHk8L2gzPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS01MDAgbXQtMC41Ij5GbGF3bGVzcyBjb21tZXJjaWFsIHVwdGltZTwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8IS0tIFNjcmlwdHMgZm9yIFdlYkdMIGFuZCBBbmltYXRpb25zIC0tPgogICAgPHNjcmlwdD4KICAgICAgICAvLyAtLS0gV2ViR0wgQmFja2dyb3VuZCBBbmltYXRpb24gKFdhcm0gUGFsZXR0ZSBSZW1peCkgLS0tCiAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dlYmdsLWNhbnZhcycpOwogICAgICAgIGNvbnN0IHJlbmRlcmVyID0gbmV3IFRIUkVFLldlYkdMUmVuZGVyZXIoeyBjYW52YXMsIGFscGhhOiB0cnVlLCBhbnRpYWxpYXM6IHRydWUgfSk7CiAgICAgICAgY29uc3Qgc2NlbmUgPSBuZXcgVEhSRUUuU2NlbmUoKTsKICAgICAgICBjb25zdCBjYW1lcmEgPSBuZXcgVEhSRUUuT3J0aG9ncmFwaGljQ2FtZXJhKC0xLCAxLCAxLCAtMSwgMCwgMSk7CiAgICAgICAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSgyLCAyKTsKCiAgICAgICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoewogICAgICAgICAgICB1bmlmb3JtczogewogICAgICAgICAgICAgICAgdV90aW1lOiB7IHZhbHVlOiAwLjAgfSwKICAgICAgICAgICAgICAgIHVfcmVzb2x1dGlvbjogeyB2YWx1ZTogbmV3IFRIUkVFLlZlY3RvcjIoKSB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHZlcnRleFNoYWRlcjogYAogICAgICAgICAgICAgICAgdm9pZCBtYWluKCkgewogICAgICAgICAgICAgICAgICAgIGdsX1Bvc2l0aW9uID0gdmVjNChwb3NpdGlvbiwgMS4wKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgYCwKICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IGAKICAgICAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV90aW1lOwogICAgICAgICAgICAgICAgdW5pZm9ybSB2ZWMyIHVfcmVzb2x1dGlvbjsKCiAgICAgICAgICAgICAgICB2ZWMzIHBlcm11dGUodmVjMyB4KSB7IHJldHVybiBtb2QoKCh4KjM0LjApKzEuMCkqeCwgMjg5LjApOyB9CiAgICAgICAgICAgICAgICBmbG9hdCBzbm9pc2UodmVjMiB2KXsKICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWM0IEMgPSB2ZWM0KDAuMjExMzI0ODY1NDA1MTg3LCAwLjM2NjAyNTQwMzc4NDQzOSwgLTAuNTc3MzUwMjY5MTg5NjI2LCAwLjAyNDM5MDI0MzkwMjQzOSk7CiAgICAgICAgICAgICAgICAgICAgdmVjMiBpICA9IGZsb29yKHYgKyBkb3QodiwgQy55eSkgKTsKICAgICAgICAgICAgICAgICAgICB2ZWMyIHgwID0gdiAtICAgaSArIGRvdChpLCBDLnh4KTsKICAgICAgICAgICAgICAgICAgICB2ZWMyIGkxOyBpMSA9ICh4MC54ID4geDAueSkgPyB2ZWMyKDEuMCwgMC4wKSA6IHZlYzIoMC4wLCAxLjApOwogICAgICAgICAgICAgICAgICAgIHZlYzQgeDEyID0geDAueHl4eSArIEMueHh6ejsgeDEyLnh5IC09IGkxOwogICAgICAgICAgICAgICAgICAgIGkgPSBtb2QoaSwgMjg5LjApOwogICAgICAgICAgICAgICAgICAgIHZlYzMgcCA9IHBlcm11dGUoIHBlcm11dGUoIGkueSArIHZlYzMoMC4wLCBpMS55LCAxLjAgKSkgKyBpLnggKyB2ZWMzKDAuMCwgaTEueCwgMS4wICkpOwogICAgICAgICAgICAgICAgICAgIHZlYzMgbSA9IG1heCgwLjUgLSB2ZWMzKGRvdCh4MCx4MCksIGRvdCh4MTIueHkseDEyLnh5KSwgZG90KHgxMi56dyx4MTIuencpKSwgMC4wKTsKICAgICAgICAgICAgICAgICAgICBtID0gbSptIDsgbSA9IG0qbSA7CiAgICAgICAgICAgICAgICAgICAgdmVjMyB4ID0gMi4wICogZnJhY3QocCAqIEMud3d3KSAtIDEuMDsgdmVjMyBoID0gYWJzKHgpIC0gMC41OwogICAgICAgICAgICAgICAgICAgIHZlYzMgb3ggPSBmbG9vcih4ICsgMC41KTsgdmVjMyBhMCA9IHggLSBveDsKICAgICAgICAgICAgICAgICAgICBtICo9IDEuNzkyODQyOTE0MDAxNTkgLSAwLjg1MzczNDcyMDk1MzE0ICogKCBhMCphMCArIGgqaCApOwogICAgICAgICAgICAgICAgICAgIHZlYzMgZzsgZy54ICA9IGEwLnggICogeDAueCAgKyBoLnggICogeDAueTsKICAgICAgICAgICAgICAgICAgICBnLnl6ID0gYTAueXogKiB4MTIueHogKyBoLnl6ICogeDEyLnl3OwogICAgICAgICAgICAgICAgICAgIHJldHVybiAxMzAuMCAqIGRvdChtLCBnKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB2b2lkIG1haW4oKSB7CiAgICAgICAgICAgICAgICAgICAgdmVjMiB1diA9IGdsX0ZyYWdDb29yZC54eSAvIHVfcmVzb2x1dGlvbi54eTsKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBmbG9hdCBuID0gc25vaXNlKHV2ICogMi41ICsgdmVjMih1X3RpbWUgKiAwLjQsIHVfdGltZSAqIDAuNSkpOwogICAgICAgICAgICAgICAgICAgIGZsb2F0IG4yID0gc25vaXNlKHV2ICogMS41IC0gdmVjMih1X3RpbWUgKiAwLjMsIHVfdGltZSAqIDAuMikpOwogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIC8vIFdhcm0gUGFsZXR0ZSBDb2xvcnMKICAgICAgICAgICAgICAgICAgICB2ZWMzIGNvbG9yT3JhbmdlID0gdmVjMygwLjkxLCAwLjM0LCAwLjA0KTsgIC8vIEludGVuc2Ugb3JhbmdlCiAgICAgICAgICAgICAgICAgICAgdmVjMyBjb2xvclJvc2UgPSB2ZWMzKDAuODgsIDAuMTEsIDAuMjgpOyAgICAvLyBCcmlnaHQgcm9zZQogICAgICAgICAgICAgICAgICAgIHZlYzMgY29sb3JEZWVwID0gdmVjMygxLjAsIDAuODUsIDAuNjUpOyAgICAgLy8gRGVlcCBibGVuZGluZyB3YXJtIGJhc2UKCiAgICAgICAgICAgICAgICAgICAgZmxvYXQgbWl4VmFsID0gc21vb3Roc3RlcCgtMC42LCAwLjgsIG4pOwogICAgICAgICAgICAgICAgICAgIHZlYzMgZmluYWxDb2xvciA9IG1peChjb2xvckRlZXAsIGNvbG9yT3JhbmdlLCBtaXhWYWwpOwogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIGZsb2F0IG1peFZhbDIgPSBzbW9vdGhzdGVwKC0wLjQsIDAuOSwgbjIpOwogICAgICAgICAgICAgICAgICAgIGZpbmFsQ29sb3IgPSBtaXgoZmluYWxDb2xvciwgY29sb3JSb3NlLCBtaXhWYWwyICogMC44KTsKCiAgICAgICAgICAgICAgICAgICAgZmxvYXQgYWxwaGFGYWRlID0gc21vb3Roc3RlcCgtMC4yLCAwLjYsIHV2LngpOwogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoZmluYWxDb2xvciwgYWxwaGFGYWRlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgYAogICAgICAgIH0pOwoKICAgICAgICBjb25zdCBtZXNoID0gbmV3IFRIUkVFLk1lc2goZ2VvbWV0cnksIG1hdGVyaWFsKTsKICAgICAgICBzY2VuZS5hZGQobWVzaCk7CgogICAgICAgIGZ1bmN0aW9uIHJlc2l6ZUNhbnZhcygpIHsKICAgICAgICAgICAgcmVuZGVyZXIuc2V0U2l6ZSh3aW5kb3cuaW5uZXJXaWR0aCwgd2luZG93LmlubmVySGVpZ2h0KTsKICAgICAgICAgICAgbWF0ZXJpYWwudW5pZm9ybXMudV9yZXNvbHV0aW9uLnZhbHVlLnNldCh3aW5kb3cuaW5uZXJXaWR0aCwgd2luZG93LmlubmVySGVpZ2h0KTsKICAgICAgICB9CiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHJlc2l6ZUNhbnZhcyk7CiAgICAgICAgcmVzaXplQ2FudmFzKCk7CgogICAgICAgIGZ1bmN0aW9uIGFuaW1hdGVXZWJHTCh0aW1lKSB7CiAgICAgICAgICAgIG1hdGVyaWFsLnVuaWZvcm1zLnVfdGltZS52YWx1ZSA9IHRpbWUgKiAwLjAwMjsKICAgICAgICAgICAgcmVuZGVyZXIucmVuZGVyKHNjZW5lLCBjYW1lcmEpOwogICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYW5pbWF0ZVdlYkdMKTsKICAgICAgICB9CiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGFuaW1hdGVXZWJHTCk7CgogICAgICAgIC8vIC0tLSBHU0FQIE1hc2tlZCBSZXZlYWwgJiBzdGFuZGFyZCBlbnRyYW5jZSBhbmltYXRpb25zIC0tLQogICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCAoKSA9PiB7CiAgICAgICAgICAgIGdzYXAucmVnaXN0ZXJQbHVnaW4oU2Nyb2xsVHJpZ2dlcik7CgogICAgICAgICAgICAvLyBIZWFkbGluZSBNYXNrZWQgUmV2ZWFsCiAgICAgICAgICAgIGdzYXAudG8oJy5ncy1yZXZlYWwtd29yZCcsIHsKICAgICAgICAgICAgICAgIHk6ICcwJScsCiAgICAgICAgICAgICAgICBlYXNlOiAncG93ZXI0Lm91dCcsCiAgICAgICAgICAgICAgICBkdXJhdGlvbjogMS4yLAogICAgICAgICAgICAgICAgc3RhZ2dlcjogMC4xLAogICAgICAgICAgICAgICAgc2Nyb2xsVHJpZ2dlcjogewogICAgICAgICAgICAgICAgICAgIHRyaWdnZXI6ICcuZ3MtcmV2ZWFsLWNvbnRhaW5lcicsCiAgICAgICAgICAgICAgICAgICAgc3RhcnQ6ICd0b3AgODUlJywKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAvLyBTdGFuZGFyZCBvcGFjaXR5IGZhZGVzCiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmFuaW0tZWxlbWVudCcpOwogICAgICAgICAgICBlbGVtZW50cy5mb3JFYWNoKChlbCwgaW5kZXgpID0+IHsKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgICAgICAgIGVsLnN0eWxlLm9wYWNpdHkgPSAnMSc7CiAgICAgICAgICAgICAgICAgICAgZWwuc3R5bGUudHJhbnNmb3JtID0gJ3RyYW5zbGF0ZVkoMCknOwogICAgICAgICAgICAgICAgfSwgMTAwICsgKGluZGV4ICogODApKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICA8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+Cg==";
    const assetFiles = [];
    const runtimeFiles = ["../../../../assets/runtime/runtime-027051effa47-gsap-min.js","../../../../assets/runtime/runtime-163ebd087cfc-iconify-icon-min.js","../../../../assets/runtime/runtime-25023b521d77-three-min.js","../../../../assets/runtime/runtime-689ca8dda44c-scrolltrigger-min.js","../../../../assets/runtime/runtime-ccc8894b3418-runtime.js"];
    const frame = document.getElementById("neuform-demo");
    const decodeBytes = (value) => Uint8Array.from(atob(value), (character) => character.charCodeAt(0));
    const decode = (value) => new TextDecoder().decode(decodeBytes(value));
    const encodeBytes = (bytes) => {
      let binary = "";
      for (let index = 0; index < bytes.length; index += 32768) {
        binary += String.fromCharCode(...bytes.subarray(index, index + 32768));
      }
      return btoa(binary);
    };
    const mediaTypes = {
      avif: "image/avif",
      gif: "image/gif",
      jpg: "image/jpeg",
      jpeg: "image/jpeg",
      mp4: "video/mp4",
      png: "image/png",
      webm: "video/webm",
      webp: "image/webp"
    };
    const loadAsset = async (file) => {
      const response = await fetch(file, { cache: "no-store", credentials: "omit", redirect: "error" });
      if (!response.ok) throw new Error("Could not load local demo asset: " + file);
      const extension = file.split(".").pop().toLowerCase();
      const contentType = mediaTypes[extension] || "application/octet-stream";
      const bytes = new Uint8Array(await response.arrayBuffer());
      return { base64: encodeBytes(bytes), contentType, file, kind: "asset" };
    };
    Promise.allSettled(assetFiles.map(loadAsset)).then((results) => {
      const runtimeSources = runtimeFiles.map((file) => new URL(file, location.href).href).join(" ");
      const source = decode(encodedHtml).replace("__NEUFORM_RUNTIME_SOURCES__", runtimeSources);
      const mediaAssets = [];
      for (const result of results) {
        if (result.status !== "fulfilled") continue;
        mediaAssets.push(result.value);
      }
      frame.addEventListener("load", () => {
        frame.contentWindow.postMessage({ type: "neuform-assets-v1", assets: mediaAssets }, "*");
      }, { once: true });
      frame.srcdoc = source;
    }).catch((error) => {
      document.body.innerHTML = '<div class="error">Unable to load this sandboxed demo.</div>';
      console.error(error);
    });
  </script>
</body>
</html>

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Security

What our scanner noticed· Medium risk

  • Large base64-encoded blobs

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
Meng To
Publisher
Meng To (Community)
Source
MengTo/Skills · agent-skills/web-design/beautiful-shadows · commit 5ea1661
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Meng To.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download beautiful-shadows.zip