Skip to content
Journey with Mary, Path to Jesus
Home Page
About Us
Jesus
The Eucharist
The Trinitarian God
The Jesus Prayer
Mary
Mother of God
Perpetual Virginity
Immaculate Conception
Assumption into Heaven
Holy Rosary
Marian Prayers
The Creed
The Our Father
Hail Mary
Glory Be
Fátima Prayer
Marian Shrines
Our Lady of Lourdes
Our Lady of Fátima
Our Lady of Guadalupe
Our Lady of Częstochowa
Our Lady of Knock
Our Lady of Aparecida
Our Lady of Walsingham
Our Lady of Montserrat
Our Lady of La Vang
Our Lady of Good Health
Our Lady of Kibeho
Our Lady of the Pillar
Our Lady of Peace
Our Lady of the Miraculous Medal
Our Lady of Banneux
Our Lady of Beauraing
Our Lady of Good Success
Our Lady of Laus
Our Lady of Lebanon
Our Lady of Šiluva
Our Lady of La Salette
Our Lady of Pontmain
Our Lady of Gietrzwałd
Our Lady of Leżajsk
Our Lady of Zion
Our Lady of the Rock
Our Lady of Good Help
Our Lady of Cuapa
Our Lady of Itatí
Our Lady of Coromoto
Our Lady of Medjugorje
Our Lady of Luján
Kids’ Corner
Pray With Us Live
Contact
Little Quiz
← Hub
Little Quiz
You have
0
✦ graces
What do you know? Pick a topic
✦ ✦ ✦
Well played!
You got
0
out of 5
+0 ✦ graces
Play another round
← Pick a topic
KGZ1bmN0aW9uKCl7CnZhciBRPXsKamVzdXM6Wwp7cTonV2hlcmUgd2FzIEplc3VzIGJvcm4/JyxhOlsnQmV0aGxlaGVtJywnTmF6YXJldGgnLCdKZXJ1c2FsZW0nLCdDYW5hJ10sYzowfSwKe3E6J1dobyB3YXMgSmVzdXPigJkgbW90aGVyPycsYTpbJ01hcnknLCdFbGl6YWJldGgnLCdBbm5lJywnTWFydGhhJ10sYzowfSwKe3E6J0hvdyBtYW55IGRpc2NpcGxlcyBkaWQgSmVzdXMgY2FsbD8nLGE6WycxMicsJzcnLCcxMCcsJzQnXSxjOjB9LAp7cTonV2hhdCBkaWQgSmVzdXMgZ2l2ZSB1cyBhdCB0aGUgTGFzdCBTdXBwZXI/JyxhOlsnVGhlIEV1Y2hhcmlzdCcsJ1RoZSBCZWF0aXR1ZGVzJywnQSBuZXcgY29tbWFuZG1lbnQgb25seScsJ0EgYmxlc3NpbmcnXSxjOjB9LAp7cTonSG93IG1hbnkgbG9hdmVzIGRpZCBKZXN1cyBtdWx0aXBseSBmb3IgdGhlIGNyb3dkPycsYTpbJzUgbG9hdmVzIGFuZCAyIGZpc2gnLCc3IGxvYXZlcycsJzEyIGxvYXZlcycsJzMgbG9hdmVzJ10sYzowfSwKe3E6J1dobyB3YXMgdGhlIHRheCBjb2xsZWN0b3Igd2hvIGNsaW1iZWQgYSB0cmVlIHRvIHNlZSBKZXN1cz8nLGE6WydaYWNjaGFldXMnLCdNYXR0aGV3JywnTGV2aScsJ0JhcnRob2xvbWV3J10sYzowfSwKe3E6J1doYXQgZGlkIEplc3VzIHR1cm4gd2F0ZXIgaW50byBhdCBDYW5hPycsYTpbJ1dpbmUnLCdCcmVhZCcsJ09pbCcsJ0hvbmV5J10sYzowfSwKe3E6J1dobyBiYXB0aXplZCBKZXN1cz8nLGE6WydKb2huIHRoZSBCYXB0aXN0JywnU3QuIFBldGVyJywnU3QuIEpvc2VwaCcsJ1RoZSBBbmdlbCBHYWJyaWVsJ10sYzowfSwKe3E6J0hvdyBtYW55IGRheXMgd2FzIEplc3VzIGluIHRoZSB0b21iPycsYTpbJzMgZGF5cycsJzcgZGF5cycsJzEgZGF5JywnNDAgZGF5cyddLGM6MH0sCntxOidXaGF0IGlzIHRoZSBkYXkgSmVzdXMgcm9zZSBmcm9tIHRoZSBkZWFkIGNhbGxlZD8nLGE6WydFYXN0ZXInLCdDaHJpc3RtYXMnLCdQZW50ZWNvc3QnLCdHb29kIEZyaWRheSddLGM6MH0sCntxOidXaGF0IGRpZCB0aGUgZGlzY2lwbGVzIG9mdGVuIGNhbGwgSmVzdXM/JyxhOlsnUmFiYmkgKFRlYWNoZXIpJywnS2luZycsJ01hc3RlciBvbmx5JywnRmF0aGVyJ10sYzowfSwKe3E6J1dobyBiZXRyYXllZCBKZXN1cz8nLGE6WydKdWRhcyBJc2NhcmlvdCcsJ1N0LiBQZXRlcicsJ1N0LiBUaG9tYXMnLCdTdC4gSm9obiddLGM6MH0sCntxOidXaG8gY2FycmllZCBKZXN1c+KAmSBjcm9zcyBwYXJ0IG9mIHRoZSB3YXk/JyxhOlsnU2ltb24gb2YgQ3lyZW5lJywnU3QuIFBldGVyJywnSm9obiB0aGUgQmFwdGlzdCcsJ0pvc2VwaCBvZiBBcmltYXRoZWEnXSxjOjB9LAp7cTonV2hhdCBpcyB0aGUgZGF5IEplc3VzIGRpZWQgb24gdGhlIGNyb3NzIGNhbGxlZD8nLGE6WydHb29kIEZyaWRheScsJ0hvbHkgVGh1cnNkYXknLCdFYXN0ZXIgU3VuZGF5JywnUGFsbSBTdW5kYXknXSxjOjB9LAp7cTonV2hhdCBkaWQgSmVzdXMgc2F5IHRvIGNhbG0gdGhlIHN0b3JtPycsYTpbJyJQZWFjZSEgQmUgc3RpbGwhIicsJyJTdG9wLCBwbGVhc2UhIicsJyJCZSBhZnJhaWQgbm8gbW9yZSEiJywnIldpbmQsIGxpc3RlbiEiJ10sYzowfSwKe3E6J1doYXQgd2FzIEplc3Vz4oCZIGZpcnN0IG1pcmFjbGU/JyxhOlsnVHVybmluZyB3YXRlciBpbnRvIHdpbmUgYXQgQ2FuYScsJ0ZlZWRpbmcgdGhlIDUwMDAnLCdIZWFsaW5nIGEgYmxpbmQgbWFuJywnUmFpc2luZyBMYXphcnVzJ10sYzowfSwKe3E6J1doYXQgYW5pbWFsIGRpZCBKZXN1cyByaWRlIGludG8gSmVydXNhbGVtPycsYTpbJ0EgZG9ua2V5JywnQSBob3JzZScsJ0EgY2FtZWwnLCdBIGxhbWInXSxjOjB9LAp7cTonV2hhdCBkaWQgSmVzdXMgc2F5IHRvIFBldGVyIHdoZW4gaGUgc3RhcnRlZCB0byBzaW5rPycsYTpbJyJPIHlvdSBvZiBsaXR0bGUgZmFpdGgiJywnIlN0YW5kIHVwLCBteSBmcmllbmQiJywnIlRyeSBoYXJkZXIiJywnIkhlbHAgeW91cnNlbGYiJ10sYzowfSwKe3E6J1doYXQgZGlkIEplc3VzIGNhbGwgaGltc2VsZiAidGhlIGJyZWFkIG9mIj8nLGE6WydMaWZlJywnSGVhdmVuJywnRXRlcm5pdHknLCdKb3knXSxjOjB9LAp7cTonV2hhdCBpcyB0aGUgbW9zdCBpbXBvcnRhbnQgY29tbWFuZG1lbnQgSmVzdXMgdGF1Z2h0PycsYTpbJ0xvdmUgR29kIGFuZCBsb3ZlIHlvdXIgbmVpZ2hib3InLCdIb25vciB5b3VyIHBhcmVudHMnLCdEbyBub3Qgc3RlYWwnLCdQcmF5IGV2ZXJ5IGRheSddLGM6MH0sCntxOidXaGF0IGRpZCBKZXN1cyBzYXkgZnJvbSB0aGUgY3Jvc3MgdG8gSm9obiBhYm91dCBNYXJ5PycsYTpbJyJCZWhvbGQgeW91ciBtb3RoZXIiJywnIlRha2UgaGVyIGhvbWUiJywnIk1hcnkgaXMgeW91cnMgbm93IicsJyJDYXJlIGZvciBoZXIiJ10sYzowfSwKe3E6J0hvdyBpcyBKZXN1cyBwcmVzZW50IGluIHRoZSBFdWNoYXJpc3Q/JyxhOlsnQm9keSwgQmxvb2QsIFNvdWwsIGFuZCBEaXZpbml0eScsJ0FzIGEgbWVtb3J5IG9ubHknLCdBcyBicmVhZCBvbmx5JywnQXMgYSBzeW1ib2wnXSxjOjB9LAp7cTonV2hlcmUgZGlkIEplc3VzIGdyb3cgdXA/JyxhOlsnTmF6YXJldGgnLCdCZXRobGVoZW0nLCdKZXJ1c2FsZW0nLCdDYXBlcm5hdW0nXSxjOjB9LAp7cTonSG93IG1hbnkgeWVhcnMgZGlkIEplc3VzIHN0YXkgaGlkZGVuIGluIHRoZSB0ZW1wbGUgYmVmb3JlIEhpcyBwYXJlbnRzIGZvdW5kIEhpbT8nLGE6WydIZSB3YXMgMTIgeWVhcnMgb2xkLCBmb3VuZCBhZnRlciAzIGRheXMnLCdIZSB3YXMgNycsJ0hlIHdhcyAxOCcsJ0hlIHdhcyAzMCddLGM6MH0sCntxOidXaG8gaXMgdGhlIG9ubHkgb25lIHdobyBjYW4gZm9yZ2l2ZSBzaW5zPycsYTpbJ0dvZCcsJ1RoZSBQb3BlJywnT3VyIHBhcmVudHMnLCdUaGUgYW5nZWxzJ10sYzowfQpdLAptYXJ5OlsKe3E6J1dobyB0b2xkIE1hcnkgc2hlIHdvdWxkIGJlIHRoZSBNb3RoZXIgb2YgSmVzdXM/JyxhOlsnVGhlIEFuZ2VsIEdhYnJpZWwnLCdUaGUgSG9seSBTcGlyaXQgYWxvbmUnLCdTdC4gSm9zZXBoJywnVGhlIEFwb3N0bGVzJ10sYzowfSwKe3E6J1doYXQgZGlkIE1hcnkgc2F5IHRvIHRoZSBBbmdlbD8nLGE6WyciQmUgaXQgZG9uZSB1bnRvIG1lIGFjY29yZGluZyB0byB0aHkgd29yZCInLCciSSBhbSB0b28geW91bmciJywnIkkgZG8gbm90IGtub3cgaG93IicsJyJXaGVyZSBpcyBKZXN1cz8iJ10sYzowfSwKe3E6J1dobyB3YXMgTWFyeeKAmXMgaHVzYmFuZD8nLGE6WydTdC4gSm9zZXBoJywnU3QuIFBldGVyJywnU3QuIEphbWVzJywnSm9hY2hpbSddLGM6MH0sCntxOidXaG8gd2FzIE1hcnnigJlzIG1vdGhlcj8nLGE6WydTdC4gQW5uZScsJ1N0LiBFbGl6YWJldGgnLCdTdC4gTWFydGhhJywnU2FyYWgnXSxjOjB9LAp7cTonV2hvIHdhcyBNYXJ54oCZcyBmYXRoZXI/JyxhOlsnU3QuIEpvYWNoaW0nLCdTdC4gSm9zZXBoJywnWmVjaGFyaWFoJywnRGF2aWQnXSxjOjB9LAp7cTonV2hvIHdhcyBNYXJ54oCZcyBjb3VzaW4/JyxhOlsnRWxpemFiZXRoJywnQW5uZScsJ01hcnRoYScsJ1NhcmFoJ10sYzowfSwKe3E6J1doYXQgZGlkIE1hcnkgc2F5IGF0IHRoZSB3ZWRkaW5nIGluIENhbmE/JyxhOlsnIkRvIHdoYXRldmVyIGhlIHRlbGxzIHlvdSInLCciR2l2ZSB0aGVtIG1vcmUgd2luZSInLCciQmxlc3MgdGhpcyBob3VzZSInLCciSGVscCB0aGVtLCBTb24iJ10sYzowfSwKe3E6J1doZXJlIGRpZCBNYXJ5IGFwcGVhciB0byBTdC4gQmVybmFkZXR0ZT8nLGE6WydMb3VyZGVzLCBGcmFuY2UnLCdGYXRpbWEsIFBvcnR1Z2FsJywnR3VhZGFsdXBlLCBNZXhpY28nLCdLbm9jaywgSXJlbGFuZCddLGM6MH0sCntxOidXaGVyZSBkaWQgTWFyeSBhcHBlYXIgdG8gdGhyZWUgY2hpbGRyZW4gaW4gMTkxNz8nLGE6WydGYXRpbWEsIFBvcnR1Z2FsJywnTG91cmRlcywgRnJhbmNlJywnTGEgU2FsZXR0ZSwgRnJhbmNlJywnQWtpdGEsIEphcGFuJ10sYzowfSwKe3E6J1doYXQgaXMgdGhlIG5hbWUgb2YgTWFyeeKAmXMgc3BlY2lhbCBwcmF5ZXIgb2YgcHJhaXNlPycsYTpbJ1RoZSBNYWduaWZpY2F0JywnVGhlIE1lbW9yYXJlJywnVGhlIFNhbHZlIFJlZ2luYScsJ1RoZSBBbmdlbHVzJ10sYzowfSwKe3E6J1doYXQgaXMgdGhlIHByYXllciBNYXJ5IGFza2VkIHVzIHRvIHByYXkgb2Z0ZW4/JyxhOlsnVGhlIFJvc2FyeScsJ1RoZSBMaXR1cmd5IG9mIHRoZSBIb3VycycsJ1RoZSBTdGF0aW9ucyBvZiB0aGUgQ3Jvc3MnLCdUaGUgTGl0YW55IG9mIFNhaW50cyddLGM6MH0sCntxOidIb3cgbWFueSBzZXRzIG9mIG15c3RlcmllcyBhcmUgaW4gdGhlIFJvc2FyeT8nLGE6Wyc0IChKb3lmdWwsIFNvcnJvd2Z1bCwgR2xvcmlvdXMsIEx1bWlub3VzKScsJzMnLCc1JywnNyddLGM6MH0sCntxOidXaGF0IG1vbnRoIGlzIGRlZGljYXRlZCB0byBNYXJ5PycsYTpbJ01heScsJ0phbnVhcnknLCdBcHJpbCcsJ0p1bHknXSxjOjB9LAp7cTonV2hhdCBvdGhlciBtb250aCBpcyBkZWRpY2F0ZWQgdG8gTWFyeSBhbmQgdGhlIFJvc2FyeT8nLGE6WydPY3RvYmVyJywnSnVuZScsJ0F1Z3VzdCcsJ0RlY2VtYmVyJ10sYzowfSwKe3E6J1doYXQgZG9lcyAiSW1tYWN1bGF0ZSBDb25jZXB0aW9uIiBtZWFuPycsYTpbJ01hcnkgd2FzIGJvcm4gd2l0aG91dCBvcmlnaW5hbCBzaW4nLCdNYXJ5IHdhcyBib3JuIGluIGhlYXZlbicsJ01hcnkgbGl2ZWQgd2l0aG91dCBwYXJlbnRzJywnTWFyeSBuZXZlciBncmV3IG9sZCddLGM6MH0sCntxOidXaGF0IGZlYXN0IGNlbGVicmF0ZXMgTWFyeSBnb2luZyB1cCB0byBoZWF2ZW4/JyxhOlsnVGhlIEFzc3VtcHRpb24nLCdUaGUgQW5udW5jaWF0aW9uJywnVGhlIE5hdGl2aXR5JywnVGhlIFZpc2l0YXRpb24nXSxjOjB9LAp7cTonV2hlbiBkaWQgTWFyeSB2aXNpdCBFbGl6YWJldGg/JyxhOlsnV2hlbiBNYXJ5IHdhcyBjYXJyeWluZyBKZXN1cycsJ0FmdGVyIEplc3VzIHdhcyBib3JuJywnQXQgQ2FuYScsJ0F0IFBlbnRlY29zdCddLGM6MH0sCntxOidXaGF0IGRpZCBFbGl6YWJldGjigJlzIGJhYnkgSm9obiBkbyB3aGVuIE1hcnkgY2FtZT8nLGE6WydIZSBsZWFwdCBmb3Igam95IGluIHRoZSB3b21iJywnSGUgd2FzIGJvcm4gZWFybHknLCdIZSBjcmllZCcsJ0hlIGZlbGwgYXNsZWVwJ10sYzowfSwKe3E6J1doYXQgZG9lcyB0aGUgQW5nZWwgY2FsbCBNYXJ5IGluIHRoZSBIYWlsIE1hcnk/JyxhOlsnIkZ1bGwgb2YgZ3JhY2UiJywnIkhvbHkgYW5kIGJsZXNzZWQiJywnIlB1cmUgYW5kIGhvbHkiJywnIk1vdGhlciBvZiBHb2QiJ10sYzowfSwKe3E6J1doZXJlIGRpZCBNYXJ5IGFuZCBKb3NlcGggZmxlZSB0byBrZWVwIEplc3VzIHNhZmU/JyxhOlsnRWd5cHQnLCdHYWxpbGVlJywnUm9tZScsJ0dyZWVjZSddLGM6MH0sCntxOidXaG8gdG9sZCBKb3NlcGggaW4gYSBkcmVhbSB0byBmbGVlIHRvIEVneXB0PycsYTpbJ0FuIGFuZ2VsJywnVGhlIHNoZXBoZXJkcycsJ1RoZSBXaXNlIE1lbicsJ0pvaG4gdGhlIEJhcHRpc3QnXSxjOjB9LAp7cTonV2hhdCBpcyBNYXJ54oCZcyB0aXRsZSB3aGVuIHNoZSBzdG9vZCBhdCB0aGUgY3Jvc3M/JyxhOlsnT3VyIExhZHkgb2YgU29ycm93cycsJ091ciBMYWR5IG9mIEdyYWNlJywnU3RhciBvZiB0aGUgU2VhJywnTW90aGVyIG9mIE1lcmN5J10sYzowfSwKe3E6J1doYXQgaXMgTWFyeeKAmXMgdGl0bGUgaW4gaGVhdmVuPycsYTpbJ1F1ZWVuIG9mIEhlYXZlbicsJ1ByaW5jZXNzIG9mIFN0YXJzJywnTGFkeSBvZiBMaWdodCcsJ01vdGhlciBvZiBBbGwnXSxjOjB9LAp7cTonV2hhdCBkb2VzICJNYWduaWZpY2F0IiBtZWFuPycsYTpbJyJNeSBzb3VsIG1hZ25pZmllcyB0aGUgTG9yZCInLCciQmxlc3NlZCBhcmUgeW91IicsJyJJIGFtIHRoZSBoYW5kbWFpZCInLCciSGFpbCB0byB0aGUgTG9yZCInXSxjOjB9LAp7cTonSG93IGRvZXMgTWFyeSBoZWxwIHVzIGluIGhlYXZlbj8nLGE6WydTaGUgaW50ZXJjZWRlcyBmb3IgdXMgd2l0aCBKZXN1cycsJ1NoZSB3YXRjaGVzIHNpbGVudGx5JywnU2hlIGp1ZGdlcyB1cycsJ1NoZSBtYWtlcyB0aGUgcnVsZXMnXSxjOjB9Cl0sCnNhaW50czpbCntxOidXaG8gaXMgdGhlIHBhdHJvbiBzYWludCBvZiBJcmVsYW5kPycsYTpbJ1N0LiBQYXRyaWNrJywnU3QuIEJyaWdpZCcsJ1N0LiBBbmRyZXcnLCdTdC4gQmVybmFkZXR0ZSddLGM6MH0sCntxOidXaG8gaXMgdGhlIHBhdHJvbiBzYWludCBvZiBhbmltYWxzIGFuZCBuYXR1cmU/JyxhOlsnU3QuIEZyYW5jaXMgb2YgQXNzaXNpJywnU3QuIEpvaG4gQm9zY28nLCdTdC4gQW50aG9ueSBvZiBQYWR1YScsJ1N0LiBLYXRlcmknXSxjOjB9LAp7cTonV2hvIHNhdyBNYXJ5IGF0IExvdXJkZXM/JyxhOlsnU3QuIEJlcm5hZGV0dGUnLCdTdC4gVGjDqXLDqHNlJywnU3QuIEZhdXN0aW5hJywnU3QuIENhdGhlcmluZSddLGM6MH0sCntxOidXaGF0IGRpZCBTdC4gVGjDqXLDqHNlIGNhbGwgaGVyIHBhdGggdG8gaG9saW5lc3M/JyxhOlsnVGhlIExpdHRsZSBXYXknLCdUaGUgUm95YWwgUm9hZCcsJ1RoZSBCaWcgUGF0aCcsJ1RoZSBDbGltYiddLGM6MH0sCntxOidXaGF0IGlzIFN0LiBUaMOpcsOoc2XigJlzIG5pY2tuYW1lPycsYTpbJ1RoZSBMaXR0bGUgRmxvd2VyJywnVGhlIFN0YXInLCdUaGUgUXVlZW4nLCdUaGUgTGlseSddLGM6MH0sCntxOidXaG8gaXMgdGhlIHNhaW50IG9mIERpdmluZSBNZXJjeT8nLGE6WydTdC4gRmF1c3RpbmEgS293YWxza2EnLCdTdC4gQmVybmFkZXR0ZScsJ1N0LiBUaMOpcsOoc2UnLCdTdC4gTWFyeSBNYWdkYWxlbmUnXSxjOjB9LAp7cTonV2hvIGlzICJ0aGUgQXBvc3RsZSB0byB0aGUgQXBvc3RsZXMiPycsYTpbJ1N0LiBNYXJ5IE1hZ2RhbGVuZScsJ1N0LiBQZXRlcicsJ1N0LiBQYXVsJywnU3QuIEpvaG4nXSxjOjB9LAp7cTonV2hvIHdhcyB0aGUgZmlyc3QgUG9wZT8nLGE6WydTdC4gUGV0ZXInLCdTdC4gUGF1bCcsJ1N0LiBKb2huIFBhdWwgSUknLCdTdC4gTGludXMnXSxjOjB9LAp7cTonV2hvIHdyb3RlIG1vc3Qgb2YgdGhlIE5ldyBUZXN0YW1lbnQgbGV0dGVycz8nLGE6WydTdC4gUGF1bCcsJ1N0LiBQZXRlcicsJ1N0LiBKYW1lcycsJ1N0LiBKb2huJ10sYzowfSwKe3E6J1doaWNoIHNhaW50IGN1dCBoaXMgY2xvYWsgaW4gaGFsZiB0byBnaXZlIHRvIGEgYmVnZ2FyPycsYTpbJ1N0LiBNYXJ0aW4gb2YgVG91cnMnLCdTdC4gRnJhbmNpcycsJ1N0LiBOaWNob2xhcycsJ1N0LiBKb3NlcGgnXSxjOjB9LAp7cTonV2hpY2ggc2FpbnQgaXMga25vd24gZm9yIGdpdmluZyBnaWZ0cyB0byBjaGlsZHJlbiBhdCBDaHJpc3RtYXM/JyxhOlsnU3QuIE5pY2hvbGFzJywnU3QuIEFudGhvbnknLCdTdC4gQW5kcmV3JywnU3QuIFRow6lyw6hzZSddLGM6MH0sCntxOidXaG8gaXMgdGhlIHBhdHJvbiBzYWludCBvZiBsb3N0IHRoaW5ncz8nLGE6WydTdC4gQW50aG9ueSBvZiBQYWR1YScsJ1N0LiBKdWRlJywnU3QuIENocmlzdG9waGVyJywnU3QuIEpvc2VwaCddLGM6MH0sCntxOidXaG8gaXMgdGhlIHBhdHJvbiBzYWludCBvZiBob3BlbGVzcyBjYXNlcz8nLGE6WydTdC4gSnVkZScsJ1N0LiBKb3NlcGgnLCdTdC4gUml0YScsJ1N0LiBBbnRob255J10sYzowfSwKe3E6J1dobyBpcyB0aGUgcGF0cm9uIHNhaW50IG9mIHRyYXZlbGVycz8nLGE6WydTdC4gQ2hyaXN0b3BoZXInLCdTdC4gUmFwaGFlbCcsJ1N0LiBCcmVuZGFuJywnU3QuIEpvc2VwaCddLGM6MH0sCntxOidXaGljaCBhcmNoYW5nZWwgZGVmZWF0ZWQgU2F0YW4/JyxhOlsnU3QuIE1pY2hhZWwnLCdTdC4gR2FicmllbCcsJ1N0LiBSYXBoYWVsJywnU3QuIFVyaWVsJ10sYzowfSwKe3E6J1doaWNoIGFyY2hhbmdlbCBhbm5vdW5jZWQgSmVzdXPigJkgYmlydGggdG8gTWFyeT8nLGE6WydTdC4gR2FicmllbCcsJ1N0LiBNaWNoYWVsJywnU3QuIFJhcGhhZWwnLCdTdC4gSm9zZXBoJ10sYzowfSwKe3E6J1doaWNoIHNhaW50IHdhcyBhIEZyZW5jaCBwZWFzYW50IGdpcmwgd2hvIGxlZCBhbiBhcm15PycsYTpbJ1N0LiBKb2FuIG9mIEFyYycsJ1N0LiBUaMOpcsOoc2UnLCdTdC4gQ2F0aGVyaW5lJywnU3QuIEJlcm5hZGV0dGUnXSxjOjB9LAp7cTonV2hvIGlzIHRoZSBwYXRyb24gc2FpbnQgb2YgZmF0aGVycyBhbmQgd29ya2Vycz8nLGE6WydTdC4gSm9zZXBoJywnU3QuIFBldGVyJywnU3QuIFBhdWwnLCdTdC4gSmFtZXMnXSxjOjB9LAp7cTonV2hvIGlzIHRoZSBwYXRyb24gc2FpbnQgb2YgdGVhY2hlcnMgYW5kIHlvdXRoPycsYTpbJ1N0LiBKb2huIEJvc2NvJywnU3QuIEF1Z3VzdGluZScsJ1N0LiBUaG9tYXMgQXF1aW5hcycsJ1N0LiBKb3NlcGggQ2FsYXNhbnonXSxjOjB9LAp7cTonV2hvIGlzIHRoZSBwYXRyb24gc2FpbnQgb2YgbXVzaWM/JyxhOlsnU3QuIENlY2lsaWEnLCdTdC4gQW1icm9zZScsJ1N0LiBHcmVnb3J5JywnU3QuIEhpbGRlZ2FyZCddLGM6MH0sCntxOidXaG8gd2FzIHRoZSB5b3VuZyBzYWludCB3aG8gZGllZCBkZWZlbmRpbmcgdGhlIEV1Y2hhcmlzdD8nLGE6WydTdC4gVGFyY2lzaXVzJywnU3QuIFBhZHJlIFBpbycsJ1N0LiBQaXVzIFgnLCdTdC4gQ2F0aGVyaW5lJ10sYzowfSwKe3E6J1doaWNoIE5hdGl2ZSBBbWVyaWNhbiBnaXJsIGJlY2FtZSBhIHNhaW50PycsYTpbJ1N0LiBLYXRlcmkgVGVrYWt3aXRoYScsJ1N0LiBSb3NlIG9mIExpbWEnLCdTdC4gSnVhbmEnLCdTdC4gQmVybmFkZXR0ZSddLGM6MH0sCntxOidXaG8gc2F3IE91ciBMYWR5IG9mIEd1YWRhbHVwZT8nLGE6WydTdC4gSnVhbiBEaWVnbycsJ1N0LiBKb3NlcGgnLCdTdC4gQmVybmFkZXR0ZScsJ1N0LiBGcmFuY2lzJ10sYzowfSwKe3E6J1doaWNoIHNhaW50IGhhZCB0aGUgc3RpZ21hdGEgKHdvdW5kcyBvZiBKZXN1cykgaW4gbW9kZXJuIHRpbWVzPycsYTpbJ1N0LiBQYWRyZSBQaW8nLCdTdC4gQW50aG9ueScsJ1N0LiBQaXVzJywnU3QuIEpvaG4nXSxjOjB9LAp7cTonV2hvIGlzICJTYWludCBNb3RoZXIgVGVyZXNhIiBmYW1vdXMgZm9yIGhlbHBpbmc/JyxhOlsnVGhlIHBvb3Jlc3Qgb2YgdGhlIHBvb3IgaW4gQ2FsY3V0dGEnLCdUaGUgUG9wZSBvbmx5JywnU29sZGllcnMgaW4gd2FyJywnTG9zdCBjaGlsZHJlbiBvbmx5J10sYzowfQpdLApiaWJsZTpbCntxOidXaG8gYnVpbHQgdGhlIGFyaz8nLGE6WydOb2FoJywnTW9zZXMnLCdBYnJhaGFtJywnRGF2aWQnXSxjOjB9LAp7cTonSG93IG1hbnkgZGF5cyBhbmQgbmlnaHRzIGRpZCBpdCByYWluPycsYTpbJzQwJywnNycsJzEwMCcsJzMwJ10sYzowfSwKe3E6J1dobyBsZWQgdGhlIElzcmFlbGl0ZXMgb3V0IG9mIEVneXB0PycsYTpbJ01vc2VzJywnQWFyb24nLCdKb3NodWEnLCdKb3NlcGgnXSxjOjB9LAp7cTonV2hhdCBkaWQgTW9zZXMgc2VlIGluIHRoZSB3aWxkZXJuZXNzIHRoYXQgd2FzIG9uIGZpcmUgYnV0IG5vdCBjb25zdW1lZD8nLGE6WydBIGJ1cm5pbmcgYnVzaCcsJ0EgcGlsbGFyIG9mIGZpcmUnLCdBIGdyZWF0IHRyZWUnLCdBIGZsYW1pbmcgc3dvcmQnXSxjOjB9LAp7cTonSG93IG1hbnkgY29tbWFuZG1lbnRzIGRpZCBHb2QgZ2l2ZSBNb3Nlcz8nLGE6WycxMCcsJzcnLCcxMicsJzQnXSxjOjB9LAp7cTonV2hvIGtpbGxlZCBHb2xpYXRoIHdpdGggYSBzbGluZz8nLGE6WydEYXZpZCcsJ1NhdWwnLCdTb2xvbW9uJywnU2FtdWVsJ10sYzowfSwKe3E6J1dobyBidWlsdCB0aGUgdGVtcGxlIGluIEplcnVzYWxlbT8nLGE6WydTb2xvbW9uJywnRGF2aWQnLCdIZXpla2lhaCcsJ01vc2VzJ10sYzowfSwKe3E6J1dobyB3YXMgdGhyb3duIGludG8gdGhlIGxpb25z4oCZIGRlbj8nLGE6WydEYW5pZWwnLCdEYXZpZCcsJ0pvc2VwaCcsJ0pvYiddLGM6MH0sCntxOidXaG8gd2FzIHN3YWxsb3dlZCBieSBhIGdyZWF0IGZpc2g/JyxhOlsnSm9uYWgnLCdKb3NlcGgnLCdUb2JpdCcsJ0RhbmllbCddLGM6MH0sCntxOidIb3cgbWFueSBkYXlzIHdhcyBKb25haCBpbnNpZGUgdGhlIGZpc2g/JyxhOlsnMycsJzcnLCc0MCcsJzEnXSxjOjB9LAp7cTonSG93IG1hbnkgYm9va3MgYXJlIGluIHRoZSBDYXRob2xpYyBCaWJsZT8nLGE6Wyc3MycsJzY2JywnNTAnLCcxMDAnXSxjOjB9LAp7cTonSG93IG1hbnkgYm9va3MgYXJlIGluIHRoZSBOZXcgVGVzdGFtZW50PycsYTpbJzI3JywnMTInLCczOScsJzQ2J10sYzowfSwKe3E6J1dobyB3YXMgdGhlIGZpcnN0IG1hbiBHb2QgY3JlYXRlZD8nLGE6WydBZGFtJywnQ2FpbicsJ0FiZWwnLCdTZXRoJ10sYzowfSwKe3E6J1dobyB3YXMgdGhlIGZpcnN0IHdvbWFuIEdvZCBjcmVhdGVkPycsYTpbJ0V2ZScsJ1NhcmFoJywnTWFyeScsJ1JlYmVrYWgnXSxjOjB9LAp7cTonV2hvIHdlcmUgQWRhbSBhbmQgRXZl4oCZcyBmaXJzdCB0d28gc29ucz8nLGE6WydDYWluIGFuZCBBYmVsJywnU2V0aCBhbmQgRW5vY2gnLCdKYWNvYiBhbmQgRXNhdScsJ0lzYWFjIGFuZCBJc2htYWVsJ10sYzowfSwKe3E6J1doYXQgd2FzIEpvc2VwaOKAmXMgc3BlY2lhbCBjb2F0IGNhbGxlZD8nLGE6WydBIGNvYXQgb2YgbWFueSBjb2xvcnMnLCdBIHJveWFsIHJvYmUnLCdBIGtpbmfigJlzIG1hbnRsZScsJ0EgdHJhdmVsIGNsb2FrJ10sYzowfSwKe3E6J0hvdyBtYW55IHNvbnMgZGlkIEphY29iIGhhdmUgKHRoZSB0cmliZXMgb2YgSXNyYWVsKT8nLGE6WycxMicsJzcnLCcxMCcsJzQnXSxjOjB9LAp7cTonV2hvIGlzICJ0aGUgZmF0aGVyIG9mIGFsbCBiZWxpZXZlcnMiPycsYTpbJ0FicmFoYW0nLCdNb3NlcycsJ0RhdmlkJywnTm9haCddLGM6MH0sCntxOidXaGljaCBxdWVlbiBzYXZlZCBoZXIgcGVvcGxlIGZyb20gZGVhdGg/JyxhOlsnRXN0aGVyJywnSnVkaXRoJywnU2FyYWgnLCdSdXRoJ10sYzowfSwKe3E6J1dobyBjaG9wcGVkIG9mZiB0aGUgaGVhZCBvZiBhbiBlbmVteSBnZW5lcmFsIHRvIHNhdmUgSXNyYWVsPycsYTpbJ0p1ZGl0aCcsJ0VzdGhlcicsJ0RlYm9yYWgnLCdSdXRoJ10sYzowfSwKe3E6J1doYXQgaXMgdGhlIGxvbmdlc3QgYm9vayBvZiB0aGUgQmlibGU/JyxhOlsnUHNhbG1zJywnR2VuZXNpcycsJ0lzYWlhaCcsJ01hdHRoZXcnXSxjOjB9LAp7cTonV2hvIHdyb3RlIG1vc3Qgb2YgdGhlIFBzYWxtcz8nLGE6WydLaW5nIERhdmlkJywnU29sb21vbicsJ01vc2VzJywnQXNhcGgnXSxjOjB9LAp7cTonV2hhdCBpcyB0aGUgZmlyc3QgYm9vayBvZiB0aGUgQmlibGU/JyxhOlsnR2VuZXNpcycsJ0V4b2R1cycsJ01hdHRoZXcnLCdKb2InXSxjOjB9LAp7cTonV2hhdCBpcyB0aGUgbGFzdCBib29rIG9mIHRoZSBCaWJsZT8nLGE6WydSZXZlbGF0aW9uJywnQWN0cycsJ0pvaG4nLCdEYW5pZWwnXSxjOjB9LAp7cTonSG93IGxvbmcgZGlkIHRoZSBJc3JhZWxpdGVzIHdhbmRlciBpbiB0aGUgZGVzZXJ0PycsYTpbJzQwIHllYXJzJywnMTAgeWVhcnMnLCc3IHllYXJzJywnMTAwIHllYXJzJ10sYzowfQpdLApiYXNpY3M6Wwp7cTonSG93IG1hbnkgc2FjcmFtZW50cyBhcmUgdGhlcmU/JyxhOlsnNycsJzUnLCcxMCcsJzEyJ10sYzowfSwKe3E6J1doYXQgaXMgdGhlIGZpcnN0IHNhY3JhbWVudCB3ZSByZWNlaXZlPycsYTpbJ0JhcHRpc20nLCdDb25maXJtYXRpb24nLCdGaXJzdCBDb21tdW5pb24nLCdDb25mZXNzaW9uJ10sYzowfSwKe3E6J1doaWNoIHNhY3JhbWVudCBmb3JnaXZlcyBvdXIgc2lucyBhZnRlciBCYXB0aXNtPycsYTpbJ1JlY29uY2lsaWF0aW9uIChDb25mZXNzaW9uKScsJ0NvbmZpcm1hdGlvbicsJ0hvbHkgT3JkZXJzJywnQW5vaW50aW5nJ10sYzowfSwKe3E6J1doaWNoIHNhY3JhbWVudCBnaXZlcyB1cyBKZXN1cyBpbiBicmVhZCBhbmQgd2luZT8nLGE6WydUaGUgRXVjaGFyaXN0JywnQmFwdGlzbScsJ01hcnJpYWdlJywnSG9seSBPcmRlcnMnXSxjOjB9LAp7cTonV2hpY2ggc2FjcmFtZW50IHN0cmVuZ3RoZW5zIHVzIHdpdGggdGhlIEhvbHkgU3Bpcml0PycsYTpbJ0NvbmZpcm1hdGlvbicsJ1JlY29uY2lsaWF0aW9uJywnTWFycmlhZ2UnLCdBbm9pbnRpbmcgb2YgdGhlIFNpY2snXSxjOjB9LAp7cTonV2hpY2ggc2FjcmFtZW50IGlzIGZvciB0aGUgc2ljaz8nLGE6WydBbm9pbnRpbmcgb2YgdGhlIFNpY2snLCdDb25mZXNzaW9uJywnQ29uZmlybWF0aW9uJywnSG9seSBPcmRlcnMnXSxjOjB9LAp7cTonV2hpY2ggc2FjcmFtZW50IG1ha2VzIGEgbWFuIGEgcHJpZXN0PycsYTpbJ0hvbHkgT3JkZXJzJywnQ29uZmlybWF0aW9uJywnTWFycmlhZ2UnLCdFdWNoYXJpc3QnXSxjOjB9LAp7cTonV2hhdCBpcyB0aGUgaGlnaGVzdCBkYXkgb2YgdGhlIENodXJjaCB5ZWFyPycsYTpbJ0Vhc3RlcicsJ0NocmlzdG1hcycsJ1BlbnRlY29zdCcsJ0hvbHkgVGh1cnNkYXknXSxjOjB9LAp7cTonV2hlbiBkbyB3ZSBjZWxlYnJhdGUgUGVudGVjb3N0PycsYTpbJzUwIGRheXMgYWZ0ZXIgRWFzdGVyJywnQXQgQ2hyaXN0bWFzJywnQXQgRWFzdGVyJywnSW4gTm92ZW1iZXInXSxjOjB9LAp7cTonV2hvIGlzIHRoZSBQb3BlPycsYTpbJ1RoZSBCaXNob3Agb2YgUm9tZSBhbmQgc3VjY2Vzc29yIG9mIFN0LiBQZXRlcicsJ1RoZSBsZWFkZXIgb2Ygb25lIHBhcmlzaCcsJ1RoZSBoZWFkIG9mIHRoZSBhbmdlbHMnLCdUaGUgcGFzdG9yIG9mIG9uZSBjb3VudHJ5J10sYzowfSwKe3E6J1doYXQgZG8gd2Ugc2F5IGF0IHRoZSBzdGFydCBvZiBldmVyeSBwcmF5ZXIgdG8gYmxlc3Mgb3Vyc2VsdmVzPycsYTpbJ1RoZSBTaWduIG9mIHRoZSBDcm9zcycsJ0FtZW4nLCdIYWxsZWx1amFoJywnT3VyIEZhdGhlciddLGM6MH0sCntxOidIb3cgbWFueSBQZXJzb25zIGFyZSBpbiB0aGUgSG9seSBUcmluaXR5PycsYTpbJzMgKEZhdGhlciwgU29uLCBIb2x5IFNwaXJpdCknLCcxJywnNycsJzEyJ10sYzowfSwKe3E6J1doYXQgaXMgdGhlIEJyZWFkIHdlIHJlY2VpdmUgYXQgTWFzcyByZWFsbHk/JyxhOlsnSmVzdXPigJkgQm9keSwgQmxvb2QsIFNvdWwsIGFuZCBEaXZpbml0eScsJ0p1c3QgYnJlYWQnLCdBIHN5bWJvbCcsJ0EgcmVtaW5kZXIgb25seSddLGM6MH0sCntxOidXaGF0IGlzIHRoZSBTdW5kYXkgYmVmb3JlIEVhc3RlciBjYWxsZWQ/JyxhOlsnUGFsbSBTdW5kYXknLCdFYXN0ZXIgU3VuZGF5JywnSG9seSBTYXR1cmRheScsJ1BlbnRlY29zdCddLGM6MH0sCntxOidXaGF0IGlzIHRoZSBkYXkgYmVmb3JlIEdvb2QgRnJpZGF5IGNhbGxlZD8nLGE6WydIb2x5IFRodXJzZGF5JywnUGFsbSBTdW5kYXknLCdFYXN0ZXInLCdIb2x5IFNhdHVyZGF5J10sYzowfSwKe3E6J1doYXQgc2Vhc29uIGNvbWVzIGJlZm9yZSBFYXN0ZXI/JyxhOlsnTGVudCcsJ0FkdmVudCcsJ0NocmlzdG1hcycsJ1BlbnRlY29zdCddLGM6MH0sCntxOidIb3cgbWFueSBkYXlzIGlzIExlbnQ/JyxhOlsnNDAnLCczMCcsJzcnLCc1MCddLGM6MH0sCntxOidXaGF0IHNlYXNvbiBjb21lcyBiZWZvcmUgQ2hyaXN0bWFzPycsYTpbJ0FkdmVudCcsJ0xlbnQnLCdFYXN0ZXInLCdPcmRpbmFyeSBUaW1lJ10sYzowfSwKe3E6J0hvdyBtYW55IGNhbmRsZXMgYXJlIG9uIGFuIEFkdmVudCB3cmVhdGg/JyxhOlsnNCcsJzMnLCc3JywnMTInXSxjOjB9LAp7cTonV2hhdCBkbyB3ZSBzYXkgYXQgTWFzcyB3aGVuIHJlY2VpdmluZyBDb21tdW5pb24/JyxhOlsnIkFtZW4iJywnIlByYWlzZSBHb2QiJywnIlRoYW5rIHlvdSInLCciSGFsbGVsdWphaCInXSxjOjB9LAp7cTonV2hhdCBpcyB0aGUgZmlyc3QgcGFydCBvZiB0aGUgTWFzcyBjYWxsZWQ/JyxhOlsnVGhlIExpdHVyZ3kgb2YgdGhlIFdvcmQnLCdUaGUgTGl0dXJneSBvZiB0aGUgRXVjaGFyaXN0JywnVGhlIENvbmZpdGVvcicsJ1RoZSBDYW5vbiddLGM6MH0sCntxOidXaGF0IGlzIHRoZSBzZWNvbmQgcGFydCBvZiB0aGUgTWFzcyBjYWxsZWQ/JyxhOlsnVGhlIExpdHVyZ3kgb2YgdGhlIEV1Y2hhcmlzdCcsJ1RoZSBMaXR1cmd5IG9mIHRoZSBXb3JkJywnVGhlIENvbW11bmlvbiBSaXRlJywnVGhlIENvbmNsdWRpbmcgUml0ZSddLGM6MH0sCntxOidXaGF0IGRvIHdlIGNlbGVicmF0ZSBvbiBBbGwgU2FpbnRzIERheT8nLGE6WydBbGwgdGhlIHNhaW50cyBpbiBoZWF2ZW4nLCdNYXJ54oCZcyBiaXJ0aGRheScsJ0plc3Vz4oCZIGJpcnRoZGF5JywnVGhlIFBvcGUnXSxjOjB9LAp7cTonT24gSG9seSBEYXlzIG9mIE9ibGlnYXRpb24gd2Ugc2hvdWxkLi4uJyxhOlsnR28gdG8gTWFzcycsJ1N0YXkgaG9tZSBhbmQgZmFzdCcsJ0F2b2lkIHByYXllcicsJ1Zpc2l0IHJlbGF0aXZlcyddLGM6MH0sCntxOidXaGF0IGlzIHRoZSBuYW1lIG9mIHRoZSBzbWFsbCBCaWJsZS1wcmF5ZXIgYm9vayBwcmllc3RzIHByYXkgZXZlcnkgZGF5PycsYTpbJ1RoZSBMaXR1cmd5IG9mIHRoZSBIb3VycycsJ1RoZSBDYXRlY2hpc20nLCdUaGUgSHltbmFsJywnVGhlIExlY3Rpb25hcnknXSxjOjB9Cl0KfTsKdmFyIENBVFM9Wwp7aWQ6J2plc3VzJyxuYW1lOidKZXN1cycsaWNvbjon4pydJyxtZXRhOidMaWZlLCBtaXJhY2xlcywgd29yZHMnfSwKe2lkOidtYXJ5JyxuYW1lOidNYXJ5JyxpY29uOifinYAnLG1ldGE6J091ciBNb3RoZXInfSwKe2lkOidzYWludHMnLG5hbWU6J1RoZSBTYWludHMnLGljb246J+KcpicsbWV0YTonRnJpZW5kcyBpbiBoZWF2ZW4nfSwKe2lkOidiaWJsZScsbmFtZTonVGhlIEJpYmxlJyxpY29uOifinZYnLG1ldGE6J09sZCAmIE5ldyBUZXN0YW1lbnQnfSwKe2lkOidiYXNpY3MnLG5hbWU6J0NhdGhvbGljIEJhc2ljcycsaWNvbjon4puqJyxtZXRhOidTYWNyYW1lbnRzLCBNYXNzLCBtb3JlJ30sCntpZDonbWl4ZWQnLG5hbWU6J01peGVkJyxpY29uOifinLYnLG1ldGE6J0FueXRoaW5nIGdvZXMhJ30KXTsKdmFyIEtFWT0nandtLXByb2dyZXNzJzsKZnVuY3Rpb24gbG9hZCgpe3RyeXt2YXIgcj1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShLRVkpO3ZhciBkPXI/SlNPTi5wYXJzZShyKTp7fTtkLmdyYWNlcz1kLmdyYWNlc3x8MDtkLmhpc3Rvcnk9ZC5oaXN0b3J5fHxbXTtkLnF1aXpEb25lPWQucXVpekRvbmV8fHt9O3JldHVybiBkfWNhdGNoKGUpe3JldHVybntncmFjZXM6MCxoaXN0b3J5OltdLHF1aXpEb25lOnt9fX19CmZ1bmN0aW9uIHNhdmUoZCl7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKEtFWSxKU09OLnN0cmluZ2lmeShkKSl9Y2F0Y2goZSl7fX0KdmFyIGRhdGE9bG9hZCgpOwp2YXIgY3VycmVudD1udWxsO3ZhciBxTGlzdD1bXTt2YXIgcUlkeD0wO3ZhciBzY29yZT0wO3ZhciByZXN1bHRzPVtdO3ZhciBsb2NrZWQ9ZmFsc2U7CmZ1bmN0aW9uICQocyl7cmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Iocyl9CmZ1bmN0aW9uIHNodWZmbGUoYSl7Zm9yKHZhciBpPWEubGVuZ3RoLTE7aT4wO2ktLSl7dmFyIGo9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKihpKzEpKTt2YXIgdD1hW2ldO2FbaV09YVtqXTthW2pdPXR9cmV0dXJuIGF9CmZ1bmN0aW9uIHNob3cod2hpY2gpewogICQoJyNrY3Etc2VsJykuc3R5bGUuZGlzcGxheT13aGljaD09PSdzZWwnPycnOidub25lJzsKICAkKCcja2NxLWdhbWUnKS5jbGFzc0xpc3QudG9nZ2xlKCdvbicsd2hpY2g9PT0nZ2FtZScpOwogICQoJyNrY3Etd2luJykuY2xhc3NMaXN0LnRvZ2dsZSgnb24nLHdoaWNoPT09J3dpbicpOwogIHZhciBiPSQoJyNrY3EtYmFjaycpOwogIGlmKHdoaWNoPT09J3NlbCcpe2IudGV4dENvbnRlbnQ9J+KGkCBIdWInO2IuaHJlZj0nL2tpZHMtY29ybmVyLWdhbWUvJztiLm9uY2xpY2s9bnVsbH0KICBlbHNle2IudGV4dENvbnRlbnQ9J+KGkCBUb3BpY3MnO2IuaHJlZj0nIyc7Yi5vbmNsaWNrPWZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKTtzaG93KCdzZWwnKTtyZW5kZXJTZWwoKX19Cn0KZnVuY3Rpb24gcmVuZGVyU2VsKCl7CiAgJCgnI2tjcS1ncmFjZXMnKS50ZXh0Q29udGVudD1kYXRhLmdyYWNlczsKICB2YXIgZz0kKCcja2NxLWNncmlkJyk7Zy5pbm5lckhUTUw9Jyc7CiAgQ0FUUy5mb3JFYWNoKGZ1bmN0aW9uKGMpewogICAgdmFyIGRvbmU9KGRhdGEucXVpekRvbmVbYy5pZF18fDApOwogICAgdmFyIGNhcmQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Y2FyZC5jbGFzc05hbWU9J2NjYXJkJzsKICAgIHZhciBwb29sPWMuaWQ9PT0nbWl4ZWQnPydhbGwnOmMuaWQ7dmFyIG49Yy5pZD09PSdtaXhlZCc/T2JqZWN0LmtleXMoUSkucmVkdWNlKGZ1bmN0aW9uKHMsayl7cmV0dXJuIHMrUVtrXS5sZW5ndGh9LDApOlFbYy5pZF0ubGVuZ3RoOwogICAgY2FyZC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9Imljb24iPicrYy5pY29uKyc8L2Rpdj48ZGl2IGNsYXNzPSJubSI+JytjLm5hbWUrJzwvZGl2PjxkaXYgY2xhc3M9Im1ldGEiPicrbisnIHF1ZXN0aW9ucyDCtyBwbGF5ZWQgJytkb25lKyfDlzwvZGl2Pic7CiAgICBjYXJkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpe3N0YXJ0Um91bmQoYy5pZCl9KTsKICAgIGcuYXBwZW5kQ2hpbGQoY2FyZCk7CiAgfSk7Cn0KZnVuY3Rpb24gc3RhcnRSb3VuZChjYXRJZCl7CiAgY3VycmVudD1jYXRJZDsKICB2YXIgcG9vbDsKICBpZihjYXRJZD09PSdtaXhlZCcpe3Bvb2w9W107T2JqZWN0LmtleXMoUSkuZm9yRWFjaChmdW5jdGlvbihrKXtRW2tdLmZvckVhY2goZnVuY3Rpb24ocSl7cG9vbC5wdXNoKHtxOnEsY2F0Omt9KX0pfSk7fQogIGVsc2V7cG9vbD1RW2NhdElkXS5tYXAoZnVuY3Rpb24ocSl7cmV0dXJuIHtxOnEsY2F0OmNhdElkfX0pO30KICBzaHVmZmxlKHBvb2wpO3FMaXN0PXBvb2wuc2xpY2UoMCw1KTtxSWR4PTA7c2NvcmU9MDtyZXN1bHRzPVtdOwogIHNob3coJ2dhbWUnKTtyZW5kZXJRKCk7Cn0KZnVuY3Rpb24gcmVuZGVyUSgpewogICQoJyNrY3EtZ3JhY2VzJykudGV4dENvbnRlbnQ9ZGF0YS5ncmFjZXM7CiAgdmFyIGl0ZW09cUxpc3RbcUlkeF07dmFyIHE9aXRlbS5xOwogICQoJyNrY3EtY2F0JykudGV4dENvbnRlbnQ9Q0FUUy5maW5kKGZ1bmN0aW9uKGMpe3JldHVybiBjLmlkPT09aXRlbS5jYXR9KS5uYW1lOwogICQoJyNrY3EtcW51bScpLnRleHRDb250ZW50PSdRdWVzdGlvbiAnKyhxSWR4KzEpKycgb2YgJytxTGlzdC5sZW5ndGg7CiAgJCgnI2tjcS1xdHh0JykudGV4dENvbnRlbnQ9cS5xOwogIC8vIFJlbmRlciBwcm9ncmVzcyBkb3RzCiAgdmFyIHA9JCgnI2tjcS1wcm9ncmVzcycpO3AuaW5uZXJIVE1MPScnOwogIGZvcih2YXIgaT0wO2k8cUxpc3QubGVuZ3RoO2krKyl7CiAgICB2YXIgZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtkLmNsYXNzTmFtZT0ncGRvdCc7CiAgICBpZihpPHFJZHgpZC5jbGFzc0xpc3QuYWRkKHJlc3VsdHNbaV0/J3JpZ2h0Jzond3JvbmcnKTsKICAgIGVsc2UgaWYoaT09PXFJZHgpZC5jbGFzc0xpc3QuYWRkKCdvbicpOwogICAgcC5hcHBlbmRDaGlsZChkKTsKICB9CiAgLy8gUmVuZGVyIGFuc3dlcnMgKHNodWZmbGUgd2hpbGUgcmVtZW1iZXJpbmcgY29ycmVjdCkKICB2YXIgaWR4cz1xLmEubWFwKGZ1bmN0aW9uKF8saSl7cmV0dXJuIGl9KTtzaHVmZmxlKGlkeHMpOwogIHZhciBhPSQoJyNrY3EtYW5zd2VycycpO2EuaW5uZXJIVE1MPScnOwogIHZhciBsYmxzPVsnQScsJ0InLCdDJywnRCddOwogIGlkeHMuZm9yRWFjaChmdW5jdGlvbihpZHgsayl7CiAgICB2YXIgZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtkLmNsYXNzTmFtZT0nYW5zJzsKICAgIGQuZGF0YXNldC5jb3JyZWN0PShpZHg9PT1xLmMpPycxJzonMCc7CiAgICBkLmlubmVySFRNTD0nPHNwYW4gY2xhc3M9ImxibCI+JytsYmxzW2tdKyc8L3NwYW4+PHNwYW4+JytxLmFbaWR4XSsnPC9zcGFuPic7CiAgICBkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpe29uQW5zKGQpfSk7CiAgICBhLmFwcGVuZENoaWxkKGQpOwogIH0pOwogIGxvY2tlZD1mYWxzZTsKfQpmdW5jdGlvbiBvbkFucyhlbCl7CiAgaWYobG9ja2VkKXJldHVybjtsb2NrZWQ9dHJ1ZTsKICB2YXIgb2s9ZWwuZGF0YXNldC5jb3JyZWN0PT09JzEnOwogIHZhciBhbGw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmtjLXEgLmFucycpOwogIGFsbC5mb3JFYWNoKGZ1bmN0aW9uKHgpe3guY2xhc3NMaXN0LmFkZCgnbG9ja2VkJyk7aWYoeCE9PWVsKXguY2xhc3NMaXN0LmFkZCgnZmFkZScpfSk7CiAgaWYob2spe2VsLmNsYXNzTGlzdC5hZGQoJ3JpZ2h0Jyk7c2NvcmUrKztyZXN1bHRzLnB1c2godHJ1ZSk7CiAgICBpZihuYXZpZ2F0b3IudmlicmF0ZSluYXZpZ2F0b3IudmlicmF0ZShbMTUsNDAsMTVdKTsKICAgIC8vIHNwYXJrbGUKICAgIHZhciByPWVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2Zvcih2YXIgaT0wO2k8NDtpKyspe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO3MuY2xhc3NOYW1lPSdrYy1xLXNwayc7cy50ZXh0Q29udGVudD1bJ+KcpicsJ+KcpyddW2klMl07cy5zdHlsZS5sZWZ0PShyLmxlZnQrci53aWR0aC8yKyhNYXRoLnJhbmRvbSgpLS41KSo2MCkrJ3B4JztzLnN0eWxlLnRvcD0oci50b3Arci5oZWlnaHQvMikrJ3B4Jztkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHMpO3NldFRpbWVvdXQoKGZ1bmN0aW9uKHNwKXtyZXR1cm4gZnVuY3Rpb24oKXtzcC5yZW1vdmUoKX19KShzKSwyMDAwKX0KICB9IGVsc2UgewogICAgZWwuY2xhc3NMaXN0LmFkZCgnd3JvbmcnKTtyZXN1bHRzLnB1c2goZmFsc2UpOwogICAgaWYobmF2aWdhdG9yLnZpYnJhdGUpbmF2aWdhdG9yLnZpYnJhdGUoWzYwLDQwLDYwXSk7CiAgICAvLyBsaWdodCB1cCBjb3JyZWN0IG9uZQogICAgYWxsLmZvckVhY2goZnVuY3Rpb24oeCl7aWYoeC5kYXRhc2V0LmNvcnJlY3Q9PT0nMScpeC5jbGFzc0xpc3QuYWRkKCdyaWdodCcpfSk7CiAgfQogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsKICAgIHFJZHgrKztpZihxSWR4Pj1xTGlzdC5sZW5ndGgpd2luUm91bmQoKTtlbHNlIHJlbmRlclEoKTsKICB9LG9rPzkwMDoxNTAwKTsKfQpmdW5jdGlvbiB3aW5Sb3VuZCgpewogIGRhdGEuZ3JhY2VzKz1zY29yZTsKICBkYXRhLnF1aXpEb25lW2N1cnJlbnRdPShkYXRhLnF1aXpEb25lW2N1cnJlbnRdfHwwKSsxOwogIGRhdGEuaGlzdG9yeS5wdXNoKHt0eXBlOidsaXR0bGUtcXVpeicsY2F0OmN1cnJlbnQsc2NvcmU6c2NvcmUsdHM6RGF0ZS5ub3coKX0pOwogIHNhdmUoZGF0YSk7CiAgJCgnI2tjcS13aW4tc2NvcmUnKS50ZXh0Q29udGVudD1zY29yZTsKICB2YXIgbXNncz17NTpbJ0JlYXV0aWZ1bGx5IGRvbmUhJywnWW91IGtub3cgeW91ciBmYWl0aCDigJQgTWFyeSBpcyBwcm91ZC4nXSw0OlsnQWxtb3N0IHBlcmZlY3QhJywnQSB3aXNlIGxpdHRsZSBoZWFydC4nXSwzOlsnV2VsbCBkb25lIScsJ0tlZXAgd2Fsa2luZyB3aXRoIEplc3VzLiddLDI6WydBIGdvb2Qgc3RhcnQhJywnRXZlcnkgc2FpbnQgaGFkIHRvIGxlYXJuIHRvby4nXSwxOlsnWW914oCZcmUgbGVhcm5pbmchJywnVHJ5IGFnYWluIOKAlCBrbm93bGVkZ2UgZ3Jvd3MgbGlrZSBhIGZsb3dlci4nXSwwOlsnRG9u4oCZdCB3b3JyeSEnLCdXZSBsZWFybiBieSB0cnlpbmcuIFRyeSBhZ2FpbiDinKYnXX07CiAgdmFyIG09bXNnc1tzY29yZV18fG1zZ3NbMF07JCgnI2tjcS13aW4tdGl0bGUnKS50ZXh0Q29udGVudD1tWzBdOyQoJyNrY3Etd2luLXN1YicpLnRleHRDb250ZW50PW1bMV07CiAgJCgnI2tjcS13aW4tZ2FpbmVkJykudGV4dENvbnRlbnQ9JysnK3Njb3JlKycg4pymIGdyYWNlcyc7CiAgc2hvdygnd2luJyk7CiAgZm9yKHZhciBpPTA7aTw4O2krKyl7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7cy5jbGFzc05hbWU9J2tjLXEtc3BrJztzLnRleHRDb250ZW50PVsn4pymJywn4p2AJywn4p2BJywn4pynJ11baSU0XTtzLnN0eWxlLmxlZnQ9KDUwKyhNYXRoLnJhbmRvbSgpLS41KSo0MCkrJyUnO3Muc3R5bGUudG9wPSg0MCtNYXRoLnJhbmRvbSgpKjMwKSsnJSc7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzKTtzZXRUaW1lb3V0KChmdW5jdGlvbihzcCl7cmV0dXJuIGZ1bmN0aW9uKCl7c3AucmVtb3ZlKCl9fSkocyksMjAwMCl9CiAgaWYobmF2aWdhdG9yLnZpYnJhdGUpbmF2aWdhdG9yLnZpYnJhdGUoWzE1LDQwLDE1LDQwLDgwXSk7Cn0KJCgnI2tjcS13aW4tYWdhaW4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXtzdGFydFJvdW5kKGN1cnJlbnQpfSk7CiQoJyNrY3Etd2luLWJhY2snKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXtzaG93KCdzZWwnKTtyZW5kZXJTZWwoKX0pOwpyZW5kZXJTZWwoKTtzaG93KCdzZWwnKTsKfSkoKTs=
Loading Comments...
Write a Comment...
Email (Required)
Name (Required)
Website