-
Notifications
You must be signed in to change notification settings - Fork 249
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support zstd-compressed ELF sections. #626
Conversation
This itself will also wait for a bit due to dependency chains. I would rather not have two syns in my dependency tree, so I will be waiting for a version with KillingSpark/zstd-rs#60 |
It also needs rustc-dep-of-std support, right? |
hmm probably. |
.github/workflows/main.yml
Outdated
- run: cargo test | ||
if: contains(matrix.os, 'ubuntu-24.04') | ||
env: | ||
RUSTFLAGS: "-C link-arg=-Wl,--compress-debug-sections=zstd" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
see #627
- os: ubuntu-24.04 | ||
rust: stable | ||
- os: ubuntu-24.04 | ||
rust: beta | ||
- os: ubuntu-24.04 | ||
rust: nightly |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hmm, why are we bumping this? I kinda think we should just bump ahead to a recent ubuntu if we gotta?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
--compress-debug-sections=zstd is only available in the binutils/etc that ships with 24.04, not with 20.04 or 22.04.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And no chance of installing that stuff on ubuntu 20 without exploding the world, huh?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would be scared to try :)
If rust-lld propagates out to the stable branches I think it'll just work there though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh cool. Can you give that a whirl against our CI for nightly + ubuntu 20.04, then?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like that's rust-lang/rust#120953
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
huh.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
...wait, can we just install lld and test with that or something? (not sure if that actually works out with all the versions involved...)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
rust-lang/rust#125642 is also good lmao.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
According to rust-lang/rust#124129 we can just use -Zlinker-features=-lld
but I feel like rust-lld should be fixed.
.github/workflows/main.yml
Outdated
# Starting with Ubuntu 22.04 libc6-dbg is needed. | ||
- name: Install libc debug info | ||
run: sudo apt-get install -y libc6-dbg | ||
shell: bash |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
which would make this unconditional.
match header.ch_type(self.endian) { | ||
ELFCOMPRESS_ZLIB => { | ||
let size = usize::try_from(header.ch_size(self.endian)).ok()?; | ||
let buf = stash.allocate(size); | ||
decompress_zlib(data.0, buf)?; | ||
return Some(buf); | ||
} | ||
ELFCOMPRESS_ZSTD => { | ||
let size = usize::try_from(header.ch_size(self.endian)).ok()?; | ||
let buf = stash.allocate(size); | ||
decompress_zstd(data.0, buf)?; | ||
return Some(buf); | ||
} | ||
_ => return None, // Unknown compression type. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, the actual implementation seems basically fine.
It's also ever-so-slightly nicer to be able to submit PRs to a Rust crate if I want their code to operate differently somehow (run faster, jump higher, whatever) rather than have to also dive into a tangled pile of C, y'know? |
Personally I'd take the dependency that's professionally maintained and used by everyone else on the planet but it's not my crate. |
Alas, no one is really paying for professional maintenance of backtrace-rs, unfortunately. |
Bleh, the new ruzstd also took an MSRV of 1.73.0. I don't suppose backtrace-rs could match that? |
|
Yes, we can raise MSRV as high as 1.78 if we need to. |
So it seems like in order for CI in this repository to pass rustc's library/std/Cargo.toml needs to be updated too ... |
huh. |
library/std does deeply sketchy things to build library/backtrace https://github.com/rust-lang/rust/blob/a60a9e567a7319b33619f6551dc29522c6f58687/library/std/src/lib.rs#L668. library/backtrace/Cargo.toml doesn't actually control building of backtrace-rs when it's built as part of rustc as a result. |
Right. Hm. |
I wonder if that's actually a requirement anymore... |
Answer is yes. |
@khuey Resolve the merge conflicts, please, and I will do what I must. I do not want to publish versions of this crate that do not pass CI, and I cannot allow rust-lang/rust to break its CI, obviously, but I have the power to do what must be done to make this crate compile in rust-lang/rust and will make it happen. |
39706c7
to
45dc6bd
Compare
Alright, done. |
I begin to absolutely despise how std defines |
Right, so, the current problem, and this was going to be an issue with both the C-based zstd crate, and the ruzstd crate, is that the crate in question needs to participate in the horrible abomination that backtrace does if it's going to use types from std, including, say, std::io::Read. This is a pretty invasive change and imo pretty unreasonable to ask anyone. |
Is the problem that |
@KillingSpark It seems that your decompressor either was incomplete or has become incomplete sometime in the last few zstd releases. That or we are somehow holding it wrong, which seems doubtful. |
I'll have a look |
Update: Running I already did some light fiddling around to see if anything else is fishy. The zstd codepath is taken and the decoder produces the correct amount of bytes. Running that same line against the master branch does produce the same error as in the CI though. Can you confirm these findings? Especially that the tests do run fine locally? I need to do something else for a few hours but I'll investigate this further later today |
For stable rust, everything works as expected. The test on master fails because it lacks the zstd support added in this PR, but gimli's dwarfdump can read the test executable, and I've verified the ELF sections are zstd compressed. For nightly rust, tests fail and unpatched gimli dwarfdump fails. |
Hi, so I'm pretty sure this is a bug in how the elf metadata is encoded. The original and my library agree on what the decoded bytes should look like. The elf header says it should amount to 107961 bytes but both implementations decode only 107747. The test below fails on the last line saying:
#[test]
fn test_stuff() {
let mut src = [...]; // Insert bytes here, I have put them into the details below so this stays readable
let expected = zstd::stream::decode_all(src).unwrap();
let mut decoder = crate::FrameDecoder::new();
decoder.init(&mut src).unwrap();
decoder.decode_blocks(&mut src, crate::BlockDecodingStrategy::All);
let output = decoder.collect().unwrap();
assert!(decoder.is_finished());
assert_eq!(output, expected);
assert_eq!(107961, output.len(), "Was: {} expected: {}, elf said: {}", output.len(), expected.len(), 107961);
} Is it possible that there is a regression in this part of rustc?
let mut src: &[u8] = &[
40, 181, 47, 253, 160, 227, 164, 1, 0, 13, 133, 2, 58, 52, 201, 51, 51, 208, 70, 102, 118,
198, 33, 87, 51, 200, 234, 96, 68, 174, 6, 179, 172, 56, 46, 93, 66, 136, 192, 37, 37, 100,
102, 89, 186, 185, 187, 174, 207, 110, 50, 18, 1, 12, 100, 102, 178, 251, 46, 47, 98, 5,
140, 200, 1, 133, 76, 1, 59, 3, 56, 3, 9, 3, 135, 114, 115, 204, 252, 70, 21, 152, 29, 191,
198, 49, 217, 181, 157, 90, 54, 145, 68, 32, 15, 198, 66, 113, 204, 137, 145, 40, 196, 105,
225, 220, 120, 45, 148, 154, 54, 131, 185, 88, 218, 206, 74, 11, 47, 223, 89, 163, 156, 5,
241, 195, 113, 55, 142, 125, 211, 40, 49, 155, 72, 34, 119, 44, 48, 23, 75, 69, 190, 123,
236, 148, 180, 223, 224, 124, 251, 213, 185, 248, 29, 194, 115, 177, 84, 100, 23, 179, 75,
87, 103, 130, 50, 105, 191, 242, 226, 211, 40, 109, 103, 108, 225, 204, 160, 140, 64, 222,
50, 190, 184, 2, 243, 81, 39, 83, 137, 52, 18, 125, 236, 113, 199, 211, 248, 175, 88, 186,
227, 182, 31, 202, 71, 139, 109, 80, 126, 236, 233, 112, 54, 158, 38, 211, 194, 99, 46,
149, 75, 155, 18, 37, 145, 123, 142, 55, 24, 11, 5, 230, 68, 204, 98, 196, 67, 20, 2, 125,
60, 157, 111, 227, 101, 48, 23, 75, 69, 182, 157, 29, 215, 194, 185, 105, 148, 152, 181,
247, 38, 144, 39, 12, 140, 226, 247, 241, 124, 211, 222, 243, 52, 152, 139, 53, 74, 204,
38, 146, 136, 33, 15, 199, 255, 6, 99, 193, 154, 43, 21, 66, 10, 21, 79, 158, 75, 164, 143,
68, 237, 189, 208, 235, 233, 156, 227, 77, 107, 239, 154, 12, 230, 98, 121, 199, 125, 131,
143, 150, 180, 247, 34, 16, 63, 90, 40, 29, 239, 60, 153, 74, 164, 81, 11, 47, 98, 133, 14,
250, 104, 158, 14, 103, 227, 105, 50, 209, 210, 113, 155, 214, 58, 70, 32, 126, 56, 204,
88, 216, 156, 31, 9, 195, 163, 78, 166, 54, 126, 37, 147, 70, 22, 133, 64, 239, 156, 243,
205, 61, 205, 51, 152, 95, 218, 78, 217, 113, 91, 11, 165, 70, 137, 217, 68, 18, 129, 60,
28, 111, 48, 22, 10, 204, 137, 136, 129, 209, 64, 219, 21, 192, 42, 145, 70, 162, 16, 232,
138, 13, 74, 79, 219, 217, 225, 180, 80, 110, 90, 56, 61, 77, 6, 115, 177, 84, 186, 2, 106,
217, 113, 222, 180, 83, 98, 54, 177, 36, 98, 27, 254, 13, 198, 66, 129, 57, 145, 181, 19,
137, 31, 118, 188, 193, 88, 252, 127, 226, 35, 81, 8, 244, 105, 227, 231, 233, 216, 211,
180, 210, 149, 193, 248, 98, 105, 225, 172, 180, 157, 210, 215, 56, 5, 160, 132, 60, 28,
237, 227, 13, 198, 34, 70, 56, 222, 96, 180, 174, 200, 142, 219, 180, 137, 196, 145, 214,
241, 6, 163, 31, 232, 227, 233, 180, 157, 156, 141, 167, 201, 96, 46, 150, 22, 202, 138,
165, 59, 115, 222, 180, 83, 62, 81, 120, 154, 12, 230, 98, 105, 227, 39, 59, 110, 211, 40,
143, 143, 17, 210, 213, 25, 129, 60, 28, 140, 133, 66, 147, 193, 92, 44, 174, 92, 118, 109,
252, 184, 173, 149, 174, 107, 237, 189, 162, 40, 49, 155, 64, 30, 14, 233, 242, 253, 105,
59, 61, 29, 206, 198, 211, 100, 56, 76, 11, 229, 197, 22, 87, 218, 168, 146, 29, 247, 216,
194, 103, 147, 246, 158, 36, 2, 241, 195, 142, 55, 24, 11, 69, 228, 2, 49, 80, 81, 66, 30,
32, 70, 192, 132, 52, 64, 49, 191, 88, 62, 217, 113, 91, 219, 169, 181, 112, 82, 98, 54,
145, 68, 32, 15, 199, 27, 140, 133, 162, 149, 46, 108, 161, 48, 214, 218, 79, 252, 41, 212,
169, 61, 132, 199, 212, 94, 225, 193, 137, 17, 221, 148, 218, 24, 1, 33, 105, 212, 40, 10,
129, 252, 177, 199, 29, 115, 54, 92, 1, 181, 167, 201, 180, 247, 48, 191, 88, 42, 44, 201,
41, 16, 85, 16, 211, 177, 184, 111, 215, 90, 74, 108, 165, 43, 107, 59, 39, 101, 73, 90,
248, 8, 164, 133, 243, 209, 126, 229, 104, 161, 124, 219, 104, 191, 65, 201, 104, 37, 171,
143, 69, 27, 53, 56, 21, 152, 89, 254, 32, 170, 59, 23, 129, 11, 176, 182, 246, 90, 27, 85,
93, 1, 53, 165, 253, 0, 92, 128, 19, 0, 203, 224, 36, 170, 32, 38, 58, 107, 227, 55, 105,
177, 25, 35, 26, 145, 180, 17, 72, 139, 205, 200, 195, 81, 191, 133, 24, 136, 17, 77, 53,
206, 104, 99, 68, 189, 104, 165, 75, 209, 126, 245, 133, 8, 92, 32, 70, 64, 12, 244, 129,
181, 17, 184, 192, 87, 63, 196, 0, 140, 110, 189, 24, 97, 78, 129, 182, 255, 33, 32, 6,
234, 113, 27, 35, 186, 2, 234, 68, 123, 135, 55, 64, 12, 64, 16, 208, 29, 192, 50, 56, 129,
40, 3, 45, 196, 0, 100, 40, 160, 197, 50, 56, 129, 88, 56, 9, 196, 128, 35, 228, 3, 39, 48,
22, 213, 109, 248, 68, 252, 80, 241, 11, 113, 14, 167, 38, 83, 145, 29, 183, 217, 145, 95,
186, 140, 57, 113, 91, 118, 220, 166, 81, 176, 12, 230, 98, 217, 198, 79, 179, 227, 39,
121, 56, 26, 118, 35, 97, 213, 17, 82, 168, 147, 73, 243, 52, 25, 107, 45, 60, 197, 209,
155, 246, 6, 3, 155, 78, 220, 70, 253, 215, 22, 180, 213, 20, 180, 80, 75, 128, 224, 192,
11, 226, 225, 174, 22, 155, 14, 13, 102, 112, 171, 237, 76, 184, 17, 80, 167, 104, 42, 145,
70, 162, 86, 186, 14, 250, 248, 135, 183, 220, 147, 49, 155, 72, 32, 138, 152, 77, 36, 93,
40, 176, 59, 1, 143, 144, 66, 157, 76, 37, 210, 72, 116, 79, 243, 85, 69, 122, 179, 89,
145, 31, 106, 15, 174, 54, 126, 14, 13, 12, 11, 10, 173, 39, 204, 182, 115, 213, 194, 169,
66, 72, 161, 90, 40, 79, 38, 151, 224, 165, 203, 158, 14, 199, 27, 99, 46, 150, 202, 55,
205, 20, 199, 76, 226, 7, 227, 255, 57, 239, 252, 229, 102, 255, 127, 54, 145, 216, 199,
52, 45, 148, 153, 246, 23, 75, 69, 118, 148, 199, 204, 17, 67, 30, 14, 55, 48, 44, 40, 180,
18, 206, 98, 205, 175, 254, 148, 169, 68, 234, 20, 133, 90, 56, 65, 31, 79, 11, 101, 135,
179, 241, 142, 185, 200, 206, 154, 255, 75, 34, 118, 180, 134, 103, 120, 113, 111, 65, 161,
149, 192, 154, 55, 189, 212, 158, 52, 18, 133, 156, 241, 238, 193, 41, 91, 248, 78, 187,
165, 107, 241, 131, 62, 30, 111, 188, 54, 126, 154, 12, 230, 98, 169, 72, 141, 18, 179,
137, 37, 118, 216, 131, 199, 156, 248, 66, 145, 192, 82, 161, 78, 166, 18, 41, 100, 144,
63, 173, 59, 230, 104, 50, 152, 255, 231, 224, 53, 202, 87, 103, 161, 78, 166, 18, 9, 206,
79, 11, 165, 167, 195, 201, 220, 143, 246, 127, 155, 225, 233, 112, 54, 240, 206, 216, 166,
68, 20, 213, 100, 108, 141, 226, 123, 63, 102, 142, 50, 105, 225, 37, 94, 40, 48, 39, 70,
22, 133, 142, 205, 142, 151, 177, 202, 226, 31, 202, 172, 133, 247, 61, 5, 230, 104, 56,
129, 205, 72, 252, 191, 65, 51, 22, 9, 120, 16, 103, 83, 145, 92, 54, 185, 228, 17, 59,
254, 54, 170, 26, 86, 24, 179, 29, 26, 24, 190, 112, 133, 183, 18, 218, 248, 177, 230, 74,
133, 144, 66, 117, 154, 74, 164, 17, 124, 8, 244, 81, 108, 210, 211, 100, 42, 150, 142,
206, 38, 18, 71, 124, 8, 2, 186, 2, 34, 112, 1, 59, 188, 33, 70, 172, 58, 156, 141, 215,
118, 106, 50, 152, 203, 101, 247, 205, 17, 67, 30, 237, 207, 106, 208, 198, 143, 193, 130,
43, 72, 208, 194, 137, 224, 64, 11, 255, 106, 59, 33, 218, 63, 216, 229, 208, 192, 224, 5,
5, 183, 90, 39, 156, 117, 67, 4, 167, 74, 23, 125, 60, 29, 13, 115, 169, 200, 142, 219,
218, 123, 166, 184, 149, 192, 154, 171, 171, 16, 226, 119, 34, 29, 202, 16, 8, 222, 156,
141, 237, 223, 82, 185, 252, 118, 136, 223, 96, 176, 230, 170, 141, 159, 10, 33, 117, 83,
105, 36, 10, 129, 90, 233, 146, 46, 142, 55, 158, 47, 173, 236, 156, 53, 74, 26, 137, 66,
160, 15, 199, 156, 39, 93, 23, 203, 181, 83, 98, 214, 66, 57, 105, 225, 148, 64, 38, 27,
79, 147, 193, 92, 44, 156, 227, 237, 226, 93, 2, 115, 177, 84, 218, 232, 120, 227, 247,
183, 48, 148, 156, 141, 167, 177, 84, 46, 189, 101, 159, 252, 143, 47, 220, 113, 155, 22,
31, 14, 70, 231, 133, 179, 205, 249, 158, 198, 23, 75, 81, 91, 54, 145, 68, 22, 10, 77, 11,
159, 249, 31, 191, 59, 123, 56, 222, 96, 168, 16, 218, 248, 165, 80, 37, 210, 200, 30, 119,
56, 27, 123, 93, 11, 39, 183, 65, 73, 105, 191, 69, 32, 127, 163, 229, 22, 10, 204, 141,
78, 20, 2, 125, 60, 29, 207, 24, 163, 184, 63, 222, 126, 131, 177, 80, 136, 66, 30, 119,
56, 173, 116, 109, 126, 177, 84, 100, 199, 109, 218, 41, 209, 153, 39, 146, 55, 236, 159,
53, 191, 82, 25, 129, 149, 66, 253, 100, 122, 169, 141, 31, 9, 155, 162, 16, 232, 227, 145,
46, 219, 150, 202, 61, 9, 19, 112, 110, 227, 52, 74, 123, 47, 107, 161, 237, 56, 148, 149,
45, 102, 19, 73, 4, 242, 112, 144, 64, 159, 205, 127, 99, 46, 183, 184, 227, 20, 112, 230,
7, 105, 212, 198, 15, 244, 241, 116, 90, 56, 57, 109, 167, 141, 169, 4, 10, 173, 246, 222,
60, 130, 71, 162, 135, 56, 127, 167, 111, 41, 97, 205, 149, 85, 79, 161, 92, 50, 233, 55,
72, 229, 249, 226, 156, 205, 61, 40, 237, 55, 24, 247, 143, 242, 13, 231, 15, 207, 93, 186,
238, 96, 216, 126, 10, 117, 50, 149, 72, 33, 208, 199, 158, 14, 6, 206, 27, 99, 60, 241,
191, 170, 141, 45, 20, 91, 98, 133, 226, 111, 48, 22, 10, 204, 78, 120, 242, 55, 24, 95,
153, 97, 39, 204, 154, 43, 213, 201, 170, 146, 69, 191, 89, 183, 89, 222, 34, 16, 56, 207,
114, 137, 4, 165, 109, 103, 140, 249, 255, 127, 149, 178, 79, 185, 51, 238, 172, 69, 238,
132, 51, 99, 112, 222, 94, 88, 145, 176, 116, 220, 38, 97, 2, 36, 39, 141, 68, 33, 208,
109, 233, 44, 105, 252, 254, 63, 158, 47, 99, 204, 197, 126, 226, 166, 151, 72, 15, 121,
58, 151, 49, 83, 96, 78, 252, 118, 194, 159, 38, 127, 43, 160, 252, 118, 195, 99, 46, 210,
127, 130, 235, 184, 255, 170, 198, 25, 139, 195, 219, 190, 228, 129, 165, 80, 39, 83, 137,
52, 18, 133, 60, 63, 156, 210, 117, 185, 246, 79, 36, 17, 200, 223, 96, 216, 254, 234, 67,
72, 161, 78, 166, 95, 20, 50, 199, 150, 153, 125, 51, 252, 109, 141, 209, 167, 189, 239,
201, 27, 222, 255, 183, 117, 98, 87, 104, 57, 193, 172, 95, 133, 144, 66, 137, 66, 32, 251,
219, 120, 158, 240, 26, 229, 219, 231, 248, 39, 228, 209, 196, 55, 31, 230, 82, 145, 157,
111, 27, 26, 116, 108, 110, 156, 185, 191, 105, 166, 248, 54, 196, 246, 27, 226, 231, 195,
171, 224, 52, 221, 251, 61, 79, 115, 159, 99, 220, 246, 223, 120, 226, 247, 183, 251, 30,
227, 11, 144, 55, 158, 166, 139, 178, 243, 37, 191, 29, 13, 165, 130, 59, 37, 94, 225, 127,
157, 185, 206, 133, 66, 18, 193, 102, 3, 178, 236, 145, 69, 182, 5, 78, 5, 198, 41, 240,
149, 175, 50, 235, 211, 171, 255, 62, 181, 81, 101, 42, 145, 28, 191, 204, 13, 109, 134,
39, 109, 227, 11, 219, 159, 116, 137, 218, 206, 16, 7, 250, 156, 115, 255, 149, 115, 222,
172, 81, 238, 121, 98, 67, 30, 138, 196, 127, 204, 197, 114, 251, 106, 161, 192, 30, 157,
148, 22, 202, 99, 241, 254, 197, 223, 78, 121, 164, 253, 255, 197, 198, 211, 200, 107, 182,
239, 114, 104, 96, 88, 80, 232, 16, 82, 168, 206, 82, 11, 39, 201, 211, 225, 108, 50, 246,
43, 151, 183, 93, 225, 254, 9, 99, 161, 112, 226, 27, 228, 140, 31, 123, 230, 227, 54, 71,
20, 178, 227, 20, 91, 204, 236, 31, 212, 185, 214, 57, 31, 249, 11, 162, 141, 159, 203,
161, 129, 97, 33, 97, 174, 82, 55, 117, 146, 66, 160, 12, 230, 168, 111, 182, 237, 47, 156,
48, 234, 100, 147, 75, 164, 145, 40, 4, 250, 252, 150, 138, 252, 41, 49, 243, 68, 18, 129,
248, 87, 69, 254, 127, 161, 240, 188, 167, 105, 253, 139, 165, 34, 53, 205, 198, 44, 220,
166, 61, 251, 29, 185, 25, 188, 208, 194, 43, 28, 33, 133, 58, 157, 4, 37, 168, 237, 252,
156, 227, 105, 126, 241, 127, 238, 155, 70, 177, 39, 15, 248, 11, 247, 103, 151, 126, 56,
222, 88, 89, 213, 198, 47, 100, 123, 247, 164, 237, 200, 226, 239, 180, 67, 30, 255, 21,
79, 36, 156, 213, 198, 111, 174, 84, 8, 39, 155, 74, 22, 133, 44, 93, 239, 112, 174, 185,
216, 150, 44, 20, 216, 199, 154, 168, 178, 13, 73, 28, 158, 179, 241, 52, 242, 135, 248,
140, 83, 11, 111, 42, 121, 58, 156, 141, 74, 147, 49, 230, 63, 247, 45, 218, 225, 123, 190,
233, 180, 220, 112, 74, 87, 54, 145, 68, 238, 3, 47, 67, 60, 252, 13, 109, 140, 96, 88, 80,
104, 89, 133, 144, 66, 181, 247, 224, 44, 141, 68, 240, 29, 91, 118, 156, 35, 144, 85, 131,
177, 176, 112, 219, 89, 217, 127, 6, 230, 16, 232, 195, 250, 42, 220, 118, 119, 236, 105,
96, 165, 209, 190, 67, 109, 252, 60, 254, 53, 63, 155, 72, 254, 198, 23, 156, 223, 255,
183, 106, 217, 228, 142, 135, 64, 31, 15, 247, 108, 114, 223, 11, 43, 30, 254, 61, 240,
207, 96, 46, 150, 138, 236, 184, 77, 163, 36, 2, 109, 239, 201, 151, 191, 40, 70, 33, 81,
21, 131, 221, 18, 21, 196, 36, 218, 142, 189, 214, 25, 95, 44, 190, 74, 2, 121, 27, 142,
170, 251, 127, 105, 111, 89, 2, 177, 138, 225, 69, 123, 197, 111, 223, 138, 1, 184, 149,
47, 217, 118, 237, 57, 74, 156, 68, 84, 126, 27, 237, 61, 5, 102, 187, 26, 90, 91, 193,
173, 175, 156, 242, 201, 166, 146, 45, 95, 159, 214, 222, 188, 94, 198, 92, 42, 127, 43,
170, 108, 138, 127, 135, 127, 134, 255, 97, 83, 133, 96, 155, 94, 250, 69, 190, 37, 132,
95, 3, 195, 130, 130, 59, 231, 234, 254, 75, 255, 15, 231, 198, 14, 187, 147, 52, 250, 199,
211, 100, 46, 255, 207, 93, 98, 47, 12, 104, 227, 247, 32, 194, 193, 215, 64, 129, 124, 29,
104, 255, 234, 124, 112, 73, 151, 21, 90, 78, 96, 77, 21, 194, 201, 164, 63, 4, 250, 28,
115, 87, 44, 59, 219, 15, 198, 3, 254, 190, 44, 167, 249, 247, 84, 85, 28, 179, 91, 191,
197, 105, 223, 114, 198, 242, 114, 247, 22, 215, 30, 182, 162, 234, 170, 59, 108, 198, 226,
10, 172, 189, 151, 232, 1, 208, 198, 47, 129, 35, 208, 198, 239, 0, 3, 30, 124, 13, 24, 44,
48, 196, 67, 43, 93, 111, 249, 95, 57, 117, 50, 149, 124, 79, 135, 99, 251, 101, 249, 58,
131, 52, 18, 133, 64, 223, 198, 211, 252, 103, 124, 225, 183, 40, 1, 4, 14, 48, 224, 193,
35, 28, 124, 110, 192, 96, 193, 235, 222, 131, 116, 89, 193, 103, 77, 251, 127, 69, 182,
206, 34, 144, 5, 10, 46, 95, 242, 245, 130, 103, 104, 37, 176, 230, 255, 95, 245, 123, 118,
118, 31, 33, 126, 14, 153, 227, 141, 61, 95, 114, 155, 53, 207, 149, 10, 33, 245, 91, 20,
186, 141, 249, 127, 1, 4, 0, 0, 9, 32, 112, 128, 1, 157, 17, 14, 190, 6, 247, 12, 103, 2,
4, 15, 237, 29, 190, 160, 208, 74, 104, 161, 100, 217, 182, 169, 244, 26, 201, 87, 140,
184, 124, 89, 42, 87, 57, 218, 240, 119, 240, 89, 65, 2, 4, 7, 94, 135, 120, 112, 117, 54,
180, 112, 50, 220, 62, 196, 92, 42, 150, 240, 191, 124, 53, 24, 126, 182, 112, 174, 84, 79,
29, 117, 114, 137, 100, 131, 238, 91, 222, 113, 142, 63, 192, 6, 252, 65, 68, 107, 7, 255,
220, 128, 193, 119, 0, 54, 40, 180, 88, 211, 41, 212, 67, 215, 216, 226, 203, 151, 237,
120, 131, 241, 6, 12, 90, 47, 80, 224, 4, 8, 22, 172, 224, 86, 194, 239, 151, 110, 219,
195, 217, 24, 245, 200, 25, 46, 93, 172, 86, 186, 72, 33, 95, 227, 87, 110, 73, 68, 27,
191, 151, 124, 253, 193, 161, 129, 161, 149, 96, 27, 254, 100, 31, 228, 177, 237, 115, 167,
68, 6, 131, 5, 87, 144, 0, 193, 129, 191, 106, 134, 5, 5, 150, 89, 44, 132, 143, 124, 79,
167, 229, 124, 227, 25, 115, 241, 37, 247, 231, 248, 41, 72, 128, 224, 128, 31, 238, 114,
104, 248, 66, 123, 207, 240, 159, 43, 21, 66, 170, 133, 19, 229, 147, 93, 34, 141, 90, 249,
114, 200, 29, 183, 105, 148, 55, 24, 139, 175, 193, 25, 180, 241, 91, 160, 192, 9, 16, 196,
15, 226, 161, 225, 12, 45, 252, 130, 66, 43, 97, 117, 213, 17, 82, 168, 147, 109, 95, 243,
138, 60, 229, 49, 155, 72, 14, 48, 224, 65, 27, 191, 8, 7, 8, 218, 206, 3, 47, 136, 135,
246, 30, 60, 67, 107, 59, 161, 253, 231, 87, 237, 189, 211, 77, 242, 117, 86, 39, 95, 242,
213, 225, 24, 5, 39, 230, 155, 70, 137, 217, 27, 127, 208, 128, 193, 2, 5, 9, 126, 191, 32,
30, 92, 14, 157, 11, 10, 231, 90, 78, 88, 193, 105, 147, 75, 182, 221, 109, 50, 24, 40, 45,
221, 23, 40, 104, 227, 151, 0, 193, 129, 23, 196, 131, 203, 161, 161, 237, 100, 104, 23,
90, 56, 21, 90, 248, 4, 207, 149, 170, 189, 233, 36, 255, 119, 229, 255, 74, 0, 15, 64, 27,
63, 0, 56, 1, 4, 126, 64, 27, 63, 3, 30, 68, 56, 248, 222, 224, 12, 22, 180, 157, 10, 18,
32, 120, 181, 135, 120, 112, 121, 158, 66, 43, 161, 149, 175, 217, 202, 215, 42, 133, 178,
124, 217, 161, 95, 186, 228, 246, 248, 23, 14, 13, 12, 95, 248, 163, 42, 129, 53, 87, 255,
173, 217, 204, 77, 252, 31, 96, 192, 131, 8, 59, 104, 227, 247, 53, 96, 176, 64, 129, 19,
180, 8, 14, 188, 32, 252, 96, 151, 67, 195, 25, 90, 249, 146, 47, 233, 138, 17, 1, 160, 4,
168, 100, 177, 91, 149, 169, 1, 0, 0, 8, 4, 5, 1, 147, 20, 8, 64, 32, 24, 22, 22, 144, 102,
138, 38, 233, 14, 20, 0, 21, 39, 74, 24, 130, 64, 120, 68, 76, 156, 138, 101, 66, 146, 162,
48, 99, 140, 49, 134, 33, 131, 0, 0, 140, 204, 204, 68, 1, 208, 53, 170, 69, 94, 169, 174,
221, 163, 65, 248, 116, 9, 99, 86, 100, 70, 76, 54, 248, 64, 83, 91, 105, 15, 141, 207, 59,
62, 72, 35, 252, 233, 126, 17, 139, 239, 121, 208, 7, 217, 206, 161, 77, 93, 44, 92, 61,
104, 19, 76, 221, 65, 83, 110, 133, 70, 88, 162, 174, 158, 215, 77, 13, 103, 246, 52, 112,
71, 177, 230, 174, 198, 108, 197, 43, 158, 235, 148, 92, 105, 190, 108, 150, 72, 51, 23,
129, 206, 159, 137, 177, 246, 197, 90, 58, 11, 63, 15, 140, 42, 74, 255, 67, 208, 143, 220,
80, 217, 7, 217, 43, 120, 104, 138, 193, 178, 122, 181, 172, 187, 41, 247, 184, 222, 124,
167, 124, 194, 73, 104, 216, 81, 146, 149, 242, 214, 120, 42, 136, 99, 125, 148, 178, 115,
146, 215, 250, 80, 242, 88, 160, 141, 18, 106, 33, 43, 213, 133, 144, 6, 73, 154, 123, 185,
20, 165, 241, 145, 12, 245, 94, 12, 2, 65, 3, 253, 130, 235, 213, 128, 128, 119, 205, 196,
248, 200, 231, 25, 175, 190, 196, 197, 170, 22, 199, 157, 38, 0, 36, 243, 207, 72, 95, 157,
89, 144, 226, 19, 132, 205, 46, 49, 153, 134, 97, 170, 200, 83, 116, 39, 22, 160, 166, 139,
166, 88, 168, 25, 164, 248, 40, 99, 86, 245, 71, 19, 29, 130, 138, 47, 76, 133, 82, 158, 5,
141, 64, 62, 104, 63, 100, 117, 125, 244, 55, 8, 168, 141, 225, 198, 246, 135, 52, 235, 33,
99, 235, 212, 205, 43, 78, 128, 146, 219, 2, 247, 26, 70, 113, 50, 209, 239, 240, 159, 252,
63, 184, 182, 70, 98, 18, 248, 233, 166, 157, 211, 64, 57, 192, 38, 176, 175, 91, 120, 118,
27, 41, 26, 37, 130, 210, 160, 233, 139, 124, 43, 238, 222, 208, 208, 155, 16, 51, 43, 250,
179, 220, 162, 243, 48, 18, 196, 227, 195, 196, 163, 89, 25, 183, 76, 87, 70, 125, 2, 120,
50, 97, 220, 248, 229, 172, 240, 180, 144, 231, 224, 6, 18, 165, 216, 247, 118, 12, 37,
218, 9, 187, 67, 181, 40, 90, 53, 116, 227, 108, 120, 220, 4, 113, 119, 254, 145, 94, 40,
157, 14, 169, 161, 116, 230, 125, 228, 47, 185, 147, 235, 85, 85, 10, 192, 34, 212, 238,
120, 86, 202, 211, 185, 108, 167, 228, 67, 203, 246, 7, 59, 146, 178, 95, 20, 242, 222,
187, 71, 78, 82, 111, 234, 56, 97, 245, 250, 66, 196, 1, 37, 53, 146, 13, 136, 224, 88,
128, 46, 211, 173, 215, 223, 97, 218, 157, 138, 175, 72, 197, 211, 200, 219, 168, 8, 207,
90, 163, 215, 178, 247, 9, 56, 140, 55, 70, 120, 113, 119, 151, 130, 141, 166, 9, 178, 171,
95, 197, 90, 0, 119, 104, 76, 91, 171, 194, 162, 212, 44, 201, 142, 26, 99, 192, 70, 28,
79, 6, 100, 188, 147, 130, 82, 54, 231, 205, 121, 170, 52, 50, 70, 87, 37, 151, 59, 15, 19,
198, 200, 153, 201, 72, 55, 164, 111, 28, 3, 90, 126, 158, 175, 52, 214, 22, 63, 0, 123,
116, 53, 212, 167, 110, 73, 135, 152, 179, 136, 154, 148, 82, 178, 204, 236, 246, 116, 137,
91, 244, 117, 60, 189, 211, 113, 168, 165, 213, 49, 200, 232, 94, 96, 253, 90, 124, 94,
170, 205, 175, 102, 19, 65, 113, 164, 211, 70, 19, 187, 65, 182, 234, 29, 111, 152, 26,
149, 190, 146, 10, 198, 70, 200, 45, 107, 159, 177, 135, 239, 243, 160, 33, 66, 168, 129,
147, 85, 45, 37, 214, 223, 52, 131, 0, 39, 128, 168, 74, 171, 6, 243, 139, 166, 25, 167,
172, 72, 5, 208, 238, 146, 246, 227, 25, 46, 215, 233, 226, 109, 30, 248, 239, 243, 198,
129, 25, 237, 110, 173, 35, 234, 189, 14, 210, 131, 145, 194, 70, 185, 148, 125, 37, 48,
47, 56, 61, 20, 189, 56, 18, 199, 136, 8, 123, 204, 166, 165, 201, 241, 240, 211, 113, 249,
61, 133, 119, 64, 168, 241, 42, 112, 77, 66, 39, 244, 254, 80, 90, 50, 32, 6, 255, 151,
180, 236, 169, 162, 240, 235, 170, 1, 194, 197, 108, 79, 216, 244, 195, 86, 230, 47, 221,
203, 187, 209, 155, 56, 110, 102, 186, 181, 148, 108, 124, 200, 80, 240, 102, 153, 149,
117, 78, 124, 230, 88, 123, 164, 188, 205, 86, 167, 40, 72, 147, 68, 177, 145, 25, 18, 215,
178, 34, 202, 192, 193, 110, 244, 240, 141, 30, 71, 246, 119, 70, 86, 199, 163, 0, 224, 37,
209, 195, 136, 215, 174, 128, 77, 16, 83, 2, 235, 253, 103, 32, 77, 3, 135, 68, 50, 102,
216, 247, 77, 185, 84, 80, 189, 41, 172, 199, 158, 189, 53, 218, 3, 90, 101, 163, 99, 243,
128, 133, 207, 199, 209, 32, 192, 242, 46, 69, 3, 85, 226, 154, 230, 238, 167, 17, 28, 83,
31, 75, 238, 91, 250, 74, 143, 171, 82, 102, 167, 21, 113, 9, 237, 79, 216, 12, 233, 128,
127, 54, 161, 27, 125, 165, 93, 78, 128, 198, 180, 219, 31, 94, 7, 221, 87, 205, 55, 33,
20, 155, 180, 67, 5, 228, 195, 245, 168, 184, 10, 251, 42, 194, 184, 245, 172, 215, 33,
195, 66, 181, 165, 50, 31, 112, 121, 67, 62, 61, 24, 57, 84, 13, 223, 119, 119, 216, 136,
232, 218, 58, 175, 22, 92, 149, 80, 36, 65, 45, 167, 181, 211, 22, 45, 56, 34, 220, 2, 52,
152, 156, 203, 6, 96, 229, 178, 201, 57, 97, 128, 5, 153, 254, 237, 178, 10, 49, 61, 128,
253, 141, 144, 205, 74, 22, 182, 13, 249, 180, 42, 111, 221, 192, 236, 220, 7, 106, 198,
230, 56, 215, 108, 112, 232, 15, 3, 131, 203, 106, 95, 63, 230, 32, 7, 43, 49, 141, 5, 210,
125, 51, 224, 169, 49, 17, 15, 64, 2, 47, 130, 199, 70, 98, 209, 92, 94, 139, 193, 145,
226, 228, 202, 26, 64, 80, 5, 212, 232, 50, 83, 208, 72, 196, 110, 149, 249, 225, 253, 149,
115, 211, 137, 202, 84, 196, 99, 88, 57, 202, 8, 80, 211, 244, 116, 80, 29, 16, 118, 193,
179, 200, 234, 134, 88, 233, 137, 228, 178, 207, 139, 47, 162, 101, 219, 54, 132, 116, 124,
248, 106, 156, 241, 83, 255, 241, 227, 227, 150, 122, 76, 36, 179, 165, 4, 115, 213, 103,
102, 243, 49, 56, 26, 165, 147, 48, 254, 241, 217, 103, 0, 159, 107, 164, 148, 47, 18, 199,
170, 241, 230, 202, 229, 92, 98, 55, 82, 185, 229, 244, 3, 212, 91, 178, 50, 66, 221, 174,
88, 7, 126, 214, 52, 215, 178, 48, 71, 39, 170, 114, 96, 118, 66, 127, 213, 157, 64, 89,
189, 88, 6, 249, 0, 202, 156, 129, 47, 57, 55, 234, 143, 85, 187, 59, 237, 213, 12, 182,
130, 238, 118, 176, 147, 172, 59, 106, 244, 55, 42, 142, 106, 31, 109, 230, 114, 7, 40,
226, 140, 23, 47, 112, 105, 39, 72, 68, 38, 181, 133, 80, 54, 216, 187, 150, 152, 76, 40,
149, 4, 248, 16, 207, 147, 11, 18, 216, 75, 80, 186, 223, 231, 211, 170, 79, 130, 39, 164,
157, 57, 237, 33, 38, 100, 173, 182, 118, 24, 202, 64, 72, 120, 29, 232, 211, 120, 32, 156,
100, 75, 137, 151, 17, 27, 246, 102, 32, 22, 203, 142, 229, 220, 243, 152, 191, 169, 153,
20, 229, 14, 195, 119, 107, 190, 107, 207, 53, 166, 60, 31, 10, 86, 10, 35, 120, 66, 104,
180, 117, 255, 121, 82, 130, 158, 156, 45, 85, 150, 237, 130, 71, 17, 17, 61, 211, 23, 97,
82, 91, 253, 93, 215, 149, 112, 90, 34, 18, 192, 67, 228, 51, 254, 32, 157, 24, 40, 42,
186, 5, 39, 5, 75, 23, 70, 27, 62, 125, 66, 37, 110, 171, 147, 200, 42, 38, 157, 207, 246,
252, 169, 66, 167, 129, 186, 190, 99, 186, 83, 133, 129, 174, 129, 143, 150, 221, 202, 172,
60, 220, 111, 97, 78, 186, 237, 3, 178, 88, 27, 202, 61, 51, 47, 103, 129, 94, 57, 182,
123, 72, 67, 237, 0, 25, 93, 168, 211, 128, 161, 12, 133, 137, 57, 208, 181, 159, 77, 168,
98, 34, 90, 23, 25, 40, 177, 131, 134, 121, 55, 83, 210, 132, 132, 133, 56, 143, 234, 202,
11, 103, 57, 182, 230, 59, 117, 135, 114, 240, 77, 237, 51, 8, 228, 45, 166, 141, 216, 171,
60, 194, 15, 176, 86, 66, 150, 17, 35, 141, 137, 135, 235, 57, 93, 17, 255, 216, 190, 36,
243, 204, 153, 58, 254, 209, 0, 45, 86, 201, 237, 25, 204, 238, 171, 16, 61, 227, 191, 53,
165, 30, 182, 74, 199, 46, 110, 23, 58, 34, 148, 133, 106, 29, 226, 177, 14, 185, 0, 231,
59, 161, 247, 78, 188, 56, 136, 220, 154, 174, 75, 189, 151, 215, 63, 127, 69, 186, 19,
162, 219, 185, 83, 235, 150, 47, 37, 165, 36, 212, 92, 63, 92, 83, 159, 142, 174, 108, 213,
199, 96, 6, 166, 164, 237, 27, 146, 79, 214, 58, 101, 24, 233, 163, 57, 224, 57, 249, 235,
111, 135, 0, 170, 202, 52, 194, 184, 172, 21, 41, 17, 227, 245, 119, 226, 35, 0, 58, 102,
43, 44, 156, 218, 69, 145, 90, 120, 242, 106, 130, 85, 48, 102, 251, 184, 215, 159, 186,
138, 110, 88, 168, 201, 203, 185, 64, 27, 70, 68, 141, 191, 8, 118, 64, 135, 170, 26, 253,
93, 39, 49, 106, 85, 114, 108, 230, 71, 192, 70, 87, 42, 116, 105, 214, 168, 43, 128, 173,
181, 0, 119, 142, 107, 134, 132, 188, 90, 164, 190, 35, 39, 240, 42, 60, 230, 85, 247, 238,
170, 184, 121, 216, 185, 84, 186, 138, 209, 80, 63, 0, 15, 179, 78, 0, 67, 205, 218, 179,
160, 152, 124, 87, 18, 22, 213, 137, 160, 144, 27, 21, 114, 190, 239, 217, 44, 159, 246,
214, 65, 113, 75, 10, 6, 254, 194, 55, 58, 232, 119, 255, 181, 100, 238, 43, 13, 124, 213,
60, 214, 121, 120, 36, 103, 49, 235, 46, 7, 163, 144, 228, 35, 56, 223, 61, 21, 56, 218,
44, 128, 160, 18, 155, 31, 71, 183, 41, 72, 188, 14, 87, 224, 82, 240, 68, 206, 27, 212,
212, 158, 101, 130, 37, 185, 15, 63, 28, 53, 214, 12, 240, 142, 126, 211, 67, 3, 65, 105,
191, 57, 111, 20, 2, 217, 252, 141, 157, 29, 79, 94, 127, 44, 91, 156, 6, 190, 43, 48, 232,
71, 208, 27, 120, 161, 174, 229, 13, 63, 132, 11, 133, 88, 85, 163, 111, 172, 32, 193, 177,
36, 55, 10, 242, 164, 183, 220, 50, 33, 131, 209, 235, 5, 188, 180, 228, 242, 239, 133,
160, 40, 166, 184, 70, 80, 231, 188, 26, 133, 132, 1, 224, 56, 255, 8, 48, 38, 246, 184,
218, 240, 119, 154, 196, 130, 38, 201, 50, 191, 39, 65, 111, 125, 156, 82, 12, 52, 154,
148, 65, 154, 32, 245, 26, 192, 233, 1, 37, 227, 16, 66, 249, 196, 2, 3, 140, 216, 72, 27,
171, 209, 248, 192, 192, 156, 54, 191, 33, 198, 74, 141, 31, 219, 83, 17, 59, 111, 70, 250,
55, 42, 241, 40, 10, 69, 65, 212, 120, 137, 102, 198, 195, 114, 14, 194, 32, 87, 236, 139,
212, 146, 254, 209, 84, 216, 37, 1, 131, 217, 96, 218, 7, 166, 38, 121, 117, 250, 66, 183,
47, 4, 183, 8, 246, 70, 44, 225, 219, 95, 238, 120, 102, 171, 177, 10, 216, 61, 179, 221,
24, 205, 98, 152, 234, 227, 210, 234, 31, 173, 133, 202, 63, 0, 89, 189, 255, 36, 118, 176,
62, 254, 217, 244, 108, 110, 93, 75, 62, 18, 22, 202, 71, 207, 201, 200, 246, 145, 209,
173, 127, 176, 147, 44, 164, 4, 186, 186, 235, 6, 40, 91, 43, 218, 235, 2, 232, 184, 209,
120, 62, 246, 58, 136, 91, 203, 90, 96, 23, 242, 78, 157, 118, 95, 118, 184, 37, 105, 103,
47, 196, 158, 128, 221, 25, 128, 95, 188, 170, 167, 222, 13, 45, 180, 205, 67, 124, 253,
185, 123, 136, 242, 108, 35, 211, 221, 230, 70, 210, 131, 136, 137, 83, 77, 15, 77, 79, 42,
152, 227, 226, 34, 229, 91, 160, 33, 185, 75, 79, 102, 245, 4, 197, 223, 179, 76, 41, 146,
246, 131, 67, 176, 123, 110, 75, 57, 74, 0, 196, 101, 204, 60, 146, 158, 190, 74, 152, 110,
37, 98, 53, 23, 76, 197, 166, 238, 45, 20, 104, 244, 154, 26, 58, 158, 2, 146, 32, 207,
241, 11, 97, 234, 119, 125, 10, 10, 192, 141, 86, 53, 187, 49, 179, 194, 54, 16, 93, 49,
89, 193, 128, 46, 141, 52, 99, 232, 44, 162, 184, 204, 67, 50, 66, 160, 83, 194, 79, 61,
14, 185, 216, 24, 168, 214, 73, 197, 78, 128, 202, 227, 77, 3, 11, 232, 23, 60, 94, 8, 200,
43, 83, 168, 148, 2, 14, 39, 126, 27, 24, 118, 224, 104, 11, 0, 1, 134, 101, 16, 139, 51,
247, 152, 254, 81, 71, 216, 158, 105, 37, 133, 121, 214, 8, 23, 164, 244, 52, 0, 108, 121,
186, 133, 26, 89, 172, 17, 151, 113, 25, 35, 17, 143, 139, 33, 111, 24, 162, 233, 182, 234,
107, 68, 104, 0, 37, 252, 90, 61, 200, 19, 40, 52, 95, 18, 241, 130, 25, 160, 108, 249,
116, 176, 24, 189, 232, 155, 239, 68, 144, 6, 64, 192, 50, 22, 244, 198, 249, 80, 35, 176,
5, 7, 149, 168, 176, 85, 91, 97, 232, 61, 232, 208, 119, 105, 160, 87, 44, 86, 66, 212, 43,
151, 217, 18, 39, 27, 246, 185, 36, 238, 203, 86, 168, 49, 173, 72, 116, 70, 141, 104, 93,
167, 193, 158, 205, 91, 112, 151, 242, 77, 251, 151, 205, 66, 151, 163, 112, 201, 204, 78,
78, 168, 82, 21, 82, 26, 143, 217, 138, 238, 156, 85, 138, 103, 146, 4, 248, 251, 148, 69,
187, 50, 153, 26, 153, 228, 146, 135, 37, 2, 126, 26, 202, 206, 197, 252, 71, 226, 213,
239, 217, 201, 243, 94, 88, 35, 34, 18, 111, 64, 29, 199, 51, 143, 19, 66, 141, 202, 198,
126, 214, 210, 46, 70, 7, 207, 167, 130, 97, 237, 66, 73, 31, 98, 112, 157, 83, 217, 11,
30, 111, 12, 77, 142, 143, 121, 35, 47, 188, 21, 20, 224, 185, 248, 178, 131, 0, 134, 210,
209, 10, 244, 4, 182, 71, 136, 26, 124, 216, 205, 18, 132, 85, 122, 230, 36, 3, 46, 51,
190, 119, 84, 62, 146, 180, 234, 64, 96, 156, 89, 224, 148, 136, 174, 93, 143, 111, 48,
155, 13, 175, 90, 178, 33, 138, 55, 239, 160, 142, 146, 136, 240, 8, 225, 170, 175, 199,
145, 45, 246, 30, 184, 157, 27, 78, 19, 94, 109, 106, 52, 7, 176, 3, 38, 209, 36, 15, 144,
9, 131, 42, 246, 238, 249, 82, 12, 146, 181, 134, 5, 199, 30, 167, 115, 136, 139, 132, 219,
100, 158, 172, 189, 204, 153, 202, 208, 48, 130, 114, 14, 183, 121, 48, 99, 208, 201, 112,
29, 245, 187, 86, 66, 96, 14, 44, 49, 150, 243, 102, 70, 41, 56, 23, 176, 215, 14, 40, 104,
105, 18, 52, 178, 229, 196, 73, 227, 2, 73, 9, 107, 35, 166, 127, 21, 237, 70, 65, 141, 93,
82, 4, 87, 60, 41, 29, 147, 231, 144, 134, 175, 166, 76, 87, 141, 205, 167, 178, 66, 165,
65, 145, 59, 146, 118, 173, 253, 106, 35, 194, 142, 152, 226, 184, 95, 125, 209, 194, 109,
111, 173, 96, 174, 62, 242, 91, 134, 106, 143, 57, 100, 146, 139, 69, 195, 156, 166, 161,
228, 48, 219, 14, 33, 220, 201, 122, 66, 72, 25, 46, 168, 163, 76, 64, 18, 152, 190, 73, 4,
69, 70, 54, 160, 24, 183, 147, 166, 163, 249, 186, 181, 167, 180, 222, 56, 15, 226, 89,
183, 132, 71, 236, 203, 20, 210, 99, 58, 152, 76, 152, 74, 110, 149, 233, 148, 27, 193,
159, 38, 208, 145, 208, 96, 154, 165, 39, 96, 69, 194, 181, 99, 41, 199, 18, 166, 189, 95,
190, 124, 52, 3, 18, 88, 17, 183, 213, 176, 237, 91, 192, 69, 193, 253, 121, 91, 116, 114,
161, 193, 23, 169, 213, 204, 216, 82, 177, 9, 67, 66, 217, 160, 152, 103, 1, 187, 135, 217,
191, 200, 176, 103, 249, 74, 45, 245, 120, 125, 95, 217, 80, 75, 109, 24, 73, 46, 89, 181,
246, 5, 92, 227, 104, 222, 61, 50, 164, 10, 237, 198, 209, 90, 6, 161, 121, 223, 170, 35,
199, 232, 8, 109, 151, 122, 42, 204, 198, 215, 198, 127, 220, 118, 252, 103, 77, 133, 1,
197, 88, 72, 179, 20, 63, 117, 158, 3, 107, 145, 221, 244, 21, 87, 86, 65, 165, 248, 144,
201, 131, 16, 175, 247, 115, 179, 152, 134, 223, 164, 38, 36, 25, 144, 120, 91, 160, 212,
55, 180, 86, 237, 143, 123, 84, 10, 154, 189, 198, 204, 169, 19, 46, 145, 160, 154, 239,
103, 179, 19, 110, 146, 1, 106, 195, 112, 231, 60, 127, 202, 58, 54, 16, 134, 194, 124,
214, 144, 25, 19, 116, 191, 160, 212, 25, 62, 193, 246, 32, 31, 20, 103, 132, 204, 129, 33,
162, 84, 9, 138, 219, 130, 247, 54, 169, 37, 182, 39, 60, 68, 177, 231, 48, 156, 96, 149,
71, 182, 118, 73, 223, 87, 176, 160, 136, 83, 5, 98, 245, 97, 80, 171, 146, 75, 208, 5,
103, 160, 191, 205, 13, 116, 153, 91, 152, 238, 87, 45, 168, 72, 205, 96, 47, 167, 214, 73,
187, 50, 43, 45, 9, 46, 132, 221, 247, 118, 85, 78, 19, 177, 60, 168, 124, 124, 42, 242,
21, 190, 38, 138, 129, 57, 184, 174, 199, 231, 33, 63, 180, 163, 162, 194, 112, 87, 227,
104, 71, 111, 1, 2, 15, 161, 222, 123, 136, 155, 137, 154, 10, 163, 132, 122, 215, 129,
139, 57, 44, 123, 171, 79, 120, 26, 191, 232, 55, 65, 152, 36, 139, 64, 161, 238, 70, 94,
7, 77, 92, 236, 2, 157, 235, 47, 140, 137, 73, 201, 11, 73, 119, 254, 179, 144, 29, 205,
208, 154, 234, 137, 29, 123, 168, 59, 129, 19, 141, 234, 239, 139, 155, 224, 190, 85, 121,
179, 146, 138, 85, 7, 8, 85, 208, 138, 182, 173, 209, 26, 236, 12, 170, 121, 235, 174, 22,
228, 241, 34, 169, 162, 121, 102, 127, 12, 135, 68, 96, 11, 21, 67, 164, 15, 39, 71, 155,
88, 71, 185, 158, 63, 242, 208, 16, 37, 64, 131, 96, 174, 143, 252, 57, 230, 135, 34, 249,
118, 139, 24, 169, 120, 88, 209, 155, 52, 158, 41, 205, 74, 243, 151, 144, 227, 51, 110,
195, 23, 174, 106, 32, 225, 79, 202, 191, 227, 51, 205, 20, 1, 156, 250, 120, 100, 83, 181,
253, 67, 254, 226, 64, 183, 102, 83, 180, 234, 33, 143, 3, 44, 126, 105, 107, 67, 35, 64,
180, 74, 237, 15, 8, 201, 196, 109, 144, 48, 95, 34, 247, 63, 178, 3, 207, 140, 133, 72,
253, 23, 145, 68, 153, 133, 72, 67, 57, 152, 5, 145, 200, 228, 57, 42, 182, 252, 177, 151,
17, 161, 72, 107, 78, 110, 178, 160, 216, 250, 121, 242, 161, 244, 58, 99, 61, 6, 19, 181,
180, 0, 132, 152, 138, 226, 196, 123, 22, 239, 82, 82, 226, 16, 49, 163, 121, 176, 238,
109, 205, 22, 255, 127, 229, 176, 140, 159, 143, 244, 90, 240, 57, 99, 126, 67, 84, 234,
229, 49, 195, 212, 175, 174, 219, 123, 185, 203, 6, 144, 125, 160, 17, 191, 114, 85, 146,
82, 207, 42, 36, 32, 208, 62, 75, 234, 78, 54, 179, 81, 43, 65, 40, 41, 56, 5, 24, 188, 20,
222, 101, 31, 3, 51, 75, 156, 73, 82, 220, 116, 25, 32, 15, 220, 3, 205, 91, 197, 247, 226,
12, 15, 231, 233, 134, 174, 39, 22, 35, 75, 137, 157, 168, 71, 227, 81, 216, 207, 194, 103,
55, 128, 243, 205, 218, 202, 8, 95, 198, 24, 165, 103, 21, 90, 234, 85, 239, 51, 225, 68,
21, 189, 159, 89, 52, 117, 92, 188, 184, 12, 107, 176, 203, 188, 232, 17, 40, 80, 72, 162,
186, 198, 179, 228, 172, 6, 36, 122, 148, 136, 191, 181, 177, 61, 56, 219, 127, 42, 71,
135, 50, 165, 188, 178, 167, 236, 111, 182, 218, 37, 46, 84, 76, 14, 102, 154, 214, 182,
199, 38, 142, 111, 153, 76, 136, 235, 229, 236, 186, 79, 111, 160, 13, 15, 250, 199, 220,
187, 5, 146, 208, 155, 131, 27, 106, 182, 29, 249, 125, 213, 82, 253, 132, 233, 136, 128,
11, 107, 39, 18, 4, 217, 152, 65, 38, 147, 74, 12, 137, 169, 232, 236, 173, 63, 88, 93,
233, 127, 18, 98, 246, 3, 59, 171, 63, 145, 23, 121, 79, 47, 223, 27, 52, 20, 175, 164, 58,
70, 5, 191, 75, 164, 122, 98, 40, 232, 61, 121, 108, 44, 14, 22, 106, 94, 102, 23, 177,
228, 40, 208, 197, 126, 143, 208, 8, 200, 38, 204, 170, 253, 71, 38, 80, 9, 177, 200, 216,
120, 170, 5, 54, 115, 9, 216, 73, 46, 106, 101, 12, 196, 66, 30, 75, 156, 250, 185, 121,
189, 250, 193, 105, 157, 135, 2, 26, 15, 111, 74, 207, 119, 230, 245, 102, 2, 251, 117,
107, 61, 165, 247, 171, 43, 160, 62, 171, 7, 89, 213, 131, 6, 140, 77, 90, 75, 157, 33,
176, 11, 177, 61, 172, 29, 194, 46, 89, 104, 224, 81, 166, 27, 95, 194, 211, 137, 184, 88,
158, 76, 151, 76, 112, 172, 5, 33, 141, 141, 184, 227, 143, 61, 7, 222, 190, 162, 66, 173,
217, 72, 123, 78, 243, 83, 102, 101, 74, 85, 177, 170, 149, 141, 7, 137, 29, 82, 198, 22,
126, 70, 69, 224, 139, 26, 81, 97, 248, 89, 80, 61, 22, 208, 144, 255, 9, 248, 135, 27, 64,
240, 29, 219, 25, 91, 28, 59, 12, 152, 123, 43, 188, 21, 64, 241, 21, 16, 25, 230, 85, 159,
213, 218, 16, 58, 250, 209, 90, 212, 160, 227, 173, 10, 75, 119, 115, 53, 109, 31, 255,
205, 55, 168, 87, 74, 45, 232, 63, 129, 214, 155, 32, 164, 139, 248, 179, 18, 152, 171, 93,
120, 128, 35, 113, 178, 183, 6, 40, 199, 82, 5, 159, 9, 252, 251, 60, 129, 82, 208, 242,
162, 135, 51, 77, 10, 130, 11, 171, 198, 2, 108, 217, 170, 217, 19, 163, 149, 196, 137, 64,
139, 206, 62, 15, 142, 239, 137, 216, 155, 22, 170, 28, 109, 23, 232, 208, 63, 192, 29,
130, 45, 46, 48, 214, 133, 163, 11, 128, 246, 17, 247, 79, 180, 104, 169, 241, 232, 209,
242, 162, 62, 146, 101, 175, 6, 57, 155, 134, 97, 206, 60, 152, 9, 7, 235, 246, 177, 0,
224, 90, 158, 44, 73, 81, 150, 226, 10, 80, 20, 72, 118, 81, 175, 231, 128, 67, 183, 69,
167, 138, 121, 128, 100, 145, 33, 194, 136, 101, 144, 207, 52, 21, 60, 194, 132, 6, 157,
30, 166, 153, 156, 33, 83, 107, 90, 241, 140, 163, 106, 224, 166, 58, 108, 252, 161, 83,
193, 91, 83, 90, 37, 38, 157, 105, 201, 89, 161, 163, 216, 45, 19, 49, 139, 230, 169, 172,
35, 71, 27, 218, 245, 109, 59, 114, 53, 215, 13, 186, 167, 6, 202, 59, 210, 136, 95, 4,
107, 27, 240, 221, 102, 64, 86, 42, 90, 175, 73, 29, 17, 159, 190, 78, 223, 197, 254, 21,
85, 16, 76, 194, 115, 43, 151, 217, 184, 121, 120, 89, 234, 81, 174, 28, 131, 199, 216, 34,
151, 254, 139, 129, 118, 7, 177, 202, 86, 1, 236, 152, 19, 178, 154, 136, 218, 146, 240,
209, 155, 133, 135, 235, 1, 9, 248, 127, 85, 106, 189, 199, 43, 165, 206, 142, 47, 18, 220,
222, 107, 42, 73, 133, 48, 146, 91, 35, 131, 182, 59, 157, 17, 18, 58, 133, 209, 184, 237,
50, 217, 215, 94, 98, 226, 3, 210, 200, 35, 59, 13, 19, 246, 58, 175, 27, 199, 169, 221, 2,
20, 119, 246, 112, 222, 154, 22, 23, 36, 15, 216, 110, 25, 166, 120, 13, 254, 145, 249,
148, 55, 46, 53, 9, 226, 164, 96, 35, 233, 67, 253, 100, 40, 181, 131, 178, 149, 34, 50,
47, 137, 56, 143, 19, 25, 47, 165, 141, 199, 42, 223, 76, 186, 232, 80, 170, 241, 146, 55,
82, 246, 37, 50, 196, 152, 152, 80, 108, 90, 177, 90, 86, 112, 166, 161, 99, 18, 30, 221,
197, 206, 84, 248, 243, 147, 0, 210, 194, 35, 159, 114, 204, 89, 75, 13, 86, 177, 104, 225,
178, 61, 53, 90, 210, 50, 183, 172, 45, 251, 104, 19, 7, 183, 26, 85, 40, 57, 218, 195, 68,
132, 88, 108, 24, 230, 231, 58, 161, 85, 145, 242, 34, 190, 153, 237, 222, 27, 100, 190,
32, 24, 180, 247, 176, 207, 90, 53, 52, 179, 127, 44, 224, 50, 35, 199, 133, 196, 165, 2,
247, 179, 185, 62, 199, 175, 222, 230, 6, 47, 18, 142, 24, 228, 155, 154, 177, 219, 189,
198, 241, 76, 26, 73, 181, 248, 166, 58, 132, 168, 37, 27, 233, 130, 246, 235, 119, 238, 2,
240, 163, 10, 56, 73, 124, 198, 7, 13, 130, 69, 8, 202, 138, 57, 232, 16, 201, 149, 221,
236, 180, 27, 39, 195, 238, 182, 195, 72, 223, 89, 102, 83, 217, 119, 94, 195, 169, 150,
64, 11, 87, 160, 97, 233, 239, 93, 144, 189, 156, 87, 221, 189, 105, 232, 79, 6, 161, 107,
7, 205, 254, 126, 151, 253, 64, 213, 211, 110, 86, 171, 27, 13, 202, 164, 149, 10, 130,
107, 76, 107, 164, 184, 199, 96, 152, 3, 79, 160, 192, 174, 145, 126, 193, 140, 147, 254,
128, 24, 173, 150, 43, 184, 86, 102, 219, 129, 252, 193, 78, 23, 102, 12, 15, 159, 105,
125, 51, 128, 14, 54, 90, 71, 2, 191, 101, 156, 60, 98, 128, 169, 234, 254, 239, 28, 111,
18, 57, 245, 140, 203, 24, 251, 20, 153, 129, 173, 109, 93, 53, 155, 85, 131, 80, 78, 248,
247, 120, 107, 222, 196, 218, 231, 5, 8, 132, 193, 218, 66, 129, 40, 64, 16, 37, 138, 167,
18, 6, 106, 30, 207, 9, 253, 69, 104, 251, 187, 242, 74, 102, 51, 49, 88, 175, 198, 97, 98,
190, 195, 244, 81, 5, 67, 132, 242, 164, 206, 206, 211, 69, 221, 83, 194, 199, 4, 113, 111,
49, 196, 165, 225, 165, 59, 104, 40, 185, 12, 22, 176, 95, 12, 123, 172, 79, 62, 148, 118,
237, 97, 114, 195, 139, 84, 186, 72, 24, 168, 83, 165, 194, 98, 118, 65, 1, 87, 38, 251,
185, 94, 208, 25, 36, 176, 145, 136, 133, 97, 75, 111, 162, 147, 188, 239, 29, 74, 85, 71,
4, 131, 158, 9, 51, 65, 19, 10, 249, 81, 118, 45, 219, 0, 59, 249, 251, 51, 174, 214, 104,
69, 213, 172, 0, 52, 142, 88, 18, 112, 132, 66, 42, 130, 219, 67, 109, 149, 58, 110, 25,
247, 72, 35, 24, 69, 65, 56, 64, 62, 208, 61, 247, 246, 168, 152, 185, 67, 234, 67, 176,
96, 254, 213, 232, 20, 175, 127, 178, 13, 146, 120, 35, 10, 139, 61, 123, 74, 146, 138,
127, 27, 55, 154, 123, 107, 40, 216, 49, 214, 223, 113, 214, 182, 100, 209, 158, 244, 11,
90, 16, 211, 93, 98, 37, 99, 85, 17, 190, 197, 83, 60, 96, 190, 98, 196, 211, 88, 134, 217,
145, 72, 72, 194, 252, 15, 18, 67, 189, 106, 16, 224, 212, 92, 148, 123, 214, 90, 93, 128,
48, 179, 203, 68, 183, 12, 71, 80, 188, 193, 123, 97, 56, 249, 251, 228, 31, 131, 250, 3,
23, 88, 175, 40, 20, 116, 203, 236, 247, 30, 218, 252, 101, 218, 47, 84, 30, 119, 70, 141,
179, 55, 176, 160, 250, 128, 251, 170, 77, 237, 159, 92, 240, 199, 143, 158, 112, 193, 255,
136, 104, 127, 247, 250, 53, 207, 101, 211, 21, 237, 39, 10, 162, 18, 124, 71, 91, 76, 185,
111, 148, 238, 193, 200, 201, 232, 225, 212, 123, 105, 32, 155, 111, 157, 16, 1, 26, 124,
107, 160, 76, 153, 188, 101, 235, 202, 54, 220, 92, 218, 177, 252, 122, 8, 202, 179, 76,
213, 97, 5, 12, 149, 164, 158, 26, 141, 228, 80, 168, 38, 177, 183, 235, 44, 206, 221, 230,
166, 117, 16, 76, 155, 30, 146, 175, 206, 228, 204, 186, 235, 38, 162, 63, 58, 190, 114,
26, 11, 148, 252, 23, 107, 63, 131, 108, 215, 222, 83, 3, 121, 168, 82, 3, 52, 182, 116,
209, 49, 134, 6, 129, 101, 49, 79, 178, 164, 109, 57, 49, 119, 44, 116, 66, 135, 69, 196,
12, 116, 227, 67, 105, 87, 218, 120, 99, 114, 102, 192, 70, 49, 236, 149, 150, 229, 75,
191, 179, 176, 11, 111, 50, 124, 34, 228, 50, 15, 186, 221, 65, 169, 160, 205, 132, 164,
243, 196, 25, 6, 142, 129, 140, 244, 152, 40, 127, 38, 44, 199, 84, 17, 162, 94, 227, 48,
196, 235, 12, 160, 50, 27, 201, 140, 80, 107, 204, 180, 45, 242, 21, 186, 134, 139, 230,
13, 150, 18, 228, 245, 196, 181, 116, 117, 70, 251, 97, 162, 235, 199, 16, 241, 63, 136,
97, 159, 202, 84, 211, 142, 120, 155, 65, 196, 35, 148, 66, 244, 142, 21, 166, 38, 67, 186,
133, 192, 230, 120, 98, 76, 90, 97, 116, 78, 164, 37, 20, 110, 165, 9, 205, 211, 13, 159,
15, 182, 10, 253, 39, 147, 167, 22, 181, 152, 193, 234, 207, 218, 225, 46, 107, 207, 99,
96, 11, 251, 189, 171, 55, 148, 187, 78, 15, 65, 241, 244, 212, 227, 122, 237, 177, 178,
130, 219, 81, 136, 60, 93, 120, 94, 180, 172, 103, 241, 74, 137, 87, 25, 130, 106, 109,
206, 126, 196, 104, 102, 127, 164, 131, 194, 227, 84, 68, 216, 96, 24, 152, 101, 77, 100,
6, 21, 101, 128, 185, 56, 77, 139, 161, 78, 30, 192, 255, 5, 154, 206, 50, 247, 183, 182,
37, 173, 34, 134, 64, 255, 176, 253, 181, 214, 189, 200, 222, 193, 241, 255, 187, 87, 189,
170, 192, 208, 69, 11, 157, 240, 73, 173, 246, 255, 43, 10, 4, 20, 245, 146, 28, 42, 90,
189, 126, 168, 14, 14, 69, 35, 19, 46, 82, 44, 179, 50, 39, 145, 249, 189, 23, 202, 231,
51, 90, 119, 107, 19, 113, 252, 217, 165, 40, 236, 107, 47, 146, 3, 243, 55, 39, 129, 220,
49, 228, 88, 11, 188, 250, 182, 47, 61, 87, 202, 175, 187, 179, 209, 138, 177, 195, 81, 95,
193, 176, 19, 229, 55, 82, 54, 97, 228, 141, 124, 206, 49, 85, 59, 138, 35, 250, 222, 154,
65, 180, 101, 75, 140, 126, 84, 8, 91, 166, 161, 224, 62, 218, 142, 70, 174, 82, 68, 190,
232, 1, 131, 158, 147, 206, 10, 117, 159, 234, 154, 16, 5, 240, 130, 142, 240, 42, 81, 252,
93, 97, 29, 122, 78, 5, 4, 204, 70, 16, 185, 95, 137, 219, 159, 168, 213, 203, 212, 131,
255, 184, 117, 208, 218, 184, 43, 0, 145, 48, 107, 226, 85, 182, 28, 155, 73, 111, 117,
135, 194, 74, 240, 175, 54, 160, 163, 202, 200, 150, 5, 210, 90, 178, 123, 175, 105, 151,
128, 114, 35, 201, 149, 221, 203, 36, 112, 116, 31, 118, 236, 182, 24, 115, 197, 247, 170,
95, 98, 200, 8, 111, 124, 52, 142, 50, 196, 9, 102, 210, 64, 255, 218, 245, 47, 230, 91,
77, 56, 18, 192, 121, 107, 13, 153, 201, 9, 213, 83, 123, 187, 248, 58, 253, 192, 4, 254,
220, 179, 134, 202, 191, 61, 145, 85, 194, 129, 225, 185, 174, 71, 176, 247, 84, 153, 152,
118, 143, 119, 137, 163, 224, 49, 225, 116, 19, 211, 126, 221, 61, 190, 198, 152, 76, 189,
4, 248, 107, 118, 20, 180, 108, 124, 236, 102, 68, 134, 110, 53, 93, 160, 77, 15, 120, 128,
10, 86, 17, 35, 214, 192, 85, 97, 124, 97, 90, 148, 25, 176, 175, 128, 248, 15, 164, 146,
118, 114, 32, 159, 158, 102, 234, 147, 188, 199, 132, 169, 122, 148, 113, 90, 44, 173, 155,
133, 143, 235, 64, 72, 93, 113, 194, 170, 46, 226, 160, 63, 246, 22, 250, 147, 251, 174,
68, 215, 68, 161, 100, 16, 199, 146, 185, 220, 29, 77, 190, 214, 108, 48, 222, 235, 125,
198, 61, 49, 114, 14, 181, 85, 57, 89, 62, 80, 5, 19, 77, 28, 62, 248, 172, 120, 19, 22,
106, 191, 88, 1, 105, 193, 208, 229, 207, 140, 9, 62, 116, 148, 173, 81, 98, 8, 51, 68, 79,
148, 171, 35, 114, 217, 220, 190, 51, 197, 162, 108, 179, 72, 197, 131, 85, 14, 172, 163,
240, 196, 156, 12, 70, 202, 45, 181, 199, 40, 61, 212, 0, 120, 211, 51, 235, 74, 198, 62,
66, 85, 74, 241, 87, 33, 60, 145, 132, 61, 184, 197, 243, 85, 9, 12, 215, 101, 97, 151, 9,
243, 74, 96, 215, 114, 179, 179, 44, 19, 188, 207, 164, 192, 198, 58, 187, 245, 142, 132,
255, 234, 80, 17, 194, 96, 162, 135, 210, 1, 100, 118, 109, 64, 151, 69, 46, 80, 5, 27,
178, 219, 117, 82, 110, 50, 6, 179, 185, 228, 194, 49, 154, 212, 219, 77, 245, 70, 65, 10,
59, 83, 64, 67, 241, 75, 3, 70, 53, 18, 8, 111, 224, 106, 221, 54, 82, 173, 16, 101, 134,
94, 145, 136, 20, 49, 187, 162, 140, 213, 25, 167, 145, 53, 102, 22, 103, 118, 73, 24, 245,
67, 153, 253, 61, 225, 41, 101, 35, 189, 77, 226, 231, 25, 168, 171, 55, 172, 56, 95, 117,
236, 160, 50, 210, 24, 103, 8, 73, 19, 145, 94, 227, 153, 57, 146, 244, 9, 64, 142, 219,
217, 165, 235, 114, 206, 229, 23, 0, 13, 227, 73, 105, 24, 176, 8, 127, 107, 192, 242, 170,
173, 102, 27, 87, 177, 68, 243, 255, 209, 70, 54, 101, 185, 91, 80, 220, 118, 247, 87, 4,
166, 71, 214, 178, 142, 112, 174, 115, 221, 64, 38, 195, 167, 39, 56, 161, 7, 152, 67, 172,
77, 178, 168, 228, 2, 17, 183, 67, 3, 121, 18, 107, 128, 54, 52, 87, 88, 0, 76, 20, 207,
141, 146, 0, 181, 21, 208, 111, 156, 29, 173, 238, 35, 55, 1, 253, 5, 109, 108, 107, 56,
129, 44, 57, 181, 216, 163, 184, 94, 27, 211, 132, 112, 20, 206, 207, 173, 27, 77, 153, 85,
205, 62, 206, 174, 132, 203, 211, 253, 152, 14, 208, 245, 59, 167, 208, 92, 178, 7, 124,
128, 26, 23, 145, 70, 93, 124, 84, 245, 120, 138, 37, 20, 121, 20, 79, 138, 13, 92, 41,
193, 248, 36, 177, 218, 76, 28, 84, 199, 189, 178, 225, 194, 219, 34, 94, 126, 59, 122,
146, 192, 19, 33, 133, 51, 103, 98, 140, 185, 194, 48, 8, 199, 6, 220, 20, 215, 135, 137,
189, 239, 66, 243, 18, 238, 117, 130, 86, 65, 99, 108, 10, 28, 167, 208, 92, 143, 93, 33,
13, 142, 245, 77, 165, 179, 159, 105, 148, 241, 94, 81, 206, 143, 115, 99, 211, 168, 246,
188, 136, 139, 95, 239, 244, 240, 11, 21, 15, 75, 49, 154, 224, 153, 85, 22, 140, 119, 86,
61, 130, 66, 55, 101, 6, 186, 26, 144, 202, 44, 135, 35, 192, 12, 165, 81, 248, 190, 9, 54,
153, 20, 250, 187, 213, 138, 236, 91, 91, 225, 236, 247, 242, 165, 184, 2, 144, 246, 128,
85, 34, 11, 112, 99, 33, 240, 196, 75, 30, 204, 166, 246, 134, 12, 119, 147, 58, 1, 192,
97, 96, 156, 101, 146, 147, 169, 32, 90, 113, 220, 54, 207, 138, 188, 15, 72, 167, 156,
160, 50, 69, 110, 244, 229, 195, 202, 253, 153, 128, 245, 181, 0, 192, 80, 64, 2, 136, 33,
244, 232, 94, 191, 238, 33, 10, 56, 221, 7, 197, 249, 65, 202, 17, 118, 117, 164, 42, 45,
14, 50, 100, 162, 107, 30, 225, 234, 224, 167, 229, 82, 123, 54, 98, 40, 178, 103, 240,
201, 33, 166, 141, 39, 57, 187, 140, 200, 134, 117, 208, 202, 99, 245, 37, 70, 35, 214,
134, 105, 204, 52, 109, 167, 65, 162, 236, 249, 112, 149, 58, 112, 160, 156, 34, 185, 218,
85, 30, 34, 159, 188, 198, 11, 170, 195, 121, 9, 247, 199, 128, 255, 254, 143, 238, 194,
18, 138, 231, 33, 197, 23, 164, 174, 28, 160, 27, 91, 248, 6, 90, 192, 148, 232, 245, 25,
191, 45, 243, 123, 35, 41, 59, 225, 224, 98, 167, 36, 7, 33, 9, 39, 123, 150, 16, 78, 88,
243, 90, 150, 189, 173, 54, 183, 142, 28, 73, 55, 58, 61, 1, 117, 217, 115, 88, 239, 77,
37, 183, 199, 247, 90, 224, 48, 214, 60, 33, 74, 50, 16, 97, 244, 248, 144, 230, 148, 3,
224, 75, 36, 62, 166, 48, 107, 208, 194, 48, 232, 182, 160, 193, 209, 231, 173, 106, 125,
197, 44, 247, 84, 42, 242, 102, 130, 85, 3, 233, 96, 252, 239, 150, 28, 205, 54, 136, 210,
31, 87, 73, 68, 41, 160, 181, 248, 254, 210, 86, 61, 179, 176, 205, 73, 194, 213, 103, 132,
0, 93, 37, 59, 3, 123, 173, 72, 207, 144, 81, 62, 124, 225, 165, 208, 39, 95, 206, 81, 24,
27, 18, 238, 9, 167, 218, 203, 129, 152, 28, 135, 186, 65, 99, 35, 173, 140, 0, 185, 56,
61, 226, 245, 204, 37, 90, 100, 162, 217, 60, 70, 45, 230, 203, 112, 159, 209, 106, 75,
172, 29, 123, 8, 69, 48, 38, 106, 160, 205, 175, 227, 37, 96, 18, 109, 219, 37, 250, 175,
234, 50, 65, 9, 56, 119, 221, 4, 15, 116, 245, 69, 17, 187, 142, 171, 107, 202, 36, 109,
132, 174, 190, 49, 90, 159, 53, 39, 175, 207, 42, 209, 252, 220, 128, 21, 32, 170, 64, 153,
174, 144, 204, 229, 176, 8, 136, 190, 12, 50, 175, 7, 93, 113, 143, 210, 139, 157, 238,
203, 199, 130, 167, 55, 105, 36, 255, 238, 205, 190, 51, 164, 178, 181, 24, 242, 60, 110,
239, 47, 77, 4, 249, 34, 83, 33, 57, 113, 47, 200, 250, 154, 153, 185, 45, 135, 96, 231,
236, 203, 211, 203, 37, 244, 250, 243, 120, 183, 221, 137, 45, 155, 101, 84, 72, 147, 56,
60, 75, 153, 14, 196, 165, 249, 100, 245, 252, 217, 245, 82, 78, 89, 119, 0, 104, 77, 71,
12, 180, 254, 71, 40, 166, 110, 232, 80, 136, 49, 224, 122, 195, 79, 190, 238, 209, 89, 66,
94, 61, 191, 71, 238, 10, 180, 192, 186, 174, 161, 59, 180, 231, 86, 220, 137, 163, 40,
105, 57, 14, 116, 244, 143, 138, 138, 245, 35, 28, 144, 203, 92, 127, 249, 110, 129, 150,
67, 145, 57, 112, 154, 251, 137, 167, 186, 19, 135, 244, 84, 208, 139, 91, 36, 141, 99, 76,
240, 11, 101, 220, 166, 40, 162, 83, 152, 49, 32, 230, 142, 182, 56, 223, 189, 18, 157, 50,
182, 170, 249, 190, 85, 68, 139, 12, 76, 249, 153, 206, 97, 76, 145, 0, 205, 73, 24, 148,
227, 11, 233, 187, 11, 167, 230, 134, 194, 106, 160, 2, 19, 100, 63, 149, 20, 93, 21, 240,
234, 77, 146, 26, 27, 148, 24, 136, 100, 128, 81, 153, 85, 83, 132, 14, 162, 41, 68, 30,
121, 249, 13, 115, 27, 136, 73, 244, 235, 121, 92, 156, 188, 55, 6, 220, 183, 225, 133,
220, 173, 158, 99, 77, 186, 122, 55, 252, 181, 133, 1, 101, 120, 172, 102, 25, 132, 202,
171, 131, 167, 88, 157, 242, 114, 80, 69, 1, 7, 237, 241, 111, 39, 123, 180, 115, 39, 245,
85, 202, 123, 0, 74, 1, 28, 90, 203, 106, 219, 207, 179, 251, 2, 38, 112, 121, 201, 6, 126,
132, 224, 16, 112, 77, 241, 10, 47, 94, 51, 141, 94, 143, 210, 117, 93, 233, 186, 26, 151,
1, 19, 57, 115, 201, 242, 230, 253, 127, 148, 84, 209, 252, 211, 101, 65, 238, 63, 10, 185,
89, 145, 45, 51, 90, 123, 162, 168, 209, 222, 27, 166, 121, 26, 160, 99, 53, 205, 217, 179,
107, 39, 181, 226, 73, 189, 93, 226, 29, 127, 181, 243, 82, 184, 161, 54, 16, 99, 117, 66,
175, 155, 10, 94, 33, 95, 46, 56, 61, 71, 193, 27, 252, 168, 146, 9, 226, 233, 252, 45, 57,
14, 204, 77, 196, 233, 114, 119, 147, 101, 50, 43, 181, 140, 135, 32, 40, 215, 108, 217,
149, 229, 16, 22, 98, 248, 47, 209, 252, 152, 200, 138, 237, 71, 174, 169, 150, 17, 140,
160, 197, 50, 200, 112, 81, 98, 105, 198, 196, 99, 249, 188, 90, 130, 137, 134, 82, 95,
207, 0, 213, 47, 52, 235, 153, 42, 109, 209, 192, 149, 26, 182, 100, 179, 122, 136, 181,
234, 215, 83, 3, 139, 55, 82, 15, 119, 216, 159, 175, 28, 201, 209, 184, 52, 31, 119, 230,
180, 103, 158, 5, 237, 234, 121, 243, 41, 85, 189, 143, 82, 170, 178, 84, 182, 180, 64,
197, 53, 179, 145, 187, 48, 63, 241, 59, 238, 37, 243, 52, 30, 187, 38, 125, 215, 40, 42,
115, 214, 71, 108, 122, 146, 25, 44, 22, 165, 30, 71, 70, 155, 13, 100, 112, 93, 47, 4, 16,
35, 42, 67, 144, 241, 72, 178, 167, 13, 196, 130, 201, 154, 222, 87, 124, 15, 147, 231,
142, 63, 102, 197, 25, 81, 25, 62, 173, 181, 21, 139, 131, 101, 97, 63, 128, 71, 77, 4, 80,
210, 199, 239, 41, 85, 21, 96, 172, 228, 4, 63, 146, 175, 136, 198, 85, 36, 68, 30, 44, 11,
229, 190, 46, 26, 114, 30, 96, 123, 180, 93, 60, 17, 232, 156, 18, 87, 178, 209, 255, 109,
70, 57, 169, 205, 216, 177, 1, 28, 69, 209, 225, 33, 70, 143, 255, 114, 53, 58, 100, 105,
188, 227, 164, 20, 55, 84, 146, 110, 188, 71, 214, 202, 194, 61, 25, 6, 253, 148, 22, 227,
14, 136, 218, 90, 249, 143, 52, 84, 78, 2, 56, 177, 63, 220, 254, 237, 68, 207, 22, 205,
194, 227, 1, 12, 58, 230, 19, 164, 32, 189, 168, 195, 144, 132, 209, 205, 182, 62, 146,
163, 242, 205, 84, 238, 219, 203, 7, 60, 85, 120, 128, 216, 250, 145, 239, 151, 69, 246, 0,
74, 143, 183, 176, 64, 185, 121, 8, 183, 112, 99, 255, 31, 214, 65, 207, 51, 4, 190, 47,
118, 212, 122, 113, 222, 217, 74, 242, 194, 65, 89, 136, 226, 125, 170, 193, 231, 39, 108,
98, 33, 67, 104, 93, 225, 60, 54, 245, 31, 239, 164, 5, 100, 250, 1, 154, 146, 82, 240, 63,
173, 148, 141, 47, 138, 66, 15, 180, 144, 185, 94, 21, 129, 198, 140, 101, 55, 253, 222,
186, 236, 182, 200, 128, 151, 98, 247, 73, 229, 99, 136, 115, 87, 92, 127, 141, 157, 204,
82, 142, 20, 89, 187, 198, 223, 149, 116, 145, 169, 65, 101, 247, 103, 109, 184, 96, 225,
173, 4, 241, 155, 168, 41, 107, 108, 43, 194, 187, 231, 194, 220, 151, 121, 13, 89, 73, 50,
124, 153, 67, 249, 34, 254, 238, 229, 146, 16, 89, 200, 46, 207, 244, 43, 54, 8, 84, 203,
31, 17, 23, 50, 4, 59, 11, 97, 104, 20, 85, 101, 19, 19, 88, 134, 124, 27, 73, 21, 238,
148, 53, 106, 164, 101, 74, 188, 52, 14, 213, 142, 74, 217, 83, 205, 120, 177, 99, 73, 16,
197, 214, 169, 1, 7, 166, 5, 154, 51, 247, 132, 180, 32, 138, 127, 27, 56, 100, 243, 196,
36, 180, 67, 86, 128, 81, 225, 119, 206, 13, 6, 110, 202, 62, 93, 1, 200, 206, 19, 7, 21,
120, 234, 61, 183, 113, 20, 79, 8, 35, 143, 255, 242, 75, 162, 106, 7, 196, 181, 217, 167,
47, 58, 170, 70, 4, 182, 133, 136, 52, 169, 94, 36, 106, 140, 85, 102, 84, 39, 243, 30,
101, 252, 181, 87, 23, 229, 125, 190, 203, 166, 121, 153, 174, 80, 50, 25, 34, 184, 200, 1,
204, 96, 19, 22, 235, 125, 123, 77, 39, 14, 226, 222, 151, 58, 232, 136, 164, 172, 184,
121, 241, 190, 77, 171, 248, 135, 48, 28, 150, 114, 75, 194, 213, 224, 244, 150, 235, 70,
74, 68, 174, 73, 29, 248, 105, 247, 140, 119, 9, 18, 20, 131, 246, 247, 159, 171, 89, 103,
84, 129, 26, 115, 20, 117, 157, 68, 249, 136, 224, 19, 247, 189, 67, 215, 136, 11, 252,
244, 164, 91, 7, 25, 170, 9, 138, 69, 24, 237, 28, 47, 154, 82, 98, 190, 21, 194, 3, 95,
128, 198, 72, 186, 99, 194, 181, 239, 32, 248, 122, 211, 49, 223, 146, 191, 222, 11, 98,
176, 135, 153, 247, 105, 239, 228, 103, 102, 134, 195, 165, 215, 29, 24, 205, 43, 10, 94,
136, 99, 138, 209, 20, 167, 112, 108, 176, 91, 178, 126, 81, 25, 149, 132, 83, 216, 138,
16, 139, 42, 235, 45, 226, 97, 150, 83, 43, 133, 221, 136, 58, 54, 157, 42, 149, 47, 168,
117, 242, 249, 135, 210, 122, 33, 209, 26, 236, 245, 177, 150, 98, 147, 232, 37, 104, 1,
20, 81, 168, 58, 92, 208, 147, 244, 123, 61, 145, 146, 56, 199, 193, 8, 137, 189, 188, 68,
198, 157, 60, 31, 178, 97, 140, 178, 228, 10, 25, 98, 145, 179, 125, 239, 227, 131, 0, 3,
250, 105, 21, 171, 75, 130, 188, 139, 135, 220, 80, 15, 223, 164, 228, 80, 88, 246, 225,
76, 115, 129, 233, 207, 170, 130, 167, 73, 248, 142, 46, 12, 112, 152, 4, 89, 75, 205, 100,
141, 53, 156, 108, 0, 47, 232, 55, 80, 29, 203, 167, 18, 3, 62, 41, 164, 180, 111, 216,
126, 103, 120, 162, 17, 253, 188, 143, 93, 4, 6, 69, 216, 187, 176, 222, 242, 44, 189, 226,
205, 127, 106, 221, 17, 56, 77, 55, 160, 24, 73, 182, 25, 254, 196, 63, 114, 56, 13, 82,
20, 38, 36, 151, 86, 58, 47, 32, 15, 65, 13, 65, 99, 190, 105, 89, 156, 149, 41, 243, 90,
10, 138, 170, 45, 66, 171, 234, 225, 240, 23, 169, 109, 194, 114, 39, 55, 46, 18, 61, 156,
38, 115, 179, 95, 79, 138, 214, 152, 1, 59, 65, 86, 224, 154, 17, 29, 191, 27, 27, 183, 79,
158, 226, 155, 191, 119, 62, 205, 183, 229, 37, 35, 159, 67, 151, 62, 121, 233, 161, 79,
193, 108, 90, 40, 187, 55, 182, 135, 147, 18, 234, 202, 125, 66, 53, 150, 136, 128, 80, 34,
80, 16, 248, 217, 70, 38, 154, 82, 50, 181, 166, 90, 27, 98, 115, 53, 83, 82, 61, 18, 56,
173, 132, 35, 25, 16, 52, 162, 144, 120, 167, 244, 193, 234, 2, 177, 74, 70, 163, 211, 150,
143, 182, 163, 107, 194, 122, 143, 7, 36, 197, 47, 181, 245, 201, 234, 11, 94, 39, 200, 18,
113, 229, 94, 138, 49, 92, 88, 234, 146, 199, 109, 39, 23, 85, 211, 117, 162, 246, 52, 198,
70, 139, 109, 151, 14, 97, 73, 242, 118, 144, 17, 29, 18, 164, 236, 163, 222, 195, 248,
137, 52, 117, 29, 131, 109, 74, 156, 144, 65, 236, 176, 112, 225, 75, 53, 124, 33, 171,
140, 35, 164, 69, 38, 67, 13, 106, 129, 48, 103, 153, 75, 42, 125, 96, 200, 96, 20, 32, 44,
85, 193, 80, 253, 234, 64, 141, 9, 111, 183, 206, 26, 178, 62, 149, 197, 26, 38, 84, 37,
135, 223, 199, 224, 204, 253, 78, 180, 191, 102, 219, 179, 34, 160, 57, 42, 83, 215, 61,
23, 175, 152, 166, 152, 117, 103, 82, 220, 121, 216, 187, 108, 250, 104, 48, 231, 111, 91,
143, 1, 79, 72, 27, 143, 46, 243, 167, 220, 60, 210, 46, 121, 59, 161, 16, 4, 3, 50, 56,
177, 14, 40, 220, 37, 93, 57, 228, 50, 40, 235, 232, 205, 102, 53, 44, 29, 193, 221, 20,
188, 21, 244, 157, 201, 120, 71, 68, 34, 123, 231, 146, 115, 176, 56, 207, 204, 42, 80,
116, 105, 62, 111, 18, 121, 56, 58, 229, 163, 63, 203, 150, 22, 110, 218, 161, 39, 70, 212,
24, 179, 234, 44, 210, 146, 84, 233, 36, 58, 11, 147, 45, 253, 165, 242, 250, 22, 45, 27,
26, 30, 81, 167, 129, 166, 128, 27, 57, 244, 201, 145, 18, 212, 58, 64, 159, 212, 99, 75,
52, 49, 139, 8, 68, 162, 117, 246, 33, 134, 171, 72, 203, 54, 26, 206, 197, 75, 104, 133,
155, 20, 222, 146, 28, 190, 87, 164, 206, 81, 98, 245, 195, 219, 197, 194, 49, 34, 230,
201, 3, 38, 251, 157, 4, 178, 105, 27, 65, 44, 222, 223, 72, 122, 143, 95, 198, 252, 43,
251, 79, 123, 63, 204, 140, 165, 162, 148, 144, 130, 177, 252, 126, 14, 81, 117, 32, 55,
215, 71, 203, 26, 201, 238, 142, 246, 115, 144, 101, 72, 81, 109, 161, 144, 33, 41, 113,
46, 3, 203, 149, 65, 68, 117, 81, 117, 134, 98, 194, 88, 217, 176, 30, 113, 30, 104, 205,
93, 163, 77, 230, 30, 203, 118, 70, 34, 123, 136, 67, 151, 9, 126, 197, 204, 21, 41, 217,
90, 107, 168, 249, 211, 158, 241, 24, 201, 131, 158, 148, 242, 28, 209, 249, 102, 128, 178,
195, 107, 92, 251, 236, 217, 210, 108, 20, 225, 18, 124, 158, 225, 1, 33, 77, 20, 75, 227,
249, 95, 22, 21, 106, 100, 79, 139, 73, 77, 219, 114, 65, 149, 75, 52, 3, 175, 209, 32,
152, 184, 134, 162, 243, 26, 207, 250, 137, 248, 154, 133, 233, 20, 41, 124, 133, 115, 34,
68, 64, 254, 86, 69, 135, 10, 28, 30, 201, 174, 58, 112, 224, 208, 106, 192, 125, 202, 161,
29, 216, 81, 81, 228, 175, 127, 96, 21, 37, 102, 193, 171, 187, 145, 73, 71, 160, 52, 206,
47, 226, 142, 55, 204, 82, 32, 178, 31, 22, 64, 80, 29, 66, 18, 220, 217, 93, 92, 116, 84,
21, 129, 0, 231, 221, 30, 4, 49, 229, 64, 40, 216, 189, 42, 251, 218, 61, 119, 212, 18,
144, 128, 217, 119, 144, 135, 138, 170, 250, 187, 232, 208, 125, 88, 34, 211, 66, 99, 63,
231, 149, 97, 253, 6, 24, 197, 255, 199, 10, 47, 155, 215, 11, 216, 160, 97, 194, 50, 8,
162, 103, 111, 222, 66, 205, 247, 142, 186, 107, 194, 113, 217, 54, 124, 74, 45, 163, 206,
66, 7, 188, 77, 14, 52, 223, 141, 150, 167, 106, 68, 69, 101, 20, 34, 209, 107, 43, 160,
242, 153, 221, 4, 99, 55, 175, 0, 64, 48, 44, 233, 229, 168, 61, 52, 6, 115, 151, 134, 91,
23, 109, 158, 16, 232, 130, 21, 195, 115, 8, 128, 149, 157, 65, 89, 110, 215, 28, 185, 21,
185, 196, 27, 34, 251, 184, 212, 221, 66, 115, 132, 8, 66, 46, 246, 195, 237, 125, 101,
173, 208, 45, 146, 182, 85, 32, 190, 122, 62, 13, 1, 159, 209, 182, 33, 36, 77, 2, 166,
232, 7, 14, 115, 14, 133, 158, 50, 33, 65, 108, 131, 201, 52, 2, 38, 168, 79, 191, 113,
180, 169, 131, 119, 26, 191, 250, 29, 38, 128, 20, 85, 177, 88, 149, 116, 192, 184, 150, 3,
216, 210, 225, 214, 17, 156, 64, 120, 169, 57, 157, 101, 175, 76, 32, 123, 5, 72, 101, 142,
104, 217, 144, 68, 167, 165, 99, 238, 35, 141, 81, 231, 195, 1, 205, 96, 84, 49, 105, 5,
91, 137, 90, 124, 114, 91, 51, 240, 60, 236, 149, 94, 252, 138, 45, 252, 144, 184, 32, 200,
86, 166, 68, 144, 31, 127, 11, 195, 218, 135, 38, 105, 76, 130, 45, 245, 123, 103, 122,
178, 30, 187, 229, 33, 202, 0, 168, 79, 125, 32, 33, 64, 174, 44, 157, 90, 219, 24, 76,
252, 28, 75, 117, 15, 195, 219, 233, 6, 149, 229, 145, 4, 136, 183, 40, 41, 174, 86, 222,
196, 152, 113, 185, 109, 57, 184, 93, 194, 149, 148, 57, 192, 205, 11, 217, 49, 49, 18,
161, 204, 255, 82, 148, 88, 2, 76, 244, 13, 161, 88, 223, 79, 111, 79, 176, 64, 142, 77,
38, 10, 116, 35, 95, 85, 160, 99, 196, 7, 246, 44, 157, 186, 46, 132, 227, 248, 214, 24,
20, 135, 46, 109, 203, 60, 145, 114, 103, 18, 13, 215, 44, 140, 47, 21, 169, 205, 165, 10,
13, 148, 115, 185, 35, 48, 63, 85, 48, 81, 32, 83, 132, 45, 139, 145, 51, 110, 126, 14,
111, 37, 194, 47, 162, 195, 233, 243, 96, 60, 57, 246, 40, 45, 9, 114, 32, 247, 10, 78,
147, 173, 84, 56, 175, 20, 37, 123, 50, 135, 157, 90, 4, 110, 251, 250, 154, 65, 249, 100,
208, 85, 178, 243, 126, 202, 241, 27, 190, 205, 86, 219, 133, 233, 168, 80, 221, 121, 35,
188, 226, 5, 189, 97, 61, 23, 128, 15, 189, 59, 36, 80, 116, 111, 82, 38, 125, 152, 222,
246, 16, 246, 121, 179, 199, 126, 151, 209, 52, 90, 20, 200, 24, 161, 233, 40, 127, 202,
197, 104, 157, 28, 205, 3, 37, 179, 80, 103, 24, 170, 65, 176, 83, 133, 186, 1, 226, 202,
134, 37, 150, 35, 25, 132, 133, 119, 165, 145, 232, 59, 38, 108, 69, 238, 113, 227, 170,
76, 122, 94, 59, 39, 96, 40, 250, 15, 107, 90, 247, 38, 74, 93, 152, 150, 240, 151, 154,
216, 219, 146, 124, 145, 247, 84, 231, 72, 218, 207, 45, 211, 163, 185, 181, 68, 42, 159,
56, 147, 97, 114, 220, 4, 134, 164, 230, 242, 118, 80, 197, 113, 252, 192, 184, 76, 184,
230, 134, 148, 65, 230, 28, 212, 149, 117, 112, 180, 29, 115, 76, 108, 137, 162, 126, 33,
96, 197, 62, 183, 171, 40, 199, 171, 168, 46, 103, 113, 94, 22, 166, 89, 104, 244, 10, 52,
185, 3, 76, 34, 86, 54, 10, 39, 138, 151, 167, 200, 131, 210, 4, 45, 136, 38, 1, 113, 152,
79, 105, 96, 238, 255, 153, 103, 57, 139, 100, 128, 231, 171, 60, 220, 80, 117, 191, 137,
48, 139, 176, 86, 45, 234, 232, 92, 96, 68, 95, 16, 215, 39, 220, 51, 31, 97, 125, 155,
253, 14, 240, 248, 117, 65, 41, 39, 51, 52, 186, 38, 226, 36, 94, 127, 134, 122, 183, 84,
187, 131, 219, 214, 196, 248, 113, 235, 105, 13, 72, 238, 223, 125, 147, 118, 225, 214, 48,
169, 111, 170, 6, 148, 223, 89, 162, 103, 4, 226, 101, 140, 123, 119, 204, 249, 215, 211,
50, 38, 179, 183, 149, 142, 87, 52, 125, 31, 198, 8, 179, 24, 195, 231, 148, 47, 30, 118,
29, 243, 40, 130, 12, 206, 94, 145, 150, 121, 225, 201, 147, 35, 224, 240, 206, 93, 211,
44, 150, 199, 223, 218, 90, 185, 17, 108, 99, 140, 110, 67, 224, 206, 144, 190, 226, 82,
82, 225, 43, 128, 40, 15, 241, 225, 120, 56, 177, 98, 50, 28, 159, 232, 246, 33, 161, 196,
163, 213, 155, 164, 68, 90, 180, 97, 215, 73, 89, 78, 233, 26, 5, 95, 147, 142, 49, 149,
181, 79, 54, 202, 76, 33, 224, 244, 21, 138, 66, 161, 186, 231, 80, 155, 123, 237, 116,
203, 246, 144, 60, 225, 19, 139, 212, 221, 6, 141, 37, 130, 172, 110, 152, 43, 53, 68, 136,
199, 16, 152, 151, 58, 48, 229, 211, 96, 83, 9, 154, 101, 229, 225, 255, 141, 97, 84, 229,
101, 131, 104, 151, 244, 27, 87, 4, 242, 153, 220, 76, 84, 141, 25, 41, 93, 223, 195, 48,
21, 146, 223, 82, 30, 211, 17, 230, 197, 237, 69, 82, 169, 15, 230, 11, 5, 162, 18, 14, 9,
83, 228, 153, 220, 64, 17, 27, 124, 70, 30, 101, 228, 179, 172, 45, 244, 195, 111, 40, 19,
99, 154, 222, 251, 225, 149, 202, 32, 131, 180, 246, 146, 42, 91, 9, 20, 158, 233, 131,
152, 160, 96, 0, 11, 122, 91, 157, 163, 182, 219, 62, 132, 95, 90, 231, 104, 166, 188, 145,
125, 92, 127, 56, 39, 85, 45, 141, 159, 25, 254, 25, 210, 89, 168, 183, 50, 48, 121, 252,
234, 100, 4, 93, 108, 157, 103, 242, 226, 63, 173, 38, 234, 141, 46, 63, 83, 253, 99, 38,
46, 165, 26, 37, 140, 251, 61, 209, 201, 46, 145, 105, 26, 230, 18, 193, 140, 91, 58, 195,
83, 205, 77, 90, 37, 153, 230, 88, 67, 18, 72, 9, 186, 14, 226, 37, 243, 178, 137, 126,
231, 44, 56, 120, 55, 37, 116, 16, 24, 30, 181, 159, 96, 217, 56, 249, 86, 93, 217, 185,
32, 228, 73, 194, 24, 70, 28, 186, 0, 196, 50, 35, 92, 108, 59, 208, 60, 49, 223, 207, 39,
90, 18, 136, 189, 26, 103, 160, 12, 160, 91, 216, 186, 120, 171, 123, 169, 16, 96, 8, 91,
222, 75, 133, 45, 126, 162, 63, 44, 148, 175, 49, 160, 114, 193, 149, 38, 229, 24, 163, 9,
62, 100, 116, 140, 233, 66, 59, 221, 234, 236, 8, 186, 130, 32, 95, 232, 74, 10, 153, 67,
87, 101, 246, 156, 244, 25, 211, 251, 213, 77, 57, 98, 26, 62, 202, 122, 95, 24, 234, 84,
163, 241, 69, 112, 42, 23, 98, 145, 177, 180, 214, 100, 218, 10, 187, 59, 211, 78, 189,
153, 125, 2, 190, 99, 155, 120, 59, 139, 108, 1, 35, 208, 151, 81, 15, 95, 120, 233, 211,
40, 28, 251, 244, 94, 66, 252, 151, 93, 206, 124, 133, 167, 197, 72, 165, 73, 32, 39, 237,
95, 138, 141, 47, 56, 38, 131, 68, 151, 41, 77, 190, 61, 137, 67, 65, 66, 32, 103, 204,
178, 169, 113, 246, 109, 146, 13, 179, 184, 229, 229, 99, 148, 238, 60, 85, 154, 6, 57, 13,
176, 14, 132, 115, 183, 147, 219, 180, 110, 179, 16, 65, 14, 150, 121, 31, 73, 30, 70, 1,
132, 61, 140, 214, 53, 105, 121, 227, 138, 190, 156, 19, 167, 163, 67, 81, 150, 107, 66,
201, 200, 4, 11, 123, 169, 59, 125, 121, 24, 226, 35, 65, 112, 2, 7, 37, 98, 34, 68, 17,
171, 64, 16, 173, 27, 110, 249, 215, 180, 65, 107, 201, 48, 54, 141, 64, 33, 139, 152, 41,
15, 100, 166, 40, 15, 192, 99, 209, 179, 199, 63, 105, 123, 193, 145, 157, 200, 210, 135,
200, 32, 53, 51, 243, 13, 224, 137, 24, 140, 20, 115, 194, 69, 53, 12, 172, 97, 221, 214,
170, 65, 207, 159, 126, 144, 66, 56, 44, 152, 142, 216, 160, 90, 91, 186, 204, 101, 192,
64, 61, 218, 35, 235, 158, 38, 55, 105, 27, 143, 210, 198, 9, 52, 174, 217, 220, 6, 138,
209, 120, 84, 223, 164, 162, 176, 183, 2, 153, 171, 7, 146, 245, 85, 46, 8, 115, 86, 125,
133, 82, 148, 92, 2, 228, 170, 68, 202, 82, 69, 184, 218, 4, 199, 224, 252, 0, 1, 210, 80,
65, 50, 70, 232, 181, 12, 34, 232, 25, 137, 13, 210, 116, 40, 188, 43, 70, 63, 149, 97,
155, 115, 195, 17, 201, 167, 55, 135, 107, 5, 222, 133, 199, 188, 148, 156, 98, 39, 241,
123, 125, 126, 222, 66, 103, 99, 251, 73, 55, 198, 5, 200, 248, 201, 248, 187, 106, 211,
211, 113, 92, 103, 65, 40, 96, 147, 39, 142, 78, 221, 9, 36, 55, 45, 185, 172, 120, 106,
171, 47, 115, 70, 222, 239, 179, 69, 71, 63, 142, 130, 253, 169, 152, 238, 54, 6, 134, 178,
23, 36, 138, 179, 102, 253, 220, 155, 179, 212, 106, 251, 195, 93, 230, 158, 80, 17, 133,
208, 150, 164, 232, 134, 183, 133, 193, 129, 187, 218, 129, 145, 144, 37, 61, 201, 36, 30,
116, 244, 53, 206, 84, 69, 67, 242, 220, 179, 81, 72, 206, 55, 127, 39, 183, 210, 43, 210,
219, 196, 225, 109, 183, 241, 37, 227, 73, 248, 145, 128, 177, 246, 51, 229, 149, 205, 234,
95, 37, 156, 169, 170, 204, 29, 77, 43, 50, 107, 12, 30, 125, 89, 112, 79, 188, 173, 148,
67, 233, 172, 0, 202, 94, 251, 158, 219, 29, 246, 97, 77, 188, 47, 47, 34, 28, 209, 11,
229, 221, 141, 184, 253, 46, 253, 87, 117, 224, 229, 207, 142, 229, 221, 249, 241, 175, 94,
208, 2, 176, 14, 224, 101, 157, 28, 24, 233, 147, 41, 74, 56, 174, 77, 210, 174, 109, 223,
16, 34, 34, 202, 243, 247, 220, 69, 77, 239, 57, 191, 181, 160, 15, 227, 241, 74, 191, 203,
143, 175, 77, 4, 190, 197, 15, 50, 9, 7, 17, 236, 130, 1, 83, 79, 238, 49, 96, 175, 144,
23, 92, 117, 251, 248, 194, 90, 95, 99, 75, 208, 18, 49, 223, 116, 162, 53, 87, 175, 253,
87, 135, 99, 121, 185, 40, 240, 42, 11, 42, 164, 145, 88, 209, 11, 12, 70, 58, 145, 215,
146, 247, 239, 20, 173, 111, 101, 80, 184, 12, 60, 13, 146, 129, 78, 38, 214, 130, 182, 33,
122, 129, 199, 124, 193, 131, 21, 175, 33, 47, 245, 238, 206, 155, 35, 246, 121, 231, 62,
204, 57, 99, 165, 221, 234, 32, 3, 22, 157, 154, 7, 134, 180, 139, 70, 126, 60, 94, 40, 79,
72, 217, 99, 252, 206, 181, 66, 186, 14, 1, 121, 116, 241, 226, 244, 105, 116, 165, 118,
224, 167, 87, 223, 204, 156, 103, 218, 148, 137, 180, 157, 57, 104, 120, 232, 102, 127, 10,
162, 179, 14, 181, 189, 12, 223, 52, 170, 0, 237, 4, 140, 194, 221, 247, 182, 26, 234, 102,
220, 161, 247, 150, 79, 147, 205, 25, 76, 142, 91, 112, 134, 120, 77, 84, 160, 191, 197,
213, 130, 177, 177, 7, 100, 144, 47, 243, 74, 216, 135, 132, 0, 252, 52, 192, 165, 120, 76,
20, 222, 77, 160, 122, 92, 149, 1, 97, 107, 179, 85, 21, 243, 41, 100, 182, 83, 94, 144,
220, 17, 60, 112, 189, 107, 241, 134, 246, 175, 181, 80, 179, 154, 82, 173, 96, 67, 103,
110, 60, 226, 66, 1, 55, 79, 105, 78, 186, 208, 7, 240, 26, 255, 80, 49, 66, 19, 180, 220,
74, 74, 75, 147, 131, 173, 135, 69, 236, 175, 175, 36, 74, 168, 23, 20, 236, 2, 3, 218, 32,
147, 78, 222, 89, 147, 20, 70, 147, 110, 4, 61, 12, 202, 206, 248, 147, 86, 24, 88, 26, 70,
220, 106, 170, 59, 105, 146, 58, 141, 58, 218, 204, 66, 140, 169, 139, 191, 5, 21, 203,
214, 18, 103, 55, 100, 16, 76, 152, 45, 59, 131, 8, 235, 3, 61, 198, 127, 162, 88, 126,
134, 22, 173, 106, 3, 153, 189, 40, 11, 59, 129, 248, 246, 95, 198, 106, 220, 82, 95, 226,
76, 186, 64, 67, 143, 33, 234, 104, 184, 149, 24, 10, 213, 118, 112, 250, 83, 121, 128, 20,
165, 36, 108, 82, 34, 96, 214, 1, 106, 0, 174, 236, 177, 211, 23, 137, 123, 247, 236, 241,
152, 51, 170, 232, 156, 100, 251, 32, 64, 13, 255, 220, 103, 68, 115, 247, 111, 163, 57,
11, 7, 236, 247, 53, 39, 35, 24, 159, 111, 39, 74, 91, 70, 125, 188, 58, 148, 245, 51, 78,
66, 23, 27, 35, 152, 92, 204, 40, 210, 253, 222, 112, 160, 103, 202, 82, 194, 78, 209, 83,
68, 85, 69, 92, 216, 122, 127, 15, 158, 164, 27, 143, 161, 19, 107, 7, 190, 0, 79, 116,
231, 167, 44, 86, 91, 58, 244, 21, 220, 134, 63, 221, 132, 59, 15, 92, 146, 124, 69, 135,
20, 201, 242, 82, 23, 91, 216, 246, 159, 1, 109, 107, 98, 161, 78, 215, 248, 130, 16, 113,
158, 232, 118, 200, 242, 194, 196, 160, 71, 44, 166, 138, 197, 38, 127, 100, 117, 4, 33,
60, 86, 97, 221, 240, 245, 52, 197, 24, 243, 225, 201, 123, 39, 11, 218, 117, 248, 238, 63,
17, 207, 213, 245, 255, 94, 164, 90, 73, 162, 75, 192, 197, 7, 113, 153, 192, 76, 176, 196,
87, 178, 40, 39, 32, 87, 148, 58, 71, 222, 82, 207, 151, 125, 40, 187, 212, 32, 146, 230,
190, 103, 26, 244, 1, 61, 61, 251, 68, 89, 115, 246, 3, 225, 241, 20, 128, 237, 1, 184,
203, 36, 4, 148, 235, 232, 83, 219, 115, 60, 188, 50, 0, 58, 148, 25, 232, 157, 75, 50,
103, 228, 240, 84, 207, 64, 183, 211, 50, 124, 215, 225, 223, 129, 59, 13, 69, 23, 73, 160,
118, 109, 247, 242, 114, 56, 251, 92, 249, 22, 165, 99, 221, 136, 0, 0, 36, 242, 164, 163,
22, 3, 225, 59, 109, 214, 36, 3, 39, 237, 3, 85, 24, 111, 197, 183, 0, 152, 94, 130, 120,
108, 206, 179, 20, 63, 45, 180, 76, 91, 150, 111, 206, 156, 108, 195, 159, 235, 203, 160,
116, 217, 220, 195, 241, 104, 62, 111, 58, 236, 223, 169, 120, 19, 14, 158, 102, 87, 115,
216, 23, 133, 102, 165, 9, 220, 54, 116, 132, 188, 111, 96, 2, 49, 14, 144, 160, 86, 60,
108, 224, 252, 202, 224, 239, 191, 145, 142, 35, 41, 127, 252, 130, 93, 175, 213, 17, 59,
248, 190, 24, 8, 42, 69, 239, 41, 43, 180, 243, 195, 127, 114, 19, 126, 5, 75, 223, 244,
170, 180, 37, 5, 207, 144, 170, 230, 68, 143, 0, 180, 147, 125, 239, 243, 178, 97, 103,
117, 202, 24, 194, 15, 215, 111, 194, 208, 145, 234, 10, 121, 120, 49, 150, 29, 246, 79,
174, 9, 117, 98, 87, 182, 84, 189, 73, 196, 246, 134, 29, 138, 161, 238, 27, 90, 153, 118,
110, 194, 184, 147, 77, 173, 109, 204, 49, 209, 137, 101, 59, 68, 244, 172, 6, 87, 71, 203,
174, 13, 126, 175, 59, 202, 47, 190, 254, 173, 233, 193, 255, 55, 212, 35, 246, 182, 60,
51, 71, 25, 154, 183, 236, 10, 44, 57, 52, 158, 126, 235, 97, 147, 146, 144, 149, 73, 72,
103, 91, 107, 202, 53, 150, 245, 176, 181, 177, 221, 218, 67, 122, 197, 155, 166, 92, 212,
171, 21, 184, 160, 219, 154, 36, 143, 77, 139, 203, 9, 184, 45, 114, 125, 201, 82, 33, 136,
49, 5, 172, 61, 233, 8, 219, 159, 249, 205, 47, 51, 109, 194, 71, 231, 132, 155, 111, 243,
178, 51, 198, 250, 185, 220, 119, 89, 172, 109, 132, 139, 136, 174, 11, 155, 63, 191, 14,
174, 33, 76, 10, 250, 115, 19, 232, 103, 63, 238, 45, 173, 252, 48, 144, 79, 53, 131, 67,
222, 128, 76, 92, 161, 102, 241, 66, 177, 7, 142, 74, 54, 240, 200, 189, 198, 70, 54, 153,
250, 144, 193, 237, 142, 123, 144, 65, 207, 56, 116, 175, 236, 250, 16, 98, 80, 148, 187,
84, 188, 117, 23, 232, 216, 184, 98, 79, 250, 131, 135, 53, 200, 4, 43, 214, 121, 63, 201,
93, 222, 212, 201, 202, 228, 141, 228, 205, 120, 83, 221, 122, 81, 32, 71, 100, 32, 126,
206, 68, 66, 29, 138, 124, 117, 252, 118, 234, 176, 206, 69, 51, 138, 222, 155, 64, 103,
171, 248, 234, 93, 69, 195, 154, 24, 83, 0, 177, 30, 225, 82, 64, 130, 184, 124, 14, 136,
163, 22, 72, 8, 140, 61, 124, 255, 159, 120, 58, 33, 40, 204, 144, 198, 198, 58, 241, 14,
183, 89, 60, 193, 0, 134, 224, 28, 222, 204, 244, 16, 249, 250, 19, 143, 149, 227, 38, 26,
163, 79, 87, 82, 65, 24, 190, 148, 162, 226, 39, 124, 109, 170, 66, 15, 162, 23, 27, 210,
0, 241, 176, 123, 1, 150, 126, 203, 223, 249, 111, 147, 136, 127, 193, 127, 59, 100, 71,
26, 182, 31, 161, 253, 177, 210, 82, 20, 58, 101, 254, 197, 49, 87, 42, 240, 183, 177, 49,
191, 53, 27, 47, 242, 118, 167, 96, 223, 11, 111, 183, 218, 41, 0, 133, 181, 63, 178, 243,
171, 121, 247, 167, 141, 38, 3, 234, 121, 187, 254, 205, 67, 59, 129, 82, 120, 140, 51,
124, 228, 229, 67, 247, 26, 98, 102, 114, 184, 96, 6, 192, 166, 164, 121, 74, 148, 93, 57,
123, 120, 137, 161, 165, 170, 183, 125, 230, 0, 239, 44, 164, 49, 21, 139, 197, 169, 99,
29, 232, 124, 17, 200, 87, 216, 255, 250, 93, 5, 167, 194, 100, 74, 18, 250, 139, 172, 204,
12, 45, 108, 155, 222, 147, 61, 89, 47, 232, 240, 130, 255, 190, 13, 164, 208, 103, 2, 103,
13, 253, 253, 131, 53, 62, 28, 140, 204, 46, 187, 217, 24, 140, 151, 172, 71, 103, 222, 0,
199, 170, 234, 120, 89, 39, 26, 43, 54, 148, 41, 179, 36, 202, 22, 159, 185, 182, 225, 147,
120, 88, 130, 175, 18, 48, 203, 120, 156, 178, 17, 81, 13, 12, 141, 137, 172, 108, 115, 97,
213, 166, 244, 44, 195, 196, 236, 148, 198, 205, 145, 4, 137, 238, 140, 188, 77, 171, 104,
217, 44, 205, 73, 213, 12, 161, 146, 172, 236, 195, 139, 77, 106, 161, 33, 44, 144, 170,
18, 79, 175, 244, 0, 134, 97, 48, 17, 242, 145, 97, 143, 135, 194, 53, 89, 240, 65, 104,
144, 125, 99, 214, 236, 35, 145, 217, 181, 83, 186, 71, 102, 221, 46, 205, 195, 173, 11,
251, 126, 94, 70, 135, 245, 39, 14, 74, 201, 252, 88, 184, 254, 75, 9, 161, 197, 233, 228,
129, 37, 88, 150, 208, 56, 132, 4, 192, 10, 138, 0, 1, 250, 244, 137, 161, 23, 25, 196,
134, 63, 62, 207, 230, 82, 231, 254, 60, 131, 141, 81, 218, 112, 16, 191, 197, 237, 153,
27, 177, 37, 142, 178, 86, 192, 24, 3, 178, 9, 73, 149, 204, 113, 70, 52, 148, 16, 3, 85,
24, 225, 237, 154, 131, 29, 69, 195, 47, 3, 110, 32, 86, 163, 220, 76, 220, 128, 94, 142,
43, 35, 29, 62, 110, 231, 174, 214, 144, 18, 33, 230, 247, 99, 95, 227, 30, 46, 40, 147,
139, 6, 152, 177, 83, 202, 225, 43, 7, 124, 93, 38, 249, 123, 214, 50, 136, 167, 78, 147,
2, 106, 97, 82, 102, 198, 46, 151, 248, 211, 188, 114, 153, 90, 137, 97, 199, 232, 16, 52,
150, 177, 66, 110, 45, 178, 185, 238, 99, 24, 209, 0, 51, 142, 244, 153, 143, 65, 50, 221,
92, 184, 165, 218, 128, 141, 130, 63, 35, 119, 147, 227, 231, 239, 7, 65, 110, 108, 223,
87, 71, 43, 139, 4, 19, 153, 54, 232, 52, 131, 217, 146, 102, 225, 44, 2, 113, 26, 140, 75,
69, 51, 235, 133, 39, 107, 168, 133, 26, 30, 117, 17, 131, 92, 35, 65, 137, 52, 38, 33, 38,
78, 103, 79, 49, 33, 185, 145, 11, 169, 89, 214, 223, 29, 174, 106, 97, 96, 107, 84, 121,
63, 12, 16, 79, 118, 71, 145, 251, 193, 135, 233, 62, 103, 140, 247, 77, 236, 238, 95, 49,
14, 115, 99, 75, 37, 131, 175, 109, 148, 251, 90, 155, 120, 109, 76, 244, 176, 18, 137, 6,
67, 130, 111, 204, 49, 83, 85, 100, 209, 8, 254, 120, 206, 35, 217, 139, 181, 91, 81, 107,
20, 49, 25, 92, 115, 221, 198, 185, 238, 194, 35, 186, 86, 162, 241, 69, 133, 35, 4, 76,
90, 39, 114, 46, 199, 108, 39, 82, 172, 236, 204, 144, 209, 74, 207, 65, 197, 35, 239, 100,
11, 145, 111, 220, 137, 135, 244, 30, 28, 232, 235, 225, 38, 156, 38, 233, 178, 227, 169,
220, 76, 3, 182, 119, 62, 248, 194, 226, 200, 83, 190, 179, 112, 219, 49, 42, 119, 244,
232, 254, 228, 0, 79, 208, 17, 35, 53, 5, 128, 213, 182, 220, 212, 204, 171, 73, 47, 12,
76, 42, 183, 143, 226, 30, 131, 33, 11, 128, 132, 48, 40, 37, 68, 36, 239, 11, 235, 6, 25,
235, 12, 100, 60, 84, 40, 160, 192, 210, 132, 106, 71, 121, 82, 225, 166, 66, 109, 229,
131, 109, 56, 220, 196, 45, 210, 51, 30, 6, 45, 175, 247, 9, 52, 112, 183, 153, 206, 93,
19, 17, 127, 171, 89, 125, 156, 23, 135, 18, 66, 132, 160, 52, 51, 156, 133, 143, 153, 54,
5, 35, 111, 3, 77, 13, 249, 252, 113, 19, 96, 92, 15, 162, 177, 199, 125, 253, 187, 103, 5,
181, 18, 128, 213, 91, 243, 243, 224, 74, 96, 245, 73, 96, 85, 129, 150, 240, 75, 217, 241,
113, 171, 3, 174, 82, 83, 102, 72, 135, 233, 85, 220, 31, 31, 40, 168, 13, 152, 79, 195,
67, 109, 222, 242, 62, 182, 86, 216, 21, 44, 200, 34, 91, 38, 170, 138, 129, 31, 168, 181,
103, 242, 226, 16, 171, 251, 28, 93, 156, 45, 167, 67, 168, 151, 58, 22, 83, 43, 33, 31,
69, 217, 211, 88, 152, 77, 39, 230, 235, 132, 108, 53, 188, 33, 26, 158, 198, 113, 58, 3,
139, 71, 213, 41, 213, 128, 66, 102, 101, 52, 129, 48, 125, 53, 223, 226, 193, 33, 108,
160, 203, 150, 55, 70, 16, 225, 199, 237, 157, 15, 3, 33, 46, 242, 87, 112, 231, 85, 132,
25, 49, 116, 121, 20, 221, 205, 201, 121, 163, 153, 34, 199, 115, 99, 132, 115, 85, 120,
211, 124, 184, 197, 92, 233, 250, 94, 103, 39, 109, 148, 159, 215, 90, 107, 28, 218, 152,
46, 181, 32, 3, 115, 152, 120, 42, 33, 52, 104, 60, 151, 104, 107, 245, 238, 54, 19, 163,
118, 142, 171, 200, 239, 167, 127, 206, 54, 70, 212, 82, 97, 75, 217, 193, 105, 127, 33,
144, 172, 114, 9, 234, 89, 95, 13, 26, 129, 94, 225, 5, 106, 166, 15, 74, 205, 171, 228,
196, 1, 228, 127, 191, 64, 29, 241, 164, 83, 216, 254, 8, 25, 131, 32, 51, 186, 179, 29,
38, 241, 25, 74, 91, 246, 251, 132, 65, 85, 142, 94, 81, 191, 108, 122, 5, 180, 102, 132,
53, 6, 215, 242, 75, 249, 37, 190, 76, 62, 23, 112, 47, 208, 51, 139, 219, 14, 170, 96,
103, 21, 192, 83, 71, 44, 31, 21, 159, 173, 167, 30, 10, 125, 18, 224, 18, 90, 76, 24, 247,
56, 210, 93, 37, 202, 194, 78, 162, 159, 143, 251, 201, 240, 45, 140, 41, 43, 145, 98, 12,
246, 189, 125, 94, 102, 223, 229, 90, 69, 212, 252, 63, 90, 181, 43, 189, 55, 97, 88, 228,
124, 186, 67, 62, 179, 229, 204, 175, 113, 41, 255, 45, 193, 58, 1, 126, 82, 76, 250, 139,
242, 107, 215, 79, 110, 87, 100, 240, 206, 161, 250, 14, 223, 2, 156, 65, 206, 13, 13, 229,
196, 250, 89, 207, 104, 165, 55, 161, 38, 65, 73, 241, 95, 219, 119, 192, 185, 220, 219,
77, 36, 169, 0, 44, 115, 228, 226, 86, 124, 140, 81, 134, 242, 1, 27, 101, 161, 10, 155,
142, 237, 228, 182, 137, 102, 99, 167, 236, 37, 57, 242, 30, 45, 108, 227, 124, 173, 41,
14, 141, 16, 169, 9, 253, 245, 64, 7, 38, 97, 34, 218, 149, 174, 58, 205, 53, 13, 161, 73,
207, 82, 83, 95, 211, 189, 42, 52, 96, 239, 174, 126, 141, 2, 117, 98, 247, 99, 134, 178,
72, 95, 152, 139, 166, 242, 69, 95, 98, 251, 80, 122, 79, 88, 150, 165, 173, 31, 117, 155,
212, 111, 165, 26, 138, 58, 214, 107, 14, 107, 63, 33, 230, 90, 116, 22, 116, 115, 5, 211,
118, 194, 208, 218, 231, 163, 109, 31, 217, 85, 144, 127, 38, 177, 122, 220, 245, 89, 39,
205, 1, 53, 135, 106, 96, 193, 36, 0, 27, 151, 6, 228, 72, 212, 36, 2, 131, 80, 221, 168,
204, 68, 94, 238, 40, 68, 51, 150, 96, 77, 241, 217, 20, 152, 247, 248, 140, 83, 248, 55,
33, 231, 74, 83, 34, 2, 141, 162, 186, 6, 134, 88, 0, 31, 240, 56, 178, 140, 166, 172, 7,
100, 135, 22, 247, 212, 224, 4, 71, 189, 156, 98, 44, 67, 110, 10, 101, 132, 107, 180, 47,
44, 39, 145, 97, 108, 46, 107, 113, 171, 130, 119, 37, 211, 21, 204, 79, 249, 158, 33, 235,
130, 124, 43, 126, 185, 118, 234, 93, 38, 92, 227, 215, 17, 248, 246, 205, 24, 2, 128, 123,
166, 173, 200, 48, 218, 152, 141, 229, 89, 199, 229, 191, 27, 226, 166, 74, 217, 115, 215,
77, 198, 13, 248, 6, 129, 149, 192, 170, 156, 125, 44, 178, 172, 205, 253, 147, 41, 117, 8,
72, 130, 144, 57, 63, 200, 234, 253, 209, 113, 173, 212, 126, 216, 147, 255, 69, 92, 33,
193, 222, 2, 208, 148, 161, 138, 75, 82, 49, 158, 85, 70, 180, 30, 149, 174, 32, 172, 131,
225, 241, 35, 111, 143, 164, 25, 250, 16, 4, 116, 69, 77, 103, 43, 121, 62, 145, 200, 49,
138, 208, 21, 11, 178, 59, 163, 143, 64, 131, 253, 241, 185, 137, 181, 119, 255, 13, 19,
228, 51, 111, 168, 181, 56, 211, 19, 33, 3, 5, 48, 103, 8, 144, 3, 57, 33, 98, 84, 140,
248, 195, 14, 42, 192, 156, 24, 188, 99, 69, 214, 35, 29, 234, 124, 64, 27, 158, 153, 138,
158, 147, 235, 178, 39, 139, 238, 112, 65, 33, 62, 97, 58, 201, 162, 12, 97, 94, 99, 234,
14, 145, 226, 55, 156, 34, 252, 37, 149, 64, 46, 202, 223, 105, 83, 22, 198, 62, 164, 200,
5, 167, 49, 190, 47, 103, 220, 61, 23, 231, 243, 160, 209, 95, 229, 238, 190, 102, 114,
166, 96, 107, 139, 232, 178, 214, 166, 0, 23, 110, 87, 67, 116, 254, 251, 62, 89, 221, 15,
67, 115, 53, 2, 250, 91, 203, 27, 38, 108, 106, 138, 53, 150, 101, 225, 214, 39, 171, 65,
77, 66, 187, 63, 71, 217, 26, 238, 106, 43, 132, 106, 85, 45, 182, 214, 110, 238, 8, 182,
184, 122, 7, 11, 108, 166, 120, 76, 236, 64, 175, 111, 70, 129, 70, 75, 119, 97, 5, 171,
198, 54, 213, 219, 138, 214, 144, 140, 4, 1, 67, 64, 188, 66, 224, 158, 134, 138, 3, 41,
112, 90, 22, 76, 137, 217, 62, 160, 17, 132, 94, 113, 241, 65, 90, 114, 234, 45, 132, 26,
73, 238, 39, 165, 123, 232, 51, 229, 106, 172, 12, 157, 98, 215, 142, 195, 172, 113, 93,
132, 61, 84, 176, 69, 28, 94, 217, 168, 1, 190, 108, 26, 156, 10, 215, 205, 208, 241, 118,
18, 227, 33, 12, 80, 179, 152, 168, 29, 169, 123, 20, 181, 1, 137, 136, 3, 83, 248, 43,
126, 17, 36, 130, 84, 204, 63, 164, 43, 209, 134, 247, 171, 254, 195, 32, 50, 83, 32, 17,
173, 25, 15, 180, 60, 73, 123, 46, 161, 173, 94, 5, 149, 81, 234, 57, 194, 233, 148, 207,
127, 25, 34, 97, 196, 177, 93, 198, 172, 236, 60, 185, 94, 54, 139, 81, 114, 166, 17, 82,
80, 56, 175, 223, 10, 116, 196, 64, 122, 241, 38, 203, 123, 182, 113, 23, 48, 44, 127, 35,
167, 186, 216, 113, 218, 97, 200, 196, 121, 150, 32, 222, 190, 209, 171, 169, 49, 239, 164,
94, 4, 79, 232, 205, 81, 158, 239, 165, 183, 37, 31, 241, 12, 58, 14, 153, 104, 39, 186,
81, 132, 46, 247, 178, 79, 128, 1, 183, 152, 56, 112, 137, 248, 97, 106, 226, 237, 83, 3,
126, 35, 15, 221, 209, 76, 16, 84, 28, 229, 119, 60, 61, 209, 253, 199, 162, 200, 111, 89,
46, 117, 76, 225, 254, 178, 76, 217, 158, 134, 217, 124, 241, 101, 170, 88, 182, 28, 215,
82, 138, 75, 143, 148, 151, 232, 176, 10, 211, 144, 161, 7, 35, 243, 198, 79, 118, 42, 194,
50, 97, 130, 166, 127, 186, 43, 125, 233, 228, 245, 177, 187, 192, 187, 31, 145, 229, 143,
240, 15, 8, 110, 153, 231, 164, 159, 200, 22, 202, 30, 232, 50, 100, 27, 157, 233, 112, 24,
196, 15, 16, 17, 87, 19, 5, 4, 19, 129, 242, 14, 202, 246, 204, 95, 191, 74, 203, 194, 255,
154, 47, 231, 25, 96, 56, 37, 229, 202, 4, 178, 69, 162, 68, 182, 196, 23, 52, 3, 90, 144,
2, 23, 212, 97, 141, 17, 187, 85, 244, 82, 64, 134, 114, 38, 157, 12, 217, 132, 64, 119,
211, 89, 99, 106, 180, 166, 229, 163, 23, 131, 94, 200, 233, 1, 116, 252, 104, 194, 24,
107, 81, 34, 22, 236, 1, 214, 127, 93, 251, 131, 31, 237, 141, 255, 51, 37, 56, 103, 118,
126, 50, 143, 77, 76, 242, 80, 180, 94, 148, 218, 163, 251, 90, 18, 146, 60, 80, 170, 70,
84, 207, 224, 160, 14, 82, 42, 161, 176, 73, 0, 131, 255, 173, 64, 120, 25, 4, 198, 40, 11,
42, 181, 180, 207, 218, 220, 15, 225, 209, 87, 195, 255, 24, 178, 233, 199, 215, 166, 58,
231, 18, 219, 136, 157, 204, 55, 229, 5, 99, 20, 161, 44, 209, 17, 29, 192, 114, 138, 105,
93, 232, 137, 20, 148, 192, 52, 177, 116, 235, 194, 186, 57, 111, 186, 152, 146, 78, 190,
36, 55, 2, 8, 26, 38, 145, 19, 160, 34, 247, 99, 139, 228, 41, 32, 63, 163, 179, 17, 108,
212, 199, 148, 116, 119, 233, 89, 72, 190, 180, 146, 59, 243, 196, 233, 77, 226, 214, 228,
69, 65, 2, 230, 166, 244, 2, 88, 117, 136, 142, 111, 66, 123, 73, 4, 173, 215, 71, 96, 41,
115, 162, 238, 55, 104, 53, 195, 74, 45, 63, 91, 159, 117, 209, 88, 11, 102, 135, 97, 103,
230, 12, 168, 241, 76, 13, 229, 175, 124, 245, 127, 91, 217, 155, 113, 164, 217, 153, 153,
137, 63, 228, 230, 141, 188, 185, 147, 22, 3, 21, 196, 93, 227, 200, 247, 11, 45, 83, 2, 5,
172, 36, 72, 105, 91, 37, 12, 197, 145, 113, 74, 124, 168, 210, 24, 9, 16, 191, 126, 118,
147, 150, 171, 127, 171, 193, 210, 20, 44, 41, 57, 151, 157, 201, 131, 150, 176, 252, 113,
36, 186, 135, 0, 148, 20, 182, 196, 245, 165, 37, 193, 66, 65, 117, 82, 35, 212, 75, 91,
254, 98, 152, 171, 111, 244, 229, 133, 70, 110, 164, 87, 71, 18, 87, 232, 66, 204, 155,
152, 32, 60, 152, 213, 79, 77, 175, 1, 245, 75, 11, 239, 2, 134, 73, 187, 133, 124, 47,
186, 217, 248, 157, 202, 15, 40, 177, 112, 182, 45, 147, 238, 138, 224, 133, 177, 11, 213,
144, 53, 80, 226, 97, 181, 232, 17, 203, 80, 189, 74, 210, 62, 241, 130, 198, 142, 184, 10,
96, 164, 100, 109, 191, 220, 181, 243, 235, 90, 90, 105, 203, 39, 119, 163, 235, 60, 233,
71, 215, 74, 127, 95, 178, 94, 167, 53, 35, 223, 56, 153, 130, 117, 223, 75, 186, 165, 171,
208, 212, 1, 227, 171, 22, 201, 135, 104, 86, 12, 164, 171, 191, 73, 204, 82, 196, 216,
189, 190, 126, 134, 249, 81, 152, 25, 42, 204, 222, 14, 8, 105, 209, 142, 171, 176, 56,
157, 44, 193, 113, 81, 156, 186, 26, 74, 26, 169, 8, 240, 13, 9, 100, 69, 91, 21, 233, 17,
204, 129, 39, 208, 11, 54, 160, 192, 2, 56, 162, 154, 243, 174, 170, 106, 16, 128, 83, 117,
175, 204, 191, 170, 32, 25, 108, 10, 226, 102, 188, 1, 157, 11, 13, 250, 160, 76, 161, 28,
246, 202, 86, 207, 176, 96, 44, 168, 68, 243, 106, 161, 149, 187, 175, 182, 19, 228, 180,
26, 110, 227, 93, 71, 66, 71, 117, 139, 42, 74, 164, 222, 163, 37, 240, 102, 82, 105, 7,
123, 69, 57, 19, 46, 228, 80, 185, 202, 16, 117, 241, 101, 230, 153, 39, 211, 76, 236, 34,
156, 187, 250, 91, 103, 71, 77, 156, 162, 158, 97, 248, 137, 183, 38, 51, 87, 82, 30, 175,
208, 82, 69, 72, 114, 155, 144, 96, 33, 144, 157, 145, 182, 92, 12, 94, 56, 243, 196, 154,
158, 0, 182, 210, 81, 125, 35, 144, 188, 146, 92, 22, 148, 139, 48, 127, 42, 63, 50, 255,
225, 117, 248, 33, 99, 146, 196, 130, 11, 238, 5, 26, 114, 1, 250, 250, 221, 156, 195, 19,
56, 183, 48, 136, 48, 12, 120, 204, 21, 131, 7, 65, 228, 135, 205, 177, 128, 37, 31, 8,
144, 130, 192, 132, 179, 92, 184, 155, 186, 215, 6, 110, 144, 139, 191, 151, 122, 4, 191,
58, 137, 139, 61, 90, 242, 176, 82, 138, 207, 250, 77, 228, 235, 208, 174, 206, 113, 157,
134, 127, 24, 219, 164, 210, 115, 184, 148, 67, 219, 12, 205, 127, 169, 26, 165, 124, 180,
41, 83, 194, 224, 200, 24, 88, 72, 217, 153, 202, 54, 106, 51, 243, 135, 230, 218, 220, 19,
99, 86, 134, 106, 86, 156, 50, 142, 41, 146, 88, 103, 250, 232, 84, 56, 215, 233, 16, 57,
194, 202, 239, 231, 178, 241, 177, 104, 2, 155, 54, 29, 218, 159, 26, 213, 151, 84, 150,
60, 101, 37, 144, 62, 178, 14, 32, 96, 137, 132, 95, 25, 178, 15, 252, 90, 42, 177, 165,
29, 107, 172, 145, 98, 69, 156, 45, 32, 224, 26, 130, 196, 15, 17, 94, 154, 86, 37, 50, 76,
231, 213, 120, 7, 177, 249, 134, 9, 22, 58, 219, 152, 235, 14, 31, 30, 11, 151, 11, 99, 60,
243, 124, 148, 204, 46, 108, 141, 6, 10, 208, 181, 206, 53, 75, 90, 58, 150, 199, 92, 149,
22, 57, 8, 152, 82, 41, 171, 150, 121, 182, 168, 248, 185, 237, 143, 232, 216, 220, 208,
219, 233, 61, 74, 1, 24, 228, 0, 41, 165, 129, 120, 29, 164, 67, 66, 95, 82, 172, 113, 20,
244, 226, 140, 122, 212, 227, 149, 86, 44, 159, 244, 212, 145, 202, 176, 26, 133, 121, 9,
44, 197, 51, 227, 47, 166, 78, 116, 163, 28, 36, 120, 10, 28, 217, 77, 97, 81, 23, 83, 194,
214, 22, 143, 37, 3, 143, 201, 88, 19, 200, 104, 79, 0, 12, 215, 136, 236, 97, 1, 91, 213,
175, 67, 237, 121, 145, 73, 51, 57, 144, 198, 22, 2, 100, 37, 210, 118, 225, 165, 220, 20,
74, 68, 28, 177, 54, 110, 120, 110, 160, 186, 58, 181, 165, 169, 32, 207, 85, 195, 72, 178,
187, 235, 176, 140, 4, 231, 100, 179, 49, 70, 124, 205, 165, 61, 193, 225, 30, 66, 58, 177,
170, 52, 237, 62, 172, 190, 127, 251, 6, 34, 191, 72, 120, 74, 152, 9, 20, 118, 35, 114,
22, 50, 193, 222, 163, 195, 119, 39, 64, 214, 186, 176, 123, 122, 76, 55, 77, 148, 127, 69,
205, 113, 122, 0, 127, 189, 189, 61, 48, 206, 35, 237, 25, 134, 80, 72, 163, 217, 204, 193,
196, 220, 14, 243, 55, 100, 246, 97, 184, 77, 141, 162, 112, 228, 129, 21, 145, 155, 137,
173, 201, 231, 196, 182, 166, 134, 31, 191, 65, 157, 65, 207, 144, 194, 247, 240, 94, 26,
232, 218, 87, 115, 190, 95, 165, 146, 204, 61, 197, 169, 212, 203, 60, 172, 181, 189, 169,
187, 171, 162, 198, 0, 227, 247, 224, 53, 20, 2, 81, 30, 202, 242, 236, 72, 243, 109, 76,
255, 8, 168, 20, 78, 1, 128, 9, 40, 17, 31, 209, 120, 190, 36, 108, 148, 216, 196, 198,
168, 141, 32, 77, 99, 237, 163, 74, 105, 99, 36, 160, 143, 250, 182, 204, 20, 135, 6, 165,
216, 36, 153, 68, 39, 203, 185, 64, 208, 14, 65, 3, 7, 128, 60, 83, 197, 179, 111, 167,
126, 113, 192, 156, 18, 101, 159, 233, 228, 112, 217, 79, 56, 110, 89, 162, 158, 149, 201,
228, 70, 216, 234, 183, 82, 78, 229, 30, 84, 55, 144, 73, 243, 215, 109, 69, 228, 49, 251,
82, 196, 128, 13, 56, 96, 172, 212, 220, 195, 140, 252, 108, 138, 149, 140, 114, 223, 49,
211, 13, 195, 234, 161, 180, 120, 228, 202, 92, 132, 124, 152, 47, 30, 228, 85, 18, 163,
10, 209, 196, 151, 10, 147, 213, 143, 78, 28, 254, 20, 21, 31, 175, 129, 25, 53, 104, 237,
217, 222, 172, 3, 179, 148, 32, 34, 115, 204, 153, 187, 91, 63, 52, 143, 53, 150, 80, 43,
249, 64, 159, 127, 87, 176, 59, 87, 150, 118, 108, 254, 49, 33, 79, 41, 1, 18, 129, 142,
204, 29, 125, 94, 185, 9, 22, 109, 156, 184, 25, 128, 182, 96, 167, 198, 126, 39, 180, 123,
216, 150, 184, 61, 115, 152, 222, 75, 42, 65, 230, 165, 61, 44, 144, 55, 17, 234, 174, 0,
164, 191, 228, 20, 246, 108, 37, 128, 209, 114, 227, 42, 49, 128, 148, 151, 197, 69, 197,
140, 39, 112, 65, 84, 233, 192, 8, 187, 0, 11, 83, 44, 153, 70, 102, 255, 101, 187, 98, 89,
112, 252, 107, 116, 60, 222, 85, 8, 131, 100, 225, 57, 209, 94, 81, 147, 101, 132, 247,
188, 75, 89, 132, 112, 201, 140, 238, 62, 160, 191, 236, 49, 173, 57, 24, 178, 195, 150,
112, 216, 165, 86, 251, 1, 206, 119, 74, 175, 219, 191, 56, 251, 37, 71, 51, 54, 152, 230,
98, 4, 63, 64, 18, 193, 24, 15, 47, 52, 192, 18, 146, 206, 75, 133, 235, 109, 56, 180, 203,
226, 142, 162, 219, 64, 58, 244, 20, 199, 169, 177, 221, 95, 61, 6, 225, 62, 39, 83, 209,
68, 59, 99, 242, 137, 170, 128, 225, 20, 157, 114, 167, 237, 5, 236, 211, 180, 190, 204,
125, 125, 9, 184, 96, 156, 217, 205, 207, 66, 236, 159, 46, 176, 208, 147, 169, 211, 219,
188, 184, 195, 21, 202, 64, 201, 180, 174, 224, 80, 58, 220, 32, 115, 239, 123, 216, 130,
205, 246, 99, 93, 112, 32, 157, 185, 138, 232, 186, 38, 101, 85, 93, 133, 154, 50, 100,
122, 149, 31, 76, 200, 149, 140, 31, 2, 215, 249, 108, 56, 170, 197, 95, 202, 47, 79, 201,
37, 83, 112, 164, 19, 114, 106, 2, 88, 132, 238, 86, 24, 75, 108, 145, 189, 193, 186, 128,
238, 37, 137, 79, 145, 39, 188, 119, 23, 215, 159, 212, 111, 32, 15, 199, 200, 35, 167,
120, 28, 122, 32, 82, 16, 171, 12, 32, 56, 84, 179, 17, 1, 45, 31, 63, 135, 94, 191, 6,
115, 104, 20, 138, 148, 213, 39, 68, 30, 161, 162, 230, 242, 114, 200, 28, 48, 141, 177,
248, 142, 27, 14, 239, 87, 4, 6, 61, 92, 38, 161, 151, 60, 199, 44, 148, 9, 246, 139, 165,
5, 167, 86, 77, 134, 130, 66, 213, 35, 163, 16, 45, 31, 159, 150, 188, 218, 227, 82, 50,
30, 22, 155, 94, 57, 240, 177, 18, 22, 37, 163, 23, 105, 244, 147, 105, 45, 252, 243, 181,
9, 240, 221, 64, 188, 190, 205, 211, 186, 137, 139, 100, 10, 160, 184, 250, 126, 59, 226,
45, 181, 239, 172, 75, 0, 69, 209, 230, 195, 249, 246, 228, 36, 10, 2, 31, 152, 124, 67,
231, 73, 88, 49, 157, 71, 7, 128, 46, 218, 207, 68, 159, 162, 9, 231, 202, 54, 78, 76, 234,
236, 236, 16, 9, 7, 79, 104, 66, 150, 230, 74, 129, 88, 100, 232, 186, 44, 220, 214, 39,
10, 188, 34, 181, 2, 228, 133, 136, 203, 232, 78, 146, 0, 244, 164, 244, 11, 135, 101, 147,
63, 223, 163, 220, 46, 46, 90, 143, 125, 143, 148, 73, 152, 165, 72, 43, 103, 65, 199, 224,
4, 158, 137, 97, 21, 95, 165, 111, 144, 240, 12, 13, 28, 108, 84, 55, 164, 145, 211, 26,
123, 35, 57, 55, 71, 106, 86, 86, 48, 104, 37, 86, 33, 59, 99, 172, 190, 32, 220, 245, 104,
154, 191, 215, 235, 95, 131, 164, 154, 161, 204, 171, 35, 62, 125, 104, 219, 67, 95, 51,
90, 98, 144, 202, 13, 16, 157, 106, 15, 135, 254, 191, 19, 85, 102, 232, 149, 76, 183, 227,
19, 60, 96, 143, 249, 108, 123, 246, 132, 198, 245, 6, 253, 80, 146, 198, 157, 202, 87,
176, 184, 185, 89, 206, 62, 173, 10, 181, 73, 29, 129, 243, 50, 245, 111, 115, 101, 106,
166, 238, 171, 157, 71, 17, 152, 172, 58, 226, 102, 72, 33, 137, 54, 62, 69, 170, 135, 235,
89, 150, 23, 73, 30, 253, 90, 244, 8, 19, 17, 230, 235, 237, 71, 44, 91, 112, 110, 146,
225, 103, 242, 40, 108, 96, 255, 238, 120, 6, 175, 71, 108, 78, 174, 208, 184, 39, 137,
159, 78, 11, 3, 242, 21, 197, 52, 149, 218, 150, 111, 134, 232, 57, 100, 215, 92, 40, 53,
196, 246, 26, 245, 246, 244, 152, 214, 21, 27, 1, 164, 114, 3, 242, 66, 255, 213, 144, 33,
37, 41, 0, 80, 69, 114, 124, 178, 65, 228, 28, 34, 3, 119, 61, 238, 161, 204, 159, 101,
164, 86, 83, 33, 24, 86, 244, 108, 159, 227, 29, 118, 47, 153, 118, 88, 45, 101, 202, 64,
69, 16, 232, 26, 76, 14, 230, 167, 250, 109, 112, 6, 211, 82, 154, 139, 182, 255, 249, 199,
139, 47, 72, 38, 2, 87, 106, 227, 25, 14, 33, 51, 130, 115, 23, 11, 98, 181, 179, 97, 140,
178, 5, 185, 242, 97, 235, 35, 235, 139, 158, 251, 80, 192, 117, 206, 240, 40, 204, 16,
203, 237, 30, 19, 246, 101, 189, 229, 245, 19, 47, 134, 192, 223, 238, 184, 2, 80, 91, 81,
35, 141, 129, 87, 193, 51, 236, 61, 227, 16, 126, 95, 107, 98, 180, 70, 239, 69, 236, 157,
42, 22, 214, 237, 198, 4, 214, 135, 60, 10, 19, 1, 117, 137, 154, 62, 225, 90, 211, 82, 87,
49, 166, 76, 223, 233, 153, 131, 184, 25, 152, 97, 54, 117, 43, 59, 200, 57, 224, 5, 173,
39, 111, 66, 99, 158, 152, 92, 98, 34, 189, 15, 191, 130, 82, 155, 248, 159, 211, 8, 254,
161, 244, 185, 237, 35, 83, 246, 135, 182, 76, 5, 238, 195, 175, 62, 17, 178, 73, 135, 173,
70, 124, 157, 166, 224, 184, 203, 86, 35, 44, 76, 42, 103, 220, 165, 148, 38, 163, 131,
129, 95, 76, 162, 82, 13, 16, 109, 16, 214, 33, 115, 135, 48, 56, 184, 33, 147, 226, 92,
110, 130, 246, 3, 134, 89, 96, 99, 66, 96, 127, 89, 93, 25, 154, 227, 15, 19, 158, 115,
108, 210, 220, 203, 97, 147, 223, 146, 246, 64, 248, 25, 183, 174, 167, 133, 142, 252, 180,
216, 98, 192, 149, 14, 156, 136, 218, 34, 142, 212, 62, 61, 235, 239, 18, 10, 211, 104,
159, 153, 90, 26, 34, 144, 194, 232, 249, 10, 205, 220, 99, 106, 129, 56, 124, 223, 195,
243, 48, 23, 73, 253, 229, 0, 199, 62, 171, 187, 210, 154, 26, 36, 239, 39, 210, 150, 169,
119, 114, 230, 89, 156, 17, 253, 5, 51, 141, 227, 152, 52, 34, 250, 66, 214, 24, 72, 88,
209, 154, 73, 131, 181, 35, 191, 176, 100, 90, 236, 168, 181, 249, 190, 112, 154, 119, 156,
118, 80, 223, 25, 88, 107, 96, 107, 28, 234, 160, 51, 71, 165, 127, 80, 198, 7, 25, 78,
112, 230, 211, 121, 142, 0, 13, 68, 90, 105, 42, 164, 44, 102, 28, 133, 159, 211, 182, 132,
104, 112, 36, 28, 239, 29, 143, 36, 174, 98, 114, 178, 43, 29, 246, 125, 157, 103, 89, 161,
225, 21, 71, 181, 207, 193, 252, 176, 28, 28, 82, 142, 214, 77, 49, 29, 119, 135, 80, 35,
104, 216, 60, 160, 91, 135, 192, 82, 23, 231, 205, 223, 81, 241, 79, 89, 115, 163, 161, 49,
143, 152, 111, 110, 37, 70, 15, 240, 38, 197, 170, 218, 91, 17, 98, 66, 19, 171, 57, 123,
194, 205, 73, 129, 229, 188, 8, 236, 40, 156, 146, 21, 108, 233, 20, 238, 128, 66, 155, 40,
115, 65, 72, 10, 90, 63, 110, 196, 79, 42, 251, 90, 241, 48, 95, 158, 111, 57, 50, 235,
125, 2, 212, 130, 205, 12, 2, 104, 26, 13, 164, 60, 176, 91, 129, 94, 61, 14, 102, 214,
239, 235, 19, 71, 86, 161, 34, 141, 206, 30, 123, 140, 106, 137, 151, 122, 189, 167, 89,
208, 59, 230, 44, 65, 105, 147, 47, 119, 180, 73, 221, 248, 145, 132, 43, 115, 22, 47, 247,
67, 48, 121, 123, 183, 150, 182, 220, 220, 1, 166, 122, 7, 26, 157, 193, 1, 143, 154, 84,
97, 189, 109, 255, 27, 91, 211, 95, 191, 110, 70, 234, 26, 135, 191, 195, 219, 19, 209, 24,
191, 199, 116, 10, 67, 135, 245, 243, 241, 235, 136, 61, 197, 189, 215, 157, 42, 225, 38,
210, 139, 85, 194, 236, 77, 52, 211, 119, 11, 160, 185, 164, 69, 39, 146, 128, 19, 73, 115,
184, 127, 37, 129, 175, 103, 11, 164, 39, 51, 218, 180, 213, 189, 181, 94, 242, 145, 53,
78, 96, 47, 170, 36, 117, 177, 119, 96, 8, 12, 225, 27, 173, 227, 37, 171, 76, 38, 88, 238,
184, 213, 233, 230, 132, 45, 63, 180, 4, 0, 67, 47, 251, 236, 146, 219, 35, 211, 234, 23,
237, 12, 178, 199, 39, 207, 66, 41, 125, 232, 69, 202, 67, 223, 94, 108, 156, 21, 111, 120,
22, 249, 247, 19, 131, 25, 201, 185, 25, 210, 239, 227, 132, 194, 52, 223, 114, 133, 179,
254, 7, 140, 202, 233, 88, 164, 252, 217, 78, 202, 50, 228, 65, 82, 48, 129, 34, 75, 183,
255, 203, 186, 37, 82, 77, 190, 8, 101, 150, 53, 78, 251, 120, 30, 60, 148, 65, 195, 254,
118, 229, 177, 250, 25, 19, 224, 221, 166, 123, 76, 95, 54, 14, 210, 137, 128, 40, 230,
236, 76, 101, 248, 171, 5, 208, 141, 205, 248, 67, 163, 23, 253, 49, 89, 69, 154, 164, 83,
156, 251, 0, 240, 70, 145, 221, 122, 167, 203, 45, 60, 181, 211, 135, 49, 82, 63, 162, 213,
243, 15, 12, 103, 137, 98, 176, 31, 160, 45, 103, 43, 47, 107, 214, 116, 102, 21, 138, 29,
213, 133, 197, 94, 113, 132, 80, 218, 144, 5, 11, 20, 232, 74, 205, 55, 47, 8, 64, 65, 76,
235, 146, 112, 67, 57, 133, 178, 118, 161, 226, 211, 44, 156, 181, 183, 218, 161, 222, 34,
68, 221, 163, 144, 134, 219, 253, 208, 116, 91, 80, 252, 238, 63, 37, 231, 105, 74, 195,
122, 180, 149, 232, 31, 198, 144, 203, 30, 193, 179, 33, 94, 49, 46, 75, 139, 52, 160, 2,
37, 125, 209, 222, 241, 201, 212, 101, 21, 20, 21, 116, 127, 36, 5, 240, 135, 120, 211,
163, 70, 26, 33, 135, 154, 230, 64, 49, 8, 158, 133, 190, 59, 205, 161, 105, 52, 115, 60,
34, 83, 110, 254, 156, 190, 87, 127, 166, 38, 174, 43, 108, 77, 183, 183, 175, 217, 211,
114, 210, 150, 68, 184, 104, 16, 73, 50, 146, 79, 250, 229, 16, 71, 155, 126, 190, 225, 5,
171, 255, 119, 248, 16, 239, 245, 32, 253, 112, 63, 214, 85, 249, 208, 9, 139, 219, 33, 67,
12, 195, 64, 63, 251, 21, 28, 33, 124, 243, 213, 129, 250, 200, 112, 65, 155, 153, 193, 78,
93, 115, 165, 40, 16, 252, 19, 9, 78, 216, 82, 101, 146, 112, 7, 2, 65, 226, 122, 104, 229,
77, 226, 93, 175, 105, 184, 255, 210, 254, 248, 27, 182, 127, 49, 171, 250, 151, 20, 24,
165, 104, 86, 38, 29, 150, 237, 233, 99, 69, 64, 3, 6, 147, 57, 212, 167, 210, 149, 214,
74, 106, 160, 204, 0, 249, 101, 55, 255, 198, 169, 105, 56, 159, 246, 132, 151, 44, 146,
214, 144, 120, 122, 217, 62, 104, 119, 210, 159, 31, 36, 241, 226, 153, 168, 89, 145, 75,
92, 42, 181, 168, 242, 190, 192, 12, 143, 249, 1,
];
|
Nightly uses lld, while stable/beta use the system linker which is usually ld.bfd. |
Yeah no I f'ed up getting the right sample sorry about that. I have a sample now that shows a diff between my libary and what zstd decodes. I'll report back when I know more... |
I think there's something wrong with the streaming part of the decoder.
|
Yeah the issue is just that the meta info is broken up into multiple frames for some reason... |
This seems to fix it: fn decompress_zstd(input: &[u8], output: &mut [u8]) -> Option<()> {
use ruzstd::io::Read;
let mut input = input;
let mut output = output;
while !input.is_empty() {
let mut decoder = ruzstd::StreamingDecoder::new(&mut input).ok()?;
loop {
match decoder.read(output) {
Err(_) => return None,
Ok(0) => break,
Ok(read) => output = &mut output[read..],
}
}
}
assert!(output.is_empty());
Some(())
} This multi-frame thing has been an issue a few times. But I am not a big fan of silently decoding multiple frames with just one call. Maybe I need to rethink my position on this it seems more widespread than I thought. Edit: To be fair, this is documented on the StreamingDecoder ;) |
lld does indeed do 1MB frames for parallel compression https://github.com/llvm/llvm-project/blob/ffeb793f3a90623ab3c7f33f922d48a1f5f97cdf/lld/ELF/OutputSections.cpp#L378 |
lld chunks the data into 1MB frames for parallel compression so almost everything will have multiple frames.
While you're at it you might want to handle skippable frames too (as mentioned in the doc). This will return an |
@workingjubilee The binary size thing seems misconfigured or messed up or something. It's trying to build LLVM and it says "Detected LLVM as non-available: running in CI and modified LLVM in this change" |
May as well handle them while we're here I suppose. Done. |
Indeed it is. I suppose the idea is that StreamingDecoder is the equivalent of ZSTD_decompressStream. It is a bit surprising that there's no out-of-the-box equivalent to ZSTD_decompress(). Nevertheless what we have now works, so I'm satisfied. Thanks again for all your help on this stuff. |
No problem! I'm exited to get more usage out of the crate. I do see the problem with not meeting the expectations the original implementation builds. But I also disagree deeply with endlessly decoding from a source. I'll have to think about this as it has become an issue more than once |
Yeah don't worry about the binary size workflow. I might try to hit it with a wrench a few times to see if I can get it working before merging this, but I won't block this on it. Just gotta review the revised implementation and then it's in assuming nothing jumps out. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, not going to block this on that workflow, as I said.
while !input.is_empty() { | ||
let mut decoder = match ruzstd::StreamingDecoder::new(&mut input) { | ||
Ok(decoder) => decoder, | ||
Err(FrameDecoderError::ReadFrameHeaderError(ReadFrameHeaderError::SkipFrame { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mmmmmmm... that sure is a pattern that is being matched...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Indeed.
Thanks! |
zstd has been introduced as an alternative to zlib for the compression of debug sections.1 Toolchain support is widely present at this time but lack of support in backtrace is a severe limitation on using this feature in Rust programs.
This uses a Rust reimplementation of zstd (the ruzstd crate). This has the benefit of simplifying the build process, but this crate is less used and admittedly slower than the zstd crate that binds to the C libzstd.
Footnotes
https://maskray.me/blog/2022-09-09-zstd-compressed-debug-sections ↩