( begin ( define ( ZEDhello) ( cond ( #t ( ZEDprint "hello" ) ) ( else err) ) ) ( define ( ZEDprint ZEDx) ( cond ( #t ( display ZEDx) ) ( else err) ) ) ) ( ZEDhello)
KGJlZ2luIChkZWZpbmUgKFpFRGhlbGxvKSAoY29uZCAoI3QgKFpFRHByaW50ICJoZWxsbyIpKSAoZWxzZSBlcnIpKSkgKGRlZmluZSAoWkVEcHJpbnQgWkVEeCkgKGNvbmQgKCN0IChkaXNwbGF5IFpFRHgpKSAoZWxzZSBlcnIpKSkpKFpFRGhlbGxvKQ==
stdin
KCopIG51bWJlcjEgbnVtYmVyMgpjb21tZW50OgojdHJ1ZQooMDAzKSAmcXVvdDsqJnF1b3Q7IG51bWJlcjEgbnVtYmVyMgoKKCspIG51bWJlcjEgbnVtYmVyMgpjb21tZW50OgojdHJ1ZQooMDAzKSAmcXVvdDsrJnF1b3Q7IG51bWJlcjEgbnVtYmVyMgoKKC0pIG51bWJlcjEgbnVtYmVyMgpjb21tZW50OgojdHJ1ZQooMDAzKSAmcXVvdDstJnF1b3Q7IG51bWJlcjEgbnVtYmVyMgoKKC8pIG51bWJlcjEgbnVtYmVyMgpjb21tZW50OgojdHJ1ZQooMDAzKSAmcXVvdDsvJnF1b3Q7IG51bWJlcjEgbnVtYmVyMgoKKD0pICZxdW90O3ZhbHVlMSZxdW90OyAmcXVvdDt2YWx1ZTImcXVvdDsKY29tbWVudDoKI3RydWUKKDAwMykgJnF1b3Q7ZXF2PyZxdW90OyAmcXVvdDt2YWx1ZTEmcXVvdDsgJnF1b3Q7dmFsdWUyJnF1b3Q7CgooYWRkLWJldHdlZW4hKSAmcXVvdDtpdGVtJnF1b3Q7ICZxdW90O2xpc3QmcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90Owpjb21tZW50OgooMDAyKSAmcXVvdDtudWxsPyZxdW90OyAmcXVvdDtsaXN0JnF1b3Q7CiZxdW90O2NvbGxlY3QmcXVvdDsKCihhZGQtYmV0d2VlbiEpICZxdW90O2l0ZW0mcXVvdDsgJnF1b3Q7bGlzdCZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CmNvbW1lbnQ6CigwMDIpICZxdW90O251bGw/JnF1b3Q7ICgwMDIpICZxdW90O2NkciZxdW90OyAmcXVvdDtsaXN0JnF1b3Q7CigwMDMpICZxdW90O2NvbnMmcXVvdDsgKDAwMikgJnF1b3Q7Y2FyJnF1b3Q7ICZxdW90O2xpc3QmcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90OwoKKGFkZC1iZXR3ZWVuISkgJnF1b3Q7aXRlbSZxdW90OyAmcXVvdDtsaXN0JnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKY29tbWVudDoKI3RydWUKKGFkZC1iZXR3ZWVuISkgJnF1b3Q7aXRlbSZxdW90OyAoMDAyKSAmcXVvdDtjZHImcXVvdDsgJnF1b3Q7bGlzdCZxdW90OyAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90O2l0ZW0mcXVvdDsgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAoMDAyKSAmcXVvdDtjYXImcXVvdDsgJnF1b3Q7bGlzdCZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CgooYWRkLWJldHdlZW4pICZxdW90O2l0ZW0mcXVvdDsgJnF1b3Q7bGlzdCZxdW90Owpjb21tZW50OgojdHJ1ZQooMDAyKSAmcXVvdDtyZXZlcnNlJnF1b3Q7IChhZGQtYmV0d2VlbiEpICZxdW90O2l0ZW0mcXVvdDsgJnF1b3Q7bGlzdCZxdW90OyBuaWwKCihhZGQtYmV0d2Vlbi1yYSkgJnF1b3Q7bGlzdCZxdW90OyAmcXVvdDtpdGVtJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCigwMDIpICZxdW90O3JldmVyc2UmcXVvdDsgKGFkZC1iZXR3ZWVuISkgJnF1b3Q7aXRlbSZxdW90OyAmcXVvdDtsaXN0JnF1b3Q7IG5pbAoKKGFscGhhKQpjb21tZW50OgojdHJ1ZQood3JpdGUtYWxsKSAocmQpIG5pbCAmcXVvdDthcHBlbmQmcXVvdDsgKHJkKSBuaWwgJnF1b3Q7YXBwZW5kJnF1b3Q7IChuZXdsaW5lcykgKGJ5LWZvdXIpIChmdW5jdGlvbi1zb3J0KSAoc2VudGVuY2VzKSAobGVhZGluZy1uZXdsaW5lKSAoc3BhY2UtbmV3bGluZSkgKHRhYi1yZXBsYWNlKSAobmV3bGluZS1zcGFjZS10YWItcmVwZWF0cykgKG5ld2xpbmUtc3BhY2UpIChmaWx0ZXIpIG5vdC1yZXR1cm4/IChyZXBsYWNlLXRyYWlsaW5nLXdoaXRlLXNwYWNlKSAocmVhZC1hbGwpCgooYXBwbGljYXRpb24/KSAmcXVvdDtleHByZXNzaW9uJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCigwMDQpICZxdW90O2FuZCZxdW90OyAoMDAyKSAmcXVvdDtub3QmcXVvdDsgKDAwMikgJnF1b3Q7bnVsbD8mcXVvdDsgJnF1b3Q7ZXhwcmVzc2lvbiZxdW90OyAoMDAyKSAmcXVvdDtwYWlyPyZxdW90OyAoMDAyKSAmcXVvdDtjYXImcXVvdDsgJnF1b3Q7ZXhwcmVzc2lvbiZxdW90OyAoMDAyKSAmcXVvdDtudWxsPyZxdW90OyAoMDAyKSAmcXVvdDtjZGFyJnF1b3Q7ICZxdW90O2V4cHJlc3Npb24mcXVvdDsKCihhcml0eSkgJnF1b3Q7YXJpdHktaGFzaCZxdW90OyAmcXVvdDtmdW5jdGlvbiZxdW90Owpjb21tZW50OgojdHJ1ZQooMDAyKSAmcXVvdDtjZHImcXVvdDsgKDAwMykgJnF1b3Q7YXNzb2MmcXVvdDsgJnF1b3Q7ZnVuY3Rpb24mcXVvdDsgJnF1b3Q7YXJpdHktaGFzaCZxdW90OwoKKGFyaXR5LWhhc2ghKSAmcXVvdDtjbGF1c2UmcXVvdDsKY29tbWVudDoKI3RydWUKKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAoY2xhdXNlLW5hbWUpICZxdW90O2NsYXVzZSZxdW90OyAoY2xhdXNlLWFyaXR5KSAmcXVvdDtjbGF1c2UmcXVvdDsKCihhcml0eS1oYXNoKSAmcXVvdDtwcm9ncmFtJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCigwMDMpICZxdW90O2FwcGVuZCZxdW90OyAoMDAzKSAmcXVvdDttYXAmcXVvdDsgYXJpdHktaGFzaCEgJnF1b3Q7cHJvZ3JhbSZxdW90OyAoMDAzKSAmcXVvdDthcHBlbmQmcXVvdDsgKDAwOSkgJnF1b3Q7bGlzdCZxdW90OyAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQxJnF1b3Q7IDEgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEISZxdW90OyAxICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDAwMSZxdW90OyAxICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J29yJnF1b3Q7IDIgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnYW5kJnF1b3Q7IDIgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnYmVnaW4mcXVvdDsgMiAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRURjJnF1b3Q7IDIgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsncXVvdGUmcXVvdDsgMSAoMDk5KSAmcXVvdDtsaXN0JnF1b3Q7ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDAwMiZxdW90OyAyICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDAwMyZxdW90OyAzICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDAwNCZxdW90OyA0ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDAwNSZxdW90OyA1ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDAwNiZxdW90OyA2ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDAwNyZxdW90OyA3ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDAwOCZxdW90OyA4ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDAwOSZxdW90OyA5ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDAxMCZxdW90OyAxMCAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwMTEmcXVvdDsgMTEgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDEyJnF1b3Q7IDEyICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDAxMyZxdW90OyAxMyAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwMTQmcXVvdDsgMTQgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDE1JnF1b3Q7IDE1ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDAxNiZxdW90OyAxNiAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwMTcmcXVvdDsgMTcgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDE4JnF1b3Q7IDE4ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDAxOSZxdW90OyAxOSAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwMjAmcXVvdDsgMjAgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDIxJnF1b3Q7IDIxICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDAyMiZxdW90OyAyMiAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwMjMmcXVvdDsgMjMgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDI0JnF1b3Q7IDI0ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDAyNSZxdW90OyAyNSAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwMjYmcXVvdDsgMjYgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDI3JnF1b3Q7IDI3ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDAyOCZxdW90OyAyOCAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwMjkmcXVvdDsgMjkgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDMwJnF1b3Q7IDMwICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDAzMSZxdW90OyAzMSAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwMzImcXVvdDsgMzIgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDMzJnF1b3Q7IDMzICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDAzNCZxdW90OyAzNCAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwMzUmcXVvdDsgMzUgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDM2JnF1b3Q7IDM2ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDAzNyZxdW90OyAzNyAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwMzgmcXVvdDsgMzggKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDM5JnF1b3Q7IDM5ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDA0MCZxdW90OyA0MCAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwNDEmcXVvdDsgNDEgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDQyJnF1b3Q7IDQyICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDA0MyZxdW90OyA0MyAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwNDQmcXVvdDsgNDQgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDQ1JnF1b3Q7IDQ1ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDA0NiZxdW90OyA0NiAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwNDcmcXVvdDsgNDcgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDQ4JnF1b3Q7IDQ4ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDA0OSZxdW90OyA0OSAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwNTAmcXVvdDsgNTAgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDUxJnF1b3Q7IDUxICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDA1MiZxdW90OyA1MiAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwNTMmcXVvdDsgNTMgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDU0JnF1b3Q7IDU0ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDA1NSZxdW90OyA1NSAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwNTYmcXVvdDsgNTYgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDU3JnF1b3Q7IDU3ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDA1OCZxdW90OyA1OCAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwNTkmcXVvdDsgNTkgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDYwJnF1b3Q7IDYwICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDA2MSZxdW90OyA2MSAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwNjImcXVvdDsgNjIgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDYzJnF1b3Q7IDYzICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDA2NCZxdW90OyA2NCAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwNjUmcXVvdDsgNjUgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDY2JnF1b3Q7IDY2ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDA2NyZxdW90OyA2NyAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwNjgmcXVvdDsgNjggKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDY5JnF1b3Q7IDY5ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDA3MCZxdW90OyA3MCAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwNzEmcXVvdDsgNzEgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDcyJnF1b3Q7IDcyICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDA3MyZxdW90OyA3MyAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwNzQmcXVvdDsgNzQgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDc1JnF1b3Q7IDc1ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDA3NiZxdW90OyA3NiAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwNzcmcXVvdDsgNzcgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDc4JnF1b3Q7IDc4ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDA3OSZxdW90OyA3OSAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwODAmcXVvdDsgODAgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDgxJnF1b3Q7IDgxICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDA4MiZxdW90OyA4MiAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwODMmcXVvdDsgODMgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDg0JnF1b3Q7IDg0ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDA4NSZxdW90OyA4NSAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwODYmcXVvdDsgODYgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDg3JnF1b3Q7IDg3ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDA4OCZxdW90OyA4OCAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwODkmcXVvdDsgODkgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDkwJnF1b3Q7IDkwICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDA5MSZxdW90OyA5MSAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwOTImcXVvdDsgOTIgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDkzJnF1b3Q7IDkzICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDA5NCZxdW90OyA5NCAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwOTUmcXVvdDsgOTUgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDk2JnF1b3Q7IDk2ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J1pFRDA5NyZxdW90OyA5NyAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydaRUQwOTgmcXVvdDsgOTggKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnWkVEMDk5JnF1b3Q7IDk5CgooYnktZm91ciEpICZxdW90O3NlbnRlbmNlcyZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CmNvbW1lbnQ6CigwMDIpICZxdW90O251bGw/JnF1b3Q7ICZxdW90O3NlbnRlbmNlcyZxdW90OwomcXVvdDtjb2xsZWN0JnF1b3Q7CgooYnktZm91ciEpICZxdW90O3NlbnRlbmNlcyZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCihieS1mb3VyISkgKDAwMikgJnF1b3Q7Y2RkZGRyJnF1b3Q7ICZxdW90O3NlbnRlbmNlcyZxdW90OyAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICgwMDUpICZxdW90O2xpc3QmcXVvdDsgKDAwMikgJnF1b3Q7Y2FyJnF1b3Q7ICZxdW90O3NlbnRlbmNlcyZxdW90OyAoMDAyKSAmcXVvdDtjYWRyJnF1b3Q7ICZxdW90O3NlbnRlbmNlcyZxdW90OyAoMDAyKSAmcXVvdDtjYWRkciZxdW90OyAmcXVvdDtzZW50ZW5jZXMmcXVvdDsgKDAwMikgJnF1b3Q7Y2FkZGRyJnF1b3Q7ICZxdW90O3NlbnRlbmNlcyZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CgooYnktZm91cikgJnF1b3Q7c2VudGVuY2VzJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCigwMDIpICZxdW90O3JldmVyc2UmcXVvdDsgKGJ5LWZvdXIhKSAmcXVvdDtzZW50ZW5jZXMmcXVvdDsgbmlsCgooYnktdGhyZWUhKSAmcXVvdDtzZW50ZW5jZXMmcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90Owpjb21tZW50OgooMDAyKSAmcXVvdDtudWxsPyZxdW90OyAmcXVvdDtzZW50ZW5jZXMmcXVvdDsKJnF1b3Q7Y29sbGVjdCZxdW90OwoKKGJ5LXRocmVlISkgJnF1b3Q7c2VudGVuY2VzJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKY29tbWVudDoKI3RydWUKKGJ5LXRocmVlISkgKDAwMikgJnF1b3Q7Y2RkZHImcXVvdDsgJnF1b3Q7c2VudGVuY2VzJnF1b3Q7ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgKDAwNCkgJnF1b3Q7bGlzdCZxdW90OyAoMDAyKSAmcXVvdDtjYXImcXVvdDsgJnF1b3Q7c2VudGVuY2VzJnF1b3Q7ICgwMDIpICZxdW90O2NhZHImcXVvdDsgJnF1b3Q7c2VudGVuY2VzJnF1b3Q7ICgwMDIpICZxdW90O2NhZGRyJnF1b3Q7ICZxdW90O3NlbnRlbmNlcyZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CgooYnktdGhyZWUpICZxdW90O3NlbnRlbmNlcyZxdW90Owpjb21tZW50OgojdHJ1ZQooMDAyKSAmcXVvdDtyZXZlcnNlJnF1b3Q7IChieS10aHJlZSEpICZxdW90O3NlbnRlbmNlcyZxdW90OyBuaWwKCihjaGFyYWN0ZXItbGVzcz8pICZxdW90O2NoYXJhY3RlcjEmcXVvdDsgJnF1b3Q7Y2hhcmFjdGVyMiZxdW90Owpjb21tZW50OgojdHJ1ZQooMDAzKSAmcXVvdDsmbHQ7JnF1b3Q7ICgwMDIpICZxdW90O2NoYXItJmd0O2ludGVnZXImcXVvdDsgJnF1b3Q7Y2hhcmFjdGVyMSZxdW90OyAoMDAyKSAmcXVvdDtjaGFyLSZndDtpbnRlZ2VyJnF1b3Q7ICZxdW90O2NoYXJhY3RlcjImcXVvdDsKCihjbGF1c2UtYXJndW1lbnRzKSAmcXVvdDtjbGF1c2UmcXVvdDsKY29tbWVudDoKI3RydWUKKDAwMikgJnF1b3Q7Y2FkciZxdW90OyAmcXVvdDtjbGF1c2UmcXVvdDsKCihjbGF1c2UtYXJndW1lbnRzLWFncmVlKSAmcXVvdDtjbGF1c2UxJnF1b3Q7ICZxdW90O2NsYXVzZTImcXVvdDsKY29tbWVudDoKKDAwMykgJnF1b3Q7ZXF1YWw/JnF1b3Q7IChjbGF1c2UtYXJndW1lbnRzKSAmcXVvdDtjbGF1c2UxJnF1b3Q7IChjbGF1c2UtYXJndW1lbnRzKSAmcXVvdDtjbGF1c2UyJnF1b3Q7CihjbGF1c2UtYXJndW1lbnRzKSAmcXVvdDtjbGF1c2UxJnF1b3Q7CgooY2xhdXNlLWFyaXR5KSAmcXVvdDtjbGF1c2UmcXVvdDsKY29tbWVudDoKI3RydWUKKDAwMikgJnF1b3Q7bGVuZ3RoJnF1b3Q7IChjbGF1c2UtYXJndW1lbnRzKSAmcXVvdDtjbGF1c2UmcXVvdDsKCihjbGF1c2UtYm9keSkgJnF1b3Q7Y2xhdXNlJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCigwMDIpICZxdW90O2NkZHImcXVvdDsgJnF1b3Q7Y2xhdXNlJnF1b3Q7CgooY2xhdXNlLWxlc3M/KSAmcXVvdDtjbGF1c2UxJnF1b3Q7ICZxdW90O2NsYXVzZTImcXVvdDsKY29tbWVudDoKI3RydWUKKHNlbnRlbmNlLWxlc3M/KSAoMDAyKSAmcXVvdDtjYXImcXVvdDsgJnF1b3Q7Y2xhdXNlMSZxdW90OyAoMDAyKSAmcXVvdDtjYXImcXVvdDsgJnF1b3Q7Y2xhdXNlMiZxdW90OwoKKGNsYXVzZS1uYW1lKSAmcXVvdDtjbGF1c2UmcXVvdDsKY29tbWVudDoKI3RydWUKKDAwMikgJnF1b3Q7Y2FyJnF1b3Q7ICZxdW90O2NsYXVzZSZxdW90OwoKKGNsYXVzZS1uYW1lLWFncmVlKSAmcXVvdDtjbGF1c2UxJnF1b3Q7ICZxdW90O2NsYXVzZTImcXVvdDsKY29tbWVudDoKKDAwMykgJnF1b3Q7ZXE/JnF1b3Q7IChjbGF1c2UtbmFtZSkgJnF1b3Q7Y2xhdXNlMSZxdW90OyAoY2xhdXNlLW5hbWUpICZxdW90O2NsYXVzZTImcXVvdDsKKGNsYXVzZS1uYW1lKSAmcXVvdDtjbGF1c2UxJnF1b3Q7CgooY29tYmluZS1hbGwhKSAmcXVvdDtwcm9ncmFtJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKY29tbWVudDoKKDAwMikgJnF1b3Q7bnVsbD8mcXVvdDsgJnF1b3Q7cHJvZ3JhbSZxdW90OwomcXVvdDtjb2xsZWN0JnF1b3Q7CgooY29tYmluZS1hbGwhKSAmcXVvdDtwcm9ncmFtJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKY29tbWVudDoKKDAwMikgJnF1b3Q7bnVsbD8mcXVvdDsgKDAwMikgJnF1b3Q7Y2RyJnF1b3Q7ICZxdW90O3Byb2dyYW0mcXVvdDsKKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAoMDAyKSAmcXVvdDtjYXImcXVvdDsgJnF1b3Q7cHJvZ3JhbSZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CgooY29tYmluZS1hbGwhKSAmcXVvdDtwcm9ncmFtJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKY29tbWVudDoKKDAwMykgJnF1b3Q7ZXE/JnF1b3Q7IChjbGF1c2UtbmFtZSkgKDAwMikgJnF1b3Q7Y2FyJnF1b3Q7ICZxdW90O3Byb2dyYW0mcXVvdDsgKGNsYXVzZS1uYW1lKSAoMDAyKSAmcXVvdDtjYWRyJnF1b3Q7ICZxdW90O3Byb2dyYW0mcXVvdDsKKGNvbWJpbmUtYWxsISkgKGNvbWJpbmUtaGVhZC1jbGF1c2VzKSAmcXVvdDtwcm9ncmFtJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKCihjb21iaW5lLWFsbCEpICZxdW90O3Byb2dyYW0mcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90Owpjb21tZW50OgojdHJ1ZQooY29tYmluZS1hbGwhKSAoMDAyKSAmcXVvdDtjZHImcXVvdDsgJnF1b3Q7cHJvZ3JhbSZxdW90OyAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICgwMDIpICZxdW90O2NhciZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKCihjb21iaW5lLWFsbCkgJnF1b3Q7cHJvZ3JhbSZxdW90Owpjb21tZW50OgojdHJ1ZQooMDAyKSAmcXVvdDtyZXZlcnNlJnF1b3Q7IChjb21iaW5lLWFsbCEpICZxdW90O3Byb2dyYW0mcXVvdDsgbmlsCgooY29tYmluZS1jbGF1c2VzKSAmcXVvdDtjbGF1c2UxJnF1b3Q7ICZxdW90O2NsYXVzZTImcXVvdDsKY29tbWVudDoKI3RydWUKKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAoY2xhdXNlLW5hbWUtYWdyZWUpICZxdW90O2NsYXVzZTEmcXVvdDsgJnF1b3Q7Y2xhdXNlMiZxdW90OyAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7IChjbGF1c2UtYXJndW1lbnRzLWFncmVlKSAmcXVvdDtjbGF1c2UxJnF1b3Q7ICZxdW90O2NsYXVzZTImcXVvdDsgKDAwMykgJnF1b3Q7YXBwZW5kJnF1b3Q7IChjbGF1c2UtYm9keSkgJnF1b3Q7Y2xhdXNlMSZxdW90OyAoY2xhdXNlLWJvZHkpICZxdW90O2NsYXVzZTImcXVvdDsKCihjb21iaW5lLWhlYWQtY2xhdXNlcykgJnF1b3Q7cHJvZ3JhbSZxdW90Owpjb21tZW50OgojdHJ1ZQooMDAzKSAmcXVvdDtjb25zJnF1b3Q7IChjb21iaW5lLWNsYXVzZXMpICgwMDIpICZxdW90O2NhciZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7ICgwMDIpICZxdW90O2NhZHImcXVvdDsgJnF1b3Q7cHJvZ3JhbSZxdW90OyAoMDAyKSAmcXVvdDtjZGRyJnF1b3Q7ICZxdW90O3Byb2dyYW0mcXVvdDsKCihjb21iaW5lLXByb2dyYW0tY2xhdXNlcykgJnF1b3Q7cHJvZ3JhbSZxdW90Owpjb21tZW50OgojdHJ1ZQooY29tYmluZS1hbGwpIChyZWFkeS1wcm9ncmFtKSAmcXVvdDtwcm9ncmFtJnF1b3Q7CgooY29tcCEpCmNvbW1lbnQ6CiN0cnVlCihjb21wIWEpIChjb21iaW5lLXByb2dyYW0tY2xhdXNlcykgKGJ5LXRocmVlKSAocmVhZC1zZW50ZW5jZXMpIChkaXNjYXJkLWNvbW1lbnRzKSAoZnVuY3Rpb24tc29ydCkgKHNlbnRlbmNlcykgKGxlYWRpbmctbmV3bGluZSkgKHNwYWNlLW5ld2xpbmUpICh0YWItcmVwbGFjZSkgKG5ld2xpbmUtc3BhY2UtdGFiLXJlcGVhdHMpIChuZXdsaW5lLXNwYWNlKSAoZmlsdGVyKSBub3QtcmV0dXJuPyAocmVwbGFjZS10cmFpbGluZy13aGl0ZS1zcGFjZSkgKHJlYWQtYWxsKQoKKGNvbXAhYSkgJnF1b3Q7Y29tYmluZWQmcXVvdDsKY29tbWVudDoKI3RydWUKKGNvbXAhYWEpIChwcm9ncmFtaXplKSAmcXVvdDtjb21iaW5lZCZxdW90OyAoYXJpdHktaGFzaCkgJnF1b3Q7Y29tYmluZWQmcXVvdDsKCihjb21wIWFhKSAmcXVvdDtwcm9ncmFtaXplZCZxdW90Owpjb21tZW50OgojdHJ1ZQooMDAyKSAmcXVvdDt3cml0ZSZxdW90OyAmcXVvdDtwcm9ncmFtaXplZCZxdW90OwoKKGNvbXApCmNvbW1lbnQ6CiN0cnVlCihjb21wISkKCihjb25kZWZ5ISkgJnF1b3Q7ZXhwcmVzc2lvbnMmcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90Owpjb21tZW50OgooMDAyKSAmcXVvdDtudWxsPyZxdW90OyAmcXVvdDtleHByZXNzaW9ucyZxdW90OwomcXVvdDtjb2xsZWN0JnF1b3Q7CgooY29uZGVmeSEpICZxdW90O2V4cHJlc3Npb25zJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKY29tbWVudDoKI3RydWUKKGNvbmRlZnkhKSAoMDAyKSAmcXVvdDtjZGRyJnF1b3Q7ICZxdW90O2V4cHJlc3Npb25zJnF1b3Q7ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgKDAwMykgJnF1b3Q7YXBwZW5kJnF1b3Q7ICgwMDIpICZxdW90O2NhciZxdW90OyAmcXVvdDtleHByZXNzaW9ucyZxdW90OyAoMDAyKSAmcXVvdDtjYWRyJnF1b3Q7ICZxdW90O2V4cHJlc3Npb25zJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKCihjb25kZWZ5KSAmcXVvdDtleHByZXNzaW9ucyZxdW90Owpjb21tZW50OgojdHJ1ZQooMDAyKSAmcXVvdDtyZXZlcnNlJnF1b3Q7IChjb25kZWZ5ISkgJnF1b3Q7ZXhwcmVzc2lvbnMmcXVvdDsgbmlsCgooY29ucykgdmFsdWUxIHZhbHVlMgpjb21tZW50OgojdHJ1ZQooMDAzKSAmcXVvdDtjb25zJnF1b3Q7IHZhbHVlMSB2YWx1ZTIKCihjb3VudCkgbnVtYmVyCmNvbW1lbnQ6CiN0cnVlCihjKSBudW1iZXIgKGNvdW50KSAoKykgbnVtYmVyIDEKCihjb3VudC1ieSkgc3RlcCBudW1iZXIKY29tbWVudDoKI3RydWUKKGMpIG51bWJlciAoY291bnQtYnkpIHN0ZXAgKCspIG51bWJlciBzdGVwCgooZGVsYXktd3JhcCkgJnF1b3Q7ZXhwcmVzc2lvbiZxdW90Owpjb21tZW50OgojdHJ1ZQooMDAzKSAmcXVvdDtsaXN0JnF1b3Q7ICZxdW90OydkZWxheSZxdW90OyAmcXVvdDtleHByZXNzaW9uJnF1b3Q7CgooZGlnaXQ/KSAmcXVvdDtjaGFyYWN0ZXImcXVvdDsKY29tbWVudDoKI3RydWUKKDAxMSkgJnF1b3Q7b3ImcXVvdDsgKDAwMykgJnF1b3Q7ZXF2PyZxdW90OyAjMCAmcXVvdDtjaGFyYWN0ZXImcXVvdDsgKDAwMykgJnF1b3Q7ZXF2PyZxdW90OyAjMSAmcXVvdDtjaGFyYWN0ZXImcXVvdDsgKDAwMykgJnF1b3Q7ZXF2PyZxdW90OyAjMiAmcXVvdDtjaGFyYWN0ZXImcXVvdDsgKDAwMykgJnF1b3Q7ZXF2PyZxdW90OyAjMyAmcXVvdDtjaGFyYWN0ZXImcXVvdDsgKDAwMykgJnF1b3Q7ZXF2PyZxdW90OyAjNCAmcXVvdDtjaGFyYWN0ZXImcXVvdDsgKDAwMykgJnF1b3Q7ZXF2PyZxdW90OyAjNSAmcXVvdDtjaGFyYWN0ZXImcXVvdDsgKDAwMykgJnF1b3Q7ZXF2PyZxdW90OyAjNiAmcXVvdDtjaGFyYWN0ZXImcXVvdDsgKDAwMykgJnF1b3Q7ZXF2PyZxdW90OyAjNyAmcXVvdDtjaGFyYWN0ZXImcXVvdDsgKDAwMykgJnF1b3Q7ZXF2PyZxdW90OyAjOCAmcXVvdDtjaGFyYWN0ZXImcXVvdDsgKDAwMykgJnF1b3Q7ZXF2PyZxdW90OyAjOSAmcXVvdDtjaGFyYWN0ZXImcXVvdDsKCihkaXNjYXJkLWNvbW1lbnRzISkgJnF1b3Q7cHJvZ3JhbSZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CmNvbW1lbnQ6CigwMDIpICZxdW90O251bGw/JnF1b3Q7ICZxdW90O3Byb2dyYW0mcXVvdDsKJnF1b3Q7Y29sbGVjdCZxdW90OwoKKGRpc2NhcmQtY29tbWVudHMhKSAmcXVvdDtwcm9ncmFtJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKY29tbWVudDoKI3RydWUKKGRpc2NhcmQtY29tbWVudHMhKSAoMDAyKSAmcXVvdDtjZGRkZHImcXVvdDsgJnF1b3Q7cHJvZ3JhbSZxdW90OyAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICgwMDIpICZxdW90O2NhZGRkciZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgKDAwMikgJnF1b3Q7Y2FkZHImcXVvdDsgJnF1b3Q7cHJvZ3JhbSZxdW90OyAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICgwMDIpICZxdW90O2NhciZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKCihkaXNjYXJkLWNvbW1lbnRzKSAmcXVvdDtwcm9ncmFtJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCigwMDIpICZxdW90O3JldmVyc2UmcXVvdDsgKGRpc2NhcmQtY29tbWVudHMhKSAmcXVvdDtwcm9ncmFtJnF1b3Q7IG5pbAoKKGRyISkgJnF1b3Q7dmFsdWUmcXVvdDsKY29tbWVudDoKKDAwMikgJnF1b3Q7cGFpcj8mcXVvdDsgJnF1b3Q7dmFsdWUmcXVvdDsKKG1wKSBkciEgKGZpcnN0KSA2NCAmcXVvdDt2YWx1ZSZxdW90OwoKKGRyISkgJnF1b3Q7dmFsdWUmcXVvdDsKY29tbWVudDoKI3RydWUKJnF1b3Q7dmFsdWUmcXVvdDsKCihkcikgJnF1b3Q7dmFsdWUmcXVvdDsKY29tbWVudDoKI3RydWUKKDAwNSkgJnF1b3Q7YmVnaW4mcXVvdDsgKDAwMikgJnF1b3Q7ZGlzcGxheSZxdW90OyAocHIpIChkciEpICZxdW90O3ZhbHVlJnF1b3Q7ICgwMDEpICZxdW90O25ld2xpbmUmcXVvdDsgKDAwMSkgJnF1b3Q7bmV3bGluZSZxdW90OyAmcXVvdDt2YWx1ZSZxdW90OwoKKGRycikgJnF1b3Q7dmFsdWUmcXVvdDsKY29tbWVudDoKI3RydWUKKDAwNSkgJnF1b3Q7YmVnaW4mcXVvdDsgKDAwMikgJnF1b3Q7ZGlzcGxheSZxdW90OyAocHIpICZxdW90O3ZhbHVlJnF1b3Q7ICgwMDEpICZxdW90O25ld2xpbmUmcXVvdDsgKDAwMSkgJnF1b3Q7bmV3bGluZSZxdW90OyAmcXVvdDt2YWx1ZSZxdW90OwoKKGZhbHNlPykgJnF1b3Q7bm91bi1saXN0JnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCigwMDMpICZxdW90O2VxdWFsPyZxdW90OyAmcXVvdDtub3VuLWxpc3QmcXVvdDsgKDAwNykgJnF1b3Q7bGlzdCZxdW90OyAjIyAjZiAjYSAjbCAjcyAjZQoKKGZpKSAmcXVvdDtmdW5jdGlvbiZxdW90OyAmcXVvdDtsaXN0JnF1b3Q7CmNvbW1lbnQ6CigwMDIpICZxdW90O251bGw/JnF1b3Q7ICZxdW90O2xpc3QmcXVvdDsKbmlsCgooZmkpICZxdW90O2Z1bmN0aW9uJnF1b3Q7ICZxdW90O2xpc3QmcXVvdDsKY29tbWVudDoKKDAwMikgJnF1b3Q7ZnVuY3Rpb24mcXVvdDsgKDEpICZxdW90O2xpc3QmcXVvdDsKKGMpICgxKSAmcXVvdDtsaXN0JnF1b3Q7IChmaSkgJnF1b3Q7ZnVuY3Rpb24mcXVvdDsgKCEpICZxdW90O2xpc3QmcXVvdDsKCihmaSkgJnF1b3Q7ZnVuY3Rpb24mcXVvdDsgJnF1b3Q7bGlzdCZxdW90Owpjb21tZW50OgojdHJ1ZQooZmkpICZxdW90O2Z1bmN0aW9uJnF1b3Q7ICghKSAmcXVvdDtsaXN0JnF1b3Q7CgooZmlsdGVyISkgJnF1b3Q7cHJlZGljYXRlJnF1b3Q7ICZxdW90O2xpc3QmcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90Owpjb21tZW50OgooMDAyKSAmcXVvdDtudWxsPyZxdW90OyAmcXVvdDtsaXN0JnF1b3Q7CiZxdW90O2NvbGxlY3QmcXVvdDsKCihmaWx0ZXIhKSAmcXVvdDtwcmVkaWNhdGUmcXVvdDsgJnF1b3Q7bGlzdCZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CmNvbW1lbnQ6CigwMDIpICZxdW90O3ByZWRpY2F0ZSZxdW90OyAoMDAyKSAmcXVvdDtjYXImcXVvdDsgJnF1b3Q7bGlzdCZxdW90OwooZmlsdGVyISkgJnF1b3Q7cHJlZGljYXRlJnF1b3Q7ICgwMDIpICZxdW90O2NkciZxdW90OyAmcXVvdDtsaXN0JnF1b3Q7ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgKDAwMikgJnF1b3Q7Y2FyJnF1b3Q7ICZxdW90O2xpc3QmcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90OwoKKGZpbHRlciEpICZxdW90O3ByZWRpY2F0ZSZxdW90OyAmcXVvdDtsaXN0JnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKY29tbWVudDoKI3RydWUKKGZpbHRlciEpICZxdW90O3ByZWRpY2F0ZSZxdW90OyAoMDAyKSAmcXVvdDtjZHImcXVvdDsgJnF1b3Q7bGlzdCZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CgooZmlsdGVyKSAmcXVvdDtwcmVkaWNhdGUmcXVvdDsgJnF1b3Q7bGlzdCZxdW90Owpjb21tZW50OgojdHJ1ZQooMDAyKSAmcXVvdDtyZXZlcnNlJnF1b3Q7IChmaWx0ZXIhKSAmcXVvdDtwcmVkaWNhdGUmcXVvdDsgJnF1b3Q7bGlzdCZxdW90OyBuaWwKCihmaXJzdCEpICZxdW90O2ludGVnZXImcXVvdDsgJnF1b3Q7bGlzdCZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CmNvbW1lbnQ6CigwMDMpICZxdW90O29yJnF1b3Q7ICgwMDIpICZxdW90O3plcm8/JnF1b3Q7ICZxdW90O2ludGVnZXImcXVvdDsgKDAwMikgJnF1b3Q7bnVsbD8mcXVvdDsgJnF1b3Q7bGlzdCZxdW90OwooMDAyKSAmcXVvdDtyZXZlcnNlJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKCihmaXJzdCEpICZxdW90O2ludGVnZXImcXVvdDsgJnF1b3Q7bGlzdCZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CmNvbW1lbnQ6CigwMDIpICZxdW90O25vdCZxdW90OyAoMDAyKSAmcXVvdDtwYWlyPyZxdW90OyAmcXVvdDtsaXN0JnF1b3Q7CigwMDIpICZxdW90O3JldmVyc2UmcXVvdDsgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDtsaXN0JnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKCihmaXJzdCEpICZxdW90O2ludGVnZXImcXVvdDsgJnF1b3Q7bGlzdCZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CmNvbW1lbnQ6CigwMDMpICZxdW90OyZndDsmcXVvdDsgJnF1b3Q7aW50ZWdlciZxdW90OyAwCihmaXJzdCEpICgwMDMpICZxdW90Oy0mcXVvdDsgJnF1b3Q7aW50ZWdlciZxdW90OyAxICghKSAmcXVvdDtsaXN0JnF1b3Q7ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgKDEpICZxdW90O2xpc3QmcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90OwoKKGZpcnN0KSAmcXVvdDtpbnRlZ2VyJnF1b3Q7ICZxdW90O2xpc3QmcXVvdDsKY29tbWVudDoKKDAwMikgJnF1b3Q7bm90JnF1b3Q7ICgwMDIpICZxdW90O3BhaXI/JnF1b3Q7ICZxdW90O2xpc3QmcXVvdDsKJnF1b3Q7bGlzdCZxdW90OwoKKGZpcnN0KSAmcXVvdDtpbnRlZ2VyJnF1b3Q7ICZxdW90O2xpc3QmcXVvdDsKY29tbWVudDoKI3RydWUKKGZpcnN0ISkgJnF1b3Q7aW50ZWdlciZxdW90OyAmcXVvdDtsaXN0JnF1b3Q7IG5pbAoKKGZsYXR0ZW4hKSBsaXN0IHN1Yi1saXN0LWZvdW5kPyBjb2xsZWN0CmNvbW1lbnQ6CihhbmQpIChudWxsPykgbGlzdCAobm90KSBzdWItbGlzdC1mb3VuZD8KKHJldmVyc2UpIGNvbGxlY3QKCihmbGF0dGVuISkgbGlzdCBzdWItbGlzdC1mb3VuZD8gY29sbGVjdApjb21tZW50OgoobnVsbD8pIGxpc3QKKGZsYXR0ZW4hKSAocmV2ZXJzZSkgY29sbGVjdCAjZmFsc2UgbmlsCgooZmxhdHRlbiEpIGxpc3Qgc3ViLWxpc3QtZm91bmQ/IGNvbGxlY3QKY29tbWVudDoKKG5vdCkgKHBhaXI/KSBsaXN0CihmbGF0dGVuISkgbmlsIHN1Yi1saXN0LWZvdW5kPyAoY29ucykgbGlzdCBjb2xsZWN0CgooZmxhdHRlbiEpIGxpc3Qgc3ViLWxpc3QtZm91bmQ/IGNvbGxlY3QKY29tbWVudDoKKHBhaXI/KSAoMSkgbGlzdAooZmxhdHRlbiEpICghKSBsaXN0ICN0cnVlIChjb25zKSAoISkgKDEpIGxpc3QgKGNvbnMpICgxKSAoMSkgbGlzdCBjb2xsZWN0CgooZmxhdHRlbiEpIGxpc3Qgc3ViLWxpc3QtZm91bmQ/IGNvbGxlY3QKY29tbWVudDoKKG51bGw/KSAoMSkgbGlzdAooZmxhdHRlbiEpICghKSBsaXN0IHN1Yi1saXN0LWZvdW5kPyBjb2xsZWN0CgooZmxhdHRlbiEpIGxpc3Qgc3ViLWxpc3QtZm91bmQ/IGNvbGxlY3QKY29tbWVudDoKI3RydWUKKGZsYXR0ZW4hKSAoISkgbGlzdCBzdWItbGlzdC1mb3VuZD8gKGNvbnMpICgxKSBsaXN0IGNvbGxlY3QKCihmbGF0dGVuKSBsaXN0CmNvbW1lbnQ6CiN0cnVlCihmbGF0dGVuISkgbGlzdCAjZmFsc2UgbmlsCgooZm9yLWVhY2gpIGVmZmVjdCBsaXN0CmNvbW1lbnQ6CiN0cnVlCigwMDMpICZxdW90O2Zvci1lYWNoJnF1b3Q7IGVmZmVjdCBsaXN0CgooZnVuY3Rpb24pICZxdW90O2V4cHJlc3Npb24mcXVvdDsKY29tbWVudDoKI3RydWUKKDAwMikgJnF1b3Q7Y2FhciZxdW90OyAmcXVvdDtleHByZXNzaW9uJnF1b3Q7CgooZnVuY3Rpb24tc29ydCkgJnF1b3Q7c2VudGVuY2VzJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCihyZCkgbmlsICZxdW90O2FwcGVuZCZxdW90OyAoc29ydCkgY2xhdXNlLWxlc3M/IChieS1mb3VyKSAmcXVvdDtzZW50ZW5jZXMmcXVvdDsKCihmdW5jdGlvbml6ZSkgJnF1b3Q7Y2xhdXNlJnF1b3Q7ICZxdW90O2FyaXR5LWhhc2gmcXVvdDsKY29tbWVudDoKI3RydWUKKDAwNCkgJnF1b3Q7bGlzdCZxdW90OyAmcXVvdDsnZGVmaW5lJnF1b3Q7ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgKGNsYXVzZS1uYW1lKSAmcXVvdDtjbGF1c2UmcXVvdDsgKGNsYXVzZS1hcmd1bWVudHMpICZxdW90O2NsYXVzZSZxdW90OyAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90Oydjb25kJnF1b3Q7ICgwMDMpICZxdW90O2FwcGVuZCZxdW90OyAoY29uZGVmeSkgKG1hcC13aXRoKSBzY2hlbWVmeSAoY2xhdXNlLWJvZHkpICZxdW90O2NsYXVzZSZxdW90OyAmcXVvdDthcml0eS1oYXNoJnF1b3Q7ICgwMDIpICZxdW90O2xpc3QmcXVvdDsgKDAwMykgJnF1b3Q7bGlzdCZxdW90OyAmcXVvdDsnZWxzZSZxdW90OyBlcnIKCihnYXRoZXItY291bnQ/ISkgJnF1b3Q7Y2FuZGlkYXRlJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCigwMDgpICZxdW90O2FuZCZxdW90OyAoMDAzKSAmcXVvdDs9JnF1b3Q7IDYgKDAwMikgJnF1b3Q7bGVuZ3RoJnF1b3Q7ICZxdW90O2NhbmRpZGF0ZSZxdW90OyAoMDAzKSAmcXVvdDtlcXY/JnF1b3Q7ICNaICgwMDIpICZxdW90O2NhciZxdW90OyAmcXVvdDtjYW5kaWRhdGUmcXVvdDsgKDAwMykgJnF1b3Q7ZXF2PyZxdW90OyAjRSAoMDAyKSAmcXVvdDtjYWRyJnF1b3Q7ICZxdW90O2NhbmRpZGF0ZSZxdW90OyAoMDAzKSAmcXVvdDtlcXY/JnF1b3Q7ICNEICgwMDIpICZxdW90O2NhZGRyJnF1b3Q7ICZxdW90O2NhbmRpZGF0ZSZxdW90OyAoMDAzKSAmcXVvdDtlcXY/JnF1b3Q7ICMwICgwMDIpICZxdW90O2NhZGRkciZxdW90OyAmcXVvdDtjYW5kaWRhdGUmcXVvdDsgKGRpZ2l0PykgKDAwMikgJnF1b3Q7Y2FyJnF1b3Q7ICgwMDIpICZxdW90O2NkZGRkciZxdW90OyAmcXVvdDtjYW5kaWRhdGUmcXVvdDsgKGRpZ2l0PykgKDAwMikgJnF1b3Q7Y2FkciZxdW90OyAoMDAyKSAmcXVvdDtjZGRkZHImcXVvdDsgJnF1b3Q7Y2FuZGlkYXRlJnF1b3Q7CgooZ2F0aGVyLWNvdW50PykgJnF1b3Q7c3ltYm9sJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCihnYXRoZXItY291bnQ/ISkgKDAwMikgJnF1b3Q7c3RyaW5nLSZndDtsaXN0JnF1b3Q7ICgwMDIpICZxdW90O3N5bWJvbC0mZ3Q7c3RyaW5nJnF1b3Q7ICZxdW90O3N5bWJvbCZxdW90OwoKKGdhdGhlci1ub3VuKSAmcXVvdDtzZW50ZW5jZSZxdW90Owpjb21tZW50OgooMDAyKSAmcXVvdDtudWxsPyZxdW90OyAmcXVvdDtzZW50ZW5jZSZxdW90OwpuaWwKCihnYXRoZXItbm91bikgJnF1b3Q7c2VudGVuY2UmcXVvdDsKY29tbWVudDoKKDAwMykgJnF1b3Q7ZXF2PyZxdW90OyAjc3BhY2UgKDAwMikgJnF1b3Q7Y2FyJnF1b3Q7ICZxdW90O3NlbnRlbmNlJnF1b3Q7Cm5pbAoKKGdhdGhlci1ub3VuKSAmcXVvdDtzZW50ZW5jZSZxdW90Owpjb21tZW50OgojdHJ1ZQooMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICgwMDIpICZxdW90O2NhciZxdW90OyAmcXVvdDtzZW50ZW5jZSZxdW90OyAoZ2F0aGVyLW5vdW4pICgwMDIpICZxdW90O2NkciZxdW90OyAmcXVvdDtzZW50ZW5jZSZxdW90OwoKKGdhdGhlci12ZXJiKSAmcXVvdDtzZW50ZW5jZSZxdW90Owpjb21tZW50OgooMDAzKSAmcXVvdDtlcXY/JnF1b3Q7ICMpICgwMDIpICZxdW90O2NhciZxdW90OyAmcXVvdDtzZW50ZW5jZSZxdW90OwpuaWwKCihnYXRoZXItdmVyYikgJnF1b3Q7c2VudGVuY2UmcXVvdDsKY29tbWVudDoKI3RydWUKKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAoMDAyKSAmcXVvdDtjYXImcXVvdDsgJnF1b3Q7c2VudGVuY2UmcXVvdDsgKGdhdGhlci12ZXJiKSAoMDAyKSAmcXVvdDtjZHImcXVvdDsgJnF1b3Q7c2VudGVuY2UmcXVvdDsKCihncikgJnF1b3Q7Z2FyYmFnZSZxdW90OyAmcXVvdDt2YWx1ZSZxdW90Owpjb21tZW50OgojdHJ1ZQooMDAzKSAmcXVvdDtiZWdpbiZxdW90OyAoZHIpICZxdW90O2dhcmJhZ2UmcXVvdDsgJnF1b3Q7dmFsdWUmcXVvdDsKCihncnIpICZxdW90O2dhcmJhZ2UmcXVvdDsgJnF1b3Q7dmFsdWUmcXVvdDsKY29tbWVudDoKI3RydWUKKDAwMykgJnF1b3Q7YmVnaW4mcXVvdDsgKGRycikgJnF1b3Q7Z2FyYmFnZSZxdW90OyAmcXVvdDt2YWx1ZSZxdW90OwoKKGxlYWRpbmctbmV3bGluZSkgJnF1b3Q7cHJvZ3JhbSZxdW90Owpjb21tZW50OgooMDAyKSAmcXVvdDtudWxsPyZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7Cm5pbAoKKGxlYWRpbmctbmV3bGluZSkgJnF1b3Q7cHJvZ3JhbSZxdW90Owpjb21tZW50OgooMDAzKSAmcXVvdDtlcXY/JnF1b3Q7ICNuZXdsaW5lICgwMDIpICZxdW90O2NhciZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7CigwMDIpICZxdW90O2NkciZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7CgoobGVhZGluZy1uZXdsaW5lKSAmcXVvdDtwcm9ncmFtJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCiZxdW90O3Byb2dyYW0mcXVvdDsKCihsaXRlcmFsPykgJnF1b3Q7bGl0ZXJhbC1saXN0JnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCigwMDMpICZxdW90O2Vxdj8mcXVvdDsgIyZxdW90OyAoMDAyKSAmcXVvdDtjYXImcXVvdDsgJnF1b3Q7bGl0ZXJhbC1saXN0JnF1b3Q7CgoobWFrZS1aRUQpICZxdW90O1pFRC1saXN0JnF1b3Q7CmNvbW1lbnQ6CigwMDMpICZxdW90O2VxdWFsPyZxdW90OyAmcXVvdDtaRUQtbGlzdCZxdW90OyAoMDA0KSAmcXVvdDtsaXN0JnF1b3Q7ICNlICNyICNyCiZxdW90OyZxdW90OydlcnImcXVvdDsmcXVvdDsKCihtYWtlLVpFRCkgJnF1b3Q7WkVELWxpc3QmcXVvdDsKY29tbWVudDoKKDAwMykgJnF1b3Q7ZXF1YWw/JnF1b3Q7ICZxdW90O1pFRC1saXN0JnF1b3Q7ICgwMDQpICZxdW90O2xpc3QmcXVvdDsgI24gI2kgI2wKJnF1b3Q7JnF1b3Q7JygpJnF1b3Q7JnF1b3Q7CgoobWFrZS1aRUQpICZxdW90O1pFRC1saXN0JnF1b3Q7CmNvbW1lbnQ6CigwMDMpICZxdW90O2VxdWFsPyZxdW90OyAmcXVvdDtaRUQtbGlzdCZxdW90OyAoMDA0KSAmcXVvdDtsaXN0JnF1b3Q7ICNhICNuICNkCiZxdW90OyZxdW90O2FuZCZxdW90OyZxdW90OwoKKG1ha2UtWkVEKSAmcXVvdDtaRUQtbGlzdCZxdW90Owpjb21tZW50OgooMDAzKSAmcXVvdDtlcXVhbD8mcXVvdDsgJnF1b3Q7WkVELWxpc3QmcXVvdDsgKDAwMykgJnF1b3Q7bGlzdCZxdW90OyAjbyAjcgomcXVvdDsmcXVvdDtvciZxdW90OyZxdW90OwoKKG1ha2UtWkVEKSAmcXVvdDtaRUQtbGlzdCZxdW90Owpjb21tZW50OgooMDAzKSAmcXVvdDtlcXVhbD8mcXVvdDsgJnF1b3Q7WkVELWxpc3QmcXVvdDsgKDAwNikgJnF1b3Q7bGlzdCZxdW90OyAjcSAjdSAjbyAjdCAjZQomcXVvdDsmcXVvdDtxdW90ZSZxdW90OyZxdW90OwoKKG1ha2UtWkVEKSAmcXVvdDtaRUQtbGlzdCZxdW90Owpjb21tZW50OgooMDAzKSAmcXVvdDtlcXVhbD8mcXVvdDsgJnF1b3Q7WkVELWxpc3QmcXVvdDsgKDAwMykgJnF1b3Q7bGlzdCZxdW90OyAjcyAjZQomcXVvdDsmcXVvdDtiZWdpbiZxdW90OyZxdW90OwoKKG1ha2UtWkVEKSAmcXVvdDtaRUQtbGlzdCZxdW90Owpjb21tZW50OgojdHJ1ZQooMDAyKSAmcXVvdDtsaXN0LSZndDtzdHJpbmcmcXVvdDsgKDAwMykgJnF1b3Q7YXBwZW5kJnF1b3Q7ICgwMDQpICZxdW90O2xpc3QmcXVvdDsgI1ogI0UgI0QgJnF1b3Q7WkVELWxpc3QmcXVvdDsKCihtYWtlLWNoYXJhY3RlcikgJnF1b3Q7bm91bi1saXN0JnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCigwMDIpICZxdW90O2xpc3QtJmd0O3N0cmluZyZxdW90OyAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICMjICgwMDMpICZxdW90O2NvbnMmcXVvdDsgI1wgKDAwMikgJnF1b3Q7Y2RyJnF1b3Q7ICZxdW90O25vdW4tbGlzdCZxdW90OwoKKG1ha2UtZXhhY3QpICZxdW90O2V4YWN0LWxpc3QmcXVvdDsKY29tbWVudDoKI3RydWUKKDAwMikgJnF1b3Q7bGlzdC0mZ3Q7c3RyaW5nJnF1b3Q7ICgwMDMpICZxdW90O2FwcGVuZCZxdW90OyAoMDAzKSAmcXVvdDtsaXN0JnF1b3Q7ICMjICNlICZxdW90O2V4YWN0LWxpc3QmcXVvdDsKCihtYWtlLWxpdGVyYWwpICZxdW90O2xpdGVyYWwtbGlzdCZxdW90Owpjb21tZW50OgojdHJ1ZQooMDAyKSAmcXVvdDtsaXN0LSZndDtzdHJpbmcmcXVvdDsgKDAwMikgJnF1b3Q7Y2RyJnF1b3Q7ICgwMDIpICZxdW90O3JldmVyc2UmcXVvdDsgKDAwMikgJnF1b3Q7Y2RyJnF1b3Q7ICgwMDIpICZxdW90O3JldmVyc2UmcXVvdDsgJnF1b3Q7bGl0ZXJhbC1saXN0JnF1b3Q7CgoobWFrZS1udW1iZXItY2hhcmFjdGVyKSAmcXVvdDtub3VuLWxpc3QmcXVvdDsKY29tbWVudDoKI3RydWUKKDAwMikgJnF1b3Q7bGlzdC0mZ3Q7c3RyaW5nJnF1b3Q7ICgwMDQpICZxdW90O2xpc3QmcXVvdDsgIyMgI1wgKDAwMikgJnF1b3Q7aW50ZWdlci0mZ3Q7Y2hhciZxdW90OyAoMDAyKSAmcXVvdDtzdHJpbmctJmd0O251bWJlciZxdW90OyAoMDAyKSAmcXVvdDtsaXN0LSZndDtzdHJpbmcmcXVvdDsgKDAwMikgJnF1b3Q7Y2RkciZxdW90OyAmcXVvdDtub3VuLWxpc3QmcXVvdDsKCihtYXAtd2l0aCEpICZxdW90O2Z1bmN0aW9uJnF1b3Q7ICZxdW90O2xpc3QmcXVvdDsgJnF1b3Q7ZXh0cmEmcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90Owpjb21tZW50OgooMDAyKSAmcXVvdDtudWxsPyZxdW90OyAmcXVvdDtsaXN0JnF1b3Q7CiZxdW90O2NvbGxlY3QmcXVvdDsKCihtYXAtd2l0aCEpICZxdW90O2Z1bmN0aW9uJnF1b3Q7ICZxdW90O2xpc3QmcXVvdDsgJnF1b3Q7ZXh0cmEmcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90Owpjb21tZW50OgojdHJ1ZQoobWFwLXdpdGghKSAmcXVvdDtmdW5jdGlvbiZxdW90OyAoMDAyKSAmcXVvdDtjZHImcXVvdDsgJnF1b3Q7bGlzdCZxdW90OyAmcXVvdDtleHRyYSZxdW90OyAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICgwMDMpICZxdW90O2Z1bmN0aW9uJnF1b3Q7ICgwMDIpICZxdW90O2NhciZxdW90OyAmcXVvdDtsaXN0JnF1b3Q7ICZxdW90O2V4dHJhJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKCihtYXAtd2l0aCkgJnF1b3Q7ZnVuY3Rpb24mcXVvdDsgJnF1b3Q7bGlzdCZxdW90OyAmcXVvdDtleHRyYSZxdW90Owpjb21tZW50OgojdHJ1ZQooMDAyKSAmcXVvdDtyZXZlcnNlJnF1b3Q7IChtYXAtd2l0aCEpICZxdW90O2Z1bmN0aW9uJnF1b3Q7ICZxdW90O2xpc3QmcXVvdDsgJnF1b3Q7ZXh0cmEmcXVvdDsgbmlsCgoobWVyZ2UhKSAmcXVvdDtjb21wYXJhdG9yJnF1b3Q7ICZxdW90O2xpc3QxJnF1b3Q7ICZxdW90O2xpc3QyJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKY29tbWVudDoKKDAwMikgJnF1b3Q7bnVsbD8mcXVvdDsgJnF1b3Q7bGlzdDImcXVvdDsKKDAwMykgJnF1b3Q7YXBwZW5kJnF1b3Q7ICgwMDIpICZxdW90O3JldmVyc2UmcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90OyAmcXVvdDtsaXN0MSZxdW90OwoKKG1lcmdlISkgJnF1b3Q7Y29tcGFyYXRvciZxdW90OyAmcXVvdDtsaXN0MSZxdW90OyAmcXVvdDtsaXN0MiZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CmNvbW1lbnQ6CigwMDIpICZxdW90O251bGw/JnF1b3Q7ICZxdW90O2xpc3QxJnF1b3Q7CigwMDMpICZxdW90O2FwcGVuZCZxdW90OyAoMDAyKSAmcXVvdDtyZXZlcnNlJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsgJnF1b3Q7bGlzdDImcXVvdDsKCihtZXJnZSEpICZxdW90O2NvbXBhcmF0b3ImcXVvdDsgJnF1b3Q7bGlzdDEmcXVvdDsgJnF1b3Q7bGlzdDImcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90Owpjb21tZW50OgooMDAzKSAmcXVvdDtjb21wYXJhdG9yJnF1b3Q7ICgwMDIpICZxdW90O2NhciZxdW90OyAmcXVvdDtsaXN0MiZxdW90OyAoMDAyKSAmcXVvdDtjYXImcXVvdDsgJnF1b3Q7bGlzdDEmcXVvdDsKKG1lcmdlISkgJnF1b3Q7Y29tcGFyYXRvciZxdW90OyAmcXVvdDtsaXN0MSZxdW90OyAoMDAyKSAmcXVvdDtjZHImcXVvdDsgJnF1b3Q7bGlzdDImcXVvdDsgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAoMDAyKSAmcXVvdDtjYXImcXVvdDsgJnF1b3Q7bGlzdDImcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90OwoKKG1lcmdlISkgJnF1b3Q7Y29tcGFyYXRvciZxdW90OyAmcXVvdDtsaXN0MSZxdW90OyAmcXVvdDtsaXN0MiZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCihtZXJnZSEpICZxdW90O2NvbXBhcmF0b3ImcXVvdDsgKDAwMikgJnF1b3Q7Y2RyJnF1b3Q7ICZxdW90O2xpc3QxJnF1b3Q7ICZxdW90O2xpc3QyJnF1b3Q7ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgKDAwMikgJnF1b3Q7Y2FyJnF1b3Q7ICZxdW90O2xpc3QxJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKCihtZXJnZSkgJnF1b3Q7Y29tcGFyYXRvciZxdW90OyAmcXVvdDtsaXN0MSZxdW90OyAmcXVvdDtsaXN0MiZxdW90Owpjb21tZW50OgojdHJ1ZQoobWVyZ2UhKSAmcXVvdDtjb21wYXJhdG9yJnF1b3Q7ICZxdW90O2xpc3QxJnF1b3Q7ICZxdW90O2xpc3QyJnF1b3Q7IG5pbAoKKG1wKSAmcXVvdDtmdW5jdGlvbiZxdW90OyAmcXVvdDtsaXN0JnF1b3Q7CmNvbW1lbnQ6CigwMDIpICZxdW90O251bGw/JnF1b3Q7ICZxdW90O2xpc3QmcXVvdDsKbmlsCgoobXApICZxdW90O2Z1bmN0aW9uJnF1b3Q7ICZxdW90O2xpc3QmcXVvdDsKY29tbWVudDoKKDAwMikgJnF1b3Q7cGFpcj8mcXVvdDsgJnF1b3Q7bGlzdCZxdW90OwooYykgKDAwMikgJnF1b3Q7ZnVuY3Rpb24mcXVvdDsgKDEpICZxdW90O2xpc3QmcXVvdDsgKG1wKSAmcXVvdDtmdW5jdGlvbiZxdW90OyAoISkgJnF1b3Q7bGlzdCZxdW90OwoKKG1wKSAmcXVvdDtmdW5jdGlvbiZxdW90OyAmcXVvdDtsaXN0JnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCigwMDIpICZxdW90O2Z1bmN0aW9uJnF1b3Q7ICZxdW90O2xpc3QmcXVvdDsKCihuZXdsaW5lLXNwYWNlISkgJnF1b3Q7cHJvZ3JhbSZxdW90Owpjb21tZW50OgojdHJ1ZQooMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICNuZXdsaW5lIChuZXdsaW5lLXNwYWNlIWEpICZxdW90O3Byb2dyYW0mcXVvdDsKCihuZXdsaW5lLXNwYWNlIWEpICZxdW90O3Byb2dyYW0mcXVvdDsKY29tbWVudDoKI3RydWUKKG5ld2xpbmUtc3BhY2UhYWEpICZxdW90O3Byb2dyYW0mcXVvdDsgKDAwMikgJnF1b3Q7cmV2ZXJzZSZxdW90OyAobmV3bGluZS1zcGFjZSFhYikgJnF1b3Q7cHJvZ3JhbSZxdW90OyBuaWwKCihuZXdsaW5lLXNwYWNlIWFhKSAmcXVvdDtwcm9ncmFtJnF1b3Q7ICZxdW90O3RyYW5zZm9ybWVkJnF1b3Q7CmNvbW1lbnQ6CigwMDMpICZxdW90O2VxdWFsPyZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7ICZxdW90O3RyYW5zZm9ybWVkJnF1b3Q7CiZxdW90O3Byb2dyYW0mcXVvdDsKCihuZXdsaW5lLXNwYWNlIWFhKSAmcXVvdDtwcm9ncmFtJnF1b3Q7ICZxdW90O3RyYW5zZm9ybWVkJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCihuZXdsaW5lLXNwYWNlIWEpICZxdW90O3RyYW5zZm9ybWVkJnF1b3Q7CgoobmV3bGluZS1zcGFjZSFhYikgJnF1b3Q7cHJvZ3JhbSZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CmNvbW1lbnQ6CigwMDIpICZxdW90O251bGw/JnF1b3Q7ICZxdW90O3Byb2dyYW0mcXVvdDsKJnF1b3Q7Y29sbGVjdCZxdW90OwoKKG5ld2xpbmUtc3BhY2UhYWIpICZxdW90O3Byb2dyYW0mcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90Owpjb21tZW50OgooMDAyKSAmcXVvdDtudWxsPyZxdW90OyAoMDAyKSAmcXVvdDtjZHImcXVvdDsgJnF1b3Q7cHJvZ3JhbSZxdW90OwooMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICgwMDIpICZxdW90O2NhciZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKCihuZXdsaW5lLXNwYWNlIWFiKSAmcXVvdDtwcm9ncmFtJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKY29tbWVudDoKKDAwMykgJnF1b3Q7YW5kJnF1b3Q7ICgwMDMpICZxdW90O2Vxdj8mcXVvdDsgI25ld2xpbmUgKDAwMikgJnF1b3Q7Y2FyJnF1b3Q7ICZxdW90O3Byb2dyYW0mcXVvdDsgKDAwMykgJnF1b3Q7b3ImcXVvdDsgKDAwMykgJnF1b3Q7ZXF2PyZxdW90OyAjc3BhY2UgKDAwMikgJnF1b3Q7Y2FkciZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7ICgwMDMpICZxdW90O2Vxdj8mcXVvdDsgI3RhYiAoMDAyKSAmcXVvdDtjYWRyJnF1b3Q7ICZxdW90O3Byb2dyYW0mcXVvdDsKKG5ld2xpbmUtc3BhY2UhYWIpICgwMDIpICZxdW90O2NkciZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKCihuZXdsaW5lLXNwYWNlIWFiKSAmcXVvdDtwcm9ncmFtJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKY29tbWVudDoKI3RydWUKKG5ld2xpbmUtc3BhY2UhYWIpICgwMDIpICZxdW90O2NkciZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgKDAwMikgJnF1b3Q7Y2FyJnF1b3Q7ICZxdW90O3Byb2dyYW0mcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90OwoKKG5ld2xpbmUtc3BhY2UpICZxdW90O3Byb2dyYW0mcXVvdDsKY29tbWVudDoKI3RydWUKKG5ld2xpbmUtc3BhY2UhKSAmcXVvdDtwcm9ncmFtJnF1b3Q7CgoobmV3bGluZS1zcGFjZS10YWItcmVwZWF0cyEpICZxdW90O3Byb2dyYW0mcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90Owpjb21tZW50OgooMDAzKSAmcXVvdDtvciZxdW90OyAoMDAyKSAmcXVvdDtudWxsPyZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7ICgwMDIpICZxdW90O251bGw/JnF1b3Q7ICgwMDIpICZxdW90O2NkciZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7CigwMDMpICZxdW90O2FwcGVuZCZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKCihuZXdsaW5lLXNwYWNlLXRhYi1yZXBlYXRzISkgJnF1b3Q7cHJvZ3JhbSZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CmNvbW1lbnQ6CigwMDMpICZxdW90O2FuZCZxdW90OyAoMDAzKSAmcXVvdDtlcXY/JnF1b3Q7ICNuZXdsaW5lICgwMDIpICZxdW90O2NhciZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7ICgwMDMpICZxdW90O2Vxdj8mcXVvdDsgI25ld2xpbmUgKDAwMikgJnF1b3Q7Y2FkciZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7CihuZXdsaW5lLXNwYWNlLXRhYi1yZXBlYXRzISkgKDAwMikgJnF1b3Q7Y2RyJnF1b3Q7ICZxdW90O3Byb2dyYW0mcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90OwoKKG5ld2xpbmUtc3BhY2UtdGFiLXJlcGVhdHMhKSAmcXVvdDtwcm9ncmFtJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKY29tbWVudDoKKDAwMykgJnF1b3Q7YW5kJnF1b3Q7ICgwMDMpICZxdW90O29yJnF1b3Q7ICgwMDMpICZxdW90O2Vxdj8mcXVvdDsgI3NwYWNlICgwMDIpICZxdW90O2NhciZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7ICgwMDMpICZxdW90O2Vxdj8mcXVvdDsgI3RhYiAoMDAyKSAmcXVvdDtjYXImcXVvdDsgJnF1b3Q7cHJvZ3JhbSZxdW90OyAoMDAzKSAmcXVvdDtvciZxdW90OyAoMDAzKSAmcXVvdDtlcXY/JnF1b3Q7ICNzcGFjZSAoMDAyKSAmcXVvdDtjYWRyJnF1b3Q7ICZxdW90O3Byb2dyYW0mcXVvdDsgKDAwMykgJnF1b3Q7ZXF2PyZxdW90OyAjdGFiICgwMDIpICZxdW90O2NhZHImcXVvdDsgJnF1b3Q7cHJvZ3JhbSZxdW90OwoobmV3bGluZS1zcGFjZS10YWItcmVwZWF0cyEpICgwMDIpICZxdW90O2NkciZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKCihuZXdsaW5lLXNwYWNlLXRhYi1yZXBlYXRzISkgJnF1b3Q7cHJvZ3JhbSZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCihuZXdsaW5lLXNwYWNlLXRhYi1yZXBlYXRzISkgKDAwMikgJnF1b3Q7Y2RyJnF1b3Q7ICZxdW90O3Byb2dyYW0mcXVvdDsgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAoMDAyKSAmcXVvdDtjYXImcXVvdDsgJnF1b3Q7cHJvZ3JhbSZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CgoobmV3bGluZS1zcGFjZS10YWItcmVwZWF0cykgJnF1b3Q7cHJvZ3JhbSZxdW90Owpjb21tZW50OgojdHJ1ZQooMDAyKSAmcXVvdDtyZXZlcnNlJnF1b3Q7IChuZXdsaW5lLXNwYWNlLXRhYi1yZXBlYXRzISkgJnF1b3Q7cHJvZ3JhbSZxdW90OyBuaWwKCihuZXdsaW5lcykgJnF1b3Q7Y2xhdXNlcyZxdW90Owpjb21tZW50OgojdHJ1ZQooYWRkLWJldHdlZW4tcmEpIChtYXAtd2l0aCkgYWRkLWJldHdlZW4tcmEgJnF1b3Q7Y2xhdXNlcyZxdW90OyAoMDAyKSAmcXVvdDtsaXN0JnF1b3Q7ICNuZXdsaW5lICgwMDIpICZxdW90O2xpc3QmcXVvdDsgKDAwMykgJnF1b3Q7bGlzdCZxdW90OyAjbmV3bGluZSAjbmV3bGluZQoKKG5vcm1hbC1jaGFyYWN0ZXI/KSAmcXVvdDtub3VuLWxpc3QmcXVvdDsKY29tbWVudDoKI3RydWUKKDAwMykgJnF1b3Q7ZXF2PyZxdW90OyAoMDAyKSAmcXVvdDtjYXImcXVvdDsgJnF1b3Q7bm91bi1saXN0JnF1b3Q7ICMjCgoobm90KSB2YWx1ZQpjb21tZW50OgojdHJ1ZQooMDAyKSAmcXVvdDtub3QmcXVvdDsgdmFsdWUKCihub3QtcmV0dXJuPykgJnF1b3Q7Y2hhcmFjdGVyJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCigwMDIpICZxdW90O25vdCZxdW90OyAoMDAzKSAmcXVvdDtlcXY/JnF1b3Q7ICNyZXR1cm4gJnF1b3Q7Y2hhcmFjdGVyJnF1b3Q7Cgoobm91biEpICZxdW90O25vdW4tbGlzdCZxdW90OyAmcXVvdDtudW1iZXI/JnF1b3Q7CmNvbW1lbnQ6CiZxdW90O251bWJlcj8mcXVvdDsKKG1ha2UtZXhhY3QpICZxdW90O25vdW4tbGlzdCZxdW90OwoKKG5vdW4hKSAmcXVvdDtub3VuLWxpc3QmcXVvdDsgJnF1b3Q7bnVtYmVyPyZxdW90Owpjb21tZW50OgoobGl0ZXJhbD8pICZxdW90O25vdW4tbGlzdCZxdW90OwoobWFrZS1saXRlcmFsKSAmcXVvdDtub3VuLWxpc3QmcXVvdDsKCihub3VuISkgJnF1b3Q7bm91bi1saXN0JnF1b3Q7ICZxdW90O251bWJlcj8mcXVvdDsKY29tbWVudDoKKHRydWU/KSAmcXVvdDtub3VuLWxpc3QmcXVvdDsKJnF1b3Q7JnF1b3Q7I3QmcXVvdDsmcXVvdDsKCihub3VuISkgJnF1b3Q7bm91bi1saXN0JnF1b3Q7ICZxdW90O251bWJlcj8mcXVvdDsKY29tbWVudDoKKGZhbHNlPykgJnF1b3Q7bm91bi1saXN0JnF1b3Q7CiZxdW90OyZxdW90OyNmJnF1b3Q7JnF1b3Q7Cgoobm91biEpICZxdW90O25vdW4tbGlzdCZxdW90OyAmcXVvdDtudW1iZXI/JnF1b3Q7CmNvbW1lbnQ6CihudW1iZXItY2hhcmFjdGVyPykgJnF1b3Q7bm91bi1saXN0JnF1b3Q7CihtYWtlLW51bWJlci1jaGFyYWN0ZXIpICZxdW90O25vdW4tbGlzdCZxdW90OwoKKG5vdW4hKSAmcXVvdDtub3VuLWxpc3QmcXVvdDsgJnF1b3Q7bnVtYmVyPyZxdW90Owpjb21tZW50Ogoobm9ybWFsLWNoYXJhY3Rlcj8pICZxdW90O25vdW4tbGlzdCZxdW90OwoobWFrZS1jaGFyYWN0ZXIpICZxdW90O25vdW4tbGlzdCZxdW90OwoKKG5vdW4hKSAmcXVvdDtub3VuLWxpc3QmcXVvdDsgJnF1b3Q7bnVtYmVyPyZxdW90Owpjb21tZW50OgojdHJ1ZQoobWFrZS1aRUQpICZxdW90O25vdW4tbGlzdCZxdW90OwoKKG5vdW4pICZxdW90O25vdW4tbGlzdCZxdW90Owpjb21tZW50OgojdHJ1ZQoobm91biEpICZxdW90O25vdW4tbGlzdCZxdW90OyAoMDAyKSAmcXVvdDtzdHJpbmctJmd0O251bWJlciZxdW90OyAoMDAyKSAmcXVvdDtsaXN0LSZndDtzdHJpbmcmcXVvdDsgJnF1b3Q7bm91bi1saXN0JnF1b3Q7CgoobnVsbD8pIHZhbHVlCmNvbW1lbnQ6CiN0cnVlCigwMDIpICZxdW90O251bGw/JnF1b3Q7IHZhbHVlCgoobnVtYmVyLWNoYXJhY3Rlcj8pICZxdW90O25vdW4tbGlzdCZxdW90Owpjb21tZW50OgojdHJ1ZQooMDA0KSAmcXVvdDthbmQmcXVvdDsgKDAwMykgJnF1b3Q7ZXF2PyZxdW90OyAoMDAyKSAmcXVvdDtjYXImcXVvdDsgJnF1b3Q7bm91bi1saXN0JnF1b3Q7ICMjICgwMDMpICZxdW90O2Vxdj8mcXVvdDsgKDAwMikgJnF1b3Q7Y2FkciZxdW90OyAmcXVvdDtub3VuLWxpc3QmcXVvdDsgIzAgKDAwMikgJnF1b3Q7bm90JnF1b3Q7ICgwMDIpICZxdW90O251bGw/JnF1b3Q7ICgwMDIpICZxdW90O2NkZHImcXVvdDsgJnF1b3Q7bm91bi1saXN0JnF1b3Q7CgoocGFpcj8pIHZhbHVlCmNvbW1lbnQ6CiN0cnVlCigwMDIpICZxdW90O3BhaXI/JnF1b3Q7IHZhbHVlCgoocG9wKSAmcXVvdDtzdGFjayZxdW90Owpjb21tZW50OgojdHJ1ZQooMDAyKSAmcXVvdDtjZHImcXVvdDsgJnF1b3Q7c3RhY2smcXVvdDsKCihwciEpICZxdW90O3ZhbHVlJnF1b3Q7ICZxdW90O291dHB1dC1zdHJpbmcmcXVvdDsKY29tbWVudDoKI3RydWUKKDAwMykgJnF1b3Q7YmVnaW4mcXVvdDsgKDAwMykgJnF1b3Q7ZGlzcGxheSZxdW90OyAocHIhYSkgJnF1b3Q7dmFsdWUmcXVvdDsgbmlsICZxdW90O291dHB1dC1zdHJpbmcmcXVvdDsgKHByIWIpICZxdW90O291dHB1dC1zdHJpbmcmcXVvdDsgKDAwMikgJnF1b3Q7Z2V0LW91dHB1dC1zdHJpbmcmcXVvdDsgJnF1b3Q7b3V0cHV0LXN0cmluZyZxdW90OwoKKHByIWEpICZxdW90O3ZhbHVlJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKY29tbWVudDoKKDAwMikgJnF1b3Q7Y2hhcj8mcXVvdDsgJnF1b3Q7dmFsdWUmcXVvdDsKKHByIWFhKSAoMDAyKSAmcXVvdDtsaXN0LSZndDtzdHJpbmcmcXVvdDsgKDAwMykgJnF1b3Q7bGlzdCZxdW90OyAjIyAmcXVvdDt2YWx1ZSZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CgoocHIhYSkgJnF1b3Q7dmFsdWUmcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90Owpjb21tZW50OgooMDAyKSAmcXVvdDtzdHJpbmc/JnF1b3Q7ICZxdW90O3ZhbHVlJnF1b3Q7CihwciFhYSkgKDAwNCkgJnF1b3Q7c3RyaW5nLWFwcGVuZCZxdW90OyAmcXVvdDsmcXVvdDtcJnF1b3Q7JnF1b3Q7JnF1b3Q7ICZxdW90O3ZhbHVlJnF1b3Q7ICZxdW90OyZxdW90O1wmcXVvdDsmcXVvdDsmcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90OwoKKHByIWEpICZxdW90O3ZhbHVlJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKY29tbWVudDoKKDAwMikgJnF1b3Q7c3ltYm9sPyZxdW90OyAmcXVvdDt2YWx1ZSZxdW90OwoocHIhYWEpICgwMDIpICZxdW90O3N5bWJvbC0mZ3Q7c3RyaW5nJnF1b3Q7ICZxdW90O3ZhbHVlJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKCihwciFhKSAmcXVvdDt2YWx1ZSZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CmNvbW1lbnQ6CigwMDIpICZxdW90O251bWJlcj8mcXVvdDsgJnF1b3Q7dmFsdWUmcXVvdDsKKHByIWFhKSAoMDAyKSAmcXVvdDtudW1iZXItJmd0O3N0cmluZyZxdW90OyAmcXVvdDt2YWx1ZSZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CgoocHIhYSkgJnF1b3Q7dmFsdWUmcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90Owpjb21tZW50OgooMDAzKSAmcXVvdDthbmQmcXVvdDsgKDAwMikgJnF1b3Q7Ym9vbGVhbj8mcXVvdDsgJnF1b3Q7dmFsdWUmcXVvdDsgJnF1b3Q7dmFsdWUmcXVvdDsKKHByIWFhKSAmcXVvdDsmcXVvdDsjdHJ1ZSZxdW90OyZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CgoocHIhYSkgJnF1b3Q7dmFsdWUmcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90Owpjb21tZW50OgooMDAyKSAmcXVvdDtib29sZWFuPyZxdW90OyAmcXVvdDt2YWx1ZSZxdW90OwoocHIhYWEpICZxdW90OyZxdW90OyNmYWxzZSZxdW90OyZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CgoocHIhYSkgJnF1b3Q7dmFsdWUmcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90Owpjb21tZW50OgooMDAyKSAmcXVvdDtudWxsPyZxdW90OyAmcXVvdDt2YWx1ZSZxdW90OwooMDAyKSAmcXVvdDtyZXZlcnNlJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKCihwciFhKSAmcXVvdDt2YWx1ZSZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCihwciFhKSAoISkgJnF1b3Q7dmFsdWUmcXVvdDsgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAocHIhYSkgKDEpICZxdW90O3ZhbHVlJnF1b3Q7IG5pbCAmcXVvdDtjb2xsZWN0JnF1b3Q7CgoocHIhYWEpICZxdW90O3N0cmluZyZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CmNvbW1lbnQ6CigwMDIpICZxdW90O251bGw/JnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKJnF1b3Q7c3RyaW5nJnF1b3Q7CgoocHIhYWEpICZxdW90O3N0cmluZyZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCigwMDIpICZxdW90O3JldmVyc2UmcXVvdDsgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDtzdHJpbmcmcXVvdDsgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsmcXVvdDsuJnF1b3Q7JnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKCihwciFiKSAmcXVvdDtvdXRwdXQtc3RyaW5nJnF1b3Q7ICZxdW90O3ZhbHVlJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCigwMDMpICZxdW90O2JlZ2luJnF1b3Q7ICgwMDIpICZxdW90O2Nsb3NlLW91dHB1dC1wb3J0JnF1b3Q7ICZxdW90O291dHB1dC1zdHJpbmcmcXVvdDsgJnF1b3Q7dmFsdWUmcXVvdDsKCihwcikgJnF1b3Q7dmFsdWUmcXVvdDsKY29tbWVudDoKI3RydWUKKHByISkgJnF1b3Q7dmFsdWUmcXVvdDsgKDAwMSkgJnF1b3Q7b3Blbi1vdXRwdXQtc3RyaW5nJnF1b3Q7CgoocHJvZ3JhbWl6ZSkgJnF1b3Q7cHJvZ3JhbSZxdW90OyAmcXVvdDthcml0eS1oYXNoJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCigwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J2JlZ2luJnF1b3Q7IChtYXAtd2l0aCkgZnVuY3Rpb25pemUgJnF1b3Q7cHJvZ3JhbSZxdW90OyAmcXVvdDthcml0eS1oYXNoJnF1b3Q7CgoocHVzaCkgJnF1b3Q7b2JqZWN0JnF1b3Q7ICZxdW90O3N0YWNrJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCigwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7b2JqZWN0JnF1b3Q7ICZxdW90O3N0YWNrJnF1b3Q7CgoocmQhKSAmcXVvdDtmdW5jdGlvbiZxdW90OyAmcXVvdDtsaXN0JnF1b3Q7CmNvbW1lbnQ6CigwMDIpICZxdW90O251bGw/JnF1b3Q7ICghKSAmcXVvdDtsaXN0JnF1b3Q7CigxKSAmcXVvdDtsaXN0JnF1b3Q7CgoocmQhKSAmcXVvdDtmdW5jdGlvbiZxdW90OyAmcXVvdDtsaXN0JnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCihyZCEpICZxdW90O2Z1bmN0aW9uJnF1b3Q7ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgKDAwMykgJnF1b3Q7ZnVuY3Rpb24mcXVvdDsgKDEpICghKSAmcXVvdDtsaXN0JnF1b3Q7ICgxKSAmcXVvdDtsaXN0JnF1b3Q7ICghKSAoISkgJnF1b3Q7bGlzdCZxdW90OwoKKHJkKSAmcXVvdDtmaW5hbCZxdW90OyAmcXVvdDtmdW5jdGlvbiZxdW90OyAmcXVvdDtsaXN0JnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCihyZCEpICZxdW90O2Z1bmN0aW9uJnF1b3Q7ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7ZmluYWwmcXVvdDsgKDAwMikgJnF1b3Q7cmV2ZXJzZSZxdW90OyAmcXVvdDtsaXN0JnF1b3Q7CgoocmVhZC1hbGwhKSAmcXVvdDtjb2xsZWN0JnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCihyZWFkLWFsbCFhKSAoMDAxKSAmcXVvdDtyZWFkLWNoYXImcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90OwoKKHJlYWQtYWxsIWEpICZxdW90O2NoYXJhY3RlciZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CmNvbW1lbnQ6CigwMDIpICZxdW90O2VvZi1vYmplY3Q/JnF1b3Q7ICZxdW90O2NoYXJhY3RlciZxdW90OwomcXVvdDtjb2xsZWN0JnF1b3Q7CgoocmVhZC1hbGwhYSkgJnF1b3Q7Y2hhcmFjdGVyJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKY29tbWVudDoKI3RydWUKKHJlYWQtYWxsISkgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDtjaGFyYWN0ZXImcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90OwoKKHJlYWQtYWxsKQpjb21tZW50OgojdHJ1ZQooMDAyKSAmcXVvdDtyZXZlcnNlJnF1b3Q7IChyZWFkLWFsbCEpIG5pbAoKKHJlYWQtc2VudGVuY2UhYSkgJnF1b3Q7c2VudGVuY2UmcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90Owpjb21tZW50OgooMDAyKSAmcXVvdDtudWxsPyZxdW90OyAmcXVvdDtzZW50ZW5jZSZxdW90OwomcXVvdDtjb2xsZWN0JnF1b3Q7CgoocmVhZC1zZW50ZW5jZSFhKSAmcXVvdDtzZW50ZW5jZSZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CmNvbW1lbnQ6CigwMDMpICZxdW90O2Vxdj8mcXVvdDsgI3NwYWNlICgwMDIpICZxdW90O2NhciZxdW90OyAmcXVvdDtzZW50ZW5jZSZxdW90OwoocmVhZC1zZW50ZW5jZSFhKSAoMDAyKSAmcXVvdDtjZHImcXVvdDsgJnF1b3Q7c2VudGVuY2UmcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90OwoKKHJlYWQtc2VudGVuY2UhYSkgJnF1b3Q7c2VudGVuY2UmcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90Owpjb21tZW50OgooMDAzKSAmcXVvdDtlcXY/JnF1b3Q7ICMoICgwMDIpICZxdW90O2NhciZxdW90OyAmcXVvdDtzZW50ZW5jZSZxdW90OwoocmVhZC1zZW50ZW5jZSFhYSkgJnF1b3Q7c2VudGVuY2UmcXVvdDsgKGdhdGhlci12ZXJiKSAoMDAyKSAmcXVvdDtjZHImcXVvdDsgJnF1b3Q7c2VudGVuY2UmcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90OwoKKHJlYWQtc2VudGVuY2UhYSkgJnF1b3Q7c2VudGVuY2UmcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90Owpjb21tZW50OgojdHJ1ZQoocmVhZC1zZW50ZW5jZSFhYikgJnF1b3Q7c2VudGVuY2UmcXVvdDsgKGdhdGhlci1ub3VuKSAmcXVvdDtzZW50ZW5jZSZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CgoocmVhZC1zZW50ZW5jZSFhYSkgJnF1b3Q7c2VudGVuY2UmcXVvdDsgJnF1b3Q7Z2F0aGVyLXZlcmImcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90Owpjb21tZW50OgojdHJ1ZQoocmVhZC1zZW50ZW5jZSFhKSAodGFpbHMpICgwMDMpICZxdW90OysmcXVvdDsgMiAoMDAyKSAmcXVvdDtsZW5ndGgmcXVvdDsgJnF1b3Q7Z2F0aGVyLXZlcmImcXVvdDsgJnF1b3Q7c2VudGVuY2UmcXVvdDsgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAodmVyYikgJnF1b3Q7Z2F0aGVyLXZlcmImcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90OwoKKHJlYWQtc2VudGVuY2UhYWIpICZxdW90O3NlbnRlbmNlJnF1b3Q7ICZxdW90O2dhdGhlci1ub3VuJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKY29tbWVudDoKI3RydWUKKHJlYWQtc2VudGVuY2UhYSkgKHRhaWxzKSAoMDAyKSAmcXVvdDtsZW5ndGgmcXVvdDsgJnF1b3Q7Z2F0aGVyLW5vdW4mcXVvdDsgJnF1b3Q7c2VudGVuY2UmcXVvdDsgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAobm91bikgJnF1b3Q7Z2F0aGVyLW5vdW4mcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90OwoKKHJlYWQtc2VudGVuY2UhYikgJnF1b3Q7bGlzdCZxdW90OyAmcXVvdDtvdXRwdXQtc3RyaW5nJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCigwMDMpICZxdW90O2JlZ2luJnF1b3Q7ICgwMDMpICZxdW90O2Rpc3BsYXkmcXVvdDsgJnF1b3Q7bGlzdCZxdW90OyAmcXVvdDtvdXRwdXQtc3RyaW5nJnF1b3Q7IChyZWFkLXNlbnRlbmNlIWJhKSAmcXVvdDtvdXRwdXQtc3RyaW5nJnF1b3Q7ICgwMDIpICZxdW90O2dldC1vdXRwdXQtc3RyaW5nJnF1b3Q7ICZxdW90O291dHB1dC1zdHJpbmcmcXVvdDsKCihyZWFkLXNlbnRlbmNlIWJhKSAmcXVvdDtvdXRwdXQtc3RyaW5nJnF1b3Q7ICZxdW90O2dldC1vdXRwdXQtc3RyaW5nJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCigwMDMpICZxdW90O2JlZ2luJnF1b3Q7ICgwMDIpICZxdW90O2Nsb3NlLW91dHB1dC1wb3J0JnF1b3Q7ICZxdW90O291dHB1dC1zdHJpbmcmcXVvdDsgKHJlYWQtc2VudGVuY2UhYmFhKSAoMDAyKSAmcXVvdDtvcGVuLWlucHV0LXN0cmluZyZxdW90OyAmcXVvdDtnZXQtb3V0cHV0LXN0cmluZyZxdW90OwoKKHJlYWQtc2VudGVuY2UhYmFhKSAmcXVvdDtpbnB1dC1zdHJpbmcmcXVvdDsKY29tbWVudDoKI3RydWUKKHJlYWQtc2VudGVuY2UhYmFhYSkgJnF1b3Q7aW5wdXQtc3RyaW5nJnF1b3Q7ICgwMDIpICZxdW90O3JlYWQmcXVvdDsgJnF1b3Q7aW5wdXQtc3RyaW5nJnF1b3Q7CgoocmVhZC1zZW50ZW5jZSFiYWFhKSAmcXVvdDtpbnB1dC1zdHJpbmcmcXVvdDsgJnF1b3Q7YW5zd2VyJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCigwMDMpICZxdW90O2JlZ2luJnF1b3Q7ICgwMDIpICZxdW90O2Nsb3NlLWlucHV0LXBvcnQmcXVvdDsgJnF1b3Q7aW5wdXQtc3RyaW5nJnF1b3Q7ICZxdW90O2Fuc3dlciZxdW90OwoKKHJlYWQtc2VudGVuY2UpICZxdW90O3NlbnRlbmNlJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCihyZWFkLXNlbnRlbmNlIWIpICgwMDIpICZxdW90O3JldmVyc2UmcXVvdDsgKHJlYWQtc2VudGVuY2UhYSkgJnF1b3Q7c2VudGVuY2UmcXVvdDsgbmlsICgwMDEpICZxdW90O29wZW4tb3V0cHV0LXN0cmluZyZxdW90OwoKKHJlYWQtc2VudGVuY2VzKSAmcXVvdDtzZW50ZW5jZXMmcXVvdDsKY29tbWVudDoKI3RydWUKKDAwMykgJnF1b3Q7bWFwJnF1b3Q7IHJlYWQtc2VudGVuY2UgJnF1b3Q7c2VudGVuY2VzJnF1b3Q7CgoocmVhZHktY2xhdXNlKSAmcXVvdDtjbGF1c2UmcXVvdDsKY29tbWVudDoKI3RydWUKKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAoMDAyKSAmcXVvdDtjYWFhciZxdW90OyAmcXVvdDtjbGF1c2UmcXVvdDsgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAoMDAyKSAmcXVvdDtjZGFyJnF1b3Q7ICZxdW90O2NsYXVzZSZxdW90OyAoMDAyKSAmcXVvdDtjZHImcXVvdDsgJnF1b3Q7Y2xhdXNlJnF1b3Q7CgoocmVhZHktcHJvZ3JhbSkgJnF1b3Q7cHJvZ3JhbSZxdW90Owpjb21tZW50OgojdHJ1ZQooMDAzKSAmcXVvdDttYXAmcXVvdDsgcmVhZHktY2xhdXNlICZxdW90O3Byb2dyYW0mcXVvdDsKCihyZXBsYWNlLXRyYWlsaW5nLXdoaXRlLXNwYWNlISkgJnF1b3Q7cHJvZ3JhbSZxdW90Owpjb21tZW50OgooMDAyKSAmcXVvdDtudWxsPyZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7Cm5pbAoKKHJlcGxhY2UtdHJhaWxpbmctd2hpdGUtc3BhY2UhKSAmcXVvdDtwcm9ncmFtJnF1b3Q7CmNvbW1lbnQ6CigwMDUpICZxdW90O29yJnF1b3Q7ICgwMDMpICZxdW90O2Vxdj8mcXVvdDsgKDAwMikgJnF1b3Q7Y2FyJnF1b3Q7ICZxdW90O3Byb2dyYW0mcXVvdDsgI3NwYWNlICgwMDMpICZxdW90O2Vxdj8mcXVvdDsgKDAwMikgJnF1b3Q7Y2FyJnF1b3Q7ICZxdW90O3Byb2dyYW0mcXVvdDsgI3RhYiAoMDAzKSAmcXVvdDtlcXY/JnF1b3Q7ICgwMDIpICZxdW90O2NhciZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7ICNyZXR1cm4gKDAwMykgJnF1b3Q7ZXF2PyZxdW90OyAoMDAyKSAmcXVvdDtjYXImcXVvdDsgJnF1b3Q7cHJvZ3JhbSZxdW90OyAjbmV3bGluZQoocmVwbGFjZS10cmFpbGluZy13aGl0ZS1zcGFjZSEpICgwMDIpICZxdW90O2NkciZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7CgoocmVwbGFjZS10cmFpbGluZy13aGl0ZS1zcGFjZSEpICZxdW90O3Byb2dyYW0mcXVvdDsKY29tbWVudDoKI3RydWUKKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAjbmV3bGluZSAmcXVvdDtwcm9ncmFtJnF1b3Q7CgoocmVwbGFjZS10cmFpbGluZy13aGl0ZS1zcGFjZSkgJnF1b3Q7cHJvZ3JhbSZxdW90Owpjb21tZW50OgojdHJ1ZQooMDAyKSAmcXVvdDtyZXZlcnNlJnF1b3Q7IChyZXBsYWNlLXRyYWlsaW5nLXdoaXRlLXNwYWNlISkgKDAwMikgJnF1b3Q7cmV2ZXJzZSZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7CgoocmV2ZXJzZSkgbGlzdApjb21tZW50OgojdHJ1ZQooMDAyKSAmcXVvdDtyZXZlcnNlJnF1b3Q7IGxpc3QKCihzY2hlbWVmeSEpICZxdW90O2V4cHJlc3Npb24mcXVvdDsgJnF1b3Q7YXJpdHktaGFzaCZxdW90OyAmcXVvdDtzdGFjayZxdW90Owpjb21tZW50OgooMDAyKSAmcXVvdDtudWxsPyZxdW90OyAmcXVvdDtleHByZXNzaW9uJnF1b3Q7Cih0b3ApICZxdW90O3N0YWNrJnF1b3Q7Cgooc2NoZW1lZnkhKSAmcXVvdDtleHByZXNzaW9uJnF1b3Q7ICZxdW90O2FyaXR5LWhhc2gmcXVvdDsgJnF1b3Q7c3RhY2smcXVvdDsKY29tbWVudDoKKGFwcGxpY2F0aW9uPykgJnF1b3Q7ZXhwcmVzc2lvbiZxdW90Owooc2NoZW1lZnkhYSkgJnF1b3Q7ZXhwcmVzc2lvbiZxdW90OyAmcXVvdDthcml0eS1oYXNoJnF1b3Q7ICZxdW90O3N0YWNrJnF1b3Q7IChmdW5jdGlvbikgJnF1b3Q7ZXhwcmVzc2lvbiZxdW90OwoKKHNjaGVtZWZ5ISkgJnF1b3Q7ZXhwcmVzc2lvbiZxdW90OyAmcXVvdDthcml0eS1oYXNoJnF1b3Q7ICZxdW90O3N0YWNrJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCihzY2hlbWVmeSEpICgwMDIpICZxdW90O2NkciZxdW90OyAmcXVvdDtleHByZXNzaW9uJnF1b3Q7ICZxdW90O2FyaXR5LWhhc2gmcXVvdDsgKHB1c2gpICgwMDIpICZxdW90O2NhciZxdW90OyAmcXVvdDtleHByZXNzaW9uJnF1b3Q7ICZxdW90O3N0YWNrJnF1b3Q7Cgooc2NoZW1lZnkhYSkgJnF1b3Q7ZXhwcmVzc2lvbiZxdW90OyAmcXVvdDthcml0eS1oYXNoJnF1b3Q7ICZxdW90O3N0YWNrJnF1b3Q7ICZxdW90O2Z1bmN0aW9uJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCihzY2hlbWVmeSFhYSkgJnF1b3Q7ZXhwcmVzc2lvbiZxdW90OyAmcXVvdDthcml0eS1oYXNoJnF1b3Q7ICZxdW90O3N0YWNrJnF1b3Q7ICZxdW90O2Z1bmN0aW9uJnF1b3Q7IChhcml0eSkgJnF1b3Q7YXJpdHktaGFzaCZxdW90OyAmcXVvdDtmdW5jdGlvbiZxdW90OwoKKHNjaGVtZWZ5IWFhKSAmcXVvdDtleHByZXNzaW9uJnF1b3Q7ICZxdW90O2FyaXR5LWhhc2gmcXVvdDsgJnF1b3Q7c3RhY2smcXVvdDsgJnF1b3Q7ZnVuY3Rpb24mcXVvdDsgJnF1b3Q7YXJpdHkmcXVvdDsKY29tbWVudDoKKGdhdGhlci1jb3VudD8pICZxdW90O2Z1bmN0aW9uJnF1b3Q7CihzY2hlbWVmeSEpICgwMDIpICZxdW90O2NkciZxdW90OyAmcXVvdDtleHByZXNzaW9uJnF1b3Q7ICZxdW90O2FyaXR5LWhhc2gmcXVvdDsgKHB1c2gpIChmaXJzdCkgJnF1b3Q7YXJpdHkmcXVvdDsgJnF1b3Q7c3RhY2smcXVvdDsgKHRhaWxzKSAmcXVvdDthcml0eSZxdW90OyAmcXVvdDtzdGFjayZxdW90OwoKKHNjaGVtZWZ5IWFhKSAmcXVvdDtleHByZXNzaW9uJnF1b3Q7ICZxdW90O2FyaXR5LWhhc2gmcXVvdDsgJnF1b3Q7c3RhY2smcXVvdDsgJnF1b3Q7ZnVuY3Rpb24mcXVvdDsgJnF1b3Q7YXJpdHkmcXVvdDsKY29tbWVudDoKKDAwMykgJnF1b3Q7ZXE/JnF1b3Q7ICZxdW90O2Z1bmN0aW9uJnF1b3Q7ICZxdW90OydaRUQxJnF1b3Q7CihzY2hlbWVmeSEpICgwMDIpICZxdW90O2NkciZxdW90OyAmcXVvdDtleHByZXNzaW9uJnF1b3Q7ICZxdW90O2FyaXR5LWhhc2gmcXVvdDsgKHB1c2gpICgwMDUpICZxdW90O2xpc3QmcXVvdDsgJnF1b3Q7J2lmJnF1b3Q7ICgwMDMpICZxdW90O2xpc3QmcXVvdDsgJnF1b3Q7J3Byb21pc2U/JnF1b3Q7ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J2NhciZxdW90OyAoZmlyc3QpICZxdW90O2FyaXR5JnF1b3Q7ICZxdW90O3N0YWNrJnF1b3Q7ICgwMDMpICZxdW90O2xpc3QmcXVvdDsgJnF1b3Q7J2ZvcmNlJnF1b3Q7ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J2NhciZxdW90OyAoZmlyc3QpICZxdW90O2FyaXR5JnF1b3Q7ICZxdW90O3N0YWNrJnF1b3Q7ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7J2NhciZxdW90OyAoZmlyc3QpICZxdW90O2FyaXR5JnF1b3Q7ICZxdW90O3N0YWNrJnF1b3Q7ICh0YWlscykgJnF1b3Q7YXJpdHkmcXVvdDsgJnF1b3Q7c3RhY2smcXVvdDsKCihzY2hlbWVmeSFhYSkgJnF1b3Q7ZXhwcmVzc2lvbiZxdW90OyAmcXVvdDthcml0eS1oYXNoJnF1b3Q7ICZxdW90O3N0YWNrJnF1b3Q7ICZxdW90O2Z1bmN0aW9uJnF1b3Q7ICZxdW90O2FyaXR5JnF1b3Q7CmNvbW1lbnQ6CigwMDMpICZxdW90O2VxPyZxdW90OyAmcXVvdDtmdW5jdGlvbiZxdW90OyAmcXVvdDsnWkVEISZxdW90Owooc2NoZW1lZnkhKSAoMDAyKSAmcXVvdDtjZHImcXVvdDsgJnF1b3Q7ZXhwcmVzc2lvbiZxdW90OyAmcXVvdDthcml0eS1oYXNoJnF1b3Q7IChwdXNoKSAoMDA1KSAmcXVvdDtsaXN0JnF1b3Q7ICZxdW90OydpZiZxdW90OyAoMDAzKSAmcXVvdDtsaXN0JnF1b3Q7ICZxdW90Oydwcm9taXNlPyZxdW90OyAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydjZHImcXVvdDsgKGZpcnN0KSAmcXVvdDthcml0eSZxdW90OyAmcXVvdDtzdGFjayZxdW90OyAoMDAzKSAmcXVvdDtsaXN0JnF1b3Q7ICZxdW90Oydmb3JjZSZxdW90OyAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydjZHImcXVvdDsgKGZpcnN0KSAmcXVvdDthcml0eSZxdW90OyAmcXVvdDtzdGFjayZxdW90OyAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICZxdW90OydjZHImcXVvdDsgKGZpcnN0KSAmcXVvdDthcml0eSZxdW90OyAmcXVvdDtzdGFjayZxdW90OyAodGFpbHMpICZxdW90O2FyaXR5JnF1b3Q7ICZxdW90O3N0YWNrJnF1b3Q7Cgooc2NoZW1lZnkhYWEpICZxdW90O2V4cHJlc3Npb24mcXVvdDsgJnF1b3Q7YXJpdHktaGFzaCZxdW90OyAmcXVvdDtzdGFjayZxdW90OyAmcXVvdDtmdW5jdGlvbiZxdW90OyAmcXVvdDthcml0eSZxdW90Owpjb21tZW50OgooMDAzKSAmcXVvdDtlcT8mcXVvdDsgJnF1b3Q7ZnVuY3Rpb24mcXVvdDsgJnF1b3Q7J1pFRGMmcXVvdDsKKHNjaGVtZWZ5ISkgKDAwMikgJnF1b3Q7Y2RyJnF1b3Q7ICZxdW90O2V4cHJlc3Npb24mcXVvdDsgJnF1b3Q7YXJpdHktaGFzaCZxdW90OyAocHVzaCkgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAmcXVvdDsnY29ucyZxdW90OyAoMDAzKSAmcXVvdDttYXAmcXVvdDsgZGVsYXktd3JhcCAoZmlyc3QpICZxdW90O2FyaXR5JnF1b3Q7ICZxdW90O3N0YWNrJnF1b3Q7ICh0YWlscykgJnF1b3Q7YXJpdHkmcXVvdDsgJnF1b3Q7c3RhY2smcXVvdDsKCihzY2hlbWVmeSFhYSkgJnF1b3Q7ZXhwcmVzc2lvbiZxdW90OyAmcXVvdDthcml0eS1oYXNoJnF1b3Q7ICZxdW90O3N0YWNrJnF1b3Q7ICZxdW90O2Z1bmN0aW9uJnF1b3Q7ICZxdW90O2FyaXR5JnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCihzY2hlbWVmeSEpICgwMDIpICZxdW90O2NkciZxdW90OyAmcXVvdDtleHByZXNzaW9uJnF1b3Q7ICZxdW90O2FyaXR5LWhhc2gmcXVvdDsgKHB1c2gpICgwMDMpICZxdW90O2NvbnMmcXVvdDsgJnF1b3Q7ZnVuY3Rpb24mcXVvdDsgKGZpcnN0KSAmcXVvdDthcml0eSZxdW90OyAmcXVvdDtzdGFjayZxdW90OyAodGFpbHMpICZxdW90O2FyaXR5JnF1b3Q7ICZxdW90O3N0YWNrJnF1b3Q7Cgooc2NoZW1lZnkpICZxdW90O2V4cHJlc3Npb24mcXVvdDsgJnF1b3Q7YXJpdHktaGFzaCZxdW90Owpjb21tZW50OgojdHJ1ZQooMDAyKSAmcXVvdDtsaXN0JnF1b3Q7IChzY2hlbWVmeSEpICgwMDIpICZxdW90O3JldmVyc2UmcXVvdDsgJnF1b3Q7ZXhwcmVzc2lvbiZxdW90OyAmcXVvdDthcml0eS1oYXNoJnF1b3Q7IChzdGFjaykKCihzZW50ZW5jZS1sZXNzPykgJnF1b3Q7c2VudGVuY2UxJnF1b3Q7ICZxdW90O3NlbnRlbmNlMiZxdW90Owpjb21tZW50OgooMDAyKSAmcXVvdDtudWxsPyZxdW90OyAmcXVvdDtzZW50ZW5jZTImcXVvdDsKJnF1b3Q7I2YmcXVvdDsKCihzZW50ZW5jZS1sZXNzPykgJnF1b3Q7c2VudGVuY2UxJnF1b3Q7ICZxdW90O3NlbnRlbmNlMiZxdW90Owpjb21tZW50OgooMDAyKSAmcXVvdDtudWxsPyZxdW90OyAmcXVvdDtzZW50ZW5jZTEmcXVvdDsKJnF1b3Q7I3QmcXVvdDsKCihzZW50ZW5jZS1sZXNzPykgJnF1b3Q7c2VudGVuY2UxJnF1b3Q7ICZxdW90O3NlbnRlbmNlMiZxdW90Owpjb21tZW50OgooY2hhcmFjdGVyLWxlc3M/KSAoMDAyKSAmcXVvdDtjYXImcXVvdDsgJnF1b3Q7c2VudGVuY2UxJnF1b3Q7ICgwMDIpICZxdW90O2NhciZxdW90OyAmcXVvdDtzZW50ZW5jZTImcXVvdDsKJnF1b3Q7I3QmcXVvdDsKCihzZW50ZW5jZS1sZXNzPykgJnF1b3Q7c2VudGVuY2UxJnF1b3Q7ICZxdW90O3NlbnRlbmNlMiZxdW90Owpjb21tZW50OgooY2hhcmFjdGVyLWxlc3M/KSAoMDAyKSAmcXVvdDtjYXImcXVvdDsgJnF1b3Q7c2VudGVuY2UyJnF1b3Q7ICgwMDIpICZxdW90O2NhciZxdW90OyAmcXVvdDtzZW50ZW5jZTEmcXVvdDsKJnF1b3Q7I2YmcXVvdDsKCihzZW50ZW5jZS1sZXNzPykgJnF1b3Q7c2VudGVuY2UxJnF1b3Q7ICZxdW90O3NlbnRlbmNlMiZxdW90Owpjb21tZW50OgojdHJ1ZQooc2VudGVuY2UtbGVzcz8pICgwMDIpICZxdW90O2NkciZxdW90OyAmcXVvdDtzZW50ZW5jZTEmcXVvdDsgKDAwMikgJnF1b3Q7Y2RyJnF1b3Q7ICZxdW90O3NlbnRlbmNlMiZxdW90OwoKKHNlbnRlbmNlcyEpICZxdW90O3Byb2dyYW0mcXVvdDsgJnF1b3Q7Y29sbGVjdDEmcXVvdDsgJnF1b3Q7Y29sbGVjdDImcXVvdDsKY29tbWVudDoKKDAwMikgJnF1b3Q7bnVsbD8mcXVvdDsgJnF1b3Q7cHJvZ3JhbSZxdW90OwomcXVvdDtjb2xsZWN0MiZxdW90OwoKKHNlbnRlbmNlcyEpICZxdW90O3Byb2dyYW0mcXVvdDsgJnF1b3Q7Y29sbGVjdDEmcXVvdDsgJnF1b3Q7Y29sbGVjdDImcXVvdDsKY29tbWVudDoKKDAwMykgJnF1b3Q7ZXF2PyZxdW90OyAjbmV3bGluZSAoMDAyKSAmcXVvdDtjYXImcXVvdDsgJnF1b3Q7cHJvZ3JhbSZxdW90Owooc2VudGVuY2VzISkgKDAwMikgJnF1b3Q7Y2RyJnF1b3Q7ICZxdW90O3Byb2dyYW0mcXVvdDsgbmlsICgwMDMpICZxdW90O2NvbnMmcXVvdDsgKDAwMikgJnF1b3Q7cmV2ZXJzZSZxdW90OyAmcXVvdDtjb2xsZWN0MSZxdW90OyAmcXVvdDtjb2xsZWN0MiZxdW90OwoKKHNlbnRlbmNlcyEpICZxdW90O3Byb2dyYW0mcXVvdDsgJnF1b3Q7Y29sbGVjdDEmcXVvdDsgJnF1b3Q7Y29sbGVjdDImcXVvdDsKY29tbWVudDoKI3RydWUKKHNlbnRlbmNlcyEpICgwMDIpICZxdW90O2NkciZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgKDAwMikgJnF1b3Q7Y2FyJnF1b3Q7ICZxdW90O3Byb2dyYW0mcXVvdDsgJnF1b3Q7Y29sbGVjdDEmcXVvdDsgJnF1b3Q7Y29sbGVjdDImcXVvdDsKCihzZW50ZW5jZXMpICZxdW90O3Byb2dyYW0mcXVvdDsKY29tbWVudDoKI3RydWUKKDAwMikgJnF1b3Q7cmV2ZXJzZSZxdW90OyAoc2VudGVuY2VzISkgJnF1b3Q7cHJvZ3JhbSZxdW90OyBuaWwgbmlsCgooc29ydCFhKSAmcXVvdDtqdW1ibGUmcXVvdDsKY29tbWVudDoKI3RydWUKKDAwMykgJnF1b3Q7bWFwJnF1b3Q7ICZxdW90O2xpc3QmcXVvdDsgJnF1b3Q7anVtYmxlJnF1b3Q7Cgooc29ydCFiKSAmcXVvdDtjb21wYXJhdG9yJnF1b3Q7ICZxdW90O2p1bWJsZSZxdW90Owpjb21tZW50OgooMDAyKSAmcXVvdDtudWxsPyZxdW90OyAmcXVvdDtqdW1ibGUmcXVvdDsKbmlsCgooc29ydCFiKSAmcXVvdDtjb21wYXJhdG9yJnF1b3Q7ICZxdW90O2p1bWJsZSZxdW90Owpjb21tZW50OgooMDAyKSAmcXVvdDtudWxsPyZxdW90OyAoMDAyKSAmcXVvdDtjZHImcXVvdDsgJnF1b3Q7anVtYmxlJnF1b3Q7CiZxdW90O2p1bWJsZSZxdW90OwoKKHNvcnQhYikgJnF1b3Q7Y29tcGFyYXRvciZxdW90OyAmcXVvdDtqdW1ibGUmcXVvdDsKY29tbWVudDoKI3RydWUKKHNvcnQhYikgJnF1b3Q7Y29tcGFyYXRvciZxdW90OyAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7IChtZXJnZSkgJnF1b3Q7Y29tcGFyYXRvciZxdW90OyAoMDAyKSAmcXVvdDtjYXImcXVvdDsgJnF1b3Q7anVtYmxlJnF1b3Q7ICgwMDIpICZxdW90O2NhZHImcXVvdDsgJnF1b3Q7anVtYmxlJnF1b3Q7IChzb3J0IWIpICZxdW90O2NvbXBhcmF0b3ImcXVvdDsgKDAwMikgJnF1b3Q7Y2RkciZxdW90OyAmcXVvdDtqdW1ibGUmcXVvdDsKCihzb3J0KSAmcXVvdDtjb21wYXJhdG9yJnF1b3Q7ICZxdW90O2p1bWJsZSZxdW90Owpjb21tZW50OgojdHJ1ZQooMDAyKSAmcXVvdDtjYXImcXVvdDsgKHNvcnQhYikgJnF1b3Q7Y29tcGFyYXRvciZxdW90OyAoc29ydCFhKSAmcXVvdDtqdW1ibGUmcXVvdDsKCihzcGFjZS1uZXdsaW5lISkgJnF1b3Q7cHJvZ3JhbSZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CmNvbW1lbnQ6CigwMDMpICZxdW90O29yJnF1b3Q7ICgwMDIpICZxdW90O251bGw/JnF1b3Q7ICZxdW90O3Byb2dyYW0mcXVvdDsgKDAwMikgJnF1b3Q7bnVsbD8mcXVvdDsgKDAwMikgJnF1b3Q7Y2RyJnF1b3Q7ICZxdW90O3Byb2dyYW0mcXVvdDsKKDAwMykgJnF1b3Q7YXBwZW5kJnF1b3Q7ICZxdW90O3Byb2dyYW0mcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90OwoKKHNwYWNlLW5ld2xpbmUhKSAmcXVvdDtwcm9ncmFtJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKY29tbWVudDoKKDAwMykgJnF1b3Q7YW5kJnF1b3Q7ICgwMDMpICZxdW90O2Vxdj8mcXVvdDsgI3NwYWNlICgwMDIpICZxdW90O2NhciZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7ICgwMDMpICZxdW90O2Vxdj8mcXVvdDsgI25ld2xpbmUgKDAwMikgJnF1b3Q7Y2FkciZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7CihzcGFjZS1uZXdsaW5lISkgKDAwMikgJnF1b3Q7Y2RyJnF1b3Q7ICZxdW90O3Byb2dyYW0mcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90OwoKKHNwYWNlLW5ld2xpbmUhKSAmcXVvdDtwcm9ncmFtJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKY29tbWVudDoKI3RydWUKKHNwYWNlLW5ld2xpbmUhKSAoMDAyKSAmcXVvdDtjZHImcXVvdDsgJnF1b3Q7cHJvZ3JhbSZxdW90OyAoMDAzKSAmcXVvdDtjb25zJnF1b3Q7ICgwMDIpICZxdW90O2NhciZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKCihzcGFjZS1uZXdsaW5lKSAmcXVvdDtwcm9ncmFtJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCigwMDIpICZxdW90O3JldmVyc2UmcXVvdDsgKHNwYWNlLW5ld2xpbmUhKSAmcXVvdDtwcm9ncmFtJnF1b3Q7IG5pbAoKKHN0YWNrKQpjb21tZW50OgojdHJ1ZQpuaWwKCih0YWItcmVwbGFjZSEpICZxdW90O3Byb2dyYW0mcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90Owpjb21tZW50OgooMDAyKSAmcXVvdDtudWxsPyZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7CiZxdW90O2NvbGxlY3QmcXVvdDsKCih0YWItcmVwbGFjZSEpICZxdW90O3Byb2dyYW0mcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90Owpjb21tZW50OgooMDAzKSAmcXVvdDtlcXY/JnF1b3Q7ICN0YWIgKDAwMikgJnF1b3Q7Y2FyJnF1b3Q7ICZxdW90O3Byb2dyYW0mcXVvdDsKKHRhYi1yZXBsYWNlISkgKDAwMikgJnF1b3Q7Y2RyJnF1b3Q7ICZxdW90O3Byb2dyYW0mcXVvdDsgKDAwMykgJnF1b3Q7Y29ucyZxdW90OyAjc3BhY2UgJnF1b3Q7Y29sbGVjdCZxdW90OwoKKHRhYi1yZXBsYWNlISkgJnF1b3Q7cHJvZ3JhbSZxdW90OyAmcXVvdDtjb2xsZWN0JnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCih0YWItcmVwbGFjZSEpICgwMDIpICZxdW90O2NkciZxdW90OyAmcXVvdDtwcm9ncmFtJnF1b3Q7ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgKDAwMikgJnF1b3Q7Y2FyJnF1b3Q7ICZxdW90O3Byb2dyYW0mcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90OwoKKHRhYi1yZXBsYWNlKSAmcXVvdDtwcm9ncmFtJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCigwMDIpICZxdW90O3JldmVyc2UmcXVvdDsgKHRhYi1yZXBsYWNlISkgJnF1b3Q7cHJvZ3JhbSZxdW90OyBuaWwKCih0YWlscykgJnF1b3Q7bnVtYmVyJnF1b3Q7ICZxdW90O2xpc3QmcXVvdDsKY29tbWVudDoKKDAwMikgJnF1b3Q7bnVsbD8mcXVvdDsgJnF1b3Q7bGlzdCZxdW90OwpuaWwKCih0YWlscykgJnF1b3Q7bnVtYmVyJnF1b3Q7ICZxdW90O2xpc3QmcXVvdDsKY29tbWVudDoKKDAwMikgJnF1b3Q7emVybz8mcXVvdDsgJnF1b3Q7bnVtYmVyJnF1b3Q7CiZxdW90O2xpc3QmcXVvdDsKCih0YWlscykgJnF1b3Q7bnVtYmVyJnF1b3Q7ICZxdW90O2xpc3QmcXVvdDsKY29tbWVudDoKKDAwMykgJnF1b3Q7Jmd0OyZxdW90OyAmcXVvdDtudW1iZXImcXVvdDsgMAoodGFpbHMpICgwMDMpICZxdW90Oy0mcXVvdDsgJnF1b3Q7bnVtYmVyJnF1b3Q7IDEgKDAwMikgJnF1b3Q7Y2RyJnF1b3Q7ICZxdW90O2xpc3QmcXVvdDsKCih0b3ApICZxdW90O3N0YWNrJnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCigwMDIpICZxdW90O2NhciZxdW90OyAmcXVvdDtzdGFjayZxdW90OwoKKHRydWU/KSAmcXVvdDtub3VuLWxpc3QmcXVvdDsKY29tbWVudDoKI3RydWUKKDAwMykgJnF1b3Q7ZXF1YWw/JnF1b3Q7ICZxdW90O25vdW4tbGlzdCZxdW90OyAoMDA2KSAmcXVvdDtsaXN0JnF1b3Q7ICMjICN0ICNyICN1ICNlCgoodmVyYikgJnF1b3Q7dmVyYi1saXN0JnF1b3Q7CmNvbW1lbnQ6CihsaXRlcmFsPykgJnF1b3Q7dmVyYi1saXN0JnF1b3Q7CigwMDIpICZxdW90O2xpc3QmcXVvdDsgKG1ha2UtbGl0ZXJhbCkgJnF1b3Q7dmVyYi1saXN0JnF1b3Q7CgoodmVyYikgJnF1b3Q7dmVyYi1saXN0JnF1b3Q7CmNvbW1lbnQ6CiN0cnVlCigwMDIpICZxdW90O2xpc3QmcXVvdDsgKG1ha2UtWkVEKSAmcXVvdDt2ZXJiLWxpc3QmcXVvdDsKCih3cml0ZS1hbGwpICZxdW90O3Byb2dyYW0mcXVvdDsKY29tbWVudDoKKDAwMikgJnF1b3Q7bnVsbD8mcXVvdDsgJnF1b3Q7cHJvZ3JhbSZxdW90OwplcnIKCih3cml0ZS1hbGwpICZxdW90O3Byb2dyYW0mcXVvdDsKY29tbWVudDoKI3RydWUKKHdyaXRlLWFsbCkgKDAwMykgJnF1b3Q7YmVnaW4mcXVvdDsgKDAwMikgJnF1b3Q7d3JpdGUtY2hhciZxdW90OyAoMDAyKSAmcXVvdDtjYXImcXVvdDsgJnF1b3Q7cHJvZ3JhbSZxdW90OyAoMDAyKSAmcXVvdDtjZHImcXVvdDsgJnF1b3Q7cHJvZ3JhbSZxdW90OwoKKHplZC0mZ3Q7c2NoZW1lISkgJnF1b3Q7dmFsdWUmcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90Owpjb21tZW50OgooMDAyKSAmcXVvdDtudWxsPyZxdW90OyAmcXVvdDt2YWx1ZSZxdW90OwooMDAyKSAmcXVvdDtyZXZlcnNlJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKCih6ZWQtJmd0O3NjaGVtZSEpICZxdW90O3ZhbHVlJnF1b3Q7ICZxdW90O2NvbGxlY3QmcXVvdDsKY29tbWVudDoKI3RydWUKKHplZC0mZ3Q7c2NoZW1lISkgKCEpICZxdW90O3ZhbHVlJnF1b3Q7ICgwMDMpICZxdW90O2NvbnMmcXVvdDsgKHplZC0mZ3Q7c2NoZW1lKSAoMSkgJnF1b3Q7dmFsdWUmcXVvdDsgJnF1b3Q7Y29sbGVjdCZxdW90OwoKKHplZC0mZ3Q7c2NoZW1lKSAmcXVvdDt2YWx1ZSZxdW90Owpjb21tZW50OgooMDAyKSAmcXVvdDtub3QmcXVvdDsgKDAwMikgJnF1b3Q7cGFpcj8mcXVvdDsgJnF1b3Q7dmFsdWUmcXVvdDsKJnF1b3Q7dmFsdWUmcXVvdDsKCih6ZWQtJmd0O3NjaGVtZSkgJnF1b3Q7dmFsdWUmcXVvdDsKY29tbWVudDoKI3RydWUKKHplZC0mZ3Q7c2NoZW1lISkgJnF1b3Q7dmFsdWUmcXVvdDsgbmls
(*) number1 number2
comment:
#true
(003) "*" number1 number2
(+) number1 number2
comment:
#true
(003) "+" number1 number2
(-) number1 number2
comment:
#true
(003) "-" number1 number2
(/) number1 number2
comment:
#true
(003) "/" number1 number2
(=) "value1" "value2"
comment:
#true
(003) "eqv?" "value1" "value2"
(add-between!) "item" "list" "collect"
comment:
(002) "null?" "list"
"collect"
(add-between!) "item" "list" "collect"
comment:
(002) "null?" (002) "cdr" "list"
(003) "cons" (002) "car" "list" "collect"
(add-between!) "item" "list" "collect"
comment:
#true
(add-between!) "item" (002) "cdr" "list" (003) "cons" "item" (003) "cons" (002) "car" "list" "collect"
(add-between) "item" "list"
comment:
#true
(002) "reverse" (add-between!) "item" "list" nil
(add-between-ra) "list" "item"
comment:
#true
(002) "reverse" (add-between!) "item" "list" nil
(alpha)
comment:
#true
(write-all) (rd) nil "append" (rd) nil "append" (newlines) (by-four) (function-sort) (sentences) (leading-newline) (space-newline) (tab-replace) (newline-space-tab-repeats) (newline-space) (filter) not-return? (replace-trailing-white-space) (read-all)
(application?) "expression"
comment:
#true
(004) "and" (002) "not" (002) "null?" "expression" (002) "pair?" (002) "car" "expression" (002) "null?" (002) "cdar" "expression"
(arity) "arity-hash" "function"
comment:
#true
(002) "cdr" (003) "assoc" "function" "arity-hash"
(arity-hash!) "clause"
comment:
#true
(003) "cons" (clause-name) "clause" (clause-arity) "clause"
(arity-hash) "program"
comment:
#true
(003) "append" (003) "map" arity-hash! "program" (003) "append" (009) "list" (003) "cons" "'ZED1" 1 (003) "cons" "'ZED!" 1 (003) "cons" "'ZED001" 1 (003) "cons" "'or" 2 (003) "cons" "'and" 2 (003) "cons" "'begin" 2 (003) "cons" "'ZEDc" 2 (003) "cons" "'quote" 1 (099) "list" (003) "cons" "'ZED002" 2 (003) "cons" "'ZED003" 3 (003) "cons" "'ZED004" 4 (003) "cons" "'ZED005" 5 (003) "cons" "'ZED006" 6 (003) "cons" "'ZED007" 7 (003) "cons" "'ZED008" 8 (003) "cons" "'ZED009" 9 (003) "cons" "'ZED010" 10 (003) "cons" "'ZED011" 11 (003) "cons" "'ZED012" 12 (003) "cons" "'ZED013" 13 (003) "cons" "'ZED014" 14 (003) "cons" "'ZED015" 15 (003) "cons" "'ZED016" 16 (003) "cons" "'ZED017" 17 (003) "cons" "'ZED018" 18 (003) "cons" "'ZED019" 19 (003) "cons" "'ZED020" 20 (003) "cons" "'ZED021" 21 (003) "cons" "'ZED022" 22 (003) "cons" "'ZED023" 23 (003) "cons" "'ZED024" 24 (003) "cons" "'ZED025" 25 (003) "cons" "'ZED026" 26 (003) "cons" "'ZED027" 27 (003) "cons" "'ZED028" 28 (003) "cons" "'ZED029" 29 (003) "cons" "'ZED030" 30 (003) "cons" "'ZED031" 31 (003) "cons" "'ZED032" 32 (003) "cons" "'ZED033" 33 (003) "cons" "'ZED034" 34 (003) "cons" "'ZED035" 35 (003) "cons" "'ZED036" 36 (003) "cons" "'ZED037" 37 (003) "cons" "'ZED038" 38 (003) "cons" "'ZED039" 39 (003) "cons" "'ZED040" 40 (003) "cons" "'ZED041" 41 (003) "cons" "'ZED042" 42 (003) "cons" "'ZED043" 43 (003) "cons" "'ZED044" 44 (003) "cons" "'ZED045" 45 (003) "cons" "'ZED046" 46 (003) "cons" "'ZED047" 47 (003) "cons" "'ZED048" 48 (003) "cons" "'ZED049" 49 (003) "cons" "'ZED050" 50 (003) "cons" "'ZED051" 51 (003) "cons" "'ZED052" 52 (003) "cons" "'ZED053" 53 (003) "cons" "'ZED054" 54 (003) "cons" "'ZED055" 55 (003) "cons" "'ZED056" 56 (003) "cons" "'ZED057" 57 (003) "cons" "'ZED058" 58 (003) "cons" "'ZED059" 59 (003) "cons" "'ZED060" 60 (003) "cons" "'ZED061" 61 (003) "cons" "'ZED062" 62 (003) "cons" "'ZED063" 63 (003) "cons" "'ZED064" 64 (003) "cons" "'ZED065" 65 (003) "cons" "'ZED066" 66 (003) "cons" "'ZED067" 67 (003) "cons" "'ZED068" 68 (003) "cons" "'ZED069" 69 (003) "cons" "'ZED070" 70 (003) "cons" "'ZED071" 71 (003) "cons" "'ZED072" 72 (003) "cons" "'ZED073" 73 (003) "cons" "'ZED074" 74 (003) "cons" "'ZED075" 75 (003) "cons" "'ZED076" 76 (003) "cons" "'ZED077" 77 (003) "cons" "'ZED078" 78 (003) "cons" "'ZED079" 79 (003) "cons" "'ZED080" 80 (003) "cons" "'ZED081" 81 (003) "cons" "'ZED082" 82 (003) "cons" "'ZED083" 83 (003) "cons" "'ZED084" 84 (003) "cons" "'ZED085" 85 (003) "cons" "'ZED086" 86 (003) "cons" "'ZED087" 87 (003) "cons" "'ZED088" 88 (003) "cons" "'ZED089" 89 (003) "cons" "'ZED090" 90 (003) "cons" "'ZED091" 91 (003) "cons" "'ZED092" 92 (003) "cons" "'ZED093" 93 (003) "cons" "'ZED094" 94 (003) "cons" "'ZED095" 95 (003) "cons" "'ZED096" 96 (003) "cons" "'ZED097" 97 (003) "cons" "'ZED098" 98 (003) "cons" "'ZED099" 99
(by-four!) "sentences" "collect"
comment:
(002) "null?" "sentences"
"collect"
(by-four!) "sentences" "collect"
comment:
#true
(by-four!) (002) "cddddr" "sentences" (003) "cons" (005) "list" (002) "car" "sentences" (002) "cadr" "sentences" (002) "caddr" "sentences" (002) "cadddr" "sentences" "collect"
(by-four) "sentences"
comment:
#true
(002) "reverse" (by-four!) "sentences" nil
(by-three!) "sentences" "collect"
comment:
(002) "null?" "sentences"
"collect"
(by-three!) "sentences" "collect"
comment:
#true
(by-three!) (002) "cdddr" "sentences" (003) "cons" (004) "list" (002) "car" "sentences" (002) "cadr" "sentences" (002) "caddr" "sentences" "collect"
(by-three) "sentences"
comment:
#true
(002) "reverse" (by-three!) "sentences" nil
(character-less?) "character1" "character2"
comment:
#true
(003) "<" (002) "char->integer" "character1" (002) "char->integer" "character2"
(clause-arguments) "clause"
comment:
#true
(002) "cadr" "clause"
(clause-arguments-agree) "clause1" "clause2"
comment:
(003) "equal?" (clause-arguments) "clause1" (clause-arguments) "clause2"
(clause-arguments) "clause1"
(clause-arity) "clause"
comment:
#true
(002) "length" (clause-arguments) "clause"
(clause-body) "clause"
comment:
#true
(002) "cddr" "clause"
(clause-less?) "clause1" "clause2"
comment:
#true
(sentence-less?) (002) "car" "clause1" (002) "car" "clause2"
(clause-name) "clause"
comment:
#true
(002) "car" "clause"
(clause-name-agree) "clause1" "clause2"
comment:
(003) "eq?" (clause-name) "clause1" (clause-name) "clause2"
(clause-name) "clause1"
(combine-all!) "program" "collect"
comment:
(002) "null?" "program"
"collect"
(combine-all!) "program" "collect"
comment:
(002) "null?" (002) "cdr" "program"
(003) "cons" (002) "car" "program" "collect"
(combine-all!) "program" "collect"
comment:
(003) "eq?" (clause-name) (002) "car" "program" (clause-name) (002) "cadr" "program"
(combine-all!) (combine-head-clauses) "program" "collect"
(combine-all!) "program" "collect"
comment:
#true
(combine-all!) (002) "cdr" "program" (003) "cons" (002) "car" "program" "collect"
(combine-all) "program"
comment:
#true
(002) "reverse" (combine-all!) "program" nil
(combine-clauses) "clause1" "clause2"
comment:
#true
(003) "cons" (clause-name-agree) "clause1" "clause2" (003) "cons" (clause-arguments-agree) "clause1" "clause2" (003) "append" (clause-body) "clause1" (clause-body) "clause2"
(combine-head-clauses) "program"
comment:
#true
(003) "cons" (combine-clauses) (002) "car" "program" (002) "cadr" "program" (002) "cddr" "program"
(combine-program-clauses) "program"
comment:
#true
(combine-all) (ready-program) "program"
(comp!)
comment:
#true
(comp!a) (combine-program-clauses) (by-three) (read-sentences) (discard-comments) (function-sort) (sentences) (leading-newline) (space-newline) (tab-replace) (newline-space-tab-repeats) (newline-space) (filter) not-return? (replace-trailing-white-space) (read-all)
(comp!a) "combined"
comment:
#true
(comp!aa) (programize) "combined" (arity-hash) "combined"
(comp!aa) "programized"
comment:
#true
(002) "write" "programized"
(comp)
comment:
#true
(comp!)
(condefy!) "expressions" "collect"
comment:
(002) "null?" "expressions"
"collect"
(condefy!) "expressions" "collect"
comment:
#true
(condefy!) (002) "cddr" "expressions" (003) "cons" (003) "append" (002) "car" "expressions" (002) "cadr" "expressions" "collect"
(condefy) "expressions"
comment:
#true
(002) "reverse" (condefy!) "expressions" nil
(cons) value1 value2
comment:
#true
(003) "cons" value1 value2
(count) number
comment:
#true
(c) number (count) (+) number 1
(count-by) step number
comment:
#true
(c) number (count-by) step (+) number step
(delay-wrap) "expression"
comment:
#true
(003) "list" "'delay" "expression"
(digit?) "character"
comment:
#true
(011) "or" (003) "eqv?" #0 "character" (003) "eqv?" #1 "character" (003) "eqv?" #2 "character" (003) "eqv?" #3 "character" (003) "eqv?" #4 "character" (003) "eqv?" #5 "character" (003) "eqv?" #6 "character" (003) "eqv?" #7 "character" (003) "eqv?" #8 "character" (003) "eqv?" #9 "character"
(discard-comments!) "program" "collect"
comment:
(002) "null?" "program"
"collect"
(discard-comments!) "program" "collect"
comment:
#true
(discard-comments!) (002) "cddddr" "program" (003) "cons" (002) "cadddr" "program" (003) "cons" (002) "caddr" "program" (003) "cons" (002) "car" "program" "collect"
(discard-comments) "program"
comment:
#true
(002) "reverse" (discard-comments!) "program" nil
(dr!) "value"
comment:
(002) "pair?" "value"
(mp) dr! (first) 64 "value"
(dr!) "value"
comment:
#true
"value"
(dr) "value"
comment:
#true
(005) "begin" (002) "display" (pr) (dr!) "value" (001) "newline" (001) "newline" "value"
(drr) "value"
comment:
#true
(005) "begin" (002) "display" (pr) "value" (001) "newline" (001) "newline" "value"
(false?) "noun-list"
comment:
#true
(003) "equal?" "noun-list" (007) "list" ## #f #a #l #s #e
(fi) "function" "list"
comment:
(002) "null?" "list"
nil
(fi) "function" "list"
comment:
(002) "function" (1) "list"
(c) (1) "list" (fi) "function" (!) "list"
(fi) "function" "list"
comment:
#true
(fi) "function" (!) "list"
(filter!) "predicate" "list" "collect"
comment:
(002) "null?" "list"
"collect"
(filter!) "predicate" "list" "collect"
comment:
(002) "predicate" (002) "car" "list"
(filter!) "predicate" (002) "cdr" "list" (003) "cons" (002) "car" "list" "collect"
(filter!) "predicate" "list" "collect"
comment:
#true
(filter!) "predicate" (002) "cdr" "list" "collect"
(filter) "predicate" "list"
comment:
#true
(002) "reverse" (filter!) "predicate" "list" nil
(first!) "integer" "list" "collect"
comment:
(003) "or" (002) "zero?" "integer" (002) "null?" "list"
(002) "reverse" "collect"
(first!) "integer" "list" "collect"
comment:
(002) "not" (002) "pair?" "list"
(002) "reverse" (003) "cons" "list" "collect"
(first!) "integer" "list" "collect"
comment:
(003) ">" "integer" 0
(first!) (003) "-" "integer" 1 (!) "list" (003) "cons" (1) "list" "collect"
(first) "integer" "list"
comment:
(002) "not" (002) "pair?" "list"
"list"
(first) "integer" "list"
comment:
#true
(first!) "integer" "list" nil
(flatten!) list sub-list-found? collect
comment:
(and) (null?) list (not) sub-list-found?
(reverse) collect
(flatten!) list sub-list-found? collect
comment:
(null?) list
(flatten!) (reverse) collect #false nil
(flatten!) list sub-list-found? collect
comment:
(not) (pair?) list
(flatten!) nil sub-list-found? (cons) list collect
(flatten!) list sub-list-found? collect
comment:
(pair?) (1) list
(flatten!) (!) list #true (cons) (!) (1) list (cons) (1) (1) list collect
(flatten!) list sub-list-found? collect
comment:
(null?) (1) list
(flatten!) (!) list sub-list-found? collect
(flatten!) list sub-list-found? collect
comment:
#true
(flatten!) (!) list sub-list-found? (cons) (1) list collect
(flatten) list
comment:
#true
(flatten!) list #false nil
(for-each) effect list
comment:
#true
(003) "for-each" effect list
(function) "expression"
comment:
#true
(002) "caar" "expression"
(function-sort) "sentences"
comment:
#true
(rd) nil "append" (sort) clause-less? (by-four) "sentences"
(functionize) "clause" "arity-hash"
comment:
#true
(004) "list" "'define" (003) "cons" (clause-name) "clause" (clause-arguments) "clause" (003) "cons" "'cond" (003) "append" (condefy) (map-with) schemefy (clause-body) "clause" "arity-hash" (002) "list" (003) "list" "'else" err
(gather-count?!) "candidate"
comment:
#true
(008) "and" (003) "=" 6 (002) "length" "candidate" (003) "eqv?" #Z (002) "car" "candidate" (003) "eqv?" #E (002) "cadr" "candidate" (003) "eqv?" #D (002) "caddr" "candidate" (003) "eqv?" #0 (002) "cadddr" "candidate" (digit?) (002) "car" (002) "cddddr" "candidate" (digit?) (002) "cadr" (002) "cddddr" "candidate"
(gather-count?) "symbol"
comment:
#true
(gather-count?!) (002) "string->list" (002) "symbol->string" "symbol"
(gather-noun) "sentence"
comment:
(002) "null?" "sentence"
nil
(gather-noun) "sentence"
comment:
(003) "eqv?" #space (002) "car" "sentence"
nil
(gather-noun) "sentence"
comment:
#true
(003) "cons" (002) "car" "sentence" (gather-noun) (002) "cdr" "sentence"
(gather-verb) "sentence"
comment:
(003) "eqv?" #) (002) "car" "sentence"
nil
(gather-verb) "sentence"
comment:
#true
(003) "cons" (002) "car" "sentence" (gather-verb) (002) "cdr" "sentence"
(gr) "garbage" "value"
comment:
#true
(003) "begin" (dr) "garbage" "value"
(grr) "garbage" "value"
comment:
#true
(003) "begin" (drr) "garbage" "value"
(leading-newline) "program"
comment:
(002) "null?" "program"
nil
(leading-newline) "program"
comment:
(003) "eqv?" #newline (002) "car" "program"
(002) "cdr" "program"
(leading-newline) "program"
comment:
#true
"program"
(literal?) "literal-list"
comment:
#true
(003) "eqv?" #" (002) "car" "literal-list"
(make-ZED) "ZED-list"
comment:
(003) "equal?" "ZED-list" (004) "list" #e #r #r
""'err""
(make-ZED) "ZED-list"
comment:
(003) "equal?" "ZED-list" (004) "list" #n #i #l
""'()""
(make-ZED) "ZED-list"
comment:
(003) "equal?" "ZED-list" (004) "list" #a #n #d
""and""
(make-ZED) "ZED-list"
comment:
(003) "equal?" "ZED-list" (003) "list" #o #r
""or""
(make-ZED) "ZED-list"
comment:
(003) "equal?" "ZED-list" (006) "list" #q #u #o #t #e
""quote""
(make-ZED) "ZED-list"
comment:
(003) "equal?" "ZED-list" (003) "list" #s #e
""begin""
(make-ZED) "ZED-list"
comment:
#true
(002) "list->string" (003) "append" (004) "list" #Z #E #D "ZED-list"
(make-character) "noun-list"
comment:
#true
(002) "list->string" (003) "cons" ## (003) "cons" #\ (002) "cdr" "noun-list"
(make-exact) "exact-list"
comment:
#true
(002) "list->string" (003) "append" (003) "list" ## #e "exact-list"
(make-literal) "literal-list"
comment:
#true
(002) "list->string" (002) "cdr" (002) "reverse" (002) "cdr" (002) "reverse" "literal-list"
(make-number-character) "noun-list"
comment:
#true
(002) "list->string" (004) "list" ## #\ (002) "integer->char" (002) "string->number" (002) "list->string" (002) "cddr" "noun-list"
(map-with!) "function" "list" "extra" "collect"
comment:
(002) "null?" "list"
"collect"
(map-with!) "function" "list" "extra" "collect"
comment:
#true
(map-with!) "function" (002) "cdr" "list" "extra" (003) "cons" (003) "function" (002) "car" "list" "extra" "collect"
(map-with) "function" "list" "extra"
comment:
#true
(002) "reverse" (map-with!) "function" "list" "extra" nil
(merge!) "comparator" "list1" "list2" "collect"
comment:
(002) "null?" "list2"
(003) "append" (002) "reverse" "collect" "list1"
(merge!) "comparator" "list1" "list2" "collect"
comment:
(002) "null?" "list1"
(003) "append" (002) "reverse" "collect" "list2"
(merge!) "comparator" "list1" "list2" "collect"
comment:
(003) "comparator" (002) "car" "list2" (002) "car" "list1"
(merge!) "comparator" "list1" (002) "cdr" "list2" (003) "cons" (002) "car" "list2" "collect"
(merge!) "comparator" "list1" "list2" "collect"
comment:
#true
(merge!) "comparator" (002) "cdr" "list1" "list2" (003) "cons" (002) "car" "list1" "collect"
(merge) "comparator" "list1" "list2"
comment:
#true
(merge!) "comparator" "list1" "list2" nil
(mp) "function" "list"
comment:
(002) "null?" "list"
nil
(mp) "function" "list"
comment:
(002) "pair?" "list"
(c) (002) "function" (1) "list" (mp) "function" (!) "list"
(mp) "function" "list"
comment:
#true
(002) "function" "list"
(newline-space!) "program"
comment:
#true
(003) "cons" #newline (newline-space!a) "program"
(newline-space!a) "program"
comment:
#true
(newline-space!aa) "program" (002) "reverse" (newline-space!ab) "program" nil
(newline-space!aa) "program" "transformed"
comment:
(003) "equal?" "program" "transformed"
"program"
(newline-space!aa) "program" "transformed"
comment:
#true
(newline-space!a) "transformed"
(newline-space!ab) "program" "collect"
comment:
(002) "null?" "program"
"collect"
(newline-space!ab) "program" "collect"
comment:
(002) "null?" (002) "cdr" "program"
(003) "cons" (002) "car" "program" "collect"
(newline-space!ab) "program" "collect"
comment:
(003) "and" (003) "eqv?" #newline (002) "car" "program" (003) "or" (003) "eqv?" #space (002) "cadr" "program" (003) "eqv?" #tab (002) "cadr" "program"
(newline-space!ab) (002) "cdr" "program" "collect"
(newline-space!ab) "program" "collect"
comment:
#true
(newline-space!ab) (002) "cdr" "program" (003) "cons" (002) "car" "program" "collect"
(newline-space) "program"
comment:
#true
(newline-space!) "program"
(newline-space-tab-repeats!) "program" "collect"
comment:
(003) "or" (002) "null?" "program" (002) "null?" (002) "cdr" "program"
(003) "append" "program" "collect"
(newline-space-tab-repeats!) "program" "collect"
comment:
(003) "and" (003) "eqv?" #newline (002) "car" "program" (003) "eqv?" #newline (002) "cadr" "program"
(newline-space-tab-repeats!) (002) "cdr" "program" "collect"
(newline-space-tab-repeats!) "program" "collect"
comment:
(003) "and" (003) "or" (003) "eqv?" #space (002) "car" "program" (003) "eqv?" #tab (002) "car" "program" (003) "or" (003) "eqv?" #space (002) "cadr" "program" (003) "eqv?" #tab (002) "cadr" "program"
(newline-space-tab-repeats!) (002) "cdr" "program" "collect"
(newline-space-tab-repeats!) "program" "collect"
comment:
#true
(newline-space-tab-repeats!) (002) "cdr" "program" (003) "cons" (002) "car" "program" "collect"
(newline-space-tab-repeats) "program"
comment:
#true
(002) "reverse" (newline-space-tab-repeats!) "program" nil
(newlines) "clauses"
comment:
#true
(add-between-ra) (map-with) add-between-ra "clauses" (002) "list" #newline (002) "list" (003) "list" #newline #newline
(normal-character?) "noun-list"
comment:
#true
(003) "eqv?" (002) "car" "noun-list" ##
(not) value
comment:
#true
(002) "not" value
(not-return?) "character"
comment:
#true
(002) "not" (003) "eqv?" #return "character"
(noun!) "noun-list" "number?"
comment:
"number?"
(make-exact) "noun-list"
(noun!) "noun-list" "number?"
comment:
(literal?) "noun-list"
(make-literal) "noun-list"
(noun!) "noun-list" "number?"
comment:
(true?) "noun-list"
""#t""
(noun!) "noun-list" "number?"
comment:
(false?) "noun-list"
""#f""
(noun!) "noun-list" "number?"
comment:
(number-character?) "noun-list"
(make-number-character) "noun-list"
(noun!) "noun-list" "number?"
comment:
(normal-character?) "noun-list"
(make-character) "noun-list"
(noun!) "noun-list" "number?"
comment:
#true
(make-ZED) "noun-list"
(noun) "noun-list"
comment:
#true
(noun!) "noun-list" (002) "string->number" (002) "list->string" "noun-list"
(null?) value
comment:
#true
(002) "null?" value
(number-character?) "noun-list"
comment:
#true
(004) "and" (003) "eqv?" (002) "car" "noun-list" ## (003) "eqv?" (002) "cadr" "noun-list" #0 (002) "not" (002) "null?" (002) "cddr" "noun-list"
(pair?) value
comment:
#true
(002) "pair?" value
(pop) "stack"
comment:
#true
(002) "cdr" "stack"
(pr!) "value" "output-string"
comment:
#true
(003) "begin" (003) "display" (pr!a) "value" nil "output-string" (pr!b) "output-string" (002) "get-output-string" "output-string"
(pr!a) "value" "collect"
comment:
(002) "char?" "value"
(pr!aa) (002) "list->string" (003) "list" ## "value" "collect"
(pr!a) "value" "collect"
comment:
(002) "string?" "value"
(pr!aa) (004) "string-append" ""\""" "value" ""\""" "collect"
(pr!a) "value" "collect"
comment:
(002) "symbol?" "value"
(pr!aa) (002) "symbol->string" "value" "collect"
(pr!a) "value" "collect"
comment:
(002) "number?" "value"
(pr!aa) (002) "number->string" "value" "collect"
(pr!a) "value" "collect"
comment:
(003) "and" (002) "boolean?" "value" "value"
(pr!aa) ""#true"" "collect"
(pr!a) "value" "collect"
comment:
(002) "boolean?" "value"
(pr!aa) ""#false"" "collect"
(pr!a) "value" "collect"
comment:
(002) "null?" "value"
(002) "reverse" "collect"
(pr!a) "value" "collect"
comment:
#true
(pr!a) (!) "value" (003) "cons" (pr!a) (1) "value" nil "collect"
(pr!aa) "string" "collect"
comment:
(002) "null?" "collect"
"string"
(pr!aa) "string" "collect"
comment:
#true
(002) "reverse" (003) "cons" "string" (003) "cons" ""."" "collect"
(pr!b) "output-string" "value"
comment:
#true
(003) "begin" (002) "close-output-port" "output-string" "value"
(pr) "value"
comment:
#true
(pr!) "value" (001) "open-output-string"
(programize) "program" "arity-hash"
comment:
#true
(003) "cons" "'begin" (map-with) functionize "program" "arity-hash"
(push) "object" "stack"
comment:
#true
(003) "cons" "object" "stack"
(rd!) "function" "list"
comment:
(002) "null?" (!) "list"
(1) "list"
(rd!) "function" "list"
comment:
#true
(rd!) "function" (003) "cons" (003) "function" (1) (!) "list" (1) "list" (!) (!) "list"
(rd) "final" "function" "list"
comment:
#true
(rd!) "function" (003) "cons" "final" (002) "reverse" "list"
(read-all!) "collect"
comment:
#true
(read-all!a) (001) "read-char" "collect"
(read-all!a) "character" "collect"
comment:
(002) "eof-object?" "character"
"collect"
(read-all!a) "character" "collect"
comment:
#true
(read-all!) (003) "cons" "character" "collect"
(read-all)
comment:
#true
(002) "reverse" (read-all!) nil
(read-sentence!a) "sentence" "collect"
comment:
(002) "null?" "sentence"
"collect"
(read-sentence!a) "sentence" "collect"
comment:
(003) "eqv?" #space (002) "car" "sentence"
(read-sentence!a) (002) "cdr" "sentence" "collect"
(read-sentence!a) "sentence" "collect"
comment:
(003) "eqv?" #( (002) "car" "sentence"
(read-sentence!aa) "sentence" (gather-verb) (002) "cdr" "sentence" "collect"
(read-sentence!a) "sentence" "collect"
comment:
#true
(read-sentence!ab) "sentence" (gather-noun) "sentence" "collect"
(read-sentence!aa) "sentence" "gather-verb" "collect"
comment:
#true
(read-sentence!a) (tails) (003) "+" 2 (002) "length" "gather-verb" "sentence" (003) "cons" (verb) "gather-verb" "collect"
(read-sentence!ab) "sentence" "gather-noun" "collect"
comment:
#true
(read-sentence!a) (tails) (002) "length" "gather-noun" "sentence" (003) "cons" (noun) "gather-noun" "collect"
(read-sentence!b) "list" "output-string"
comment:
#true
(003) "begin" (003) "display" "list" "output-string" (read-sentence!ba) "output-string" (002) "get-output-string" "output-string"
(read-sentence!ba) "output-string" "get-output-string"
comment:
#true
(003) "begin" (002) "close-output-port" "output-string" (read-sentence!baa) (002) "open-input-string" "get-output-string"
(read-sentence!baa) "input-string"
comment:
#true
(read-sentence!baaa) "input-string" (002) "read" "input-string"
(read-sentence!baaa) "input-string" "answer"
comment:
#true
(003) "begin" (002) "close-input-port" "input-string" "answer"
(read-sentence) "sentence"
comment:
#true
(read-sentence!b) (002) "reverse" (read-sentence!a) "sentence" nil (001) "open-output-string"
(read-sentences) "sentences"
comment:
#true
(003) "map" read-sentence "sentences"
(ready-clause) "clause"
comment:
#true
(003) "cons" (002) "caaar" "clause" (003) "cons" (002) "cdar" "clause" (002) "cdr" "clause"
(ready-program) "program"
comment:
#true
(003) "map" ready-clause "program"
(replace-trailing-white-space!) "program"
comment:
(002) "null?" "program"
nil
(replace-trailing-white-space!) "program"
comment:
(005) "or" (003) "eqv?" (002) "car" "program" #space (003) "eqv?" (002) "car" "program" #tab (003) "eqv?" (002) "car" "program" #return (003) "eqv?" (002) "car" "program" #newline
(replace-trailing-white-space!) (002) "cdr" "program"
(replace-trailing-white-space!) "program"
comment:
#true
(003) "cons" #newline "program"
(replace-trailing-white-space) "program"
comment:
#true
(002) "reverse" (replace-trailing-white-space!) (002) "reverse" "program"
(reverse) list
comment:
#true
(002) "reverse" list
(schemefy!) "expression" "arity-hash" "stack"
comment:
(002) "null?" "expression"
(top) "stack"
(schemefy!) "expression" "arity-hash" "stack"
comment:
(application?) "expression"
(schemefy!a) "expression" "arity-hash" "stack" (function) "expression"
(schemefy!) "expression" "arity-hash" "stack"
comment:
#true
(schemefy!) (002) "cdr" "expression" "arity-hash" (push) (002) "car" "expression" "stack"
(schemefy!a) "expression" "arity-hash" "stack" "function"
comment:
#true
(schemefy!aa) "expression" "arity-hash" "stack" "function" (arity) "arity-hash" "function"
(schemefy!aa) "expression" "arity-hash" "stack" "function" "arity"
comment:
(gather-count?) "function"
(schemefy!) (002) "cdr" "expression" "arity-hash" (push) (first) "arity" "stack" (tails) "arity" "stack"
(schemefy!aa) "expression" "arity-hash" "stack" "function" "arity"
comment:
(003) "eq?" "function" "'ZED1"
(schemefy!) (002) "cdr" "expression" "arity-hash" (push) (005) "list" "'if" (003) "list" "'promise?" (003) "cons" "'car" (first) "arity" "stack" (003) "list" "'force" (003) "cons" "'car" (first) "arity" "stack" (003) "cons" "'car" (first) "arity" "stack" (tails) "arity" "stack"
(schemefy!aa) "expression" "arity-hash" "stack" "function" "arity"
comment:
(003) "eq?" "function" "'ZED!"
(schemefy!) (002) "cdr" "expression" "arity-hash" (push) (005) "list" "'if" (003) "list" "'promise?" (003) "cons" "'cdr" (first) "arity" "stack" (003) "list" "'force" (003) "cons" "'cdr" (first) "arity" "stack" (003) "cons" "'cdr" (first) "arity" "stack" (tails) "arity" "stack"
(schemefy!aa) "expression" "arity-hash" "stack" "function" "arity"
comment:
(003) "eq?" "function" "'ZEDc"
(schemefy!) (002) "cdr" "expression" "arity-hash" (push) (003) "cons" "'cons" (003) "map" delay-wrap (first) "arity" "stack" (tails) "arity" "stack"
(schemefy!aa) "expression" "arity-hash" "stack" "function" "arity"
comment:
#true
(schemefy!) (002) "cdr" "expression" "arity-hash" (push) (003) "cons" "function" (first) "arity" "stack" (tails) "arity" "stack"
(schemefy) "expression" "arity-hash"
comment:
#true
(002) "list" (schemefy!) (002) "reverse" "expression" "arity-hash" (stack)
(sentence-less?) "sentence1" "sentence2"
comment:
(002) "null?" "sentence2"
"#f"
(sentence-less?) "sentence1" "sentence2"
comment:
(002) "null?" "sentence1"
"#t"
(sentence-less?) "sentence1" "sentence2"
comment:
(character-less?) (002) "car" "sentence1" (002) "car" "sentence2"
"#t"
(sentence-less?) "sentence1" "sentence2"
comment:
(character-less?) (002) "car" "sentence2" (002) "car" "sentence1"
"#f"
(sentence-less?) "sentence1" "sentence2"
comment:
#true
(sentence-less?) (002) "cdr" "sentence1" (002) "cdr" "sentence2"
(sentences!) "program" "collect1" "collect2"
comment:
(002) "null?" "program"
"collect2"
(sentences!) "program" "collect1" "collect2"
comment:
(003) "eqv?" #newline (002) "car" "program"
(sentences!) (002) "cdr" "program" nil (003) "cons" (002) "reverse" "collect1" "collect2"
(sentences!) "program" "collect1" "collect2"
comment:
#true
(sentences!) (002) "cdr" "program" (003) "cons" (002) "car" "program" "collect1" "collect2"
(sentences) "program"
comment:
#true
(002) "reverse" (sentences!) "program" nil nil
(sort!a) "jumble"
comment:
#true
(003) "map" "list" "jumble"
(sort!b) "comparator" "jumble"
comment:
(002) "null?" "jumble"
nil
(sort!b) "comparator" "jumble"
comment:
(002) "null?" (002) "cdr" "jumble"
"jumble"
(sort!b) "comparator" "jumble"
comment:
#true
(sort!b) "comparator" (003) "cons" (merge) "comparator" (002) "car" "jumble" (002) "cadr" "jumble" (sort!b) "comparator" (002) "cddr" "jumble"
(sort) "comparator" "jumble"
comment:
#true
(002) "car" (sort!b) "comparator" (sort!a) "jumble"
(space-newline!) "program" "collect"
comment:
(003) "or" (002) "null?" "program" (002) "null?" (002) "cdr" "program"
(003) "append" "program" "collect"
(space-newline!) "program" "collect"
comment:
(003) "and" (003) "eqv?" #space (002) "car" "program" (003) "eqv?" #newline (002) "cadr" "program"
(space-newline!) (002) "cdr" "program" "collect"
(space-newline!) "program" "collect"
comment:
#true
(space-newline!) (002) "cdr" "program" (003) "cons" (002) "car" "program" "collect"
(space-newline) "program"
comment:
#true
(002) "reverse" (space-newline!) "program" nil
(stack)
comment:
#true
nil
(tab-replace!) "program" "collect"
comment:
(002) "null?" "program"
"collect"
(tab-replace!) "program" "collect"
comment:
(003) "eqv?" #tab (002) "car" "program"
(tab-replace!) (002) "cdr" "program" (003) "cons" #space "collect"
(tab-replace!) "program" "collect"
comment:
#true
(tab-replace!) (002) "cdr" "program" (003) "cons" (002) "car" "program" "collect"
(tab-replace) "program"
comment:
#true
(002) "reverse" (tab-replace!) "program" nil
(tails) "number" "list"
comment:
(002) "null?" "list"
nil
(tails) "number" "list"
comment:
(002) "zero?" "number"
"list"
(tails) "number" "list"
comment:
(003) ">" "number" 0
(tails) (003) "-" "number" 1 (002) "cdr" "list"
(top) "stack"
comment:
#true
(002) "car" "stack"
(true?) "noun-list"
comment:
#true
(003) "equal?" "noun-list" (006) "list" ## #t #r #u #e
(verb) "verb-list"
comment:
(literal?) "verb-list"
(002) "list" (make-literal) "verb-list"
(verb) "verb-list"
comment:
#true
(002) "list" (make-ZED) "verb-list"
(write-all) "program"
comment:
(002) "null?" "program"
err
(write-all) "program"
comment:
#true
(write-all) (003) "begin" (002) "write-char" (002) "car" "program" (002) "cdr" "program"
(zed->scheme!) "value" "collect"
comment:
(002) "null?" "value"
(002) "reverse" "collect"
(zed->scheme!) "value" "collect"
comment:
#true
(zed->scheme!) (!) "value" (003) "cons" (zed->scheme) (1) "value" "collect"
(zed->scheme) "value"
comment:
(002) "not" (002) "pair?" "value"
"value"
(zed->scheme) "value"
comment:
#true
(zed->scheme!) "value" nil