{
  "TypeId": "ScriptImageRenderer",
  "Version": 1,
  "Name": "36a00ae8-cefd-483e-865c-671a3320cf7b",
  "DisplayName": "NV21 - Python",
  "OutputFormat": "Bgra32",
  "SupportedRenderingOptions": [],
  "PlaneDescriptors": [
    {
      "PixelStride": 1,
      "MinEffectiveBits": 8,
      "MaxEffectiveBits": 8,
      "AreAdjustableBlackWhiteLevels": false,
      "HorizontalSubsampling": 1,
      "VerticalSubsampling": 1
    },
    {
      "PixelStride": 2,
      "MinEffectiveBits": 8,
      "MaxEffectiveBits": 8,
      "AreAdjustableBlackWhiteLevels": false,
      "HorizontalSubsampling": 2,
      "VerticalSubsampling": 2
    }
  ],
  "RenderingScript": {
    "Language": "Python",
    "Source": "IyBSZW5kZXIgTlYyMSAoWVVWIDQ6MjowLCBzZW1pLXBsYW5hciwgViBiZWZvcmUgVSkgaW50byBhIEJncmEzMiBpbWFnZS4KIwojIFBsYW5lIDAgLSBZICA6IHBpeGVsIHN0cmlkZSBpcyB0aGUgZGlzdGFuY2UgYmV0d2VlbiAyIGx1bWEgc2FtcGxlcywgcm93IHN0cmlkZSB0aGUgZGlzdGFuY2UgYmV0d2VlbiAyIHJvd3MuCiMgUGxhbmUgMSAtIFZVIDogcGl4ZWwgc3RyaWRlIGlzIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIDIgY2hyb21hIHBhaXJzLCByb3cgc3RyaWRlIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIDIgcm93cy4KCiMgcmVhZCB0aGUgZ2l2ZW4gbnVtYmVyIG9mIGJ5dGVzIGZyb20gdGhlIHN0cmVhbSwgdGhlIGJ5dGVzIHdoaWNoIGFyZSBub3QgcmVhZCBhcmUga2VwdCBhcyB6ZXJvCmRlZiByZWFkX2RhdGEoc3RyZWFtLCBidWZmZXIsIGNvdW50KToKICAgIG9mZnNldCA9IDAKICAgIHdoaWxlIG9mZnNldCA8IGNvdW50OgogICAgICAgIHJlYWQgPSBzdHJlYW0uUmVhZChidWZmZXIsIG9mZnNldCwgY291bnQgLSBvZmZzZXQpCiAgICAgICAgaWYgcmVhZCA8PSAwOgogICAgICAgICAgICBicmVhawogICAgICAgIG9mZnNldCArPSByZWFkCiAgICByZXR1cm4gb2Zmc2V0CgojIGdldCBzdGF0ZQp3aWR0aCA9IGNvbnRleHQuT3V0cHV0V2lkdGgKaGVpZ2h0ID0gY29udGV4dC5PdXRwdXRIZWlnaHQKcm93X2J5dGVzID0gY29udGV4dC5PdXRwdXRSb3dCeXRlcwp5X3BpeGVsX3N0cmlkZSA9IGNvbnRleHQuUGxhbmVPcHRpb25zWzBdLlBpeGVsU3RyaWRlCnlfcm93X3N0cmlkZSA9IGNvbnRleHQuUGxhbmVPcHRpb25zWzBdLlJvd1N0cmlkZQp1dl9waXhlbF9zdHJpZGUgPSBjb250ZXh0LlBsYW5lT3B0aW9uc1sxXS5QaXhlbFN0cmlkZQp1dl9yb3dfc3RyaWRlID0gY29udGV4dC5QbGFuZU9wdGlvbnNbMV0uUm93U3RyaWRlCmNocm9tYV93aWR0aCA9ICh3aWR0aCArIDEpID4\u002BIDEKY2hyb21hX2hlaWdodCA9IChoZWlnaHQgKyAxKSA\u002BPiAxCgojIGNoZWNrIHBhcmFtZXRlcnMKaWYgd2lkdGggPD0gMCBvciBoZWlnaHQgPD0gMDoKICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQgc2l6ZSBvZiBpbWFnZS4nKQppZiB5X3BpeGVsX3N0cmlkZSA8PSAwIG9yIHlfcm93X3N0cmlkZSA8IHdpZHRoICogeV9waXhlbF9zdHJpZGU6CiAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIHBpeGVsL3JvdyBzdHJpZGUgb2YgWSBwbGFuZS4nKQppZiB1dl9waXhlbF9zdHJpZGUgPCAyIG9yIHV2X3Jvd19zdHJpZGUgPCBjaHJvbWFfd2lkdGggKiB1dl9waXhlbF9zdHJpZGU6CiAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIHBpeGVsL3JvdyBzdHJpZGUgb2YgVVYgcGxhbmUuJykKCiMgcmVhZCBZIGFuZCBVViBwbGFuZXMsIGEgcGxhbmUgd2hpY2ggaXMgbm90IGNvbXBsZXRlIG1lYW5zIHRoYXQgdGhlIHN0cmlkZXMgZG9uJ3QgbWF0Y2ggdGhlIGRhdGEKaW5wdXRfc3RyZWFtID0gY29udGV4dC5JbnB1dFN0cmVhbQp5X3NpemUgPSB5X3Jvd19zdHJpZGUgKiBoZWlnaHQKeV9wbGFuZSA9IGNvbnRleHQuQ3JlYXRlQnl0ZUFycmF5KHlfc2l6ZSkKeV9yZWFkX2NvdW50ID0gcmVhZF9kYXRhKGlucHV0X3N0cmVhbSwgeV9wbGFuZSwgeV9zaXplKQppZiB5X3JlYWRfY291bnQgPCB5X3NpemU6CiAgICByYWlzZSBWYWx1ZUVycm9yKCdOb3QgZW5vdWdoIGRhdGEgb2YgWSBwbGFuZSwgJWQgYnl0ZXMgcmVhZCBidXQgJWQgYnl0ZXMgbmVlZGVkLicgJSAoeV9yZWFkX2NvdW50LCB5X3NpemUpKQp1dl9zaXplID0gdXZfcm93X3N0cmlkZSAqIGNocm9tYV9oZWlnaHQKdXZfcGxhbmUgPSBjb250ZXh0LkNyZWF0ZUJ5dGVBcnJheSh1dl9zaXplKQp1dl9yZWFkX2NvdW50ID0gcmVhZF9kYXRhKGlucHV0X3N0cmVhbSwgdXZfcGxhbmUsIHV2X3NpemUpCmlmIHV2X3JlYWRfY291bnQgPCB1dl9zaXplOgogICAgcmFpc2UgVmFsdWVFcnJvcignTm90IGVub3VnaCBkYXRhIG9mIFVWIHBsYW5lLCAlZCBieXRlcyByZWFkIGJ1dCAlZCBieXRlcyBuZWVkZWQuJyAlICh1dl9yZWFkX2NvdW50LCB1dl9zaXplKSkKCiMgY29udmVydCB0byBCR1JBIHJvdyBieSByb3csIElUVS1SIEJULjcwOSBmdWxsIHJhbmdlIHdpdGggOC1iaXQgZml4ZWQtcG9pbnQgZmFjdG9ycwpvdXRwdXRfc3RyZWFtID0gY29udGV4dC5PdXRwdXRTdHJlYW0Kcm93ID0gY29udGV4dC5DcmVhdGVCeXRlQXJyYXkocm93X2J5dGVzKQpmb3IgeSBpbiByYW5nZShoZWlnaHQpOgogICAgeV9yb3dfb2Zmc2V0ID0geSAqIHlfcm93X3N0cmlkZQogICAgdXZfcm93X29mZnNldCA9ICh5ID4\u002BIDEpICogdXZfcm93X3N0cmlkZQogICAgcG9zaXRpb24gPSAwCiAgICByX2NvZWZmID0gMAogICAgZ19jb2VmZiA9IDAKICAgIGJfY29lZmYgPSAwCiAgICBmb3IgeCBpbiByYW5nZSh3aWR0aCk6CiAgICAgICAgIyB1cGRhdGUgY2hyb21hIGNvZWZmaWNpZW50cyBmb3IgZWFjaCAyeDIgYmxvY2sgb2YgcGl4ZWxzCiAgICAgICAgaWYgKHggJiAxKSA9PSAwOgogICAgICAgICAgICB1dl9pbmRleCA9IHV2X3Jvd19vZmZzZXQgKyAoeCA\u002BPiAxKSAqIHV2X3BpeGVsX3N0cmlkZQogICAgICAgICAgICB2ID0gdXZfcGxhbmVbdXZfaW5kZXhdIC0gMTI4CiAgICAgICAgICAgIHUgPSB1dl9wbGFuZVt1dl9pbmRleCArIDFdIC0gMTI4CiAgICAgICAgICAgIHJfY29lZmYgPSA0MDMgKiB2CiAgICAgICAgICAgIGdfY29lZmYgPSAtNDcgKiB1IC0gMTE5ICogdgogICAgICAgICAgICBiX2NvZWZmID0gNDc1ICogdQoKICAgICAgICAjIGNvbnZlcnQgdGhlIHBpeGVsIGFuZCBwdXQgaXQgaW50byB0aGUgcm93IGJ1ZmZlcgogICAgICAgIGx1bWEgPSB5X3BsYW5lW3lfcm93X29mZnNldCArIHggKiB5X3BpeGVsX3N0cmlkZV0gPDwgOAogICAgICAgIGIgPSAobHVtYSArIGJfY29lZmYpID4\u002BIDgKICAgICAgICBnID0gKGx1bWEgKyBnX2NvZWZmKSA\u002BPiA4CiAgICAgICAgciA9IChsdW1hICsgcl9jb2VmZikgPj4gOAogICAgICAgIHJvd1twb3NpdGlvbl0gPSAwIGlmIGIgPCAwIGVsc2UgKDI1NSBpZiBiID4gMjU1IGVsc2UgYikKICAgICAgICByb3dbcG9zaXRpb24gKyAxXSA9IDAgaWYgZyA8IDAgZWxzZSAoMjU1IGlmIGcgPiAyNTUgZWxzZSBnKQogICAgICAgIHJvd1twb3NpdGlvbiArIDJdID0gMCBpZiByIDwgMCBlbHNlICgyNTUgaWYgciA\u002BIDI1NSBlbHNlIHIpCiAgICAgICAgcm93W3Bvc2l0aW9uICsgM10gPSAyNTUKICAgICAgICBwb3NpdGlvbiArPSA0CgogICAgIyB3cml0ZSB0aGUgcm93IHRvIHRoZSBvdXRwdXQsIHRoZSBieXRlcyBvZiBwYWRkaW5nIGFyZSBrZXB0IGFzIHplcm8KICAgIG91dHB1dF9zdHJlYW0uV3JpdGUocm93LCAwLCByb3dfYnl0ZXMpCgojIGNvbXBsZXRlCnJldHVybiBJbWFnZVJlbmRlcmluZ1Jlc3VsdC5EZWZhdWx0"
  }
}