Skip to content

Instantly share code, notes, and snippets.

@Wolvereness
Last active December 24, 2015 19:19
Show Gist options
  • Save Wolvereness/6849779 to your computer and use it in GitHub Desktop.
Save Wolvereness/6849779 to your computer and use it in GitHub Desktop.
IyBBRSBceEM2CiMgT0UgXHhEOAojIEFBIFx4QzUKIyBhZSBceEU2CiMgb2UgXHhGOAojIGFhIFx4
RTUKCm1lc3NhZ2U6Ci0gJyY2VmVsa29tbWVuIHRpbCBWb1gsICZmQHAmNiEnCi0gIiY2SGVyIGhh
ciB2aSBlbiBuZWRyZSBhbGRlcnNncmVuc2UgcFx4ZTUgJmMxOCBceGU1ciY2LiIKLSAiJjZTcGls
bGVyZSBzb20gZXIsIGVsbGVyICZvb3BwZlx4ZjhyZXImciY2IHNlZyBzb20gb20gZGUgZXIgeW5n
cmUsIHZpbCB1dGVzdGVuZ2VzLiIKLSAiJjZFbGxlcnMgZXIgZGV0IGJhcmUgXHhlNSBnalx4Zjhy
ZSBzb20gbWFuIHZpbCwgc1x4ZTUgbGVuZ2UgZGV0IGlra2UgcGxhZ2VyIG5vZW5cCiAgXCA6KSIK
LSAnJwo=
file1.yml
target/encoding/default-windows-1252
23 20 41 45 20 5C 78 43 36 0A 23 20 4F 45 20 5C 78 44 38 0A 23 20 41 41 20 5C 78 43 35 0A 23 20 61 65 20 5C 78 45 36 0A 23 20 6F 65 20 5C 78 46 38 0A 23 20 61 61 20 5C 78 45 35 0A 0A 6D 65 73 73 61 67 65 3A 0A 2D 20 27 26 36 56 65 6C 6B 6F 6D 6D 65 6E 20 74 69 6C 20 56 6F 58 2C 20 26 66 40 70 26 36 21 27 0A 2D 20 27 26 36 48 65 72 20 68 61 72 20 76 69 20 65 6E 20 6E 65 64 72 65 20 61 6C 64 65 72 73 67 72 65 6E 73 65 20 70 E5 20 26 63 31 38 20 E5 72 26 36 2E 27 0A 2D 20 27 26 36 53 70 69 6C 6C 65 72 65 20 73 6F 6D 20 65 72 2C 20 65 6C 6C 65 72 20 26 6F 6F 70 70 66 F8 72 65 72 26 72 26 36 20 73 65 67 20 73 6F 6D 20 6F 6D 20 64 65 20 65 72 20 79 6E 67 72 65 2C 20 76 69 6C 20 75 74 65 73 74 65 6E 67 65 73 2E 27 0A 2D 20 27 26 36 45 6C 6C 65 72 73 20 65 72 20 64 65 74 20 62 61 72 65 20 E5 20 67 6A F8 72 65 20 73 6F 6D 20 6D 61 6E 20 76 69 6C 2C 20 73 E5 20 6C 65 6E 67 65 20 64 65 74 20 69 6B 6B 65 20 70 6C 61 67 65 72 20 6E 6F 65 6E 20 3A 29 27 0A 2D 20 27 27 0A
target/encoding/default-2-windows-1252
23 20 41 45 20 5C 78 43 36 0A 23 20 4F 45 20 5C 78 44 38 0A 23 20 41 41 20 5C 78 43 35 0A 23 20 61 65 20 5C 78 45 36 0A 23 20 6F 65 20 5C 78 46 38 0A 23 20 61 61 20 5C 78 45 35 0A 0A 6D 65 73 73 61 67 65 3A 0A 2D 20 27 26 36 56 65 6C 6B 6F 6D 6D 65 6E 20 74 69 6C 20 56 6F 58 2C 20 26 66 40 70 26 36 21 27 0A 2D 20 27 26 36 48 65 72 20 68 61 72 20 76 69 20 65 6E 20 6E 65 64 72 65 20 61 6C 64 65 72 73 67 72 65 6E 73 65 20 70 E5 20 26 63 31 38 20 E5 72 26 36 2E 27 0A 2D 20 27 26 36 53 70 69 6C 6C 65 72 65 20 73 6F 6D 20 65 72 2C 20 65 6C 6C 65 72 20 26 6F 6F 70 70 66 F8 72 65 72 26 72 26 36 20 73 65 67 20 73 6F 6D 20 6F 6D 20 64 65 20 65 72 20 79 6E 67 72 65 2C 20 76 69 6C 20 75 74 65 73 74 65 6E 67 65 73 2E 27 0A 2D 20 27 26 36 45 6C 6C 65 72 73 20 65 72 20 64 65 74 20 62 61 72 65 20 E5 20 67 6A F8 72 65 20 73 6F 6D 20 6D 61 6E 20 76 69 6C 2C 20 73 E5 20 6C 65 6E 67 65 20 64 65 74 20 69 6B 6B 65 20 70 6C 61 67 65 72 20 6E 6F 65 6E 20 3A 29 27 0A 2D 20 27 27 0A
target/encoding/UTF8
23 20 41 45 20 5C 78 43 36 0A 23 20 4F 45 20 5C 78 44 38 0A 23 20 41 41 20 5C 78 43 35 0A 23 20 61 65 20 5C 78 45 36 0A 23 20 6F 65 20 5C 78 46 38 0A 23 20 61 61 20 5C 78 45 35 0A 0A 6D 65 73 73 61 67 65 3A 0A 2D 20 27 26 36 56 65 6C 6B 6F 6D 6D 65 6E 20 74 69 6C 20 56 6F 58 2C 20 26 66 40 70 26 36 21 27 0A 2D 20 27 26 36 48 65 72 20 68 61 72 20 76 69 20 65 6E 20 6E 65 64 72 65 20 61 6C 64 65 72 73 67 72 65 6E 73 65 20 70 C3 A5 20 26 63 31 38 20 C3 A5 72 26 36 2E 27 0A 2D 20 27 26 36 53 70 69 6C 6C 65 72 65 20 73 6F 6D 20 65 72 2C 20 65 6C 6C 65 72 20 26 6F 6F 70 70 66 C3 B8 72 65 72 26 72 26 36 20 73 65 67 20 73 6F 6D 20 6F 6D 20 64 65 20 65 72 20 79 6E 67 72 65 2C 20 76 69 6C 20 75 74 65 73 74 65 6E 67 65 73 2E 27 0A 2D 20 27 26 36 45 6C 6C 65 72 73 20 65 72 20 64 65 74 20 62 61 72 65 20 C3 A5 20 67 6A C3 B8 72 65 20 73 6F 6D 20 6D 61 6E 20 76 69 6C 2C 20 73 C3 A5 20 6C 65 6E 67 65 20 64 65 74 20 69 6B 6B 65 20 70 6C 61 67 65 72 20 6E 6F 65 6E 20 3A 29 27 0A 2D 20 27 27 0A
target/encoding/UTF8-2
23 20 41 45 20 5C 78 43 36 0A 23 20 4F 45 20 5C 78 44 38 0A 23 20 41 41 20 5C 78 43 35 0A 23 20 61 65 20 5C 78 45 36 0A 23 20 6F 65 20 5C 78 46 38 0A 23 20 61 61 20 5C 78 45 35 0A 0A 6D 65 73 73 61 67 65 3A 0A 2D 20 27 26 36 56 65 6C 6B 6F 6D 6D 65 6E 20 74 69 6C 20 56 6F 58 2C 20 26 66 40 70 26 36 21 27 0A 2D 20 27 26 36 48 65 72 20 68 61 72 20 76 69 20 65 6E 20 6E 65 64 72 65 20 61 6C 64 65 72 73 67 72 65 6E 73 65 20 70 C3 A5 20 26 63 31 38 20 C3 A5 72 26 36 2E 27 0A 2D 20 27 26 36 53 70 69 6C 6C 65 72 65 20 73 6F 6D 20 65 72 2C 20 65 6C 6C 65 72 20 26 6F 6F 70 70 66 C3 B8 72 65 72 26 72 26 36 20 73 65 67 20 73 6F 6D 20 6F 6D 20 64 65 20 65 72 20 79 6E 67 72 65 2C 20 76 69 6C 20 75 74 65 73 74 65 6E 67 65 73 2E 27 0A 2D 20 27 26 36 45 6C 6C 65 72 73 20 65 72 20 64 65 74 20 62 61 72 65 20 C3 A5 20 67 6A C3 B8 72 65 20 73 6F 6D 20 6D 61 6E 20 76 69 6C 2C 20 73 C3 A5 20 6C 65 6E 67 65 20 64 65 74 20 69 6B 6B 65 20 70 6C 61 67 65 72 20 6E 6F 65 6E 20 3A 29 27 0A 2D 20 27 27 0A
IyBUaGlzIGlzIG5vdCByZWFsbHkgTm9yd2VnaWFuLiBJIGp1c3QgcmVwbGFjZWQgYSBsb3Qgb2Yg
Y2hhcmFjdGVycy4KTk9UX0VOT1VHSF9QTEFZRVJfSVRFTVM6IER1IGhhciBpa2tlIG7DuGsgJTEk
cwpTRUxMOiBEdSBzw7hsZ3RlICUxJGQgJTIkcyBmw7hyICUzJGQgJTQkcwpTRUxMX1JBVEU6IER1
IGthbiBzw6ZsZ2UgJTEkZCAlMiRzIGbDuHIgJTMkZCAlNCRzCkNBTlRfUExBQ0VfQ0hFU1Q6IER1
IGhhciBpa2tlIGzDuHYgdGlsIMOlIHBsYXNzZXJlIGRlbm5lIGtpc3RlbgpERVBPU0lUOiBEdSBz
YXR0ZSBpbm4gJTEkZCAlMiRzIMO4ZyAlMyRkICU0JHMKV0lUSERSQVc6IER1IHTDuGsgdXQgJTEk
ZCAlMiRzIMO4ZyAlMyRkICU0JHMKU1RBVFVTOiBCdXRpa2tlbiBpbm5laMO4bGRlciAlMSRkICUy
JHMsICUzJGQgJTQkcywgw7hnICU1JGQgJTYkcwpDQU5UX1VTRV9DSEVTVDogRHUgaGFyIGlra2Ug
bMO4diB0aWwgw6UgYnJ1a2UgZGVubmUgYnV0aWtraXN0ZW4uCkNBTlRfQlVJTEQ6IER1IGhhciBp
a2tlIGzDuHYgdGlsIMOlIGJ5Z2dlIGJ1dGlra2VyCk5PX1NFTEw6IER1IGthbiBpa2tlIHNlbGdl
IGkgZGVubmUgYnV0aWtrZW4KTk9UX0VOT1VHSF9QTEFZRVJfTU9ORVk6IER1IGhhciBpa2tlIG7D
uGsgJTEkcwpDQU5UX0JVSUxEX1NFUlZFUjogRHUga2FuIGlra2UgYnlnZ2Ugc2VydmVyYnV0aWtr
ZXIKRVhJU1RJTkdfQ0hFU1Q6IFnDuHUgY2FuJ3QgYnVpbGQgYSBzaMO4cCDDuHZlciBhbiBleGlz
dGluZyBjaGVzdApOT1RfRU5PVUdIX1NIT1BfTU9ORVk6IFRoZSBzaMO4cCBkw7hlc24ndCBoYXZl
IGVuw7h1Z2ggJTEkcwpCVVk6IFnDuHUgYsO4dWdodCAlMSRkICUyJHMgZsO4ciAlMyRkICU0JHMK
Q0FOVF9ERVNUUk9ZOiBZw7h1IGFyZSBuw7h0IGFsbMO4d2VkIHTDuCBkZXN0csO4eSB0aGlzIHNo
w7hwCk5PVF9FTk9VR0hfU0hPUF9JVEVNUzogVGhlIHNow7hwIGTDuGVzbid0IGhhdmUgZW7DuHVn
aCAlMSRzCk5PX0JVWTogWcO4dSBjYW4ndCBidXkgYXQgdGhpcyBzaMO4cApQTEFZRVJfSU5WRU5U
T1JZX0ZVTEw6IFnDuHVyIGludmVudMO4cnkgaXMgZnVsbApTVEFUVVNfT05FX0NVUlJFTkNZOiBU
aGUgc2jDuHAgY8O4bnRhaW5zICUxJGQgJTIkcyBhbmQgJTMkZCAlNCRzClNUQVRVU19PTkVfTUFU
RVJJQUw6IFRoZSBzaMO4cCBjw7hudGFpbnMgJTEkZCAlMiRzCkNIRVNUX0lOVkVOVE9SWV9GVUxM
OiBUaGUgc2jDuHAgaXMgZnVsbApDQU5UX1VTRTogWcO4dSBhcmUgbsO4dCBhbGzDuHdlZCB0w7gg
dXNlIHNow7hwcwpCVVlfUkFURTogWcO4dSBjYW4gYnV5ICUxJGQgJTIkcyBmw7hyICUzJGQgJTQk
cwpDQU5UX1JFTE9BRF9DT05GSUc6IFnDuHUgYXJlIG7DuHQgYWxsw7h3ZWQgdMO4IHJlbMO4YWQg
dGhlIGPDuG5maWd1cmF0acO4bgpDT05GSUdfUkVMT0FERUQ6IFRoZSBjw7huZmlndXJhdGnDuG4g
aGFzIGJlZW4gcmVsw7hhZGVkCg==
file2.yml
target/encoding/default-windows-1252
23 20 54 68 69 73 20 69 73 20 6E 6F 74 20 72 65 61 6C 6C 79 20 4E 6F 72 77 65 67 69 61 6E 2E 20 49 20 6A 75 73 74 20 72 65 70 6C 61 63 65 64 20 61 20 6C 6F 74 20 6F 66 20 63 68 61 72 61 63 74 65 72 73 2E 0A 4E 4F 54 5F 45 4E 4F 55 47 48 5F 50 4C 41 59 45 52 5F 49 54 45 4D 53 3A 20 44 75 20 68 61 72 20 69 6B 6B 65 20 6E F8 6B 20 25 31 24 73 0A 53 45 4C 4C 3A 20 44 75 20 73 F8 6C 67 74 65 20 25 31 24 64 20 25 32 24 73 20 66 F8 72 20 25 33 24 64 20 25 34 24 73 0A 53 45 4C 4C 5F 52 41 54 45 3A 20 44 75 20 6B 61 6E 20 73 E6 6C 67 65 20 25 31 24 64 20 25 32 24 73 20 66 F8 72 20 25 33 24 64 20 25 34 24 73 0A 43 41 4E 54 5F 50 4C 41 43 45 5F 43 48 45 53 54 3A 20 44 75 20 68 61 72 20 69 6B 6B 65 20 6C F8 76 20 74 69 6C 20 E5 20 70 6C 61 73 73 65 72 65 20 64 65 6E 6E 65 20 6B 69 73 74 65 6E 0A 44 45 50 4F 53 49 54 3A 20 44 75 20 73 61 74 74 65 20 69 6E 6E 20 25 31 24 64 20 25 32 24 73 20 F8 67 20 25 33 24 64 20 25 34 24 73 0A 57 49 54 48 44 52 41 57 3A 20 44 75 20 74 F8 6B 20 75 74 20 25 31 24 64 20 25 32 24 73 20 F8 67 20 25 33 24 64 20 25 34 24 73 0A 53 54 41 54 55 53 3A 20 42 75 74 69 6B 6B 65 6E 20 69 6E 6E 65 68 F8 6C 64 65 72 20 25 31 24 64 20 25 32 24 73 2C 20 25 33 24 64 20 25 34 24 73 2C 20 F8 67 20 25 35 24 64 20 25 36 24 73 0A 43 41 4E 54 5F 55 53 45 5F 43 48 45 53 54 3A 20 44 75 20 68 61 72 20 69 6B 6B 65 20 6C F8 76 20 74 69 6C 20 E5 20 62 72 75 6B 65 20 64 65 6E 6E 65 20 62 75 74 69 6B 6B 69 73 74 65 6E 2E 0A 43 41 4E 54 5F 42 55 49 4C 44 3A 20 44 75 20 68 61 72 20 69 6B 6B 65 20 6C F8 76 20 74 69 6C 20 E5 20 62 79 67 67 65 20 62 75 74 69 6B 6B 65 72 0A 4E 4F 5F 53 45 4C 4C 3A 20 44 75 20 6B 61 6E 20 69 6B 6B 65 20 73 65 6C 67 65 20 69 20 64 65 6E 6E 65 20 62 75 74 69 6B 6B 65 6E 0A 4E 4F 54 5F 45 4E 4F 55 47 48 5F 50 4C 41 59 45 52 5F 4D 4F 4E 45 59 3A 20 44 75 20 68 61 72 20 69 6B 6B 65 20 6E F8 6B 20 25 31 24 73 0A 43 41 4E 54 5F 42 55 49 4C 44 5F 53 45 52 56 45 52 3A 20 44 75 20 6B 61 6E 20 69 6B 6B 65 20 62 79 67 67 65 20 73 65 72 76 65 72 62 75 74 69 6B 6B 65 72 0A 45 58 49 53 54 49 4E 47 5F 43 48 45 53 54 3A 20 59 F8 75 20 63 61 6E 27 74 20 62 75 69 6C 64 20 61 20 73 68 F8 70 20 F8 76 65 72 20 61 6E 20 65 78 69 73 74 69 6E 67 20 63 68 65 73 74 0A 4E 4F 54 5F 45 4E 4F 55 47 48 5F 53 48 4F 50 5F 4D 4F 4E 45 59 3A 20 54 68 65 20 73 68 F8 70 20 64 F8 65 73 6E 27 74 20 68 61 76 65 20 65 6E F8 75 67 68 20 25 31 24 73 0A 42 55 59 3A 20 59 F8 75 20 62 F8 75 67 68 74 20 25 31 24 64 20 25 32 24 73 20 66 F8 72 20 25 33 24 64 20 25 34 24 73 0A 43 41 4E 54 5F 44 45 53 54 52 4F 59 3A 20 59 F8 75 20 61 72 65 20 6E F8 74 20 61 6C 6C F8 77 65 64 20 74 F8 20 64 65 73 74 72 F8 79 20 74 68 69 73 20 73 68 F8 70 0A 4E 4F 54 5F 45 4E 4F 55 47 48 5F 53 48 4F 50 5F 49 54 45 4D 53 3A 20 54 68 65 20 73 68 F8 70 20 64 F8 65 73 6E 27 74 20 68 61 76 65 20 65 6E F8 75 67 68 20 25 31 24 73 0A 4E 4F 5F 42 55 59 3A 20 59 F8 75 20 63 61 6E 27 74 20 62 75 79 20 61 74 20 74 68 69 73 20 73 68 F8 70 0A 50 4C 41 59 45 52 5F 49 4E 56 45 4E 54 4F 52 59 5F 46 55 4C 4C 3A 20 59 F8 75 72 20 69 6E 76 65 6E 74 F8 72 79 20 69 73 20 66 75 6C 6C 0A 53 54 41 54 55 53 5F 4F 4E 45 5F 43 55 52 52 45 4E 43 59 3A 20 54 68 65 20 73 68 F8 70 20 63 F8 6E 74 61 69 6E 73 20 25 31 24 64 20 25 32 24 73 20 61 6E 64 20 25 33 24 64 20 25 34 24 73 0A 53 54 41 54 55 53 5F 4F 4E 45 5F 4D 41 54 45 52 49 41 4C 3A 20 54 68 65 20 73 68 F8 70 20 63 F8 6E 74 61 69 6E 73 20 25 31 24 64 20 25 32 24 73 0A 43 48 45 53 54 5F 49 4E 56 45 4E 54 4F 52 59 5F 46 55 4C 4C 3A 20 54 68 65 20 73 68 F8 70 20 69 73 20 66 75 6C 6C 0A 43 41 4E 54 5F 55 53 45 3A 20 59 F8 75 20 61 72 65 20 6E F8 74 20 61 6C 6C F8 77 65 64 20 74 F8 20 75 73 65 20 73 68 F8 70 73 0A 42 55 59 5F 52 41 54 45 3A 20 59 F8 75 20 63 61 6E 20 62 75 79 20 25 31 24 64 20 25 32 24 73 20 66 F8 72 20 25 33 24 64 20 25 34 24 73 0A 43 41 4E 54 5F 52 45 4C 4F 41 44 5F 43 4F 4E 46 49 47 3A 20 59 F8 75 20 61 72 65 20 6E F8 74 20 61 6C 6C F8 77 65 64 20 74 F8 20 72 65 6C F8 61 64 20 74 68 65 20 63 F8 6E 66 69 67 75 72 61 74 69 F8 6E 0A 43 4F 4E 46 49 47 5F 52 45 4C 4F 41 44 45 44 3A 20 54 68 65 20 63 F8 6E 66 69 67 75 72 61 74 69 F8 6E 20 68 61 73 20 62 65 65 6E 20 72 65 6C F8 61 64 65 64 0A
target/encoding/default-2-windows-1252
23 20 54 68 69 73 20 69 73 20 6E 6F 74 20 72 65 61 6C 6C 79 20 4E 6F 72 77 65 67 69 61 6E 2E 20 49 20 6A 75 73 74 20 72 65 70 6C 61 63 65 64 20 61 20 6C 6F 74 20 6F 66 20 63 68 61 72 61 63 74 65 72 73 2E 0A 4E 4F 54 5F 45 4E 4F 55 47 48 5F 50 4C 41 59 45 52 5F 49 54 45 4D 53 3A 20 44 75 20 68 61 72 20 69 6B 6B 65 20 6E F8 6B 20 25 31 24 73 0A 53 45 4C 4C 3A 20 44 75 20 73 F8 6C 67 74 65 20 25 31 24 64 20 25 32 24 73 20 66 F8 72 20 25 33 24 64 20 25 34 24 73 0A 53 45 4C 4C 5F 52 41 54 45 3A 20 44 75 20 6B 61 6E 20 73 E6 6C 67 65 20 25 31 24 64 20 25 32 24 73 20 66 F8 72 20 25 33 24 64 20 25 34 24 73 0A 43 41 4E 54 5F 50 4C 41 43 45 5F 43 48 45 53 54 3A 20 44 75 20 68 61 72 20 69 6B 6B 65 20 6C F8 76 20 74 69 6C 20 E5 20 70 6C 61 73 73 65 72 65 20 64 65 6E 6E 65 20 6B 69 73 74 65 6E 0A 44 45 50 4F 53 49 54 3A 20 44 75 20 73 61 74 74 65 20 69 6E 6E 20 25 31 24 64 20 25 32 24 73 20 F8 67 20 25 33 24 64 20 25 34 24 73 0A 57 49 54 48 44 52 41 57 3A 20 44 75 20 74 F8 6B 20 75 74 20 25 31 24 64 20 25 32 24 73 20 F8 67 20 25 33 24 64 20 25 34 24 73 0A 53 54 41 54 55 53 3A 20 42 75 74 69 6B 6B 65 6E 20 69 6E 6E 65 68 F8 6C 64 65 72 20 25 31 24 64 20 25 32 24 73 2C 20 25 33 24 64 20 25 34 24 73 2C 20 F8 67 20 25 35 24 64 20 25 36 24 73 0A 43 41 4E 54 5F 55 53 45 5F 43 48 45 53 54 3A 20 44 75 20 68 61 72 20 69 6B 6B 65 20 6C F8 76 20 74 69 6C 20 E5 20 62 72 75 6B 65 20 64 65 6E 6E 65 20 62 75 74 69 6B 6B 69 73 74 65 6E 2E 0A 43 41 4E 54 5F 42 55 49 4C 44 3A 20 44 75 20 68 61 72 20 69 6B 6B 65 20 6C F8 76 20 74 69 6C 20 E5 20 62 79 67 67 65 20 62 75 74 69 6B 6B 65 72 0A 4E 4F 5F 53 45 4C 4C 3A 20 44 75 20 6B 61 6E 20 69 6B 6B 65 20 73 65 6C 67 65 20 69 20 64 65 6E 6E 65 20 62 75 74 69 6B 6B 65 6E 0A 4E 4F 54 5F 45 4E 4F 55 47 48 5F 50 4C 41 59 45 52 5F 4D 4F 4E 45 59 3A 20 44 75 20 68 61 72 20 69 6B 6B 65 20 6E F8 6B 20 25 31 24 73 0A 43 41 4E 54 5F 42 55 49 4C 44 5F 53 45 52 56 45 52 3A 20 44 75 20 6B 61 6E 20 69 6B 6B 65 20 62 79 67 67 65 20 73 65 72 76 65 72 62 75 74 69 6B 6B 65 72 0A 45 58 49 53 54 49 4E 47 5F 43 48 45 53 54 3A 20 59 F8 75 20 63 61 6E 27 74 20 62 75 69 6C 64 20 61 20 73 68 F8 70 20 F8 76 65 72 20 61 6E 20 65 78 69 73 74 69 6E 67 20 63 68 65 73 74 0A 4E 4F 54 5F 45 4E 4F 55 47 48 5F 53 48 4F 50 5F 4D 4F 4E 45 59 3A 20 54 68 65 20 73 68 F8 70 20 64 F8 65 73 6E 27 74 20 68 61 76 65 20 65 6E F8 75 67 68 20 25 31 24 73 0A 42 55 59 3A 20 59 F8 75 20 62 F8 75 67 68 74 20 25 31 24 64 20 25 32 24 73 20 66 F8 72 20 25 33 24 64 20 25 34 24 73 0A 43 41 4E 54 5F 44 45 53 54 52 4F 59 3A 20 59 F8 75 20 61 72 65 20 6E F8 74 20 61 6C 6C F8 77 65 64 20 74 F8 20 64 65 73 74 72 F8 79 20 74 68 69 73 20 73 68 F8 70 0A 4E 4F 54 5F 45 4E 4F 55 47 48 5F 53 48 4F 50 5F 49 54 45 4D 53 3A 20 54 68 65 20 73 68 F8 70 20 64 F8 65 73 6E 27 74 20 68 61 76 65 20 65 6E F8 75 67 68 20 25 31 24 73 0A 4E 4F 5F 42 55 59 3A 20 59 F8 75 20 63 61 6E 27 74 20 62 75 79 20 61 74 20 74 68 69 73 20 73 68 F8 70 0A 50 4C 41 59 45 52 5F 49 4E 56 45 4E 54 4F 52 59 5F 46 55 4C 4C 3A 20 59 F8 75 72 20 69 6E 76 65 6E 74 F8 72 79 20 69 73 20 66 75 6C 6C 0A 53 54 41 54 55 53 5F 4F 4E 45 5F 43 55 52 52 45 4E 43 59 3A 20 54 68 65 20 73 68 F8 70 20 63 F8 6E 74 61 69 6E 73 20 25 31 24 64 20 25 32 24 73 20 61 6E 64 20 25 33 24 64 20 25 34 24 73 0A 53 54 41 54 55 53 5F 4F 4E 45 5F 4D 41 54 45 52 49 41 4C 3A 20 54 68 65 20 73 68 F8 70 20 63 F8 6E 74 61 69 6E 73 20 25 31 24 64 20 25 32 24 73 0A 43 48 45 53 54 5F 49 4E 56 45 4E 54 4F 52 59 5F 46 55 4C 4C 3A 20 54 68 65 20 73 68 F8 70 20 69 73 20 66 75 6C 6C 0A 43 41 4E 54 5F 55 53 45 3A 20 59 F8 75 20 61 72 65 20 6E F8 74 20 61 6C 6C F8 77 65 64 20 74 F8 20 75 73 65 20 73 68 F8 70 73 0A 42 55 59 5F 52 41 54 45 3A 20 59 F8 75 20 63 61 6E 20 62 75 79 20 25 31 24 64 20 25 32 24 73 20 66 F8 72 20 25 33 24 64 20 25 34 24 73 0A 43 41 4E 54 5F 52 45 4C 4F 41 44 5F 43 4F 4E 46 49 47 3A 20 59 F8 75 20 61 72 65 20 6E F8 74 20 61 6C 6C F8 77 65 64 20 74 F8 20 72 65 6C F8 61 64 20 74 68 65 20 63 F8 6E 66 69 67 75 72 61 74 69 F8 6E 0A 43 4F 4E 46 49 47 5F 52 45 4C 4F 41 44 45 44 3A 20 54 68 65 20 63 F8 6E 66 69 67 75 72 61 74 69 F8 6E 20 68 61 73 20 62 65 65 6E 20 72 65 6C F8 61 64 65 64 0A
target/encoding/UTF8
23 20 54 68 69 73 20 69 73 20 6E 6F 74 20 72 65 61 6C 6C 79 20 4E 6F 72 77 65 67 69 61 6E 2E 20 49 20 6A 75 73 74 20 72 65 70 6C 61 63 65 64 20 61 20 6C 6F 74 20 6F 66 20 63 68 61 72 61 63 74 65 72 73 2E 0A 4E 4F 54 5F 45 4E 4F 55 47 48 5F 50 4C 41 59 45 52 5F 49 54 45 4D 53 3A 20 44 75 20 68 61 72 20 69 6B 6B 65 20 6E C3 B8 6B 20 25 31 24 73 0A 53 45 4C 4C 3A 20 44 75 20 73 C3 B8 6C 67 74 65 20 25 31 24 64 20 25 32 24 73 20 66 C3 B8 72 20 25 33 24 64 20 25 34 24 73 0A 53 45 4C 4C 5F 52 41 54 45 3A 20 44 75 20 6B 61 6E 20 73 C3 A6 6C 67 65 20 25 31 24 64 20 25 32 24 73 20 66 C3 B8 72 20 25 33 24 64 20 25 34 24 73 0A 43 41 4E 54 5F 50 4C 41 43 45 5F 43 48 45 53 54 3A 20 44 75 20 68 61 72 20 69 6B 6B 65 20 6C C3 B8 76 20 74 69 6C 20 C3 A5 20 70 6C 61 73 73 65 72 65 20 64 65 6E 6E 65 20 6B 69 73 74 65 6E 0A 44 45 50 4F 53 49 54 3A 20 44 75 20 73 61 74 74 65 20 69 6E 6E 20 25 31 24 64 20 25 32 24 73 20 C3 B8 67 20 25 33 24 64 20 25 34 24 73 0A 57 49 54 48 44 52 41 57 3A 20 44 75 20 74 C3 B8 6B 20 75 74 20 25 31 24 64 20 25 32 24 73 20 C3 B8 67 20 25 33 24 64 20 25 34 24 73 0A 53 54 41 54 55 53 3A 20 42 75 74 69 6B 6B 65 6E 20 69 6E 6E 65 68 C3 B8 6C 64 65 72 20 25 31 24 64 20 25 32 24 73 2C 20 25 33 24 64 20 25 34 24 73 2C 20 C3 B8 67 20 25 35 24 64 20 25 36 24 73 0A 43 41 4E 54 5F 55 53 45 5F 43 48 45 53 54 3A 20 44 75 20 68 61 72 20 69 6B 6B 65 20 6C C3 B8 76 20 74 69 6C 20 C3 A5 20 62 72 75 6B 65 20 64 65 6E 6E 65 20 62 75 74 69 6B 6B 69 73 74 65 6E 2E 0A 43 41 4E 54 5F 42 55 49 4C 44 3A 20 44 75 20 68 61 72 20 69 6B 6B 65 20 6C C3 B8 76 20 74 69 6C 20 C3 A5 20 62 79 67 67 65 20 62 75 74 69 6B 6B 65 72 0A 4E 4F 5F 53 45 4C 4C 3A 20 44 75 20 6B 61 6E 20 69 6B 6B 65 20 73 65 6C 67 65 20 69 20 64 65 6E 6E 65 20 62 75 74 69 6B 6B 65 6E 0A 4E 4F 54 5F 45 4E 4F 55 47 48 5F 50 4C 41 59 45 52 5F 4D 4F 4E 45 59 3A 20 44 75 20 68 61 72 20 69 6B 6B 65 20 6E C3 B8 6B 20 25 31 24 73 0A 43 41 4E 54 5F 42 55 49 4C 44 5F 53 45 52 56 45 52 3A 20 44 75 20 6B 61 6E 20 69 6B 6B 65 20 62 79 67 67 65 20 73 65 72 76 65 72 62 75 74 69 6B 6B 65 72 0A 45 58 49 53 54 49 4E 47 5F 43 48 45 53 54 3A 20 59 C3 B8 75 20 63 61 6E 27 74 20 62 75 69 6C 64 20 61 20 73 68 C3 B8 70 20 C3 B8 76 65 72 20 61 6E 20 65 78 69 73 74 69 6E 67 20 63 68 65 73 74 0A 4E 4F 54 5F 45 4E 4F 55 47 48 5F 53 48 4F 50 5F 4D 4F 4E 45 59 3A 20 54 68 65 20 73 68 C3 B8 70 20 64 C3 B8 65 73 6E 27 74 20 68 61 76 65 20 65 6E C3 B8 75 67 68 20 25 31 24 73 0A 42 55 59 3A 20 59 C3 B8 75 20 62 C3 B8 75 67 68 74 20 25 31 24 64 20 25 32 24 73 20 66 C3 B8 72 20 25 33 24 64 20 25 34 24 73 0A 43 41 4E 54 5F 44 45 53 54 52 4F 59 3A 20 59 C3 B8 75 20 61 72 65 20 6E C3 B8 74 20 61 6C 6C C3 B8 77 65 64 20 74 C3 B8 20 64 65 73 74 72 C3 B8 79 20 74 68 69 73 20 73 68 C3 B8 70 0A 4E 4F 54 5F 45 4E 4F 55 47 48 5F 53 48 4F 50 5F 49 54 45 4D 53 3A 20 54 68 65 20 73 68 C3 B8 70 20 64 C3 B8 65 73 6E 27 74 20 68 61 76 65 20 65 6E C3 B8 75 67 68 20 25 31 24 73 0A 4E 4F 5F 42 55 59 3A 20 59 C3 B8 75 20 63 61 6E 27 74 20 62 75 79 20 61 74 20 74 68 69 73 20 73 68 C3 B8 70 0A 50 4C 41 59 45 52 5F 49 4E 56 45 4E 54 4F 52 59 5F 46 55 4C 4C 3A 20 59 C3 B8 75 72 20 69 6E 76 65 6E 74 C3 B8 72 79 20 69 73 20 66 75 6C 6C 0A 53 54 41 54 55 53 5F 4F 4E 45 5F 43 55 52 52 45 4E 43 59 3A 20 54 68 65 20 73 68 C3 B8 70 20 63 C3 B8 6E 74 61 69 6E 73 20 25 31 24 64 20 25 32 24 73 20 61 6E 64 20 25 33 24 64 20 25 34 24 73 0A 53 54 41 54 55 53 5F 4F 4E 45 5F 4D 41 54 45 52 49 41 4C 3A 20 54 68 65 20 73 68 C3 B8 70 20 63 C3 B8 6E 74 61 69 6E 73 20 25 31 24 64 20 25 32 24 73 0A 43 48 45 53 54 5F 49 4E 56 45 4E 54 4F 52 59 5F 46 55 4C 4C 3A 20 54 68 65 20 73 68 C3 B8 70 20 69 73 20 66 75 6C 6C 0A 43 41 4E 54 5F 55 53 45 3A 20 59 C3 B8 75 20 61 72 65 20 6E C3 B8 74 20 61 6C 6C C3 B8 77 65 64 20 74 C3 B8 20 75 73 65 20 73 68 C3 B8 70 73 0A 42 55 59 5F 52 41 54 45 3A 20 59 C3 B8 75 20 63 61 6E 20 62 75 79 20 25 31 24 64 20 25 32 24 73 20 66 C3 B8 72 20 25 33 24 64 20 25 34 24 73 0A 43 41 4E 54 5F 52 45 4C 4F 41 44 5F 43 4F 4E 46 49 47 3A 20 59 C3 B8 75 20 61 72 65 20 6E C3 B8 74 20 61 6C 6C C3 B8 77 65 64 20 74 C3 B8 20 72 65 6C C3 B8 61 64 20 74 68 65 20 63 C3 B8 6E 66 69 67 75 72 61 74 69 C3 B8 6E 0A 43 4F 4E 46 49 47 5F 52 45 4C 4F 41 44 45 44 3A 20 54 68 65 20 63 C3 B8 6E 66 69 67 75 72 61 74 69 C3 B8 6E 20 68 61 73 20 62 65 65 6E 20 72 65 6C C3 B8 61 64 65 64 0A
target/encoding/UTF8-2
23 20 54 68 69 73 20 69 73 20 6E 6F 74 20 72 65 61 6C 6C 79 20 4E 6F 72 77 65 67 69 61 6E 2E 20 49 20 6A 75 73 74 20 72 65 70 6C 61 63 65 64 20 61 20 6C 6F 74 20 6F 66 20 63 68 61 72 61 63 74 65 72 73 2E 0A 4E 4F 54 5F 45 4E 4F 55 47 48 5F 50 4C 41 59 45 52 5F 49 54 45 4D 53 3A 20 44 75 20 68 61 72 20 69 6B 6B 65 20 6E C3 B8 6B 20 25 31 24 73 0A 53 45 4C 4C 3A 20 44 75 20 73 C3 B8 6C 67 74 65 20 25 31 24 64 20 25 32 24 73 20 66 C3 B8 72 20 25 33 24 64 20 25 34 24 73 0A 53 45 4C 4C 5F 52 41 54 45 3A 20 44 75 20 6B 61 6E 20 73 C3 A6 6C 67 65 20 25 31 24 64 20 25 32 24 73 20 66 C3 B8 72 20 25 33 24 64 20 25 34 24 73 0A 43 41 4E 54 5F 50 4C 41 43 45 5F 43 48 45 53 54 3A 20 44 75 20 68 61 72 20 69 6B 6B 65 20 6C C3 B8 76 20 74 69 6C 20 C3 A5 20 70 6C 61 73 73 65 72 65 20 64 65 6E 6E 65 20 6B 69 73 74 65 6E 0A 44 45 50 4F 53 49 54 3A 20 44 75 20 73 61 74 74 65 20 69 6E 6E 20 25 31 24 64 20 25 32 24 73 20 C3 B8 67 20 25 33 24 64 20 25 34 24 73 0A 57 49 54 48 44 52 41 57 3A 20 44 75 20 74 C3 B8 6B 20 75 74 20 25 31 24 64 20 25 32 24 73 20 C3 B8 67 20 25 33 24 64 20 25 34 24 73 0A 53 54 41 54 55 53 3A 20 42 75 74 69 6B 6B 65 6E 20 69 6E 6E 65 68 C3 B8 6C 64 65 72 20 25 31 24 64 20 25 32 24 73 2C 20 25 33 24 64 20 25 34 24 73 2C 20 C3 B8 67 20 25 35 24 64 20 25 36 24 73 0A 43 41 4E 54 5F 55 53 45 5F 43 48 45 53 54 3A 20 44 75 20 68 61 72 20 69 6B 6B 65 20 6C C3 B8 76 20 74 69 6C 20 C3 A5 20 62 72 75 6B 65 20 64 65 6E 6E 65 20 62 75 74 69 6B 6B 69 73 74 65 6E 2E 0A 43 41 4E 54 5F 42 55 49 4C 44 3A 20 44 75 20 68 61 72 20 69 6B 6B 65 20 6C C3 B8 76 20 74 69 6C 20 C3 A5 20 62 79 67 67 65 20 62 75 74 69 6B 6B 65 72 0A 4E 4F 5F 53 45 4C 4C 3A 20 44 75 20 6B 61 6E 20 69 6B 6B 65 20 73 65 6C 67 65 20 69 20 64 65 6E 6E 65 20 62 75 74 69 6B 6B 65 6E 0A 4E 4F 54 5F 45 4E 4F 55 47 48 5F 50 4C 41 59 45 52 5F 4D 4F 4E 45 59 3A 20 44 75 20 68 61 72 20 69 6B 6B 65 20 6E C3 B8 6B 20 25 31 24 73 0A 43 41 4E 54 5F 42 55 49 4C 44 5F 53 45 52 56 45 52 3A 20 44 75 20 6B 61 6E 20 69 6B 6B 65 20 62 79 67 67 65 20 73 65 72 76 65 72 62 75 74 69 6B 6B 65 72 0A 45 58 49 53 54 49 4E 47 5F 43 48 45 53 54 3A 20 59 C3 B8 75 20 63 61 6E 27 74 20 62 75 69 6C 64 20 61 20 73 68 C3 B8 70 20 C3 B8 76 65 72 20 61 6E 20 65 78 69 73 74 69 6E 67 20 63 68 65 73 74 0A 4E 4F 54 5F 45 4E 4F 55 47 48 5F 53 48 4F 50 5F 4D 4F 4E 45 59 3A 20 54 68 65 20 73 68 C3 B8 70 20 64 C3 B8 65 73 6E 27 74 20 68 61 76 65 20 65 6E C3 B8 75 67 68 20 25 31 24 73 0A 42 55 59 3A 20 59 C3 B8 75 20 62 C3 B8 75 67 68 74 20 25 31 24 64 20 25 32 24 73 20 66 C3 B8 72 20 25 33 24 64 20 25 34 24 73 0A 43 41 4E 54 5F 44 45 53 54 52 4F 59 3A 20 59 C3 B8 75 20 61 72 65 20 6E C3 B8 74 20 61 6C 6C C3 B8 77 65 64 20 74 C3 B8 20 64 65 73 74 72 C3 B8 79 20 74 68 69 73 20 73 68 C3 B8 70 0A 4E 4F 54 5F 45 4E 4F 55 47 48 5F 53 48 4F 50 5F 49 54 45 4D 53 3A 20 54 68 65 20 73 68 C3 B8 70 20 64 C3 B8 65 73 6E 27 74 20 68 61 76 65 20 65 6E C3 B8 75 67 68 20 25 31 24 73 0A 4E 4F 5F 42 55 59 3A 20 59 C3 B8 75 20 63 61 6E 27 74 20 62 75 79 20 61 74 20 74 68 69 73 20 73 68 C3 B8 70 0A 50 4C 41 59 45 52 5F 49 4E 56 45 4E 54 4F 52 59 5F 46 55 4C 4C 3A 20 59 C3 B8 75 72 20 69 6E 76 65 6E 74 C3 B8 72 79 20 69 73 20 66 75 6C 6C 0A 53 54 41 54 55 53 5F 4F 4E 45 5F 43 55 52 52 45 4E 43 59 3A 20 54 68 65 20 73 68 C3 B8 70 20 63 C3 B8 6E 74 61 69 6E 73 20 25 31 24 64 20 25 32 24 73 20 61 6E 64 20 25 33 24 64 20 25 34 24 73 0A 53 54 41 54 55 53 5F 4F 4E 45 5F 4D 41 54 45 52 49 41 4C 3A 20 54 68 65 20 73 68 C3 B8 70 20 63 C3 B8 6E 74 61 69 6E 73 20 25 31 24 64 20 25 32 24 73 0A 43 48 45 53 54 5F 49 4E 56 45 4E 54 4F 52 59 5F 46 55 4C 4C 3A 20 54 68 65 20 73 68 C3 B8 70 20 69 73 20 66 75 6C 6C 0A 43 41 4E 54 5F 55 53 45 3A 20 59 C3 B8 75 20 61 72 65 20 6E C3 B8 74 20 61 6C 6C C3 B8 77 65 64 20 74 C3 B8 20 75 73 65 20 73 68 C3 B8 70 73 0A 42 55 59 5F 52 41 54 45 3A 20 59 C3 B8 75 20 63 61 6E 20 62 75 79 20 25 31 24 64 20 25 32 24 73 20 66 C3 B8 72 20 25 33 24 64 20 25 34 24 73 0A 43 41 4E 54 5F 52 45 4C 4F 41 44 5F 43 4F 4E 46 49 47 3A 20 59 C3 B8 75 20 61 72 65 20 6E C3 B8 74 20 61 6C 6C C3 B8 77 65 64 20 74 C3 B8 20 72 65 6C C3 B8 61 64 20 74 68 65 20 63 C3 B8 6E 66 69 67 75 72 61 74 69 C3 B8 6E 0A 43 4F 4E 46 49 47 5F 52 45 4C 4F 41 44 45 44 3A 20 54 68 65 20 63 C3 B8 6E 66 69 67 75 72 61 74 69 C3 B8 6E 20 68 61 73 20 62 65 65 6E 20 72 65 6C C3 B8 61 64 65 64 0A

