Codercat Studio | Cookbook
This cookbook contains a collection of useful HoudiniFX node setups. All examples are stored using
the new Houdini recipe API and can be copied from this website directly into Houdini using our
simple shelf tools. We also periodically make a backup of the recipes
here.
Copy a snippet of interest from this page, then use Paste on the "Cookbook" shelf to paste it in.
If you would like to share a recipe, click the Create button and paste in the output of the "Copy"
shelf tool. Note that you must be logged in to do so. If you have any questions or comments, feel
free to reach out at codercatclub@gmail.com.
Get new recipes updates over RSS feed.
⚠️ Changelog
11.20.2025 - We updated the copy shelf tool to include the Houdini version, which is also
visible on the recipes listing. Please update your shelf tools using the Python one-liner from the
Recommended Install section.
📦 Recommended Install
To install Cookbook shelf tools copy this code to Houdini Python Shell and press Enter. You
will see Cookbook shelf apper on the top panel.
To open Python Shell press Alt-Shift-P or go to main menu
Window > Python Shell.
📂 Alternative Manual Install
Replace USERNAME and X.Y with your account name and Houdini version.
Restart Houdini.
? About this project
Motivation and Goals
We created this Houdini Cookbook because:
-
We needed a way to quickly share and store small Houdini node setups. Previously, we
attempted to create HDA libraries, but it was too cumbersome for our small team.
-
We believe there is a better way to share Houdini examples than by sharing entire
Houdini files.
- We enjoy sharing our small setups with the Houdini community.
-
We strongly believe in the idea of "Own Your Data," therefore we do not hold any
published recipes hostage. All recipes are backed up once a day to a public Git
repository
here. Even if this service goes down, anyone can still download the full collection and use
it directly with the Cookbook shelf tool or by using the two Python functions described
below.
-
We also embrace the idea of decentralization, and we are considering open sourcing the
Cookbook web service so that anyone can run it locally with their own collection or as
their own public webpage. Let us know if this is something that interests you.
How Does It Work
In Houdini 20.5, SideFX introduced a
new Recipe system
that allows users to save collections of nodes into human-readable structured text files
(JSON). Within this, they added a new collection of Python utilities (hou.data) that allows
for creating and loading recipes programmatically.
In particular, the Cookbook shelf tools use
hou.data.selectedItemsAsData(...) for copying nodes and
hou.createItemsFromData(...) for pasting.
For this web service, we use the Go programming language and store all submitted recipes in
plain text JSON files.
Building up from the unfurling stem example, this snippet assembles the stems into a flower pod. The animation includes a rig attribute wrangle as the main control, and a kinefx secondary motion for extra livity.
Nov 08, 2025 | 20.5.584 | animation
Cooked By: snay
ewogICAgIkFSUkFOR0VNRU5UX0FOSU1BVElPTl9DT05UUk9MUyI6IHsKICAgICAgICAiY29sb3IiOiBbCiAgICAgICAgICAgIDAuNTgsCiAgICAgICAgICAgIDAuMjEsCiAgICAgICAgICAgIDAuNDcKICAgICAgICBdLAogICAgICAgICJmbGFncyI6IHsKICAgICAgICAgICAgImNvbG9yZGVmYXVsdCI6IGZhbHNlCiAgICAgICAgfSwKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJzZXRfcGFyYW1zIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiZmluYWxBbmdsZSI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogImxpbmVhciIsCiAgICAgICAgICAgICAgICAgICAgInBvcyI6IDAuMzk0MTYwNTk4NTE2NDY0MjMsCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogMAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogImxpbmVhciIsCiAgICAgICAgICAgICAgICAgICAgInBvcyI6IDAuOTE5NzA4MDEzNTM0NTQ1OSwKICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAxLjU0OTAwMDAyNDc5NTUzMjIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm9wZW5BbmdsZSI6IC0xLjM2LAogICAgICAgICAgICAicHJvZ3Jlc3MiOiB7CiAgICAgICAgICAgICAgICAiZXh0cmFwb2xhdGlvbl9hZnRlciI6ICJleHRlbmQiLAogICAgICAgICAgICAgICAgImV4dHJhcG9sYXRpb25fYmVmb3JlIjogImV4dGVuZCIsCiAgICAgICAgICAgICAgICAia2V5ZnJhbWVzIjogWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImFjY2VsIjogMS4xMjUsCiAgICAgICAgICAgICAgICAgICAgICAgICJleHByZXNzaW9uIjogImJlemllcigpIiwKICAgICAgICAgICAgICAgICAgICAgICAgImZyYW1lIjogMSwKICAgICAgICAgICAgICAgICAgICAgICAgImluYWNjZWwiOiAwLjMzMzMzMzMzMzMzMzMzMzMsCiAgICAgICAgICAgICAgICAgICAgICAgICJzbG9wZSI6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IDEuMjkKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImFjY2VsIjogMC4zMzMzMzMzMzMzMzMzMzMzLAogICAgICAgICAgICAgICAgICAgICAgICAiZXhwcmVzc2lvbiI6ICJiZXppZXIoKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJmcmFtZSI6IDgyLAogICAgICAgICAgICAgICAgICAgICAgICAiaW5hY2NlbCI6IDEuMTI1LAogICAgICAgICAgICAgICAgICAgICAgICAic2xvcGUiOiAwLAogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAtMC4zMQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgInByb2dyZXNzU3RlcCI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogImxpbmVhciIsCiAgICAgICAgICAgICAgICAgICAgInBvcyI6IDAsCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogMAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogImxpbmVhciIsCiAgICAgICAgICAgICAgICAgICAgInBvcyI6IDEsCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogMQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAicm90YXRlTWF4IjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJpbnRlcnAiOiAibGluZWFyIiwKICAgICAgICAgICAgICAgICAgICAicG9zIjogMCwKICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAwCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJpbnRlcnAiOiAibGluZWFyIiwKICAgICAgICAgICAgICAgICAgICAicG9zIjogMC4xODkxODkxOTU2MzI5MzQ1NywKICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAwLjAxNjA4MTA4MTcwMzMwNTI0NAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogImxpbmVhciIsCiAgICAgICAgICAgICAgICAgICAgInBvcyI6IDEsCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogMC4wODUwMDAwMDA4OTQwNjk2NwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAic2NhbGUiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImludGVycCI6ICJsaW5lYXIiLAogICAgICAgICAgICAgICAgICAgICJwb3MiOiAwLAogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IDEuNzAwMDAwMDQ3NjgzNzE1OAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogImxpbmVhciIsCiAgICAgICAgICAgICAgICAgICAgInBvcyI6IDAuOTkyNzAwNzU1NTk2MTYwOSwKICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAwLjQ1MzMzMzM3NzgzODEzNDc3CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJzbmlwcGV0IjogInZAdXAgPSBub3JtYWxpemUodkBQKTtcbnZATiA9IHswLDEsMH07XG52QHVwICs9IDAuMSpjdXJsbm9pc2UoMTAwLjAgKiB2QFApO1xuXG5mbG9hdCBwcm9ncmVzcyA9IGNoZihcInByb2dyZXNzXCIpO1xuZmxvYXQgb3BlbkFuZ2xlID0gY2hmKFwib3BlbkFuZ2xlXCIpO1xuXG5cbnByb2dyZXNzID0gbWF4KHByb2dyZXNzIC0gZkBkZWxheSwwKTtcbmZAbGVhZlByb2dyZXNzID0gY2xhbXAocHJvZ3Jlc3MsMCwxKTtcblxuXG5tYXRyaXggbSA9IGlkZW50KCk7XG5yb3RhdGUobSwgLW9wZW5BbmdsZSAqZkBmaW5hbEFuZ2xlLCBjcm9zcyh2QE4sIHZAdXApKTtcbnZATiA9IG0qIHZATjtcblxuZkBpZCA9IEBwdG51bTtcbiIKICAgICAgICB9LAogICAgICAgICJwYXJtdGVtcGxhdGVzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaW5zZXJ0X2FmdGVyIjogInZleF90aHJlYWRqb2JzaXplIiwKICAgICAgICAgICAgICAgICJwYXJtdGVtcGxhdGVzIjogewogICAgICAgICAgICAgICAgICAgICJmb2xkZXJfZ2VuZXJhdGVkcGFybXNfc25pcHBldCI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIkdlbmVyYXRlZCBDaGFubmVsIFBhcmFtZXRlcnMiLAogICAgICAgICAgICAgICAgICAgICAgICAicGFybXRlbXBsYXRlcyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaW5hbEFuZ2xlIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJGaW5hbGFuZ2xlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2NyaXB0X2NhbGxiYWNrX2xhbmd1YWdlIjogImhzY3JpcHQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaG93X2NvbnRyb2xzIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJyYW1wX2Zsb2F0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcGVuQW5nbGUiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIk9wZW5hbmdsZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1heF92YWx1ZSI6IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJmbG9hdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvZ3Jlc3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIlByb2dyZXNzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWF4X3ZhbHVlIjogMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2NyaXB0X2NhbGxiYWNrX2xhbmd1YWdlIjogImhzY3JpcHQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImZsb2F0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm9ncmVzc1N0ZXAiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIlByb2dyZXNzc3RlcCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hvd19jb250cm9scyI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAicmFtcF9mbG9hdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicm90YXRlTWF4IjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJSb3RhdGVtYXgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzY3JpcHRfY2FsbGJhY2tfbGFuZ3VhZ2UiOiAiaHNjcmlwdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNob3dfY29udHJvbHMiOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInJhbXBfZmxvYXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInNjYWxlIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJTY2FsZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hvd19jb250cm9scyI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAicmFtcF9mbG9hdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZ3JvdXBfdHlwZSI6ICJzaW1wbGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInNpZGVmeDo6bG9vayI6ICJibGFuayIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiZm9sZGVyX3NpbXBsZSIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMy43MSwKICAgICAgICAgICAgMC4xMwogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiYXR0cmlid3JhbmdsZSIKICAgIH0sCiAgICAiX19jb29rYm9va01ldGEiOiB7CiAgICAgICAgImNvbnRleHQiOiAic29wIiwKICAgICAgICAidmVyc2lvbiI6ICIyMC41LjU4NCIKICAgIH0sCiAgICAiYXBwbHlfcm90YXRpb25zIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImNhbGN1bGF0ZV9yb3RhdGlvbnMiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJzbmlwcGV0IjogInByZXJvdGF0ZSg0QGxvY2FsdHJhbnNmb3JtLGZAcm90YXRlQW1vdW50LCB7MSwwLDB9KTtcbiIKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMy41MSwKICAgICAgICAgICAgLTUuNjQKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImtpbmVmeDo6cmlnYXR0cmlid3JhbmdsZSIsCiAgICAgICAgInVzZXJfZGF0YSI6IHsKICAgICAgICAgICAgImRpc3BsYXlfb3B0aW9ucyI6ICJ7XCJzaG93X2pvaW50c1wiOiAxLCBcInNob3dfbGlua3NcIjogMCwgXCJzb2xpZF9saW5rc1wiOiAxLCBcInNob3dfYXhlc1wiOiAwLCBcInNob3dfc2NlbmVfZ2VvXCI6IDF9IgogICAgICAgIH0KICAgIH0sCiAgICAiYXR0cmliZGVsZXRlMiI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJtb3Rpb25jbGlwZXZhbHVhdGUxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAibmVnYXRlIjogdHJ1ZSwKICAgICAgICAgICAgInB0ZGVsIjogImN1cnZldSBDZCIKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMi4xMywKICAgICAgICAgICAgLTEwLjQyCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJhdHRyaWJkZWxldGUiCiAgICB9LAogICAgImNhbGN1bGF0ZV9yb3RhdGlvbnMiOiB7CiAgICAgICAgImNvbG9yIjogWwogICAgICAgICAgICAwLjgsCiAgICAgICAgICAgIDAuMDIsCiAgICAgICAgICAgIDAuMDIKICAgICAgICBdLAogICAgICAgICJmbGFncyI6IHsKICAgICAgICAgICAgImNvbG9yZGVmYXVsdCI6IGZhbHNlCiAgICAgICAgfSwKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJyaWdkb2N0b3IyIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiYW1vdW50IjogNC40LAogICAgICAgICAgICAicm90YXRlQnlDdXJ2ZXUiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImludGVycCI6ICJsaW5lYXIiLAogICAgICAgICAgICAgICAgICAgICJwb3MiOiAwLAogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IDAKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImludGVycCI6ICJsaW5lYXIiLAogICAgICAgICAgICAgICAgICAgICJwb3MiOiAxLAogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IDEKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgInJvdGF0ZUJ5UHJvZ3Jlc3MiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImludGVycCI6ICJtb25vdG9uZWN1YmljIiwKICAgICAgICAgICAgICAgICAgICAicG9zIjogMCwKICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAwLjAwMgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogIm1vbm90b25lY3ViaWMiLAogICAgICAgICAgICAgICAgICAgICJwb3MiOiAxLAogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IDEKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgInNuaXBwZXQiOiAiZmxvYXQgbWFzayA9IGNocmFtcChcInJvdGF0ZUJ5Q3VydmV1XCIsIGZAY3VydmV1KTtcbmZAcm90YXRlQW1vdW50ID0gbWF4KG1hc2sqIGNocmFtcChcInJvdGF0ZUJ5UHJvZ3Jlc3NcIixmQGxlYWZQcm9ncmVzcykqY2hmKFwiYW1vdW50XCIpLCBmQHJvdGF0ZU1heCk7XG5mQHJvdGF0ZUFtb3VudCArPSAwLjAwNSAqIHNpbigwLjIqQEZyYW1lICsgZkBpZCk7XG5mQHNjYWxlQW1vdW50ID0gZml0KGZAbGVhZlByb2dyZXNzLCAwLCAxLCAxLCAwLjgpOyIKICAgICAgICB9LAogICAgICAgICJwYXJtdGVtcGxhdGVzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaW5zZXJ0X2FmdGVyIjogInZleF90aHJlYWRqb2JzaXplIiwKICAgICAgICAgICAgICAgICJwYXJtdGVtcGxhdGVzIjogewogICAgICAgICAgICAgICAgICAgICJmb2xkZXJfZ2VuZXJhdGVkcGFybXNfc25pcHBldCI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIkdlbmVyYXRlZCBDaGFubmVsIFBhcmFtZXRlcnMiLAogICAgICAgICAgICAgICAgICAgICAgICAicGFybXRlbXBsYXRlcyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbW91bnQiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIkFtb3VudCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1heF92YWx1ZSI6IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJmbG9hdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicm90YXRlQnlDdXJ2ZXUiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIlJvdGF0ZWJ5Y3VydmV1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2NyaXB0X2NhbGxiYWNrX2xhbmd1YWdlIjogImhzY3JpcHQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaG93X2NvbnRyb2xzIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJyYW1wX2Zsb2F0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyb3RhdGVCeVByb2dyZXNzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJSb3RhdGVieXByb2dyZXNzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2NyaXB0X2NhbGxiYWNrX2xhbmd1YWdlIjogImhzY3JpcHQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaG93X2NvbnRyb2xzIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJyYW1wX2Zsb2F0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAic2NyaXB0X2NhbGxiYWNrX2xhbmd1YWdlIjogImhzY3JpcHQiLAogICAgICAgICAgICAgICAgICAgICAgICAidGFncyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJncm91cF90eXBlIjogInNpbXBsZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2lkZWZ4Ojpsb29rIjogImJsYW5rIgogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJmb2xkZXJfc2ltcGxlIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAzLjUxLAogICAgICAgICAgICAtNC42NAogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAia2luZWZ4OjpyaWdhdHRyaWJ3cmFuZ2xlIiwKICAgICAgICAidXNlcl9kYXRhIjogewogICAgICAgICAgICAiZGlzcGxheV9vcHRpb25zIjogIntcInNob3dfam9pbnRzXCI6IDEsIFwic2hvd19saW5rc1wiOiAwLCBcInNvbGlkX2xpbmtzXCI6IDEsIFwic2hvd19heGVzXCI6IDAsIFwic2hvd19zY2VuZV9nZW9cIjogMX0iCiAgICAgICAgfQogICAgfSwKICAgICJjaXJjbGUxIjogewogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgImRpdnMiOiAyNiwKICAgICAgICAgICAgInIiOiBbCiAgICAgICAgICAgICAgICA5MCwKICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJzY2FsZSI6IDAuMDMxLAogICAgICAgICAgICAidHlwZSI6ICJwb2x5IgogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAzLjcyLAogICAgICAgICAgICAyLjI1CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJjaXJjbGUiCiAgICB9LAogICAgImNvcHl0b3BvaW50czEiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAic2V0X3RpcF9hbmRfcm9vdCIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogIkFSUkFOR0VNRU5UX0FOSU1BVElPTl9DT05UUk9MUyIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAxCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgInRhcmdldGF0dHJpYnMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImFwcGx5YXR0cmlicyMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICIqLF52LF5BbHBoYSxeTixedXAsXnBzY2FsZSxec2NhbGUsXm9yaWVudCxecm90LF5waXZvdCxedHJhbnMsXnRyYW5zZm9ybSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJhcHBseW1ldGhvZCMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJhcHBseXRvIyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgInVzZWFwcGx5IyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImFwcGx5YXR0cmlicyMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICJBbHBoYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJhcHBseW1ldGhvZCMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICJtdWx0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgImFwcGx5dG8jIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAidXNlYXBwbHkjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiYXBwbHlhdHRyaWJzIyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogInYiLAogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiYXBwbHltZXRob2QjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAiYWRkIiwKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgImFwcGx5dG8jIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAidXNlYXBwbHkjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDEuODcsCiAgICAgICAgICAgIC0yLjUKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImNvcHl0b3BvaW50czo6Mi4wIgogICAgfSwKICAgICJsaW5lMSI6IHsKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJwb2ludHMiOiAyMAogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICA0LjA0CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJsaW5lIgogICAgfSwKICAgICJtb3Rpb25jbGlwMSI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJhcHBseV9yb3RhdGlvbnMiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJmcmFtZXJhbmdlIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJleHByZXNzaW9uIjogIiRGU1RBUlQiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgMTAwCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ1c2VmaXJzdGZyYW1lIjogZmFsc2UsCiAgICAgICAgICAgICJ1c2VmcmFtZXJhbmdlIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAzLjUxLAogICAgICAgICAgICAtNi42NAogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAia2luZWZ4Ojptb3Rpb25jbGlwIgogICAgfSwKICAgICJtb3Rpb25jbGlwZXZhbHVhdGUxIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogInNlY29uZGFyeW1vdGlvbjEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAxLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDIuMTMsCiAgICAgICAgICAgIC05LjQyCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJraW5lZng6Om1vdGlvbmNsaXBldmFsdWF0ZSIKICAgIH0sCiAgICAicmVzYW1wbGUxIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImxpbmUxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiZG9jdXJ2ZXVhdHRyIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICAzLjA0CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJyZXNhbXBsZSIKICAgIH0sCiAgICAicmVzYW1wbGUyIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImF0dHJpYmRlbGV0ZTIiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJsZW5ndGgiOiAwLjAwMiwKICAgICAgICAgICAgInRyZWF0cG9seXNhcyI6ICJzdWJkIgogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAyLjEzLAogICAgICAgICAgICAtMTEuNDIKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogInJlc2FtcGxlIgogICAgfSwKICAgICJyaWdkb2N0b3IxIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogInJlc2FtcGxlMSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgImluaXR0cmFuc2Zvcm1zIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICAyLjA0CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJraW5lZng6OnJpZ2RvY3RvciIsCiAgICAgICAgInVzZXJfZGF0YSI6IHsKICAgICAgICAgICAgImRpc3BsYXlfb3B0aW9ucyI6ICJ7XCJzaG93X2pvaW50c1wiOiAxLCBcInNob3dfbGlua3NcIjogZmFsc2UsIFwic29saWRfbGlua3NcIjogMSwgXCJzaG93X2F4ZXNcIjogZmFsc2UsIFwic2hvd19zY2VuZV9nZW9cIjogMX0iCiAgICAgICAgfQogICAgfSwKICAgICJyaWdkb2N0b3IyIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImNvcHl0b3BvaW50czEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDEuODcsCiAgICAgICAgICAgIC0zLjUKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImtpbmVmeDo6cmlnZG9jdG9yIiwKICAgICAgICAidXNlcl9kYXRhIjogewogICAgICAgICAgICAiZGlzcGxheV9vcHRpb25zIjogIntcInNob3dfam9pbnRzXCI6IDEsIFwic2hvd19saW5rc1wiOiBmYWxzZSwgXCJzb2xpZF9saW5rc1wiOiAxLCBcInNob3dfYXhlc1wiOiBmYWxzZSwgXCJzaG93X3NjZW5lX2dlb1wiOiAxfSIKICAgICAgICB9CiAgICB9LAogICAgInNlY29uZGFyeW1vdGlvbjEiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAicmlnZG9jdG9yMiIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogIm1vdGlvbmNsaXAxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDEKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiZGFtcGluZyI6IDMsCiAgICAgICAgICAgICJlZmZlY3RtdWx0IjogMC4xLAogICAgICAgICAgICAiZnJhbWVyYW5nZSI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiZXhwcmVzc2lvbiI6ICIkRlNUQVJUIgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIDQwMAogICAgICAgICAgICBdLAogICAgICAgICAgICAiam9pbnRncm91cCI6ICJ0aXAiLAogICAgICAgICAgICAiam9pbnRncm91cHNvdXJjZSI6ICJtaWQiLAogICAgICAgICAgICAibGFnIjogWwogICAgICAgICAgICAgICAgMC4xLAogICAgICAgICAgICAgICAgMC4xCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXNzIjogMC4xLAogICAgICAgICAgICAib3ZlcnNob290IjogWwogICAgICAgICAgICAgICAgMC4xLAogICAgICAgICAgICAgICAgMC4xCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ1c2Vqb2ludGdyb3Vwc291cmNlIjogZmFsc2UKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMi4xMywKICAgICAgICAgICAgLTguMzgKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImtpbmVmeDo6c2Vjb25kYXJ5bW90aW9uIiwKICAgICAgICAidXNlcl9kYXRhIjogewogICAgICAgICAgICAiZGlzcGxheV9vcHRpb25zIjogIntcInNob3dfam9pbnRzXCI6IDEsIFwic2hvd19saW5rc1wiOiAwLCBcInNvbGlkX2xpbmtzXCI6IDEsIFwic2hvd19heGVzXCI6IDEsIFwic2hvd19zY2VuZV9nZW9cIjogMX0iLAogICAgICAgICAgICAid2lyZXN0eWxlIjogInJvdW5kZWQiCiAgICAgICAgfQogICAgfSwKICAgICJzZXRfcGFyYW1zIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImNpcmNsZTEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJzbmlwcGV0IjogImZAcm90YXRlTWF4ID0gMDtcbmZAZmluYWxBbmdsZSA9IC0wLjQgKyAwLjIgKiByYW5kKEBwdG51bSk7XG5mQHBzY2FsZSA9IDIuMCArIDAuMDUgKiByYW5kKEBwdG51bSk7XG5mQGRlbGF5ID0gMC4wMSpAcHRudW0gKy41KnJhbmQoQHB0bnVtKTsiCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDMuNzEsCiAgICAgICAgICAgIDEuMjEKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImF0dHJpYndyYW5nbGUiCiAgICB9LAogICAgInNldF90aXBfYW5kX3Jvb3QiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAidHJhbnNmb3JtMSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgImNsYXNzIjogInByaW1pdGl2ZSIsCiAgICAgICAgICAgICJzbmlwcGV0IjogImludCBwdHNbXSA9IHByaW1wb2ludHMoMCwgQHByaW1udW0pO1xuaW50IG1pZFZhbCA9IGxlbihwdHMpLzIgLSAxO1xuc2V0cG9pbnRncm91cCgwLCBcInJvb3RcIiwgcHRzWzBdLCAxKTtcblxuZm9yIChpbnQgaSA9IG1pZFZhbCArIDE7IGkgXHUwMDNjIGxlbihwdHMpOyBpICsrKXtcbiAgICBzZXRwb2ludGdyb3VwKDAsIFwidGlwXCIsIGksIDEpO1xufSIKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMCwKICAgICAgICAgICAgMAogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiYXR0cmlid3JhbmdsZSIKICAgIH0sCiAgICAic3dlZXA0IjogewogICAgICAgICJmbGFncyI6IHsKICAgICAgICAgICAgImRpc3BsYXkiOiB0cnVlLAogICAgICAgICAgICAicmVuZGVyIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAicmVzYW1wbGUyIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiYXBwbHlzY2FsZSI6IHRydWUsCiAgICAgICAgICAgICJjb2xzIjogMjQsCiAgICAgICAgICAgICJjb21wdXRldXZzIjogdHJ1ZSwKICAgICAgICAgICAgImVuZGNhcHR5cGUiOiAic2luZ2xlIiwKICAgICAgICAgICAgInJhZGl1cyI6IDAuMDAzOCwKICAgICAgICAgICAgInNjYWxlcmFtcCI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogImJlemllciIsCiAgICAgICAgICAgICAgICAgICAgInBvcyI6IDAsCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogMC45ODQzNzUKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImludGVycCI6ICJiZXppZXIiLAogICAgICAgICAgICAgICAgICAgICJwb3MiOiAwLjI4MzIwODY2ODIzMTk2NDEsCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogMC45ODQzNzUKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImludGVycCI6ICJiZXppZXIiLAogICAgICAgICAgICAgICAgICAgICJwb3MiOiAwLjM4NDI1MDQ2MjA1NTIwNjMsCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogLTAuMgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogImJlemllciIsCiAgICAgICAgICAgICAgICAgICAgInBvcyI6IDAuODU1Nzg3NDU2MDM1NjE0LAogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IDAuNjgxNDM4MzI2ODM1NjMyMwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogImJlemllciIsCiAgICAgICAgICAgICAgICAgICAgInBvcyI6IDAuOTkxNTE5OTI3OTc4NTE1NiwKICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAwLjg3NzU5MTE5MjcyMjMyMDYKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImludGVycCI6ICJiZXppZXIiLAogICAgICAgICAgICAgICAgICAgICJwb3MiOiAwLjk4NTc2ODQ5Njk5MDIwMzksCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogMC4yODE4ODYzNjg5ODk5NDQ0NgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogImJlemllciIsCiAgICAgICAgICAgICAgICAgICAgInBvcyI6IDEsCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogMC4wODMzMzMzMzU4MTY4NjAyCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJzdHJldGNoYXJvdW5kdHVybnMiOiBmYWxzZSwKICAgICAgICAgICAgInN1cmZhY2VzaGFwZSI6ICJ0dWJlIgogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAyLjEzLAogICAgICAgICAgICAtMTIuNDIKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogInN3ZWVwOjoyLjAiCiAgICB9LAogICAgInRyYW5zZm9ybTEiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAicmlnZG9jdG9yMSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgInIiOiBbCiAgICAgICAgICAgICAgICA0MCwKICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJzY2FsZSI6IDAuMDcKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMCwKICAgICAgICAgICAgMS4wNAogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAieGZvcm0iCiAgICB9Cn0=
Compute flow direction vector and propogate it along mesh. This is done without simulation by using ForEach.
Nov 05, 2025 | 20.5.584 | vex
Cooked By: kif
ewogICAgIl9fY29va2Jvb2tNZXRhIjogewogICAgICAgICJjb250ZXh0IjogInNvcCIsCiAgICAgICAgInZlcnNpb24iOiAiMjAuNS41ODQiCiAgICB9LAogICAgImF0dHJpYnByb21vdGUxIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogInBvbHlmcmFtZTEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJpbmNsYXNzIjogInZlcnRleCIsCiAgICAgICAgICAgICJpbm5hbWUiOiAidGFuZ2VudCIKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMCwKICAgICAgICAgICAgMAogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiYXR0cmlicHJvbW90ZSIKICAgIH0sCiAgICAiY29tcHV0ZV9ncmFkaWVudCI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJmb3JlYWNoX2JlZ2luMSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgInNuaXBwZXQiOiAiaW50IG5laWJvdXJzW10gPSBpW11AbmVpYm91cnM7XG5cbmZsb2F0IGFjY3VtID0gMDtcbmZsb2F0IGluZmVjdCA9IDA7XG5cbmZvcmVhY2ggKGludCBwbnQ7IG5laWJvdXJzKSB7XG4gICAgaW5mZWN0ID0gcG9pbnQoMCwgXCJpbmZlY3RcIiwgcG50KTtcbiAgICBpZiAoaW5mZWN0IFx1MDAzZSAwKSB7XG4gICAgICAgIGFjY3VtICs9IDAuMTtcbiAgICB9XG59XG5cbkBpbmZlY3QgKz0gYWNjdW0gLyBsZW4obmVpYm91cnMpO1xuIgogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICA0LjIKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImF0dHJpYndyYW5nbGUiCiAgICB9LAogICAgImZvcmVhY2hfYmVnaW4xIjogewogICAgICAgICJjb2xvciI6IFsKICAgICAgICAgICAgMC45LAogICAgICAgICAgICAwLjUsCiAgICAgICAgICAgIDAKICAgICAgICBdLAogICAgICAgICJmbGFncyI6IHsKICAgICAgICAgICAgImNvbG9yZGVmYXVsdCI6IGZhbHNlCiAgICAgICAgfSwKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJwcmVjb21wdXRlX25laWJvdXJzIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiYmxvY2twYXRoIjogIi4uL3Byb3BvZ2F0aW9uX3Byb2dyZXNzIgogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLjAxLAogICAgICAgICAgICA1LjI4CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJibG9ja19iZWdpbiIKICAgIH0sCiAgICAiZ3JvdXAxIjogewogICAgICAgICJmbGFncyI6IHsKICAgICAgICAgICAgImhpZ2hsaWdodCI6IHRydWUKICAgICAgICB9LAogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogInN1YmRpdmlkZTEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJiYXNlZ3JvdXAiOiAiMjk1MyA1OTUzIDU5NzAgMTUyIDI5NzUgNTk2OCA0MTgzIDQyNDAgODY0NSA4NjQ4IDg0ODEgNDI0NCA0MjQzIDg2NjggODY0NiA4NjU2IDU5NjkgNDI1MSA4NjU0IDQyNDgtNDI0OSA4NjU1IDg2NTggODQ4NCAxODA0IDE3OTkgNDI0NyAxODAzIDEyMiA1OTgzIDg2NzEgODY3NiAxODI2IDQyNTYgODY3NSAxNzk4IDYwMjIgMTIxIDg2NTcgODY3MiA4NzE3IDE3ODcgNDI3MSA0MjczIDE3NzAgMTc4OCA4NjcwIDQyNzUgODcyMyA4NzI4IDg2NjkgODcyMiAxNzg5IDg3MjEgNDI3NiA4NzI2IDE4MyAxNzcxIDg3MTYgMTgxMCA4NjU5IDg2NDciLAogICAgICAgICAgICAiZ3JvdXBuYW1lIjogInN0YXJ0IiwKICAgICAgICAgICAgImdyb3VwdHlwZSI6ICJwb2ludCIKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMCwKICAgICAgICAgICAgOC40OAogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiZ3JvdXBjcmVhdGUiCiAgICB9LAogICAgImluaXRfaW5mZWN0X2F0dHIiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAiZ3JvdXAxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiZ3JvdXAiOiAic3RhcnQiLAogICAgICAgICAgICAic25pcHBldCI6ICJAaW5mZWN0ID0gMTsiCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIDcuNDQKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImF0dHJpYndyYW5nbGUiCiAgICB9LAogICAgIm9yaWVudF9mcm9tX2dyYWRpZW50IjogewogICAgICAgICJjaGlsZHJlbiI6IHsKICAgICAgICAgICAgImJpbmQxIjogewogICAgICAgICAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAgICAgICAgICJleHBvcnRjb250ZXh0IjogImN2ZXgiLAogICAgICAgICAgICAgICAgICAgICJwYXJtbmFtZSI6ICJ0YW5nZW50IiwKICAgICAgICAgICAgICAgICAgICAicGFybXR5cGUiOiAidmVjdG9yIgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgICAgICAgICAzLjc4LAogICAgICAgICAgICAgICAgICAgIDMuNjcKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAic2l6ZSI6IFsKICAgICAgICAgICAgICAgICAgICAxLjc3LAogICAgICAgICAgICAgICAgICAgIDAuODMKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAidHlwZSI6ICJiaW5kIgogICAgICAgICAgICB9LAogICAgICAgICAgICAiYmluZDIiOiB7CiAgICAgICAgICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImZyb20iOiAibWF0eHRvcXVhdDEiLAogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6ICJxdWF0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRvX2luZGV4IjogImlucHV0IgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImV4cG9ydGNvbnRleHQiOiAiY3ZleCIsCiAgICAgICAgICAgICAgICAgICAgImV4cG9ydHBhcm0iOiAyLAogICAgICAgICAgICAgICAgICAgICJvdmVycmlkZXR5cGUiOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICJwYXJtbmFtZSI6ICJvcmllbnQiLAogICAgICAgICAgICAgICAgICAgICJwYXJtdHlwZSI6ICJmbG9hdDQiLAogICAgICAgICAgICAgICAgICAgICJ1c2Vhc3Bhcm1kZWZpbmVyIjogdHJ1ZQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgICAgICAgICAxNy45MywKICAgICAgICAgICAgICAgICAgICAzLjc5CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInNpemUiOiBbCiAgICAgICAgICAgICAgICAgICAgMS43NywKICAgICAgICAgICAgICAgICAgICAwLjgzCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInR5cGUiOiAiYmluZCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImNyb3NzMSI6IHsKICAgICAgICAgICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbSI6ICJnZW9tZXRyeXZvcGdsb2JhbDEiLAogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6ICJOIiwKICAgICAgICAgICAgICAgICAgICAgICAgInRvX2luZGV4IjogInZlYzEiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tIjogImJpbmQxIiwKICAgICAgICAgICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAidGFuZ2VudCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0b19pbmRleCI6ICJ2ZWMyIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgICAgICAgICAgNi43OCwKICAgICAgICAgICAgICAgICAgICAyLjU2CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInNpemUiOiBbCiAgICAgICAgICAgICAgICAgICAgMS43NywKICAgICAgICAgICAgICAgICAgICAwLjgzCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInR5cGUiOiAiY3Jvc3MiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJjcm9zczIiOiB7CiAgICAgICAgICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImZyb20iOiAiYmluZDEiLAogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6ICJ0YW5nZW50IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRvX2luZGV4IjogInZlYzEiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tIjogImNyb3NzMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogImNyb3NzcHJvZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0b19pbmRleCI6ICJ2ZWMyIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgICAgICAgICAgOS40LAogICAgICAgICAgICAgICAgICAgIDAuODQKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAic2l6ZSI6IFsKICAgICAgICAgICAgICAgICAgICAxLjc3LAogICAgICAgICAgICAgICAgICAgIDAuODMKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAidHlwZSI6ICJjcm9zcyIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImdlb21ldHJ5dm9wZ2xvYmFsMSI6IHsKICAgICAgICAgICAgICAgICJmbGFncyI6IHsKICAgICAgICAgICAgICAgICAgICAiZGlzcGxheSI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgInJlbmRlciI6IHRydWUKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgICAgICAgICAgMS45MSwKICAgICAgICAgICAgICAgICAgICAxLjk4CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInNpemUiOiBbCiAgICAgICAgICAgICAgICAgICAgMS43NywKICAgICAgICAgICAgICAgICAgICAzLjgzCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInR5cGUiOiAiZ2VvbWV0cnl2b3BnbG9iYWw6OjIuMCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImdlb21ldHJ5dm9wb3V0cHV0MSI6IHsKICAgICAgICAgICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgICAgICAgICAxOS42NSwKICAgICAgICAgICAgICAgICAgICAxLjM2CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInNpemUiOiBbCiAgICAgICAgICAgICAgICAgICAgMS43NywKICAgICAgICAgICAgICAgICAgICAxLjI4CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInR5cGUiOiAiZ2VvbWV0cnl2b3BvdXRwdXQiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJtYXR4dG9xdWF0MSI6IHsKICAgICAgICAgICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbSI6ICJ2ZWN0b21hdHgxIiwKICAgICAgICAgICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAibWF0eCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0b19pbmRleCI6ICJtYXR4IgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgICAgICAgICAgMTQuMSwKICAgICAgICAgICAgICAgICAgICA0LjA2CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInNpemUiOiBbCiAgICAgICAgICAgICAgICAgICAgMS43NywKICAgICAgICAgICAgICAgICAgICAwLjY4CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInR5cGUiOiAibWF0eHRvcXVhdCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgInZlY3RvbWF0eDEiOiB7CiAgICAgICAgICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImZyb20iOiAiY3Jvc3MxIiwKICAgICAgICAgICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAiY3Jvc3Nwcm9kIiwKICAgICAgICAgICAgICAgICAgICAgICAgInRvX2luZGV4IjogInZ2YWwxIgogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbSI6ICJjcm9zczIiLAogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6ICJjcm9zc3Byb2QiLAogICAgICAgICAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAidnZhbDIiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tIjogImJpbmQxIiwKICAgICAgICAgICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAidGFuZ2VudCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0b19pbmRleCI6ICJ2dmFsMyIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAgICAgICAgIDExLjY1LAogICAgICAgICAgICAgICAgICAgIDQuNAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJzaXplIjogWwogICAgICAgICAgICAgICAgICAgIDEuNzcsCiAgICAgICAgICAgICAgICAgICAgMC45OAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJ0eXBlIjogInZlY3RvbWF0eCIKICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgImZsYWdzIjogewogICAgICAgICAgICAiZGlzcGxheSI6IHRydWUsCiAgICAgICAgICAgICJyZW5kZXIiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJhdHRyaWJwcm9tb3RlMSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtdGVtcGxhdGVzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaW5zZXJ0X2FmdGVyIjogInN0ZHN3aXRjaGVyXzEiLAogICAgICAgICAgICAgICAgInBhcm10ZW1wbGF0ZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgIkNkIjogewogICAgICAgICAgICAgICAgICAgICAgICAiZGVmYXVsdF92YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIkNkIiwKICAgICAgICAgICAgICAgICAgICAgICAgIm51bV9jb21wb25lbnRzIjogMywKICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXZvcCI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFkZXJwYXJtY29udGV4dHMiOiAiY3ZleCIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiZmxvYXQiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiRnJhbWUiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiRnJhbWUiLAogICAgICAgICAgICAgICAgICAgICAgICAibWF4X3ZhbHVlIjogMSwKICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXZvcCI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFkZXJwYXJtY29udGV4dHMiOiAiY3ZleCIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiZmxvYXQiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiTiI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJOIiwKICAgICAgICAgICAgICAgICAgICAgICAgIm51bV9jb21wb25lbnRzIjogMywKICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXZvcCI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFkZXJwYXJtY29udGV4dHMiOiAiY3ZleCIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiZmxvYXQiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiT3BJbnB1dDEiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiRmlyc3QgSW5wdXQiLAogICAgICAgICAgICAgICAgICAgICAgICAibWVudV90eXBlIjogIm5vcm1hbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzY3JpcHRfY2FsbGJhY2tfbGFuZ3VhZ2UiOiAiaHNjcmlwdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0YWdzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhcm12b3AiOiAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hhZGVycGFybWNvbnRleHRzIjogImN2ZXgiCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJPcElucHV0MiI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJTZWNvbmQgSW5wdXQiLAogICAgICAgICAgICAgICAgICAgICAgICAibWVudV90eXBlIjogIm5vcm1hbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzY3JpcHRfY2FsbGJhY2tfbGFuZ3VhZ2UiOiAiaHNjcmlwdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0YWdzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhcm12b3AiOiAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hhZGVycGFybWNvbnRleHRzIjogImN2ZXgiCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJPcElucHV0MyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJUaGlyZCBJbnB1dCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJtZW51X3R5cGUiOiAibm9ybWFsIiwKICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXZvcCI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFkZXJwYXJtY29udGV4dHMiOiAiY3ZleCIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgIk9wSW5wdXQ0IjogewogICAgICAgICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIkZvdXJ0aCBJbnB1dCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJtZW51X3R5cGUiOiAibm9ybWFsIiwKICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXZvcCI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFkZXJwYXJtY29udGV4dHMiOiAiY3ZleCIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgIlAiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiUCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJudW1fY29tcG9uZW50cyI6IDMsCiAgICAgICAgICAgICAgICAgICAgICAgICJzY3JpcHRfY2FsbGJhY2tfbGFuZ3VhZ2UiOiAiaHNjcmlwdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0YWdzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhcm12b3AiOiAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hhZGVycGFybWNvbnRleHRzIjogImN2ZXgiCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImZsb2F0IgogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgIlRpbWUiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiVGltZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJtYXhfdmFsdWUiOiAxLAogICAgICAgICAgICAgICAgICAgICAgICAic2NyaXB0X2NhbGxiYWNrX2xhbmd1YWdlIjogImhzY3JpcHQiLAogICAgICAgICAgICAgICAgICAgICAgICAidGFncyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXJtdm9wIjogIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInNoYWRlcnBhcm1jb250ZXh0cyI6ICJjdmV4IgogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJmbG9hdCIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJUaW1lSW5jIjogewogICAgICAgICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIlRpbWUgSW5jIiwKICAgICAgICAgICAgICAgICAgICAgICAgIm1heF92YWx1ZSI6IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICJzY3JpcHRfY2FsbGJhY2tfbGFuZ3VhZ2UiOiAiaHNjcmlwdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0YWdzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhcm12b3AiOiAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hhZGVycGFybWNvbnRleHRzIjogImN2ZXgiCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImZsb2F0IgogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgImFnZSI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJBZ2UiLAogICAgICAgICAgICAgICAgICAgICAgICAibWF4X3ZhbHVlIjogMSwKICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXZvcCI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFkZXJwYXJtY29udGV4dHMiOiAiY3ZleCIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiZmxvYXQiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiZm9yY2UiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiRm9yY2UiLAogICAgICAgICAgICAgICAgICAgICAgICAibnVtX2NvbXBvbmVudHMiOiAzLAogICAgICAgICAgICAgICAgICAgICAgICAic2NyaXB0X2NhbGxiYWNrX2xhbmd1YWdlIjogImhzY3JpcHQiLAogICAgICAgICAgICAgICAgICAgICAgICAidGFncyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXJtdm9wIjogIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInNoYWRlcnBhcm1jb250ZXh0cyI6ICJjdmV4IgogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJmbG9hdCIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJpZCI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImRlZmF1bHRfdmFsdWUiOiAtMSwKICAgICAgICAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJJZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJtZW51X3R5cGUiOiAibm9ybWFsIiwKICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXZvcCI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFkZXJwYXJtY29udGV4dHMiOiAiY3ZleCIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJsaWZlIjogewogICAgICAgICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIkxpZmUiLAogICAgICAgICAgICAgICAgICAgICAgICAibWF4X3ZhbHVlIjogMSwKICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXZvcCI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFkZXJwYXJtY29udGV4dHMiOiAiY3ZleCIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiZmxvYXQiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAibnVtcHJpbSI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJOdW1iZXIgb2YgUHJpbXMiLAogICAgICAgICAgICAgICAgICAgICAgICAibWVudV90eXBlIjogIm5vcm1hbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzY3JpcHRfY2FsbGJhY2tfbGFuZ3VhZ2UiOiAiaHNjcmlwdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0YWdzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhcm12b3AiOiAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hhZGVycGFybWNvbnRleHRzIjogImN2ZXgiCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAibnVtcHQiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiTnVtYmVyIG9mIFBvaW50cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJtZW51X3R5cGUiOiAibm9ybWFsIiwKICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXZvcCI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFkZXJwYXJtY29udGV4dHMiOiAiY3ZleCIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJudW12dHgiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiTnVtYmVyIG9mIFZlcnRpY2VzIiwKICAgICAgICAgICAgICAgICAgICAgICAgIm1lbnVfdHlwZSI6ICJub3JtYWwiLAogICAgICAgICAgICAgICAgICAgICAgICAic2NyaXB0X2NhbGxiYWNrX2xhbmd1YWdlIjogImhzY3JpcHQiLAogICAgICAgICAgICAgICAgICAgICAgICAidGFncyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXJtdm9wIjogIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInNoYWRlcnBhcm1jb250ZXh0cyI6ICJjdmV4IgogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIgogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgInByaW1udW0iOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiUHJpbWl0aXZlIE51bWJlciIsCiAgICAgICAgICAgICAgICAgICAgICAgICJtZW51X3R5cGUiOiAibm9ybWFsIiwKICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXZvcCI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFkZXJwYXJtY29udGV4dHMiOiAiY3ZleCIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJwdG51bSI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJQb2ludCBOdW1iZXIiLAogICAgICAgICAgICAgICAgICAgICAgICAibWVudV90eXBlIjogIm5vcm1hbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzY3JpcHRfY2FsbGJhY2tfbGFuZ3VhZ2UiOiAiaHNjcmlwdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0YWdzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhcm12b3AiOiAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hhZGVycGFybWNvbnRleHRzIjogImN2ZXgiCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAidXYiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiVVYiLAogICAgICAgICAgICAgICAgICAgICAgICAibnVtX2NvbXBvbmVudHMiOiAzLAogICAgICAgICAgICAgICAgICAgICAgICAic2NyaXB0X2NhbGxiYWNrX2xhbmd1YWdlIjogImhzY3JpcHQiLAogICAgICAgICAgICAgICAgICAgICAgICAidGFncyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXJtdm9wIjogIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInNoYWRlcnBhcm1jb250ZXh0cyI6ICJjdmV4IgogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJmbG9hdCIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJ2IjogewogICAgICAgICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIlZlbG9jaXR5IiwKICAgICAgICAgICAgICAgICAgICAgICAgIm51bV9jb21wb25lbnRzIjogMywKICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInRhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXZvcCI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFkZXJwYXJtY29udGV4dHMiOiAiY3ZleCIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiZmxvYXQiCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAidnR4bnVtIjogewogICAgICAgICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIlZlcnRleCBOdW1iZXIiLAogICAgICAgICAgICAgICAgICAgICAgICAibWVudV90eXBlIjogIm5vcm1hbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzY3JpcHRfY2FsbGJhY2tfbGFuZ3VhZ2UiOiAiaHNjcmlwdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0YWdzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhcm12b3AiOiAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hhZGVycGFybWNvbnRleHRzIjogImN2ZXgiCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAuMDEsCiAgICAgICAgICAgIC0xLjE4CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJhdHRyaWJ2b3AiCiAgICB9LAogICAgInBvaW50d3JhbmdsZTIiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAicHJvcG9nYXRpb25fcHJvZ3Jlc3MiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJzbmlwcGV0IjogInZAZ3JhZCA9IHNldChAaW5mZWN0LCAwLCAwKTsiCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIDIuMDQKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImF0dHJpYndyYW5nbGUiCiAgICB9LAogICAgInBvbHlmcmFtZTEiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAicG9pbnR3cmFuZ2xlMiIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgIk5vbiI6IGZhbHNlLAogICAgICAgICAgICAiYXR0cmlibmFtZSI6ICJncmFkIiwKICAgICAgICAgICAgInN0eWxlIjogImF0dHJpYiIsCiAgICAgICAgICAgICJ0YW5nZW50dSI6ICJ0YW5nZW50IgogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICAxCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJwb2x5ZnJhbWUiCiAgICB9LAogICAgInByZWNvbXB1dGVfbmVpYm91cnMiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAiaW5pdF9pbmZlY3RfYXR0ciIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgInNuaXBwZXQiOiAiaW50IG5laWJvdXJzW10gPSBuZWlnaGJvdXJzKDAsIEBwdG51bSk7XG5pW11AbmVpYm91cnMgPSBuZWlib3VyczsiCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIDYuMzYKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImF0dHJpYndyYW5nbGUiCiAgICB9LAogICAgInByb3BvZ2F0aW9uX3Byb2dyZXNzIjogewogICAgICAgICJjb2xvciI6IFsKICAgICAgICAgICAgMC45LAogICAgICAgICAgICAwLjUsCiAgICAgICAgICAgIDAKICAgICAgICBdLAogICAgICAgICJmbGFncyI6IHsKICAgICAgICAgICAgImNvbG9yZGVmYXVsdCI6IGZhbHNlCiAgICAgICAgfSwKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJjb21wdXRlX2dyYWRpZW50IiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiYmxvY2twYXRoIjogIi4uL2ZvcmVhY2hfYmVnaW4xIiwKICAgICAgICAgICAgIml0ZXJhdGlvbnMiOiB7CiAgICAgICAgICAgICAgICAiZXhwcmVzc2lvbiI6ICIkRiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIml0ZXJtZXRob2QiOiAiY291bnQiLAogICAgICAgICAgICAidGVtcGxhdGVwYXRoIjogIi4uL2ZvcmVhY2hfYmVnaW4xIgogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLjAxLAogICAgICAgICAgICAzLjEyCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJibG9ja19lbmQiCiAgICB9LAogICAgInN1YmRpdmlkZTEiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAidGVzdGdlb21ldHJ5X3BpZ2hlYWQxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLjA3LAogICAgICAgICAgICA5LjQ4CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJzdWJkaXZpZGUiCiAgICB9LAogICAgInRlc3RnZW9tZXRyeV9waWdoZWFkMSI6IHsKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAuMDEsCiAgICAgICAgICAgIDEwLjQ4CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJ0ZXN0Z2VvbWV0cnlfcGlnaGVhZCIKICAgIH0KfQ==
Create a plant like unfurling animation by converting a line to a KineFX rig and applying a compounding rotation.
Nov 05, 2025 | 20.5.584 | animation
Cooked By: snay
ewogICAgIkFOSU0iOiB7CiAgICAgICAgImZsYWdzIjogewogICAgICAgICAgICAiZGlzcGxheSI6IHRydWUsCiAgICAgICAgICAgICJyZW5kZXIiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJyb290X3NjYWxlIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAyLjYsCiAgICAgICAgICAgIC00LjcyCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJudWxsIgogICAgfSwKICAgICJQQVJBTVMiOiB7CiAgICAgICAgImNvbG9yIjogWwogICAgICAgICAgICAwLjMyLAogICAgICAgICAgICAwLjI2LAogICAgICAgICAgICAwLjU4CiAgICAgICAgXSwKICAgICAgICAiZmxhZ3MiOiB7CiAgICAgICAgICAgICJjb2xvcmRlZmF1bHQiOiBmYWxzZQogICAgICAgIH0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAicHJvZ3Jlc3MiOiB7CiAgICAgICAgICAgICAgICAiZXh0cmFwb2xhdGlvbl9hZnRlciI6ICJleHRlbmQiLAogICAgICAgICAgICAgICAgImV4dHJhcG9sYXRpb25fYmVmb3JlIjogImV4dGVuZCIsCiAgICAgICAgICAgICAgICAia2V5ZnJhbWVzIjogWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImFjY2VsIjogMi4xMjUsCiAgICAgICAgICAgICAgICAgICAgICAgICJleHByZXNzaW9uIjogImJlemllcigpIiwKICAgICAgICAgICAgICAgICAgICAgICAgImZyYW1lIjogMSwKICAgICAgICAgICAgICAgICAgICAgICAgImluYWNjZWwiOiAwLjMzMzMzMzMzMzMzMzMzMzMsCiAgICAgICAgICAgICAgICAgICAgICAgICJzbG9wZSI6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IDAKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImFjY2VsIjogMC4zMzMzMzMzMzMzMzMzMzMzLAogICAgICAgICAgICAgICAgICAgICAgICAiZXhwcmVzc2lvbiI6ICJiZXppZXIoKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJmcmFtZSI6IDE1NCwKICAgICAgICAgICAgICAgICAgICAgICAgImluYWNjZWwiOiAyLjEyNSwKICAgICAgICAgICAgICAgICAgICAgICAgInNsb3BlIjogMCwKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogMQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgInBhcm10ZW1wbGF0ZXMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpbnNlcnRfYWZ0ZXIiOiAiY2FjaGVpbnB1dCIsCiAgICAgICAgICAgICAgICAicGFybXRlbXBsYXRlcyI6IHsKICAgICAgICAgICAgICAgICAgICAicHJvZ3Jlc3MiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJQcm9ncmVzcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0YWdzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJweXRob24iCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImZsb2F0IgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICAwCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJudWxsIgogICAgfSwKICAgICJfX2Nvb2tib29rTWV0YSI6IHsKICAgICAgICAiY29udGV4dCI6ICJzb3AiLAogICAgICAgICJ2ZXJzaW9uIjogIjIwLjUuNTg0IgogICAgfSwKICAgICJhcHBseV90cmFuc2Zvcm0iOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAic2V0X3JvdGF0ZV9hbmRfc2NhbGVfYW1vdW50IiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAic25pcHBldCI6ICJwcmVyb3RhdGUoNEBsb2NhbHRyYW5zZm9ybSxmQHJvdGF0ZUFtb3VudCwgezEsMCwwfSk7XG5wcmVzY2FsZSg0QGxvY2FsdHJhbnNmb3JtLCBmQHNjYWxlQW1vdW50KTsiCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDIuNTcsCiAgICAgICAgICAgIC0yLjMKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImtpbmVmeDo6cmlnYXR0cmlid3JhbmdsZSIsCiAgICAgICAgInVzZXJfZGF0YSI6IHsKICAgICAgICAgICAgImRpc3BsYXlfb3B0aW9ucyI6ICJ7XCJzaG93X2pvaW50c1wiOiAxLCBcInNob3dfbGlua3NcIjogMCwgXCJzb2xpZF9saW5rc1wiOiAxLCBcInNob3dfYXhlc1wiOiAwLCBcInNob3dfc2NlbmVfZ2VvXCI6IDF9IgogICAgICAgIH0KICAgIH0sCiAgICAibGluZTEiOiB7CiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAicG9pbnRzIjogMjAKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMi41NywKICAgICAgICAgICAgMgogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAibGluZSIKICAgIH0sCiAgICAicmVzYW1wbGUxIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImxpbmUxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiZG9jdXJ2ZXVhdHRyIjogdHJ1ZSwKICAgICAgICAgICAgImxlbmd0aCI6IDAuMDMKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMi41NywKICAgICAgICAgICAgMQogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAicmVzYW1wbGUiCiAgICB9LAogICAgInJpZ2RvY3RvcjEiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAicmVzYW1wbGUxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiaW5pdHRyYW5zZm9ybXMiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDIuNTcsCiAgICAgICAgICAgIC0wLjAxCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJraW5lZng6OnJpZ2RvY3RvciIsCiAgICAgICAgInVzZXJfZGF0YSI6IHsKICAgICAgICAgICAgImRpc3BsYXlfb3B0aW9ucyI6ICJ7XCJzaG93X2pvaW50c1wiOiAxLCBcInNob3dfbGlua3NcIjogZmFsc2UsIFwic29saWRfbGlua3NcIjogMSwgXCJzaG93X2F4ZXNcIjogZmFsc2UsIFwic2hvd19zY2VuZV9nZW9cIjogMX0iCiAgICAgICAgfQogICAgfSwKICAgICJyb290X3NjYWxlIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImFwcGx5X3RyYW5zZm9ybSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgImdyb3VwIjogIjAiLAogICAgICAgICAgICAicm9vdF9zY2FsZSI6IHsKICAgICAgICAgICAgICAgICJleHRyYXBvbGF0aW9uX2FmdGVyIjogImV4dGVuZCIsCiAgICAgICAgICAgICAgICAiZXh0cmFwb2xhdGlvbl9iZWZvcmUiOiAiZXh0ZW5kIiwKICAgICAgICAgICAgICAgICJrZXlmcmFtZXMiOiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiYWNjZWwiOiAxLjAyNzc3Nzc3Nzc3Nzc3NzcsCiAgICAgICAgICAgICAgICAgICAgICAgICJleHByZXNzaW9uIjogImJlemllcigpIiwKICAgICAgICAgICAgICAgICAgICAgICAgImZyYW1lIjogMSwKICAgICAgICAgICAgICAgICAgICAgICAgImluYWNjZWwiOiAwLjMzMzMzMzMzMzMzMzMzMzMsCiAgICAgICAgICAgICAgICAgICAgICAgICJzbG9wZSI6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IDAKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImFjY2VsIjogMC4zMzMzMzMzMzMzMzMzMzMzLAogICAgICAgICAgICAgICAgICAgICAgICAiZXhwcmVzc2lvbiI6ICJiZXppZXIoKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJmcmFtZSI6IDc1LAogICAgICAgICAgICAgICAgICAgICAgICAiaW5hY2NlbCI6IDEuMDI3Nzc3Nzc3Nzc3Nzc3NywKICAgICAgICAgICAgICAgICAgICAgICAgInNsb3BlIjogMCwKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogMQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgInNuaXBwZXQiOiAicHJlc2NhbGUoNEBsb2NhbHRyYW5zZm9ybSwgY2hmKFwicm9vdF9zY2FsZVwiKSk7IgogICAgICAgIH0sCiAgICAgICAgInBhcm10ZW1wbGF0ZXMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpbnNlcnRfYWZ0ZXIiOiAidmV4X3RocmVhZGpvYnNpemUiLAogICAgICAgICAgICAgICAgInBhcm10ZW1wbGF0ZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImZvbGRlcl9nZW5lcmF0ZWRwYXJtc19zbmlwcGV0IjogewogICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiR2VuZXJhdGVkIENoYW5uZWwgUGFyYW1ldGVycyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJwYXJtdGVtcGxhdGVzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInJvb3Rfc2NhbGUiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIlJvb3QgU2NhbGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtYXhfdmFsdWUiOiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzY3JpcHRfY2FsbGJhY2tfbGFuZ3VhZ2UiOiAiaHNjcmlwdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiZmxvYXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJzY3JpcHRfY2FsbGJhY2tfbGFuZ3VhZ2UiOiAiaHNjcmlwdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0YWdzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgImdyb3VwX3R5cGUiOiAic2ltcGxlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaWRlZng6Omxvb2siOiAiYmxhbmsiCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImZvbGRlcl9zaW1wbGUiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDIuNiwKICAgICAgICAgICAgLTMuNDQKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImtpbmVmeDo6cmlnYXR0cmlid3JhbmdsZSIsCiAgICAgICAgInVzZXJfZGF0YSI6IHsKICAgICAgICAgICAgImRpc3BsYXlfb3B0aW9ucyI6ICJ7XCJzaG93X2pvaW50c1wiOiAxLCBcInNob3dfbGlua3NcIjogMCwgXCJzb2xpZF9saW5rc1wiOiAxLCBcInNob3dfYXhlc1wiOiAwLCBcInNob3dfc2NlbmVfZ2VvXCI6IDF9IgogICAgICAgIH0KICAgIH0sCiAgICAic2V0X3JvdGF0ZV9hbmRfc2NhbGVfYW1vdW50IjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogInJpZ2RvY3RvcjEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJhbW91bnQiOiAwLjA0OSwKICAgICAgICAgICAgInJvdGF0ZUJ5Q3VydmVVIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJpbnRlcnAiOiAibGluZWFyIiwKICAgICAgICAgICAgICAgICAgICAicG9zIjogMCwKICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAwCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJpbnRlcnAiOiAibGluZWFyIiwKICAgICAgICAgICAgICAgICAgICAicG9zIjogMC43NDIwNTYwNzE3NTgyNzAzLAogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IDEKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgInJvdGF0ZUJ5UHJvZ3Jlc3MiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImludGVycCI6ICJtb25vdG9uZWN1YmljIiwKICAgICAgICAgICAgICAgICAgICAicG9zIjogMCwKICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAxCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJpbnRlcnAiOiAibW9ub3RvbmVjdWJpYyIsCiAgICAgICAgICAgICAgICAgICAgInBvcyI6IDAuNzA5MTgzNjkyOTMyMTI4OSwKICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAtMC4wMjE0Njc2MDAwMTc3ODYwMjYKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImludGVycCI6ICJtb25vdG9uZWN1YmljIiwKICAgICAgICAgICAgICAgICAgICAicG9zIjogMSwKICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAwCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJzbmlwcGV0IjogImZsb2F0IGFtb3VudCA9IGNoZihcIi4uL1BBUkFNUy9wcm9ncmVzc1wiKTtcblxuZkByb3RhdGVBbW91bnQgPSBjaHJhbXAoXCJyb3RhdGVCeVByb2dyZXNzXCIsIGFtb3VudCkgKiBjaHJhbXAoXCJyb3RhdGVCeUN1cnZlVVwiLCBmQGN1cnZldSk7XG5mQHNjYWxlQW1vdW50ID0gZml0KGZAcm90YXRlQW1vdW50LCAwLCAxLCAxLCAwLjgpOyIKICAgICAgICB9LAogICAgICAgICJwYXJtdGVtcGxhdGVzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaW5zZXJ0X2FmdGVyIjogInZleF90aHJlYWRqb2JzaXplIiwKICAgICAgICAgICAgICAgICJwYXJtdGVtcGxhdGVzIjogewogICAgICAgICAgICAgICAgICAgICJmb2xkZXJfZ2VuZXJhdGVkcGFybXNfc25pcHBldCI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIkdlbmVyYXRlZCBDaGFubmVsIFBhcmFtZXRlcnMiLAogICAgICAgICAgICAgICAgICAgICAgICAicGFybXRlbXBsYXRlcyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbW91bnQiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIkFtb3VudCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1heF92YWx1ZSI6IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNjcmlwdF9jYWxsYmFja19sYW5ndWFnZSI6ICJoc2NyaXB0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJmbG9hdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicm90YXRlQnlDdXJ2ZVUiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIlJvdGF0ZWJ5Y3VydmV1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2NyaXB0X2NhbGxiYWNrX2xhbmd1YWdlIjogImhzY3JpcHQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaG93X2NvbnRyb2xzIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJyYW1wX2Zsb2F0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyb3RhdGVCeVByb2dyZXNzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJSb3RhdGVieXByb2dyZXNzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2NyaXB0X2NhbGxiYWNrX2xhbmd1YWdlIjogImhzY3JpcHQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaG93X2NvbnRyb2xzIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJyYW1wX2Zsb2F0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAic2NyaXB0X2NhbGxiYWNrX2xhbmd1YWdlIjogImhzY3JpcHQiLAogICAgICAgICAgICAgICAgICAgICAgICAidGFncyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJncm91cF90eXBlIjogInNpbXBsZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2lkZWZ4Ojpsb29rIjogImJsYW5rIgogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJmb2xkZXJfc2ltcGxlIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAyLjU3LAogICAgICAgICAgICAtMS4xCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJraW5lZng6OnJpZ2F0dHJpYndyYW5nbGUiLAogICAgICAgICJ1c2VyX2RhdGEiOiB7CiAgICAgICAgICAgICJkaXNwbGF5X29wdGlvbnMiOiAie1wic2hvd19qb2ludHNcIjogMSwgXCJzaG93X2xpbmtzXCI6IDAsIFwic29saWRfbGlua3NcIjogMSwgXCJzaG93X2F4ZXNcIjogMCwgXCJzaG93X3NjZW5lX2dlb1wiOiAxfSIKICAgICAgICB9CiAgICB9Cn0=
Manually art direct the position of multiple points, while still having them snap to a surface. Each point can be manually rotated, scaled, and positioned using Rig Pose.
Nov 03, 2025 | 20.5.584 | geometry
Cooked By: snay
ewogICAgIl9fY29va2Jvb2tNZXRhIjogewogICAgICAgICJjb250ZXh0IjogInNvcCIsCiAgICAgICAgInZlcnNpb24iOiAiMjAuNS41ODQiCiAgICB9LAogICAgImFkZDEiOiB7CiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAicG9pbnRzIjogMQogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAyLjI4LAogICAgICAgICAgICAyLjI3CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJhZGQiCiAgICB9LAogICAgImNvcHl0b3BvaW50czYiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAic3BoZXJlMiIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogInJheTEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMQogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJ0YXJnZXRhdHRyaWJzIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJhcHBseWF0dHJpYnMjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAiKixedixeQWxwaGEsXk4sXnVwLF5wc2NhbGUsXnNjYWxlLF5vcmllbnQsXnJvdCxecGl2b3QsXnRyYW5zLF50cmFuc2Zvcm0iLAogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiYXBwbHltZXRob2QjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiYXBwbHl0byMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJ1c2VhcHBseSMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJhcHBseWF0dHJpYnMjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAiQWxwaGEiLAogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiYXBwbHltZXRob2QjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAibXVsdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJhcHBseXRvIyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgInVzZWFwcGx5IyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImFwcGx5YXR0cmlicyMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICJ2IiwKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgImFwcGx5bWV0aG9kIyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogImFkZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJhcHBseXRvIyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgInVzZWFwcGx5IyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXQogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAyLjI4LAogICAgICAgICAgICAtMQogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiY29weXRvcG9pbnRzOjoyLjAiCiAgICB9LAogICAgIm1lcmdlMSI6IHsKICAgICAgICAiZmxhZ3MiOiB7CiAgICAgICAgICAgICJkaXNwbGF5IjogdHJ1ZSwKICAgICAgICAgICAgInJlbmRlciI6IHRydWUKICAgICAgICB9LAogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImNvcHl0b3BvaW50czYiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJub3JtYWwxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDEKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICA0LjYyLAogICAgICAgICAgICAtMi4xMQogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAibWVyZ2UiCiAgICB9LAogICAgIm5vcm1hbDEiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAic3BoZXJlMSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgInR5cGUiOiAidHlwZXBvaW50IgogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICA0LjYyLAogICAgICAgICAgICAxLjIxCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJub3JtYWwiCiAgICB9LAogICAgInJheTEiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAicmlncG9zZTEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJub3JtYWwxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDEKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAibWV0aG9kIjogIm1pbmltdW0iCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDIuMjgsCiAgICAgICAgICAgIDAKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogInJheSIKICAgIH0sCiAgICAicmlncG9zZTEiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAiYWRkMSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgInRyYW5zZm9ybWF0aW9ucyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiYmFrZSMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJlbmFibGUjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiZ3JvdXAjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJtb2RlIyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgInAjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAicGl2b3QjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAicGl2b3RfciMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJyIyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NS4xODc3MzQ0MjIyMTU2NQogICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAick9yZCMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJzIyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4zMjQwNzQxNDkxMzE3NzUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjMyNDA3NDE0OTEzMTc3NSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMzI0MDc0MTQ5MTMxNzc1CiAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJ0IyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLTAuNDY3Mzg0MjkzNjc1NDIyNjcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjQ5Nzg3NTAwNTAwNjc5MDE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAieE9yZCMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMi4yOCwKICAgICAgICAgICAgMS4xMwogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAia2luZWZ4OjpyaWdwb3NlIiwKICAgICAgICAidXNlcl9kYXRhIjogewogICAgICAgICAgICAiZGlzcGxheV9vcHRpb25zIjogIntcInNob3dfam9pbnRzXCI6IDEsIFwic2hvd19saW5rc1wiOiAwLCBcInNvbGlkX2xpbmtzXCI6IDEsIFwic2hvd19heGVzXCI6IDEsIFwic2hvd19zY2VuZV9nZW9cIjogMX0iCiAgICAgICAgfQogICAgfSwKICAgICJzcGhlcmUxIjogewogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgInJhZCI6IFsKICAgICAgICAgICAgICAgIDAuNSwKICAgICAgICAgICAgICAgIDAuNSwKICAgICAgICAgICAgICAgIDAuNQogICAgICAgICAgICBdLAogICAgICAgICAgICAidHlwZSI6ICJwb2x5bWVzaCIKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgNC42MiwKICAgICAgICAgICAgMi4yNwogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAic3BoZXJlIgogICAgfSwKICAgICJzcGhlcmUyIjogewogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgInJhZCI6IFsKICAgICAgICAgICAgICAgIDAuNSwKICAgICAgICAgICAgICAgIDAuMiwKICAgICAgICAgICAgICAgIDAuNQogICAgICAgICAgICBdLAogICAgICAgICAgICAic2NhbGUiOiAwLjE0LAogICAgICAgICAgICAidHlwZSI6ICJwb2x5bWVzaCIKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMCwKICAgICAgICAgICAgMAogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAic3BoZXJlIgogICAgfQp9