#!/bin/bash

function fillIddfsFile {
    (cat | base64 --decode > "$TMP_DIR/$IDDFS_FILE") << EOF
Oi0gbW9kdWxlKCBmb3J0cHJvZwogICAgICAgICAsIFsgaWRkZnNfYXNzZXJ0SWZOb3RFeGlzdHMv
MQogICAgICAgICAgICwgaWRkZnNfbWF4TGlzdC8yCiAgICAgICAgICAgLCBpZGRmc19pc05ld1Jl
c3VsdC8yCiAgICAgICAgICAgLCBpZGRmc19zZWFyY2hEZXB0aC8xCiAgICAgICAgICAgLCBpZGRm
c19zZXRfc3RlcC8xIF0KICAgICAgICAgKS4KOi0gZHluYW1pYyB1c2VyOmNvbnRpbnVlX2lkZGZz
LzAuCjotIGR5bmFtaWMgdXNlcjppZGRmc19pc1VzZXJEZWZpbmVkLzIuCjotIGR5bmFtaWMgdXNl
cjppZGRmc19zdGVwLzEuCjotIGR5bmFtaWMgdXNlcjpleHBhbmRfcXVlcnkvNC4KOi0gbXVsdGlm
aWxlIHVzZXI6ZXhwYW5kX3F1ZXJ5LzQuCjotIG11bHRpZmlsZSB1c2VyOnRlcm1fZXhwYW5zaW9u
LzIuCgoKJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSBBVFRFTlRJT04gJSUlJSUl
JSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUKJSBUaGUgInJvb3QiIHByZWRpY2F0ZXMgYXJl
IHRlcm1fZXhwYW5zaW9uLzIgYW5kIGV4cGFuZF9xdWVyeS80LCBhdCB0aGUgYm90dG9tCiUgb2Yg
dGhpcyBmaWxlIChmb3IgdGVjaG5pY2FsIHJlYXNvbnMpLiBTa2lwIHRvIHRoZW0gdG8gdW5kZXJz
dGFuZCB0aGUgb3RoZXIKJSBwcmVkaWNhdGVzLgolJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUl
JSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJQoKCiUl
JSUlIFNwZWNpYWwgcXVlcmllcyAlJSUlJQolIEhhbmRsZSB0aGUgc3BlY2lhbCBxdWVyeSBvZiBs
b2FkaW5nIGEgbW9kdWxlIChkZXRlcm1pbmUgdXNlciBkZWZpbmVkCiUgcHJlZGljYXRlcyBiZWZv
cmUpLgpleHBhbmRRdWVyeShbTW9kdWxlXSwgW01vZHVsZV0pCiAgICA6LSBhYnNvbHV0ZV9maWxl
X25hbWUoTW9kdWxlLCBGaWxlTmFtZSwgW2V4dGVuc2lvbnMoWycucGwnXSldKQogICAgLCAgd3Jp
dGUoRmlsZU5hbWUpLCBubAogICAgLCAgcHJlUHJvY2VzcyhGaWxlTmFtZSkuCgoKCiUlJSUlIFRo
ZSBwdXJlIHRlcm0gZXhwYW5kaW5nIHByZWRpY2F0ZXMgJSUlJSUKJSBFeHBhbmQgYSBxdWVyeQol
IGA/LSA8UXVlcnk+LmAKJQolIHRvCiUKJSBgPy0gaWRkZnNfYXNzZXJ0SWZOb3RFeGlzdHModXNl
cjpjb250aW51ZV9pZGRmcykKJSAgICwgaWRkZnNfc2VhcmNoRGVwdGgoTWF4RGVwdGgpCiUgICAs
IHJldHJhY3QodXNlcjpjb250aW51ZV9pZGRmcykKJSAgICwgPFF1ZXJ5X3VzaW5nX2V4cGFuZGVk
X3ByZWRpY2F0ZXM+CiUgICAsIGlkZGZzX21heExpc3QoTHZscywgTHZsKQolICAgLCBpZGRmc19p
c05ld1Jlc3VsdChMdmwsIE1heERlcHRoKS5gCmV4cGFuZFF1ZXJ5KFF1ZXJ5LCBOZXdRdWVyeSkK
ICAgIDotIHRlcm1BbnkoaXNVc2VyRGVmaW5lZFRlcm0sIFF1ZXJ5KQogICAgLT4gKCBleHBhbmRC
b2R5KE1heERlcHRoLCBRdWVyeSwgRXhwUXVlcnksIEx2bHMpCiAgICAgICAsIG1ha2VDb25qVGVy
bShbIGlkZGZzX2Fzc2VydElmTm90RXhpc3RzKHVzZXI6Y29udGludWVfaWRkZnMpCiAgICAgICAg
ICAgICAgICAgICAgICAsIGlkZGZzX3NlYXJjaERlcHRoKE1heERlcHRoKQogICAgICAgICAgICAg
ICAgICAgICAgLCByZXRyYWN0KHVzZXI6Y29udGludWVfaWRkZnMpCiAgICAgICAgICAgICAgICAg
ICAgICAsIEV4cFF1ZXJ5CiAgICAgICAgICAgICAgICAgICAgICAsIGlkZGZzX21heExpc3QoTHZs
cywgTHZsKQogICAgICAgICAgICAgICAgICAgICAgLCBpZGRmc19pc05ld1Jlc3VsdChMdmwsIE1h
eERlcHRoKSBdCiAgICAgICAgICAgICAgICAgICAgICwgTmV3UXVlcnkpCiAgICAgICAgKQogICAg
OyBRdWVyeSA9IE5ld1F1ZXJ5LgoKZXhwYW5kUnVsZShIZWFkLCBCb2R5LCBOZXdIZWFkLCBOZXdC
b2R5KQogICAgOi0gZnVuY3RvcihIZWFkLCBGdW5jdG9yLCBBcml0eSkKICAgICwgIHVzZXI6aWRk
ZnNfaXNVc2VyRGVmaW5lZChGdW5jdG9yLCBBcml0eSkKICAgIC0+ICggZXhwYW5kUHJlZGljYXRp
b24oTWF4RGVwdGgsIEhlYWQsIE5ld0hlYWQsIEx2bCkKICAgICAgICwgZXhwYW5kQm9keShNYXhE
MSwgQm9keSwgVGVtcEJvZHkwLCBMdmxzKQogICAgICAgLCBleHBhbmRCb2R5QnlMdmxDYWxjKEx2
bHMsIEx2bCwgVGVtcEJvZHkwLCBUZW1wQm9keTEpCiAgICAgICAsIGV4cGFuZEJvZHlCeURlcHRo
Q2FsY0FuZEN1dChNYXhEZXB0aCwgTWF4RDEsIFRlbXBCb2R5MSwgTmV3Qm9keSkgKQogICAgOyAg
KEhlYWQgPSBOZXdIZWFkLCBCb2R5ID0gTmV3Qm9keSkuCgolIEV4cGVjdCB0ZXJtIChhbmQgbm90
IGl0cyBwYXJ0cyBnZW5lcmF0ZWQgYnkgYD0uLmApIGFzIGlucHV0LgpleHBhbmRQcmVkaWNhdGlv
bihEZXB0aCwgQ29tcG91bmRUZXJtLCBFeHBhbnNpb24sIEx2bCkKICAgIDotIENvbXBvdW5kVGVy
bSA9Li4gQ1RQYXJ0cwogICAgLCAgZXhwYW5kQ29tcG91bmRUZXJtUGFydHMoRGVwdGgsIENUUGFy
dHMsIEV4cENUUGFydHMsIEx2bCkKICAgICwgIEV4cGFuc2lvbiA9Li4gRXhwQ1RQYXJ0cy4KCmV4
cGFuZENvbXBvdW5kVGVybVBhcnRzKERlcHRoLCBbRnVuY3RvciB8IEFyZ3NdLCBbTmV3RnVuY3Rv
ciB8IE5ld0FyZ3NdLCBMdmwpCiAgICA6LSBsZW5ndGgoQXJncywgTikKICAgICwgIHVzZXI6aWRk
ZnNfaXNVc2VyRGVmaW5lZChGdW5jdG9yLCBOKQogICAgLT4gKCBhcHBlbmRBcmdzKFtEZXB0aCwg
THZsXSwgQXJncywgTmV3QXJncykKICAgICAgICwgYXRvbV9jb25jYXQoRnVuY3RvciwgJ19pZGRm
c19leHBhbmRlZCcsIE5ld0Z1bmN0b3IpCiAgICAgICApCiAgICAlIERvbid0IGV4cGFuZCBpZiBw
cmVkaWNhdGUgaXMgbm90IHVzZXItZGVmaW5lZC4KICAgIDsgICggRnVuY3RvciA9IE5ld0Z1bmN0
b3IKICAgICAgICwgQXJncyA9IE5ld0FyZ3MKICAgICAgICwgTHZsID0gMCApLgoKJSBFeHBlY3Qg
dGVybSAoYW5kIG5vdCBpdHMgcGFydHMgZ2VuZXJhdGVkIGJ5IGA9Li5gKSBhcyBpbnB1dC4KJSBJ
ZiBib2R5IGlzIGp1c3QgYSB2YXJpYWJsZSwgYD0uLmAgZG9lcyBub3Qgd29yay4KZXhwYW5kQm9k
eShfICAgICwgVmFyQm9keSwgVmFyQm9keSwgWzBdKSA6LSB2YXIoVmFyQm9keSksICEuCmV4cGFu
ZEJvZHkoRGVwdGgsIEJvZHkgICAsIE5ld0JvZHksIEx2bHMpCiAgICA6LSBCb2R5ID0uLiBCb2R5
UGFydHMKICAgICwgIGV4cGFuZEJvZHlQYXJ0cyhEZXB0aCwgQm9keVBhcnRzLCBFeHBCb2R5UGFy
dHMsIEx2bHMpCiAgICAsICBOZXdCb2R5ID0uLiBFeHBCb2R5UGFydHMuCgpleHBhbmRCb2R5UGFy
dHMoRGVwdGgsIFssLCBMZWZ0LCBSaWdodF0sIFssLCBFeHBMZWZ0LCBFeHBSaWdodF0sIEx2bHMp
CiAgICA6LSBleHBhbmRCb2R5KERlcHRoLCBMZWZ0LCBFeHBMZWZ0LCBMdmxzTGVmdCkKICAgICwg
IGV4cGFuZEJvZHkoRGVwdGgsIFJpZ2h0LCBFeHBSaWdodCwgTHZsc1JpZ2h0KQogICAgLCAgYXBw
ZW5kKEx2bHNMZWZ0LCBMdmxzUmlnaHQsIEx2bHMpLgpleHBhbmRCb2R5UGFydHMoRGVwdGgsIFs7
LCBMZWZ0LCBSaWdodF0sIFs7LCBFeHBMZWZ0LCBFeHBSaWdodF0sIEx2bHMpCiAgICA6LSBleHBh
bmRCb2R5KERlcHRoLCBMZWZ0LCBFeHBMZWZ0LCBMdmxzTGVmdCkKICAgICwgIGV4cGFuZEJvZHko
RGVwdGgsIFJpZ2h0LCBFeHBSaWdodCwgTHZsc1JpZ2h0KQogICAgLCAgYXBwZW5kKEx2bHNMZWZ0
LCBMdmxzUmlnaHQsIEx2bHMpLgpleHBhbmRCb2R5UGFydHMoRGVwdGgsIFstPiwgTGVmdCwgUmln
aHRdLCBbLT4sIEV4cExlZnQsIEV4cFJpZ2h0XSwgTHZscykKICAgIDotIGV4cGFuZEJvZHkoRGVw
dGgsIExlZnQsIEV4cExlZnQsIEx2bHNMZWZ0KQogICAgLCAgZXhwYW5kQm9keShEZXB0aCwgUmln
aHQsIEV4cFJpZ2h0LCBMdmxzUmlnaHQpCiAgICAsICBhcHBlbmQoTHZsc0xlZnQsIEx2bHNSaWdo
dCwgTHZscykuCmV4cGFuZEJvZHlQYXJ0cyhEZXB0aCwgW1wrLCBBcmddLCBbXCssIEV4cEFyZ10s
IEx2bHMpCiAgICA6LSBleHBhbmRCb2R5KERlcHRoLCBBcmcsIEV4cEFyZywgTHZscykuCmV4cGFu
ZEJvZHlQYXJ0cyhEZXB0aCwgUHJlZGljYXRpb25QYXJ0cywgTmV3UHJlZCwgW0x2bF0pCiAgICA6
LSBQcmVkaWNhdGlvblRlcm0gPS4uIFByZWRpY2F0aW9uUGFydHMKICAgICwgIGV4cGFuZFByZWRp
Y2F0aW9uKERlcHRoLCBQcmVkaWNhdGlvblRlcm0sIEV4cFByZWRUZXJtLCBMdmwpCiAgICAsICBF
eHBQcmVkVGVybSA9Li4gTmV3UHJlZC4KCiUgVHJhbnNmb3JtCiUKJSA8Qm9keT4KJQolIHRvCiUK
JSA8Qm9keT4sIGlkZGZzX21heExpc3QoTHZscywgTWF4THZsKSwgTHZsIGlzIE1heEx2bCArIDEK
ZXhwYW5kQm9keUJ5THZsQ2FsYyhMdmxzLCBMdmwsIEJvZHksIE5ld0JvZHkpCiAgICA6LSBtYWtl
Q29ualRlcm0oIFsgQm9keQogICAgICAgICAgICAgICAgICAgICAsIGlkZGZzX21heExpc3QoTHZs
cywgTWF4THZsKQogICAgICAgICAgICAgICAgICAgICAsIEx2bCBpcyBNYXhMdmwgKyAxXQogICAg
ICAgICAgICAgICAgICAgLCBOZXdCb2R5KS4KCiUgVHJhbnNmb3JtCiUgPEJvZHk+CiUKJSB0bwol
CiUgTiA+IDAgLT4gKCBOMSBpcyBOIC0gMSwgPEJvZHk+ICkKJSAgICAgICAgOyAoaWRkZnNfYXNz
ZXJ0SWZOb3RFeGlzdHModXNlcjpjb250aW51ZV9pZGRmcyksIGZhaWwpCmV4cGFuZEJvZHlCeURl
cHRoQ2FsY0FuZEN1dChNYXhEZXB0aCwgTWF4RDEsIEJvZHksIE5ld0JvZHkpCiAgICA6LSBtYWtl
Q29ualRlcm0oW01heEQxIGlzIE1heERlcHRoIC0gMSwgQm9keV0sIFRoZW5BY3Rpb24pCiAgICAs
ICBtYWtlRGlzalRlcm0oWyBNYXhEZXB0aCA+IDAgLT4gVGhlbkFjdGlvbgogICAgICAgICAgICAg
ICAgICAgICwgKGlkZGZzX2Fzc2VydElmTm90RXhpc3RzKHVzZXI6Y29udGludWVfaWRkZnMpCiAg
ICAgICAgICAgICAgICAgICAgLCBmYWlsKV0KICAgICAgICAgICAgICAgICAgICwgTmV3Qm9keSku
CgoKCiUlJSUlIFNwZWNpZmljIHV0aWxpdHkgcHJlZGljYXRlcyAlJSUlJQppZGRmc19hc3NlcnRJ
Zk5vdEV4aXN0cyhUZXJtKSA6LSBcKyBUZXJtIC0+IGFzc2VydGEoVGVybSkgOyB0cnVlLgoKJSBU
aGlzIGRldGVybWluZXMgdGhlIHN0ZXAgdXNlZCB0byBpbmNyZWFzZSB0aGUgc2VhcmNoIGRlcHRo
LiBJdCBpcyBjb25maWd1cmFibGUKJSBieSB1c2luZyBgaWRkZnNfc2V0X3N0ZXAvMWAuCnVzZXI6
aWRkZnNfc3RlcCgxKS4KCmlkZGZzX3NldF9zdGVwKE4pIDotIHJldHJhY3RhbGwodXNlcjppZGRm
c19zdGVwKF8pKSwgYXNzZXJ0YSh1c2VyOmlkZGZzX3N0ZXAoTikpLgoKJSBDb3VudCBmcm9tIDAg
dG8gaW5maW5pdHkgdXNpbmcgZ2xvYmFsIHN0ZXAgc2V0dGluZy4KaWRkZnNfc2VhcmNoRGVwdGgo
MCkuCmlkZGZzX3NlYXJjaERlcHRoKEQpCiAgICA6LSB1c2VyOmNvbnRpbnVlX2lkZGZzCiAgICAs
ICBpZGRmc19zZWFyY2hEZXB0aChEMSkKICAgICwgIHVzZXI6aWRkZnNfc3RlcChTdGVwKQogICAg
LCAgRCBpcyBEMSArIFN0ZXAuCgppZGRmc19tYXhMaXN0KFtdLCAwKS4gJSBGb3Igb3VyIHB1cnBv
c2UgdGhpcyBpcyBhIGdvb2QgY2hvaWNlLgppZGRmc19tYXhMaXN0KFsgWCB8IFhzIF0sIE1heCkK
ICAgIDotIGlkZGZzX21heExpc3QoWHMsIE1heFNvRmFyKQogICAgLCAoZ3JvdW5kKFgpIC0+IE1h
eCBpcyBtYXgoWCwgTWF4U29GYXIpCiAgICAgICAgICAgICAgICAgIDsgTWF4IGlzIE1heFNvRmFy
KS4KCiUgQSByZXN1bHQgaXMgY29uc2lkZXJlZCBuZXcsIGlmIGl0IGlzIGZvdW5kIHdpdGhpbiBh
IG5ldyBpbnRlcnZhbC4KaWRkZnNfaXNOZXdSZXN1bHQoTHZsLCBNYXhEZXB0aCkKICAgIDotIHVz
ZXI6aWRkZnNfc3RlcChTdGVwKQogICAgLCAgTHZsID49IE1heERlcHRoIC0gU3RlcCArIDEuCgpw
cmVQcm9jZXNzKE1vZHVsZSkKICAgIDotIG9wZW4oTW9kdWxlLCByZWFkLCBTdHJlYW0pCiAgICAs
ICByZWFkX3Rlcm1zKFN0cmVhbSwgVGVybXMpCiAgICAsICBjaGVja0ZvcklsbGVnYWxPcHMoVGVy
bXMpCiAgICAsICBnZXRVc2VyRGVmaW5lZFByZWRzKFRlcm1zKQogICAgLCAgY2xvc2UoU3RyZWFt
KS4KCnJlYWRfdGVybXMoU3RyZWFtLCBbXSkKICAgIDotIGF0X2VuZF9vZl9zdHJlYW0oU3RyZWFt
KS4KcmVhZF90ZXJtcyhTdHJlYW0sIFtUIHwgVHNdKQogICAgOi0gXCsgYXRfZW5kX29mX3N0cmVh
bShTdHJlYW0pCiAgICAsICByZWFkKFN0cmVhbSwgVCkKICAgICwgIHJlYWRfdGVybXMoU3RyZWFt
LCBUcykuCgpjaGVja0ZvcklsbGVnYWxPcHMoVGVybXMpIDotIGxpc3RBbnkodGVybUFueShpc0Zv
cmJpZGRlbk9wKSwgVGVybXMpLCAhLgpjaGVja0ZvcklsbGVnYWxPcHMoXykuCgppc0ZvcmJpZGRl
bk9wKFRlcm0pCiAgICA6LSBcKyB2YXIoVGVybSkKICAgIC0+IGZ1bmN0b3IoVGVybSwgJyEnLCAw
KQogICAgLCAgc3ludGF4X2Vycm9yKCdJRERGUyBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBj
dXQgKCEpIG9wZXJhdG9yIScpLgppc0ZvcmJpZGRlbk9wKFRlcm0pCiAgICA6LSBcKyB2YXIoVGVy
bSkKICAgIC0+IGZ1bmN0b3IoVGVybSwgXCssIDEpCiAgICAsICBzeW50YXhfZXJyb3IoJ0lEREZT
IGlzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIG5lZ2F0aW9uIChcXCspIG9wZXJhdG9yIScpLgoK
Z2V0VXNlckRlZmluZWRQcmVkcyhUZXJtcykKICAgIDotIHJldHJhY3RhbGwodXNlcjppZGRmc19p
c1VzZXJEZWZpbmVkKF8sXykpCiAgICAsICBkaXNwYXRjaF90ZXJtcyhUZXJtcykuCgppc1VzZXJE
ZWZpbmVkVGVybShUZXJtKQogICAgOi0gXCsgdmFyKFRlcm0pIC0+IGZ1bmN0b3IoVGVybSwgRiwg
QSksIHVzZXI6aWRkZnNfaXNVc2VyRGVmaW5lZChGLCBBKS4KCm1hcmtBc1VzZXJEZWZpbmVkKFRl
cm0pCiAgICA6LSBmdW5jdG9yKFRlcm0sIEYsIEEpCiAgICAsICBGIFw9IGVuZF9vZl9maWxlCiAg
ICAtPiBpZGRmc19hc3NlcnRJZk5vdEV4aXN0cyh1c2VyOmlkZGZzX2lzVXNlckRlZmluZWQoRiwg
QSkpCiAgICA7ICB0cnVlLgoKJSBUcmFuc2Zvcm0gdGVybXMgZnJvbSBhcmd1bWVudCBsaXN0IHRv
IGFuIHJpZ2h0IGFzc29jaWF0aXZlIGNvbmp1bmN0aW9uIHRlcm0uCiUgRm9yIGV4YW1wbGU6IGBb
dHJ1ZSwgZmFsc2UsIHRydWUsIGZhbHNlXWAgYmVjb21lcyBgdHJ1ZSwgKGZhbHNlLCAodHJ1ZSwg
ZmFsc2UpKWAKbWFrZUNvbmpUZXJtKEFyZ3MsIFJlc3VsdCkgOi0gbWFrZU9wVGVybSgsLCBBcmdz
LCBSZXN1bHQpLgoKJSBTZWUgYG1ha2VDb25qVGVybWAsIGJ1dCB3aXRoIGA7YCBpbnN0ZWFkIG9m
IGAsYAptYWtlRGlzalRlcm0oQXJncywgUmVzdWx0KSA6LSBtYWtlT3BUZXJtKDssIEFyZ3MsIFJl
c3VsdCkuCgphcHBlbmRBcmdzKEFyZ3MsIE9sZEFyZ3MsIE5ld0FyZ3MpIDotIGFwcGVuZChPbGRB
cmdzLCBBcmdzLCBOZXdBcmdzKS4KCgoKJSUlJSUgR2VuZXJpYyB1dGlsaXR5IHByZWRpY2F0ZXMg
JSUlJSUKJSBUcnVlIGlmIEdvYWwgY2FuIHN1Y2Nlc3NmdWxseSBiZSBhcHBsaWVkIG9uIHJvb3Qg
dGVybSwgb3IgaWYgdGVybUFueShHb2FsLCBTVCkKJSBjYW4gY2FuIHN1Y2Nlc3NmdWxseSBiZSBh
cHBsaWVkIG9uIGFueSBzdWJ0ZXJtIFNUIG9mIHRoZSByb290IHRlcm0uCiUgTWluZCB0aGF0IHRo
ZSByb290IHRlcm0gY291bGQgYWxzbyBiZSBhIHZhcmlhYmxlIG9yIGFuIGF0b20uCnRlcm1Bbnko
R29hbCwgVGVybSkgOi0gY2FsbChHb2FsLCBUZXJtKSwgIS4KdGVybUFueShHb2FsLCBUZXJtKQog
ICAgOi0gXCsgdmFyKFRlcm0pCiAgICAtPiBUZXJtID0uLiBbIF8gfCBBcmdzIF0sIGxpc3RBbnko
dGVybUFueShHb2FsKSwgQXJncykuCgolIFRydWUgaWYgR29hbCBjYW4gc3VjY2Vzc2Z1bGx5IGJl
IGFwcGxpZWQgb24gYW55IGVsZW1lbnQgb2YgTGlzdApsaXN0QW55KEdvYWwsIFtYIHwgXyBdKSA6
LSBjYWxsKEdvYWwsIFgpLCAhLgpsaXN0QW55KEdvYWwsIFtfIHwgWHNdKSA6LSBsaXN0QW55KEdv
YWwsIFhzKS4KCiUgQ29udHJ1Y3QgdGVybSB1c2luZyBnaXZlbiBiaW5hcnkgb3AuIEZvciBleGFt
cGxlOgolIG1ha2VPcFRlcm0oIG9wLCBbeDEsIC4uLiwgeG5dLCB4MSBvcCAoeDIgb3AgKC4uLigg
eG4tMSBvcCB4bikuLi4pKSApLgptYWtlT3BUZXJtKF8gLCBbQXJnMF0sIFJlc3VsdCkgOi0gUmVz
dWx0ID0gQXJnMC4KbWFrZU9wVGVybShPcCwgW0FyZzAsIEFyZzEgfCBBcmdzXSwgUmVzdWx0KQog
ICAgOi0gbWFrZU9wVGVybShPcCwgW0FyZzEgfCBBcmdzXSwgVGVtcFJlcykKICAgICwgIFJlc3Vs
dCA9Li4gW09wLCBBcmcwLCBUZW1wUmVzXS4KCgolJSUlJSBUaGUgRGlzcGF0Y2hpbmcgb2YgdGVy
bXMgJSUlJSUKJSUlIERpc3BhdGNoaW5nIG5lZWRlZCBkdXJpbmcgdGVybSBleHBhbnNpb24KZGlz
cGF0Y2goWzotLCBEaXJlY3RpdmVdLCBbOi0sIERpcmVjdGl2ZV0pIDotICEuCmRpc3BhdGNoKFs/
LSwgUXVlcnldLCBbPy0sIE5ld1F1ZXJ5XSkgOi0gZXhwYW5kUXVlcnkoUXVlcnksIE5ld1F1ZXJ5
KSwgIS4KZGlzcGF0Y2goWzotLCBIZWFkLCBCb2R5XSwgWzotLCBOZXdIZWFkLCBOZXdCb2R5XSkK
ICAgIDotIGV4cGFuZFJ1bGUoSGVhZCwgQm9keSwgTmV3SGVhZCwgTmV3Qm9keSksICEuCmRpc3Bh
dGNoKFByZWRpY2F0aW9uUGFydHMsIE5ld1ByZWQpCiAgICA6LSBQcmVkaWNhdGlvblRlcm0gPS4u
IFByZWRpY2F0aW9uUGFydHMKICAgICwgIGV4cGFuZFByZWRpY2F0aW9uKF8sIFByZWRpY2F0aW9u
VGVybSwgRXhwUHJlZFRlcm0sIDApCiAgICAsICBFeHBQcmVkVGVybSA9Li4gTmV3UHJlZC4KCiUl
JSBEaXNwYXRjaGluZyBuZWVkZWQgZHVyaW5nIHF1ZXJ5IGV4cGFuc2lvbgpkaXNwYXRjaF90ZXJt
cyhbXSkuCmRpc3BhdGNoX3Rlcm1zKFtUIHwgVHNdKSA6LSBUID0uLiBUUGFydHMsIGRpc3BhdGNo
KFRQYXJ0cyksIGRpc3BhdGNoX3Rlcm1zKFRzKS4KCmRpc3BhdGNoKFs6LSwgX10pIDotICEuCmRp
c3BhdGNoKFs/LSwgX10pIDotICEuCmRpc3BhdGNoKFs6LSwgSGVhZCwgX10pIDotIG1hcmtBc1Vz
ZXJEZWZpbmVkKEhlYWQpLCAhLgpkaXNwYXRjaChQcmVkUGFydHMpIDotIFByZWQgPS4uIFByZWRQ
YXJ0cywgIG1hcmtBc1VzZXJEZWZpbmVkKFByZWQpLgoKJSUlJSUgVGhlIGhvb2tzIHdoaWNoIGlu
aXRpYXRlIHRlcm0gZXhwYW5zaW9uICUlJSUlCjotIGFzc2VydGEoKHVzZXI6ZXhwYW5kX3F1ZXJ5
KFExLFEyLEIsQikgOi0gZXhwYW5kUXVlcnkoUTEsIFEyKSkpLgo6LSBhc3NlcnRhKCh1c2VyOnRl
cm1fZXhwYW5zaW9uKFRlcm0sIEV4cGFuc2lvbikgOi0gVGVybSA9Li4gUGFydHMsIGRpc3BhdGNo
KFBhcnRzLCBQcm9jZXNzZWRQYXJ0cyksIEV4cGFuc2lvbiA9Li4gUHJvY2Vzc2VkUGFydHMpKS4K
CiUlJSBHcmVldGluZyBtZXNzYWdlOgo6LSB3cml0ZSgnV2VsY29tZSB0byBTV0ktUHJvbG9nIChl
eHRlbmRlZCBXSVRIIENPTVBMRVRFIFNFQVJDSCBmb3IgRm9ydFByb2csIDIwLzAxLzE3KS4nKSwK
ICAgbmwuCg==
EOF
}

TMP_DIR="$(mktemp -d)"
IDDFS_FILE="iddfs.pl"
touch "$TMP_DIR/$IDDFS_FILE"

fillIddfsFile

swipl --quiet -s "$TMP_DIR/$IDDFS_FILE"

rm -R "$TMP_DIR"