Step 1:

Put both file1.yml.b64 and file2.yml.b64 into src/test/resources/org/bukkit/encoding

Step 2:

Put the UTF8Test.java file into src/test/java/org/bukkit/encoding

Step 3:

Run maven tests, and examine the target/encoding folder. It will include files with .log (examples are shown here) along with appropriate output files.

Step 4:

Add your own UTF8-encoded file to src/text/resources/org/bukkit/encoding, along with the appropriate line entry (around line 51) into UTF8Test.java. If the file is already encoded into base-64, you may add .b64 to the extension, but omit the extension in the java file entry.

Step 5:

Run maven again. If the encoding folder has anomalies, then provide us with the .b64 and .log file it provided.

Notes:

The log entry and folder names will display your system's default encoding (the one that Bukkit will use for yaml files, however spec-breaking that is). This is likely the biggest issue with encodings: a huge got-ya.

package org.bukkit.encoding;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.nio.charset.Charset;
import java.util.Arrays;
import java.util.List;
import org.bukkit.configuration.file.YamlConfiguration;
import org.junit.After;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameter;
import org.junit.runners.Parameterized.Parameters;
import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder;
import com.google.common.io.ByteStreams;
import com.google.common.io.Files;
@RunWith(Parameterized.class)
public class UTF8Test {
private static final String COMMON_DIR = "target/encoding";
private static final String DEFAULT_DIR = COMMON_DIR + "/default-" + Charset.defaultCharset().name();
private static final String DEFAULT_2_DIR = COMMON_DIR + "/default-2-" + Charset.defaultCharset().name();
private static final String UTF8_DIR = COMMON_DIR + "/UTF8";
private static final String UTF8_2_DIR = COMMON_DIR + "/UTF8-2";
private static final String EXT_64 = ".b64";
private static final String EXT_LOG = ".log";
private static final String UTF8 = "UTF8";
private static final String[] DIRS = new String[] { DEFAULT_DIR, DEFAULT_2_DIR, UTF8_DIR, UTF8_2_DIR };
private static final char[] chars = new char[16];
static {
int i = 0;
for (char c = '0'; c <= '9'; c++) {
chars[i++] = c;
}
for (char c = 'A'; c <= 'F'; c++) {
chars[i++] = c;
}
}
@Parameters
public static List<Object[]> data() {
return Arrays.asList(
new Object[] {"file1.yml"},
new Object[] {"file2.yml"}
// TODO - add your own filenames here
);
}
@BeforeClass
public static void initFolder() {
for (String dir : DIRS) {
new File(dir).mkdirs();
}
}
private String readEncodedFileToNormalString() throws Throwable {
InputStream stream = null;
try {
stream = this.getClass().getResourceAsStream(fileName + EXT_64);
if (stream == null) {
stream = this.getClass().getResourceAsStream(fileName);
if (stream == null) {
throw new AssertionError(fileName + " not found");
}
return new String(ByteStreams.toByteArray(stream), UTF8);
} else {
String base64 = new String(ByteStreams.toByteArray(stream), UTF8);
return new String(Base64Coder.decodeLines(base64), UTF8);
}
} finally {
if (stream != null) {
try {
stream.close();
} catch (IOException ex) {
// NOOP
}
}
}
}
@Parameter
public String fileName;
@Test
public void testFile() throws Throwable {
String file = readEncodedFileToNormalString();
Files.write(Base64Coder.encodeLines(file.getBytes(UTF8)), new File(COMMON_DIR + "/" + fileName + EXT_64), Charset.forName(UTF8));
YamlConfiguration yaml = new YamlConfiguration();
yaml.loadFromString(file);
yaml.save(DEFAULT_DIR + "/" + fileName);
Files.write(yaml.saveToString().getBytes(UTF8), new File(UTF8_DIR + "/" + fileName));
yaml = new YamlConfiguration();
yaml.load(new File(DEFAULT_DIR + "/" + fileName));
yaml.save(new File(DEFAULT_2_DIR + "/" + fileName));
Files.write(yaml.saveToString().getBytes(UTF8), new File(UTF8_2_DIR + "/" + fileName));
}
@After
public void compare() throws Throwable {
PrintWriter out = new PrintWriter(new File(COMMON_DIR + "/" + fileName + EXT_LOG), UTF8);
out.println(fileName);
StringBuilder hexString = new StringBuilder();
for (String dir : DIRS) {
hexString.delete(0, Integer.MAX_VALUE);
for (byte b : Files.toByteArray(new File(dir + "/" + fileName))) {
hexString.append(chars[(0xF0 & b) >> 4]).append(chars[0xF & b]).append(' ');
}
out.println(dir);
out.println(hexString);
}
out.close();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment