Commit f1bb74e6 authored by wangmingming's avatar wangmingming

7777

parent 3bc05cc6
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -118,17 +118,21 @@ encryp = function (key, inp, iv1, iv2, s1, s2, roundcount) { ...@@ -118,17 +118,21 @@ encryp = function (key, inp, iv1, iv2, s1, s2, roundcount) {
let key = [1302894984, 2005175977, 1656246354, 2007477623, 1805664012, 1874762676, 1089561567, 235108445]; let key = [1302894984, 2005175977, 1656246354, 2007477623, 1805664012, 1874762676, 1089561567, 235108445];
let inp = [72, 144, 169, 227, 83, 60, 82, 56, 243, 35, 215, 117, 93, 23, 208, 190, 194, 30, 155, 186, 203, 23, 189, 132, 115, 159, 156, 203, 40, 239, 100, 147, 159, 140, 123, 160, 86, 125, 239, 56, 163, 41, 74, 197, 253, 148, 90, 173, 61, 77, 132, 243, 2, 155, 202, 251, 16, 183, 108, 76, 22, 158, 78, 238, 170, 172, 182, 236, 220, 170, 92, 159, 51, 128, 158, 164, 54, 210, 41, 165, 40, 56, 132, 68, 220, 123, 242, 135, 127, 255, 169, 93, 71, 193, 43, 25, 170, 113, 230, 30, 11, 207, 240, 242, 216, 54, 247, 210, 132, 123, 4, 67, 86, 138, 216, 58, 9, 250, 177, 84, 190, 52, 191, 80, 144, 8, 123, 102, 233, 252, 93, 159, 11, 0, 240, 202, 126, 156, 84, 18, 230, 57, 215, 31, 134, 68, 91, 231, 97, 133, 2, 29, 138, 233, 138, 235, 73, 136, 89, 59, 91, 208, 11, 211, 223, 20, 90, 236, 44, 154, 214, 238, 77, 51, 6, 127, 118, 1, 46, 40, 184, 63, 2, 28, 151, 110, 15, 187, 219, 115, 23, 243, 225, 239, 232, 105, 137, 144, 193, 10, 135, 184, 218, 11, 46, 249, 54, 207, 99, 17, 170, 114, 244, 135, 137, 166, 142, 105, 168, 30, 18, 65, 209, 113, 11, 70, 114, 35, 147, 82, 165, 245, 27, 237, 17, 100, 130, 109, 167, 142, 159, 97, 15, 217, 133, 176, 229, 237, 78, 107, 41, 129, 25, 198, 111, 128, 241, 217, 87, 112, 185, 202, 86, 190, 202, 72, 145, 115, 1, 8, 98, 249, 166, 82, 141, 80, 181, 51, 35, 23, 242, 170, 243, 109, 249, 235, 96, 44, 34, 224, 142, 76, 161, 32, 231, 119, 108, 251, 222, 46, 212, 162, 42, 206, 75, 82, 10, 151, 78, 247, 239, 179, 153, 101, 126, 94, 95, 36, 241, 100, 55, 94, 189, 205, 236, 49, 180, 27, 137, 31, 174, 36, 255, 219, 195, 82, 242, 255, 13, 75, 247, 51, 66, 19, 178, 221, 217, 42, 75, 110, 48, 64, 224, 173, 176, 135, 220, 215, 29, 30, 210, 111, 247, 234, 223, 201, 147, 236, 10, 121, 187, 15, 7, 68, 122, 234, 142, 237, 184, 58, 206, 233, 29, 234, 137, 173, 166, 16, 223, 14, 142, 203, 172, 56, 162, 27, 182, 32, 233, 126, 220, 201, 160, 174, 115, 148, 210, 166, 102, 41, 168, 65, 181, 102, 135, 5, 200, 185, 144, 152, 76, 86, 218, 123, 128, 4, 150, 49, 146, 55, 252, 16, 84, 67, 185, 196, 126, 50, 8, 153, 82, 63, 132, 167, 110, 21, 44, 80, 118, 142, 218, 232, 179, 100, 98, 101, 58, 197, 115, 15, 157, 150, 161, 127, 212, 16, 215, 111, 188, 31, 174, 237, 238, 147, 226, 184, 187, 249, 65, 6, 34, 232, 50, 199, 139, 97, 59, 81, 204, 171, 237, 225, 242, 5, 38, 79, 110, 65, 242, 188, 221, 244, 114, 135, 143, 43, 54, 36, 33, 174, 112, 236, 104, 224, 230, 115, 158, 39, 131, 130, 164, 9, 167, 203, 199, 203, 72, 192, 79, 112, 99, 76, 49, 251, 14, 106, 59, 167, 243, 4, 73, 193, 232, 45, 170, 149, 132, 152, 17, 193, 117, 207, 119, 199, 157, 52, 156, 234, 52, 187, 184, 34, 175, 249, 220, 105, 92, 39, 54, 89, 127, 2, 187, 118, 194, 13, 199, 175, 69, 49, 16, 50, 160, 190, 224, 111, 132, 223, 221, 255, 93, 231, 133, 127, 184, 115, 252, 52, 17, 37, 156, 10, 120, 249, 234, 181, 116, 92, 9, 199, 166, 219, 135, 212, 208, 109, 66, 65, 240, 71, 168, 50, 149, 40, 34, 35, 73, 101, 74, 210, 195, 180, 225, 193, 184, 36, 182, 175, 224, 118, 97, 10, 71, 186, 13, 15, 204, 213, 48, 244, 184, 203, 158, 62, 137, 24, 228, 95, 5, 57, 221, 213, 160, 168, 79, 87, 242, 183, 90, 141, 135, 164, 253, 66, 123, 137, 250, 210, 13, 121, 32, 160, 190, 159, 31, 97, 30, 92, 198, 6, 56, 143, 27, 116, 177, 38, 122, 77, 121, 227, 31, 44, 194, 238, 65, 70, 108, 183, 212, 28, 152, 164, 184, 166, 151, 121, 0, 223, 204, 250, 244, 126, 31, 199, 37, 11, 150, 65, 226, 14, 136, 76, 101, 53, 114, 249, 171, 67, 171, 73, 165, 71, 56, 194, 179, 121, 41, 106, 83, 54, 130, 167, 90, 250, 67, 182, 196, 204, 241, 183, 230, 158, 94, 250, 107, 19, 211, 37, 125, 119, 38, 79, 3, 215, 163, 211, 218, 120, 69, 214, 45, 170, 189, 28, 197, 153, 121, 217, 91, 254, 133, 211, 131, 56, 191, 117, 71, 104, 227, 169, 93, 225, 254, 115, 204, 240, 218, 195, 194, 15, 147, 125, 254, 224, 54, 40, 105, 130, 237, 126, 131, 114, 52, 3, 20, 31, 152, 11, 235, 112, 10, 211, 115, 187, 53, 196, 98, 121, 157, 168, 101, 98, 52, 41, 255, 168, 182, 24, 90, 141, 121, 255, 149, 169, 130, 217, 46, 80, 104, 247, 123, 221, 184, 101, 161, 179, 177, 16, 147, 99, 126, 180, 200, 38, 254, 121, 35, 187, 233, 189, 98, 104, 183, 126, 8, 55, 101, 1, 245, 72, 27, 123, 59, 248, 16, 38, 254, 28, 221, 167, 70, 136, 7, 38, 2, 111, 208, 132, 51, 254, 29, 20, 167, 21, 208, 220, 69, 100, 45, 23, 145, 187, 90, 117, 83, 5, 192, 140, 128, 79, 172, 241, 44, 117, 47, 50, 133, 14, 203, 54, 240, 133, 237, 78, 34, 194, 227, 132, 87, 86, 10, 206, 48, 183, 49, 217, 59, 137, 73, 214, 57, 114, 231, 38, 125, 243, 71, 140, 80, 26, 73, 223, 130, 149, 177, 139, 17, 250, 17, 193, 236, 130, 252, 88, 203, 227, 46, 123, 132, 79, 193, 167, 102, 51, 80, 127, 18, 241, 83, 37, 186, 182, 143, 17, 4, 181, 172, 13, 225, 2, 69, 156, 139, 29, 25, 142, 184, 104, 178, 190, 178, 243, 243, 251, 140, 232, 84, 80, 96, 193, 208, 129, 217, 17, 18, 254, 216, 97, 167, 180, 226, 218, 209, 81, 32, 50, 25, 6, 33, 47, 187, 82, 137, 5, 128, 26, 201, 209, 6, 66, 251, 121, 88, 211, 140, 106, 33, 48, 119, 183, 183, 42, 108, 67, 47, 85, 167, 214, 194, 134, 147, 213, 140, 51, 39, 90, 136, 46, 22, 239, 244, 40, 15, 119, 176, 153, 114, 111, 252, 157, 117, 45, 88, 140, 145, 206, 129, 87, 114, 41, 116, 173, 110, 189, 82, 78, 213, 214, 73, 84, 98, 93, 77, 138, 91, 116, 121, 169, 209, 38, 67, 133, 40, 61, 150, 164, 142, 103, 251, 28, 24, 109, 210, 105, 187, 170, 39, 105, 162, 246, 156, 127, 162, 159, 13, 232, 160, 165, 68, 116, 65, 5, 69, 177, 235, 229, 44, 47, 194, 169, 127, 164, 99, 48, 10, 218, 8, 27, 200, 207, 129, 109, 0, 132, 26, 96, 37, 175, 100, 18, 163, 88, 51, 129, 224, 17, 227, 240, 160, 46, 132, 240, 232, 249, 17, 37, 85, 16, 124, 64, 171, 30, 53, 19, 50, 172, 199, 1, 49, 201, 172, 180, 167, 228, 183, 20, 254, 41, 190, 154, 60, 22, 26, 47, 193, 229, 176, 30, 75] let inp = [235, 136, 37, 91, 252, 0, 53, 133, 8, 190, 92, 211, 189, 89, 9, 95, 51, 104, 141, 225, 30, 42, 215, 90, 44, 140, 244, 45, 179, 47, 147, 96, 48, 146, 5, 127, 240, 110, 245, 55, 218, 39, 114, 239, 21, 104, 182, 138, 227, 141, 183, 194, 59, 114, 97, 17, 58, 214, 50, 144, 128, 115, 3, 68, 197, 30, 3, 232, 97, 105, 255, 219, 250, 105, 64, 112, 55, 230, 86, 202, 248, 179, 82, 37, 220, 98, 41, 16, 149, 121, 215, 101, 219, 215, 149, 156, 17, 122, 5, 133, 24, 179, 101, 37, 90, 252, 41, 81, 162, 103, 229, 97, 58, 104, 227, 73, 82, 192, 195, 14, 132, 177, 244, 26, 104, 200, 9, 50, 107, 181, 151, 13, 5, 223, 201, 233, 12, 254, 137, 111, 193, 93, 191, 82, 194, 90, 190, 144, 152, 197, 211, 187, 197, 187, 179, 249, 42, 153, 189, 72, 75, 135, 101, 128, 23, 206, 202, 245, 210, 223, 174, 249, 51, 211, 115, 192, 148, 173, 23, 136, 71, 64, 214, 180, 36, 156, 50, 248, 255, 175, 203, 22, 128, 153, 232, 204, 76, 134, 253, 224, 134, 44, 103, 15, 102, 64, 135, 149, 216, 8, 7, 146, 241, 210, 85, 223, 92, 7, 226, 133, 48, 133, 201, 213, 140, 240, 164, 187, 90, 45, 0, 204, 192, 128, 201, 203, 246, 51, 212, 57, 53, 93, 109, 56, 177, 172, 139, 220, 247, 69, 89, 122, 93, 193, 80, 101, 198, 230, 43, 226, 92, 161, 139, 223, 211, 217, 215, 36, 232, 55, 41, 83, 110, 56, 111, 2, 117, 83, 164, 85, 51, 26, 203, 234, 87, 68, 39, 213, 18, 195, 84, 103, 46, 13, 30, 1, 229, 9, 66, 160, 18, 18, 147, 6, 30, 228, 159, 203, 222, 70, 92, 70, 29, 61, 89, 187, 192, 87, 248, 97, 23, 39, 101, 66, 12, 56, 18, 209, 4, 200, 206, 94, 81, 120, 255, 235, 46, 196, 161, 113, 30, 205, 219, 119, 44, 182, 106, 241, 212, 232, 17, 45, 5, 97, 117, 173, 216, 252, 242, 102, 53, 229, 219, 65, 129, 152, 59, 4, 43, 38, 80, 86, 212, 152, 71, 239, 231, 225, 72, 191, 155, 0, 248, 173, 131, 255, 171, 129, 85, 174, 113, 41, 105, 249, 62, 200, 184, 178, 50, 117, 95, 20, 228, 17, 182, 244, 88, 123, 7, 128, 149, 231, 197, 246, 124, 17, 28, 218, 81, 6, 138, 52, 119, 40, 208, 62, 140, 82, 197, 144, 7, 238, 77, 100, 10, 130, 51, 215, 217, 234, 121, 201, 20, 131, 31, 138, 231, 52, 126, 123, 213, 253, 194, 248, 201, 88, 135, 43, 111, 179, 217, 72, 91, 62, 143, 169, 58, 195, 142, 177, 235, 8, 68, 16, 128, 238, 169, 161, 159, 226, 147, 150, 65, 254, 116, 39, 18, 237, 82, 26, 25, 90, 185, 25, 86, 239, 24, 37, 31, 29, 241, 182, 179, 242, 254, 102, 32, 46, 87, 21, 251, 14, 220, 33, 132, 155, 143, 201, 224, 188, 1, 76, 65, 75, 141, 50, 189, 11, 153, 38, 87, 87, 208, 155, 189, 154, 114, 169, 110, 214, 85, 6, 96, 56, 245, 178, 35, 84, 107, 53, 7, 85, 240, 20, 52, 124, 166, 228, 62, 81, 239, 189, 22, 76, 30, 47, 244, 127, 60, 200, 150, 11, 40, 233, 143, 180, 180, 239, 130, 103, 12, 209, 78, 129, 184, 56, 59, 206, 98, 91, 168, 48, 219, 180, 22, 90, 86, 7, 226, 79, 56, 217, 91, 18, 234, 46, 211, 4, 66, 115, 127, 79, 88, 167, 18, 175, 51, 52, 209, 166, 61, 199, 4, 126, 212, 214, 134, 149, 112, 12, 132, 125, 27, 201, 194, 155, 219, 175, 250, 29, 113, 90, 220, 143, 64, 134, 120, 44, 3, 46, 85, 172, 117, 154, 54, 39, 118, 126, 201, 69, 241, 149, 33, 84, 1, 133, 87, 175, 69, 3, 228, 165, 225, 230, 121, 188, 149, 208, 43, 41, 36, 62, 214, 92, 252, 86, 114, 238, 233, 37, 178, 85, 60, 193, 44, 65, 144, 140, 67, 95, 242, 36, 53, 242, 121, 130, 140, 45, 220, 12, 243, 92, 58, 235, 58, 230, 168, 35, 185, 253, 8, 121, 156, 163, 145, 1, 194, 41, 202, 54, 250, 119, 69, 216, 14, 64, 126, 142, 34, 164, 95, 237, 86, 49, 247, 103, 11, 205, 105, 173, 107, 50, 144, 13, 242, 84, 119, 227, 252, 128, 253, 75, 180, 84, 123, 96, 186, 53, 234, 247, 110, 154, 226, 218, 80, 125, 9, 227, 73, 205, 117, 96, 4, 65, 159, 109, 106, 209, 91, 176, 99, 73, 87, 198, 126, 222, 117, 107, 109, 193, 207, 4, 13, 36, 205, 58, 235, 202, 149, 186, 46, 184, 178, 90, 37, 217, 119, 24, 17, 250, 238, 108, 0, 19, 194, 59, 45, 99, 61, 214, 206, 44, 234, 160, 133, 60, 3, 189, 204, 122, 108, 105, 31, 180, 136, 113, 23, 1, 205, 18, 138, 234, 188, 206, 53, 238, 117, 233, 122, 210, 225, 110, 112, 5, 85, 235, 230, 81, 224, 219, 24, 153, 156, 184, 17, 230, 106, 54, 200, 186, 201, 167, 102, 38, 60, 34, 245, 251, 225, 128, 127, 189, 5, 153, 69, 41, 225, 70, 77, 108, 80, 147, 16, 120, 20, 254, 151, 49, 57, 5, 176, 64, 255, 24, 51, 135, 87, 114, 239, 135, 71, 212, 56, 71, 15, 60, 142, 197, 117, 242, 162, 173, 114, 167, 192, 216, 76, 173, 85, 46, 4, 85, 8, 214, 96, 104, 178, 53, 51, 217, 48, 24, 212, 194, 165, 134, 225, 206, 92, 98, 148, 201, 117, 43, 95, 58, 135, 6, 86, 94, 82, 76, 188, 9, 131, 167, 207, 98, 227, 157, 71, 210, 41, 69, 91, 251, 39, 70, 221, 37, 237, 73, 132, 212, 170, 78, 245, 158, 112, 239, 44, 244, 132, 146, 115, 172, 175, 121, 199, 241, 8, 108, 18, 47, 26, 76, 116, 210, 93, 185, 10, 13, 159, 248, 125, 178, 100, 135, 248, 52, 248, 224, 185, 115, 70, 22, 157, 30, 250, 188, 198, 166, 190, 160, 26, 90, 30, 134, 210, 193, 154, 197, 190, 3, 7, 77, 244, 123, 78, 141, 238, 112, 107, 201, 173, 10, 107, 70, 93, 9, 19, 220, 111, 9, 186, 3, 101, 245, 47, 19, 148, 96, 191, 218, 42, 215, 37, 67, 59, 26, 171, 205, 50, 94, 43, 233, 93, 170, 206, 11, 56, 207, 204, 15, 247, 181, 168, 42, 209, 133, 142, 127, 73, 30, 208, 217, 37, 16, 90, 140, 96, 39, 58, 20, 255, 151, 187, 45, 24, 222, 66, 15, 139, 171, 85, 203, 90, 63, 209, 250, 212, 105, 221, 167, 208, 123, 90, 60, 254, 241, 132, 39, 251, 175, 93, 178, 121, 30, 111, 232, 63, 166, 73, 151, 207, 172, 247, 99, 60, 31, 167, 25, 118, 131, 187, 133, 61, 155, 221, 8, 168, 145, 196, 157, 65, 125, 110, 150, 133, 136, 119, 207, 104, 143, 99, 205, 28, 203, 138, 122, 45, 152, 99, 172, 13, 31, 16, 208, 45, 114, 235, 243, 34, 229, 113, 183, 4, 13, 201, 142, 62, 69, 9, 136, 98, 27, 117, 137, 198, 11, 226, 212, 6, 226, 169, 208, 89, 164, 193, 69, 57, 83, 12, 56, 166, 8, 133, 224, 117, 106, 164, 63, 74, 172, 202, 175, 19, 160, 44, 193, 117, 211, 244, 214, 8, 189, 65, 253, 157, 23, 253, 100, 45, 39, 226, 61, 31, 100, 62, 249, 6, 65, 82, 1, 199, 179, 55, 227, 186, 109, 232, 217, 145, 247, 181, 50, 131, 90, 229, 176, 13, 211, 136, 164, 40, 101, 89, 171, 230, 223, 152, 29, 161, 167, 164, 14, 126, 11, 247, 208, 39, 91, 144, 227, 198, 85, 61, 105, 161, 126, 156, 161, 109, 4, 100, 217, 120, 47, 87, 74, 181, 117, 50, 214, 65, 193, 224, 142, 154, 62, 96, 177, 162, 90, 115, 23, 117, 114, 130, 196, 237, 62, 182, 170, 130, 195, 152, 231, 79, 9, 157, 240, 105, 223, 98, 42, 116, 194, 219, 144, 231, 223, 226, 36, 252, 109, 34, 244, 31, 28, 202, 86, 103, 83, 49, 115, 168, 201, 105, 109, 230, 118, 126, 60, 0, 24, 27, 19, 23, 43, 210, 192, 146, 37, 60, 63, 190, 185, 121, 103, 103, 29, 67, 192, 13, 21, 176, 55, 66, 123, 31, 41, 14, 144, 112, 239, 41, 72, 20, 132, 250, 237, 39, 97, 17, 247, 82, 171, 99, 24, 147, 178, 96, 26, 118, 80, 76, 184, 84, 54, 198, 174, 107, 132, 161, 117, 27, 213, 163, 180, 92, 93, 111, 111, 167, 216, 95, 81, 185, 129, 157, 8, 243, 21, 223, 74, 5, 52, 103, 96, 120, 33, 148, 52, 31, 127, 26, 6, 133, 249, 209, 233, 7, 165, 203, 127, 243, 113, 10, 60, 137, 135, 246, 225, 35, 67, 186, 251, 184, 181, 247, 165, 198, 228, 120, 134, 234, 252, 27, 114, 67, 229, 238, 71, 98, 185, 236, 232, 144, 151, 199, 151, 43, 145, 162, 180, 113, 52, 14, 90, 222, 117, 77, 202, 58, 143, 8, 212, 205, 217, 159, 61, 127, 247, 200, 80, 116, 11, 120, 255, 133, 0, 112, 227, 36, 55, 42, 17, 147, 102, 29, 168, 207, 118, 173, 190, 70, 126, 197, 207, 211, 186, 191, 243, 160, 151, 38, 156, 228, 172, 250, 184, 239, 108, 170, 122, 196, 170, 115, 50, 185, 194, 188, 60, 2, 56, 172, 201, 215, 79, 215, 81, 53, 37, 13, 67, 225, 27, 180, 161, 89, 164, 234, 188, 10, 146, 78, 153, 168, 85, 74, 126, 217, 144, 161, 140, 31, 86, 171, 73, 209, 9, 178, 248, 112, 137, 35, 193, 117, 255, 161, 55, 11, 165, 184, 38, 33, 73, 157, 182, 147, 15, 172, 205, 187, 216, 33, 24, 179, 0, 54, 61, 110, 105, 146, 126, 48, 43, 37, 59, 152, 146, 197, 42, 237, 182, 243, 154, 66, 176, 154, 169, 69, 43, 186, 120, 86, 191, 230, 226, 0, 201, 110, 124, 137, 122, 239, 98, 34, 23, 11, 79, 234, 31, 62, 85, 47, 220, 212, 193, 28, 210, 238, 251, 119, 80, 126, 221, 94, 112, 0, 132, 34, 159, 246, 120, 252, 213, 157, 231, 209, 105, 172, 193, 210, 233, 244, 23, 143, 193, 240, 78, 225, 130, 207, 231, 81, 163, 37, 24, 251, 80, 221, 227, 171, 218, 230, 236, 88, 89, 106, 237, 41, 202, 115, 70, 144, 153, 44, 237, 248, 51, 153, 68, 126, 159, 125, 143, 56, 71, 194, 56, 17, 26, 67, 218, 77, 20, 1, 97, 63, 111, 251, 89, 108, 107, 166, 22, 48, 246, 175, 207, 87, 111, 177, 115, 30, 202, 170, 84, 110, 12, 181, 117, 159, 129, 243, 111, 161, 249, 130, 235, 36, 148, 79, 196, 233, 223, 242, 35, 200, 186, 226, 110, 98, 141, 226, 199, 217, 145, 235, 157, 252, 223, 200, 180, 70, 241, 17, 155, 71, 184, 245, 19, 36, 207, 7, 189, 23, 156, 47, 196, 137, 176, 204, 123, 168, 162, 42, 238, 17, 213, 133, 32, 255, 228, 92, 180, 140, 35, 45, 107, 144, 3, 224, 185, 42, 96, 153, 234, 105, 97, 214, 214, 73, 220, 37, 124, 214, 48, 170, 26, 35, 44, 179, 160, 57, 201, 127, 249, 66, 57, 45, 217, 76, 168, 8, 184, 209, 114, 82, 84, 155, 173, 158, 148, 6, 143, 3, 119, 116, 253, 211, 12, 252, 54, 27, 140, 75, 96, 139, 122, 35, 155, 2, 216, 66, 230, 129, 180, 106, 187, 25, 254, 28, 156, 25, 23, 21, 221, 88, 94, 194, 150, 250, 67, 27, 230, 14, 208, 120, 222, 227, 238, 42, 61, 167, 86, 135, 253, 209, 162, 160, 46, 160, 78, 247, 100, 39, 168, 19, 85, 119, 148, 97, 56, 174, 178, 209, 52, 160, 182, 125, 249, 159, 113, 147, 252, 151, 226, 176, 171, 214, 113, 250, 173, 203, 165, 67, 29, 217, 249, 249, 24, 33, 234, 29, 232, 106, 56, 182, 201, 241, 177, 181, 177, 177, 60, 48, 250, 221, 178, 50, 131, 161, 164, 170, 144, 218, 144, 24, 229, 209, 211, 50, 15, 160, 235, 79, 147, 54, 26, 4, 51, 64, 177, 154, 212, 39, 175, 91, 142, 152, 216, 251, 163, 217, 207, 117, 57, 79, 60, 215, 160, 96, 115, 165, 75, 217, 230, 211, 40, 85, 80, 143, 173, 43, 154, 232, 189, 13, 248, 157, 26, 12, 99, 117, 152, 139, 129, 95, 18, 86, 75, 190, 117, 118, 176, 174, 235, 208, 136, 206, 170, 229, 157, 104, 16, 225, 40, 74, 124, 168, 178, 232, 164, 26, 164, 18, 24, 5, 129, 58, 180, 219, 148, 83, 92, 84, 65, 248, 92, 49, 241, 152, 245, 123, 142, 156, 159, 219, 107, 143, 118, 64, 140, 14, 85, 143, 34, 156, 235, 189, 157, 208, 6, 68, 196, 38, 251, 155, 81, 175, 200, 235, 119, 243, 139, 192, 226, 243, 119, 144, 87, 40, 85, 77, 13, 109, 195, 66, 185, 152, 26, 99, 115, 29, 59, 31, 214, 213, 130, 230, 151, 154, 4, 85, 206, 45, 250, 22, 140, 30, 229, 55, 175, 231, 117, 215, 25, 61, 161, 85, 170, 162, 88, 77, 18, 74, 29, 238, 249, 76, 161, 79, 93, 254, 210, 217, 176, 49, 82, 219, 41, 28, 116, 161, 116, 150, 118, 234, 199, 163, 159, 90, 112, 165, 88, 109, 45, 167, 5, 94, 140, 15, 43, 216, 48, 24, 126, 126, 218, 234, 39, 50, 97, 217, 182, 90, 180, 15, 118, 230, 71, 202, 177, 168, 23, 16, 126, 72, 82, 9, 69, 18, 195, 64, 131, 92, 139, 59, 128, 191, 133, 231, 233, 98, 103, 109, 121, 179, 165, 82, 42, 72, 22, 249, 226, 96, 228, 49, 150, 64, 203, 1, 196, 154, 174, 192, 171, 139, 225, 161, 56, 29, 123, 104, 186, 4, 76, 149, 15, 91, 196, 95, 68, 71, 152, 247, 103, 82, 82, 242, 72, 90, 162, 220, 201, 88, 49, 120, 227, 17, 144, 180, 100, 132, 2, 74, 54, 9, 2, 196, 79, 220, 19, 77, 72, 48, 82, 142, 192, 130, 59, 202, 144, 195, 5, 223, 172, 185, 213, 125, 101, 232, 249, 116, 131, 92, 255, 172, 102, 140, 19, 124, 38, 34, 41, 76, 245, 171, 6, 165, 120, 240, 16, 88, 35, 114, 127, 94, 187, 49, 164, 224, 115, 235, 42, 192, 4, 187, 122, 102, 91, 130, 108, 206, 149, 185, 169, 62, 211, 226, 220, 144, 81, 31, 181, 54, 187, 248, 105, 126, 52, 87, 183, 227, 216, 85, 145, 233, 7, 229, 201, 247, 71, 112, 55, 12, 131, 172, 178, 217, 166, 17, 131, 81, 133, 208, 89, 76, 71, 44, 113, 201, 192, 181, 25, 127, 59, 162, 91, 234, 161, 36, 196, 55, 90, 238, 188, 188, 45, 104, 171, 253, 227, 115, 87, 49, 126, 60, 119, 6, 172, 197, 57, 73, 229, 91, 153, 148, 249, 77, 246, 90, 135, 176, 196, 187, 157, 68, 55, 105, 204, 12, 80, 18, 62, 98, 60, 222, 137, 88, 228, 207, 223, 171, 81, 223, 168, 123, 254, 51, 54, 98, 5, 38, 255, 42, 207, 217, 217, 0, 105, 35, 238, 73, 21, 90, 185, 254, 65, 44, 199, 107, 253, 181, 94, 33, 14, 18, 82, 179, 206, 60, 254, 99, 107, 74, 26, 29, 215, 77, 58, 117, 168, 136, 190, 173, 163, 165, 218, 199, 193, 50, 55, 22, 66, 40, 33, 201, 105, 10, 177, 93, 123, 81, 236, 123, 2, 101, 41, 14, 216, 123, 196, 234, 82, 53, 102, 231, 25, 42, 246, 8, 225, 235, 60, 28, 115, 177, 184, 106, 71, 104, 141, 79, 92, 185, 148, 9, 121, 222, 142, 216, 77, 68, 185, 30, 124, 241, 196, 246, 1, 152, 227, 34, 146, 99, 14, 236, 79, 126, 153, 116, 43, 11, 228, 134, 88, 111, 166, 124, 3, 14, 191, 125, 31, 173, 251, 49, 183, 220, 34, 45, 248, 104, 138, 124, 52, 70, 27, 226, 5, 16, 12, 61, 192, 215, 138, 205, 28, 189, 172, 246, 168, 120, 186, 181, 25, 251, 178, 45, 249, 35, 247, 142, 209, 41, 27, 217, 72, 52, 112, 172, 131, 143, 244, 184, 250, 245, 33, 139, 103, 25, 39, 18, 14, 212, 187, 15, 108, 40, 109, 155, 68, 98, 170, 104, 148, 250, 59, 129, 175, 240, 117, 211, 152, 181, 81, 36, 13, 135, 150, 111, 216, 125, 234, 93, 103, 105, 100, 29, 166, 63, 216, 9, 57, 107, 141, 176, 197, 205, 18, 245, 19, 111, 121, 18, 15, 188, 239, 210, 218, 127, 30, 250, 59, 157, 8, 123, 5, 151, 209, 76, 51, 135, 156, 139, 72, 84, 122, 39, 243, 89, 147, 187, 33, 152, 58, 212, 114, 137, 126, 12, 152, 225, 134, 208, 109, 147, 185, 149, 25, 169, 30, 219, 234, 198, 54, 16, 105, 102, 230, 88, 78, 85, 38, 149, 165, 253, 84, 159, 184, 172, 152, 199, 211, 171, 146, 139, 213, 208, 90, 181, 98, 31, 171, 231, 142, 98, 28, 217, 172, 225, 95, 216, 82, 81, 111, 169, 217, 65, 44, 26, 213, 105, 113, 20, 152, 79, 215, 57, 18, 145, 78, 194, 141, 203, 50, 249, 222, 84, 215, 43, 243, 217, 144, 209, 233, 182, 108, 169, 177, 142, 74, 114, 223, 105, 51, 220, 157, 165, 17, 114, 39, 185, 118, 49, 41, 110, 192, 173, 5, 128, 50, 136, 34, 128, 179, 6, 145, 205, 11, 253, 76, 107, 153, 193, 151, 31, 101, 110, 218, 145, 234, 5, 73, 104, 221, 88, 83, 19, 7, 68, 169, 138, 245, 44, 0, 217, 221, 219, 196, 64, 110, 42, 139, 242, 187, 226, 159, 192, 214, 155, 128, 163, 136, 171, 245, 13, 75, 167, 87, 55, 39, 210, 175, 121, 228, 11, 44, 138, 176, 151, 8, 23, 74, 232, 133, 130, 252, 203, 228, 77, 173, 200, 59, 224, 54, 218, 215, 114, 223, 193, 75, 90, 162, 242, 117, 152, 171, 69, 138, 187, 103, 35, 148, 91, 112, 94, 231, 85, 133, 30, 134, 34, 57, 64, 48, 52, 62, 22, 252, 126, 61, 215, 99, 115, 224, 52, 227, 44, 120, 155, 227, 79, 186, 43, 40, 152, 38, 239, 156, 117, 164, 168, 170, 39, 113, 203, 7, 114, 133, 190, 10, 250, 113, 240, 26, 116, 53, 190, 55, 208, 17, 21, 163, 101, 83, 96, 245, 185, 255, 7, 247, 226, 59, 22, 174, 157, 9, 13, 75, 101, 204, 61, 116, 240, 236, 6, 120, 182, 44, 62, 103, 145, 0, 188, 125, 190, 150, 177, 92, 139, 170, 0, 29, 190, 44, 250, 252, 3, 240, 155, 196, 65, 161, 9, 30, 228, 185, 131, 138, 255, 225, 152, 147, 175, 82, 190, 70, 55, 144, 204, 192, 31, 125, 28, 237, 197, 231, 28, 1, 122, 155, 75, 26, 94, 72, 214, 134, 203, 204, 174, 81, 187, 153, 50, 131, 173, 9, 56, 14, 181, 123, 40, 175, 133, 74, 35, 46, 191, 85, 106, 188, 2, 67, 61, 89, 170, 89, 187, 180, 175, 79, 12, 239, 80, 216, 160, 71, 158, 192, 235, 102, 186, 137, 30, 110, 132, 10, 151, 163, 219, 101, 140, 138, 159, 199, 117, 216, 250, 206, 67, 207, 124, 62, 94, 150, 88, 5, 191, 249, 103, 14, 99, 118, 143, 68, 134, 205, 206, 173, 17, 65, 9, 60, 161, 154, 149, 170, 189, 105, 198, 26, 107, 36, 65, 67, 144, 164, 142, 223, 155, 153, 20, 243, 167, 14, 35, 83, 11, 0, 86, 229, 240, 101, 37]
// iv1 3111745860 // iv1 3111745860
// iv2 1837113005 // iv2 1837113005
let iv1 = 3249529347; let iv1 = 3611565019;
let iv2 = 3958106299; let iv2 = 2211107019;
let a = [114.2,2631060696,3559796574,3186351378,45.2,192.2,3341463146,6.2831853,4119329321,2245312388,5.02654824,38.2,3635547492,257348550135456.88,29.2,1287560395,32182260320.3125,3735928559,9.2,102.2,135.2,1208078770,.5,3755823610,1784024763,1227354066,413964596,551756604,3595118893,77017224e4,1922683583,32.2,25232457304,3978882667,3025263540,253.2,10.05309648,87.2,274.2,217.2,235.2,56.2,.1,2098670096,199.2,176.2,1808619629,99.2,72.2,214748364.75,1117625191,536870911,2988885568,3089486929,4045894191,2101838889,.8,3136932032,3893411017,4294967296,2204525068,120.2,54.2,86.2,181.2,.7,92.2,74.2,2509558263,1989928760,1994819738,1260296039,3658992856,67108864,124.2,53.2,315.2,98.2,2572407238,142.2,513064399,2.51327412,173.2,4219685625,205.2,111.2,263.2,2061280827,9007199254740992,2681159388,1436465747,2147483648,11.2,587680262337937,101.2,1739178148,275.2,1645538693,251.2,2389837486,.9,1581779349,27.2,233141588,73.2,68.2,2553377589,2142601349,.6,3377338871,20.2,3.5,31.2,2757903381,3359877005,64.2,.3,18.2,3154057163,2.75,1543387143,4251512597,144.2,3577095634,81.2,9007199254740991,168.2,90.2,180.2,-1022,7.5398223600000005,187.2,1170484879,40.2,729898481,150.2,698577482,.4,36.2,126.2,112.2,3428940297,1790897211,79.2,.2,226.2,3052398875,47.2,202.2,18446744073709550000,221.2,83.2,1394003420,63.2,65.2,12.5663706,30258536,3199712900,4294967295,131.2,2891835496,3161062346,994811012]
let a2 = [3925617125,3831481864,7.5398223600000005,2147483648,105.2,3483020771,257.2,700325087,3597718685,234.2,2.75,1593819622,77017224e4,214.2,1962125176,1341355713,285.2,257348550135456.88,56.2,652602638,305.2,-1074,37981639,2797994507,2327754528,215.2,313.2,183.2,127348806,3735928559,2493798181,3415007224,4123704388,186.2,67108864,4270918752,303.2,174.2,.8,197.2,86.2,354444925,124.2,314.2,8250975781619720,1032565742,129.2,3899853192,204.2,3891458175,904593441,1782646906,3571961741,562000090,1599290995,.3,3174414665,2715624418,4219212511,.2,9.2,1917852439,3392112044,224.2,2969522137,0x1FFFFFFFFFFFFF,187.2,1118555805,2314810521,45.2,536870911,1019568595,268.2,372127466,1634207943,81.2,10.05309648,526637713,2284420571,14.2,5.02654824,219.2,954360635,18.2,2335168260,2456591959,12.5663706,83.2,.7,4294967295,2401080389,.5,1608328890,.1,805964242,54.2,1823562682,26008275e2,99.2,90.2,2200990591,123.2,2.51327412,18446744073709550000,6.2831853,36.2,.6,101.2,.4,108.2,3022393742,3978105873,2389837486,248.2,92.2,4095375607,51735352,2788561104,201.2,1681420124,2083754074,4148702933,2786894866,2496131316,0x20000000000000,63.2,1591233820,-1022,3550922103,85.2,4294967296,3582426871,72.2,1687216746,3.5,.9,116.2,741996029,1968392575,27.2];
console.log(a2[92])
console.log(a.indexOf(587680262337937))
// 25 136 95 55
let s1 = [1227354066, -698577482, let s1 = [1227354066, -698577482,
-1739178148, 2101838889]; -1739178148, 2101838889];
let s2 = 587680262337937; let s2 = 587680262337937; // 93
let roundcount = parseInt(inp.length / 64) + 1; let roundcount = parseInt(inp.length / 64) + 1;
let res = encryp(key, inp, iv1, iv2, s1, s2, roundcount); let res = encryp(key, inp, iv1, iv2, s1, s2, roundcount);
console.log(res + '') console.log(res + '')
...@@ -139,13 +143,16 @@ res.shift(0) ...@@ -139,13 +143,16 @@ res.shift(0)
while (res.length !== 0) { while (res.length !== 0) {
let a1 = res.shift(0); let a1 = res.shift(0);
let a2 = res.shift(0); let a2 = res.shift(0);
let length = 0;
if (a2 > 128) { if (a2 > 128) {
let a3 = res.shift(0)
length = a2 + (a3-1)*128
}else{
length = a1 + a2;
} }
console.log(a1, a2) let data = res.splice(0, length)
let data = res.splice(0, a1+a2) console.log(idx+'=='+length+'=>')
console.log(idx,'=>',a1+a2, data) console.log(data+'')
console.log()
idx++; idx++;
} }
......
...@@ -764,5 +764,6 @@ if __name__ == '__main__': ...@@ -764,5 +764,6 @@ if __name__ == '__main__':
data = 'nQJQ48yhEvZypKSQxdEs=2HjhahW3V-DPcKRfty0gBBqIQM7U5i8CcVq1SrvDvZkEQ3fs3ojevO2q2PSjQ_usjApwOrsf5G3DY57ptXgelcZ1Af8d0op8OQJqF9tJFxDU-zrIiLa=szH=0Dv8BgUG4viBwJulRYM=FE=p7P5XY8p_FSZKT5zPNn4JkY_5RlwR8Dk5F2U_Puj397s0Qw5d0KEWqDj-3oyJB7fSpRKV9TD650Mbg8NwpYVXEHdVbUJKU=BRyBSYsWdAITI_82WToIpHOEzp_bYr5ZcA-WLqKkDoLO9a0OYDNUOOWU8gD6f0K8zNos38un5=eXGqiwi=znpE6VUiLjRyhtIWqZlkVDsgVt2SsRDFARWFqGR639CNC3xg9ibttEdfDd-Enq-Esqc9rerH1nhf0E-2I7yQ_u_hZxsCbY5CUo3pT5BQcpyFCdNiO7UGqld_6Mrsxee02qcFFTyM_=tx=SSUpf-2KMJ-C-ayEHWGRRxIzq3JVUBb=ISsyapwMzOp42WF6yAYZntDRVaRo54=lKiplOzNwrdGqefwMKF_eWURSpXeZERe0Fw8zlk1ktaSL2c8NLFeyzeV_iBK3hsBWDGxRH4LNGQML2rxRJaI0HvzHzP6QP7xMh0s0KF3N50ckePf2lSG7EnYaW_scNlNxx2vKDD2SYsMV04oxtehcQspQc32MpDwjprM2Fh-gvww7HL6b=5-8OwXVgigSUZRNWs61SaIl8w1N32nkdF6XvsLuvOTRJVypoWj2QSAJnIEqXCvaKdyJIiMIF9I98F9jCp3y1RPsKs3Iegqjxd5T3eSYo0NsWLotCsPC8PTzFeXE-sRE2H4lLz3MBAehS-cHcQ87E7DoCvcjvrqDeXyJJsjEHIgVJxb52SrGB-B5y=eMz9XA=arDYyFqB2l08psSl8u1D65D=3jvCQzkN6EEx8qF4c4WoKtiHuT_E0LFGMg_Ve0BEq9iKUNybf2462ulodtoqPIT3K0SOfVOKWBxN6gploTEgxniP7ziMcfMZy=N4aEtfXR_3cZOWtiJnMpteOigfcjldM_kVFjZhD5ue-8zY=VC50YoUpL_sNb0u6faEeDPt1uJh0vVo_Gh8LIDieDuyUkHl34PFNqCptHUSwAujQYjTw3Scj0fwwRzX6X1xgBCeNracI4VroXpLRB=BhJGcjQr0NVAZwlkRd4AHNdhte8f-5ZlpqHuhtUsNF-O4ILzBb6iFcxeLTGY9cYXWYgJkXc8=Io6n-aRxdGui=DbaVSIiX7eWQV7Ftbrv_dy7b6E1zVajqtS0W=UMgBPB6r3tuj-cNc8xRFLC-wBAfeDWJwAGUW0NkfHXMyclCFnB96cLP6TJvv-tC=BGUgw99Lr_WUsW0xJOsg2JfRAk5NzchX8geo2J-Y2DqCENQ68EgUxziGaevOQUv2b1I==XhIb4MOf5pNfSdKbCDTwsG=hBEXMoebK=oZWKJt-2VHGyhz74d9MqOh71Ag7oKZTYkzMPR6bO--KhshkZucfiWSl316aRZnB00v7Lx-GvWcOULPo8T0pYBCR7JzN_ohWAIOMZeOrQsv0M141xb-kPtH4eTMvreWQK5ADn_DjuagN2LCGDQ468FDqz7iiKli4c6bW4jZ7Kcc7R4GuQO-o=3NHX0fZOapYJoUiAS9i10XiXFFe_7OCDHYF-UDl8hoIyiEk8EwOT3VKHa7L7=VW7EyLiwol7I8bv3L9wARlJBtIGK_xRxr1W76G2CvxG2wV2XDZr5_OxWTSHouXPcsKqWJv4C0IocSEjA8L4DEypzCRqZHUNZsY6y3GUDEdF7M5bSNso21yuwrbQ9BOCMXGtOLudkLgsiscpZEvOp-NdN5CeZBIZniuTf3DAN9vi7bSNGZ6R562Vn96KUvnkQc5HT7NJ6yEL86ZRK_RD9x2IvQOj95j69IUwJjeIGswDpGsz2=Gcvr9Wu_kxDuNfMK8a_ufE5K7zPGgqdPwcs9aBdpwez2foVipDnul=gfhuTb53QnuDWwTx-gu=iwuevDdKS0YHUENM_bD6Izc7841fVk1GKnEe6MwrMU1QkKii0b4qYQAT9--L1PTbFCivWqqsMUPKw9jdEpk69paO-_cKZallU8UDi2vCC-CyDNpQj4vBOYyH0COLWCwOezKyb7GXHTMk3=bHZThTyIJYcw6GS7qCXtFMXMvcckrxu4IxkGbVeufkI9a-A=bL9KsLOlD9FuludBEUbpTyFgZoF1DUGLPAFa-_WiBpTO97OSG-LSSTfktCzHoKb-k6xA0rKOuOVb2xt6uVQvjG5ODOt16GMESuE9JNh8YziPjX44nEUhhUU9VPJF-5Ukn5rgEelretaRYF1WyCk=VRMVFPOFDheU_CMegHdFotOREyBX8NcJERWfR=vvOUujqTlPBhIRrROJiVH1UlshFZrL8fxFdcvLvctw-wZjstppfqCy7LjQ8e9ASd9VFX5Fdt239t=1sTEJ0c1d7RMiEE750SC-q_BQ4x81xM9q72BvyKel6WthTMGMvWM_lunsUvbNIXjZUU4heGxUKi7=SvLlJryrKfka8U1KuNpt1DurHlaDgK3BE56Tzsur=Njb5Wn1SdJ6CATKg=70S0KB2qHEaiSkMXfaRgJT1ZQH5C_lyCtzWlcZvvVDOUCpj9duWZcp1I7IXWhR1Eodd1rsT13IFpYtHdOQfNEE6oS5hOJSZN4UDjdWZrxaGJQ5ICKzyZGOOcLn2PWLi2eB-UUDcGYris4FOJv0t83egBYUQfnrC444rLMZ057NeIb3GlTl6RZ1BYXFJnYP-ABD=4PY1XgSojPF5nbeUyMTvDu1=PGUcaAfkwXtXnHrR6q1Y2kbKJaXu6ZvGMjBnNf-Q5UAw9lOwuZOoEvMDZhI7O6SNxihSbqkA3XobknVaKttcyTBTOUV75Wy=fejnSocwrvj5N0T9NLFQxb=uAPZA8M14FewkARsa7dzryNqp9W-hEY=yDBCnv0ls=jA4BC0ldUNsyN2=cAL5zq9OIl54q7wI8NWLOSY7vZSTCUSgcgVghDzy1_LJoLSzJjVCJo9Y=f2IiZ4SAAqruJhHeeR9uJVN6D99JH2AMxHHhKpOy4KZPaBBOMXKMEZzT2uTVQB5L4a0PXPbAj5rftfPjLX9GyRun0d2-IPSkf0A6rAF_DV_6CIvcjAVs8vZZHdNyuVudKbFLZqzhgJBXbckVuevVy=0p47HeUcwQT-IttjJP3cNd4v4pJPbADc_BtllcBHEIwGLLi8hiOqAGPbjEtGVOTwynhlvX2LTrkMcwGdxsJ=YaAtyfSiMKonAosXLtzLAMh-f2wAss33tbQ_EYVLhrERNCYxjMXkfpOJejtM_i_C91c16RDRGjH9_DtT1fLC2VDbE3WB6OCNB4uoMo=MxCOyn2iiTXkjEw2NS9UXM9sjtQqLd7KqsOsTYvqAFwx=47OQQNE2v3vXWRupzw31fyAFQeYA3AKrC9V0Ze-sNs7vzlyQLX7stQAhnLhdM04ajf216fwsAFRWIqLCAPEoCyXbTEqW6-sqFHo3ixV0VqwfTweU=Q=85PZqvlI=IZG_ZFTjPggjkOXaI=kbS4_rlUH-7vSsZ_94tAjl15JjVzf-=LuyY1AcTx-EABj4PbfzMKuT2tzgnJXNSC1rRwldLkBYTXxqLXK=zE29590GFhu8uTlcChywP5KZk=bKOsRgws0Rf3gPpK9zE8lc8YbVebJHkj7QEJqzfiPMr6DkBEJk07OgjqPSCI3-P2Fu6e8KhR=nXz0=zAqnO9w==dRijyxs1MPMNlJdRKC-P=PGqIY5Li4a_5bpuUda9WCwtB84xDEfejRtbnpnIlA9_zSZeOZhb_Zg3BcBNycIdOgZdQaaZ5zovQjzl2VpjiUsQTp5VGXnPoySPzRxS46JFLOo5tf0IsvgCEWEL0bU61UM412c22NPprBqB78row1pT4vrXKvvDTXp9wuu4edi2eFsfXzpOdFk6=8aC2yv_j_ZsjYgc_Ghj-3DUbhKCnCeUZNoAq8su0h2VaqggPoVOTfPq5lTwrIEUp3nJQZLTZLxF_hde01L=1ZSBw3_7ugcpG7_CA7YeG78M17XI7fgRJunfo5f6I6aHOYZkHsalBkWOts-iKiE=yjBtdBa7_rz=Fi63lz3VLr6LRTRJM25PZuigiYD7eY52AQsw3_fsFl1ehUx8KedlaigHXyuhu05RY=wVUCw2g07X4G4wxQssXGi7hIJ-wgsHYUFohiCPs4QbkwYRkTXPHxwx6KhxZM=GKO2B7V7LOWcECCGs8MOnGJi9MRV_kZDv2agrPT9tpAQfB-XzKXZljXsKCDfYSGTeW9NZZbTwSKVJ6GVIuS57UiEyEIzGB=Pg53hfkKErzo-rBV6YY7VBL1U=tPJCpHdx2F1tca_sk93olxbBN2IPXbWDK1uTs=v2-Z4t-bIo5Y2RlQ=X_E182lhMuZpZ72VvbsQZIl46Ca67hGHopdJ67EVbRTiBpEP8NG4VNiP4zcCuJE44LcbsSAfJMvPcBYpZk3dubr_DCkE54WN1=JAr5RbXRQ2S_hJO=PVWpJD9tww8Jy2aF1Fv84sQXI4kFbCsc422A-5Mn93SAHVS-21G4D5lsfNbuHva1EfsNvtbtlgn7BYfg3=qHKwjAXh_ld97=QQZz6C0fkeHFDFJl0A50W3Ad9vk2uMA8xQhNMTxRUc7HhwBfGkVipBSIAw7Ldf4IQVt_6BuKf7xtesCS9B=c2h0xP1j=YbjQ9-0L9-vZQR2_4tP-lLEGDts0ol02Fu1ONSOA4piMQdol3bChLXJW4LXE4C7vVMJSfTXjIP0HzhrTarATgZKGrfOCnN_5fDOEREuOw3qlpHBjTgRJMbIe086FC-lg6bsRYFXq26_O92zR7HPiwq2z13-k9j908574GAc3sKf7AnU6u-LNU_XifBYiMO5TD9V1E=JgipVtUxBzuSURqkKJpd-27AfCCICrTTapo-KRagG9N3U8UAcCOwRh2M7GO3jBQWJUBXlU7TJsGFBJjB7v2l_1iOwos=UoCR7Nl4QC4epjfS_VqQN2GNRC4Iv1DcBCTpdnCaGL_7W4eHofGHZ2VpHfobv5MqEnro0cjeVW7USC6pvBilK4IfS3wBPZDxt4TFvnqnwFUTaTQN-zqnDeI' data = 'nQJQ48yhEvZypKSQxdEs=2HjhahW3V-DPcKRfty0gBBqIQM7U5i8CcVq1SrvDvZkEQ3fs3ojevO2q2PSjQ_usjApwOrsf5G3DY57ptXgelcZ1Af8d0op8OQJqF9tJFxDU-zrIiLa=szH=0Dv8BgUG4viBwJulRYM=FE=p7P5XY8p_FSZKT5zPNn4JkY_5RlwR8Dk5F2U_Puj397s0Qw5d0KEWqDj-3oyJB7fSpRKV9TD650Mbg8NwpYVXEHdVbUJKU=BRyBSYsWdAITI_82WToIpHOEzp_bYr5ZcA-WLqKkDoLO9a0OYDNUOOWU8gD6f0K8zNos38un5=eXGqiwi=znpE6VUiLjRyhtIWqZlkVDsgVt2SsRDFARWFqGR639CNC3xg9ibttEdfDd-Enq-Esqc9rerH1nhf0E-2I7yQ_u_hZxsCbY5CUo3pT5BQcpyFCdNiO7UGqld_6Mrsxee02qcFFTyM_=tx=SSUpf-2KMJ-C-ayEHWGRRxIzq3JVUBb=ISsyapwMzOp42WF6yAYZntDRVaRo54=lKiplOzNwrdGqefwMKF_eWURSpXeZERe0Fw8zlk1ktaSL2c8NLFeyzeV_iBK3hsBWDGxRH4LNGQML2rxRJaI0HvzHzP6QP7xMh0s0KF3N50ckePf2lSG7EnYaW_scNlNxx2vKDD2SYsMV04oxtehcQspQc32MpDwjprM2Fh-gvww7HL6b=5-8OwXVgigSUZRNWs61SaIl8w1N32nkdF6XvsLuvOTRJVypoWj2QSAJnIEqXCvaKdyJIiMIF9I98F9jCp3y1RPsKs3Iegqjxd5T3eSYo0NsWLotCsPC8PTzFeXE-sRE2H4lLz3MBAehS-cHcQ87E7DoCvcjvrqDeXyJJsjEHIgVJxb52SrGB-B5y=eMz9XA=arDYyFqB2l08psSl8u1D65D=3jvCQzkN6EEx8qF4c4WoKtiHuT_E0LFGMg_Ve0BEq9iKUNybf2462ulodtoqPIT3K0SOfVOKWBxN6gploTEgxniP7ziMcfMZy=N4aEtfXR_3cZOWtiJnMpteOigfcjldM_kVFjZhD5ue-8zY=VC50YoUpL_sNb0u6faEeDPt1uJh0vVo_Gh8LIDieDuyUkHl34PFNqCptHUSwAujQYjTw3Scj0fwwRzX6X1xgBCeNracI4VroXpLRB=BhJGcjQr0NVAZwlkRd4AHNdhte8f-5ZlpqHuhtUsNF-O4ILzBb6iFcxeLTGY9cYXWYgJkXc8=Io6n-aRxdGui=DbaVSIiX7eWQV7Ftbrv_dy7b6E1zVajqtS0W=UMgBPB6r3tuj-cNc8xRFLC-wBAfeDWJwAGUW0NkfHXMyclCFnB96cLP6TJvv-tC=BGUgw99Lr_WUsW0xJOsg2JfRAk5NzchX8geo2J-Y2DqCENQ68EgUxziGaevOQUv2b1I==XhIb4MOf5pNfSdKbCDTwsG=hBEXMoebK=oZWKJt-2VHGyhz74d9MqOh71Ag7oKZTYkzMPR6bO--KhshkZucfiWSl316aRZnB00v7Lx-GvWcOULPo8T0pYBCR7JzN_ohWAIOMZeOrQsv0M141xb-kPtH4eTMvreWQK5ADn_DjuagN2LCGDQ468FDqz7iiKli4c6bW4jZ7Kcc7R4GuQO-o=3NHX0fZOapYJoUiAS9i10XiXFFe_7OCDHYF-UDl8hoIyiEk8EwOT3VKHa7L7=VW7EyLiwol7I8bv3L9wARlJBtIGK_xRxr1W76G2CvxG2wV2XDZr5_OxWTSHouXPcsKqWJv4C0IocSEjA8L4DEypzCRqZHUNZsY6y3GUDEdF7M5bSNso21yuwrbQ9BOCMXGtOLudkLgsiscpZEvOp-NdN5CeZBIZniuTf3DAN9vi7bSNGZ6R562Vn96KUvnkQc5HT7NJ6yEL86ZRK_RD9x2IvQOj95j69IUwJjeIGswDpGsz2=Gcvr9Wu_kxDuNfMK8a_ufE5K7zPGgqdPwcs9aBdpwez2foVipDnul=gfhuTb53QnuDWwTx-gu=iwuevDdKS0YHUENM_bD6Izc7841fVk1GKnEe6MwrMU1QkKii0b4qYQAT9--L1PTbFCivWqqsMUPKw9jdEpk69paO-_cKZallU8UDi2vCC-CyDNpQj4vBOYyH0COLWCwOezKyb7GXHTMk3=bHZThTyIJYcw6GS7qCXtFMXMvcckrxu4IxkGbVeufkI9a-A=bL9KsLOlD9FuludBEUbpTyFgZoF1DUGLPAFa-_WiBpTO97OSG-LSSTfktCzHoKb-k6xA0rKOuOVb2xt6uVQvjG5ODOt16GMESuE9JNh8YziPjX44nEUhhUU9VPJF-5Ukn5rgEelretaRYF1WyCk=VRMVFPOFDheU_CMegHdFotOREyBX8NcJERWfR=vvOUujqTlPBhIRrROJiVH1UlshFZrL8fxFdcvLvctw-wZjstppfqCy7LjQ8e9ASd9VFX5Fdt239t=1sTEJ0c1d7RMiEE750SC-q_BQ4x81xM9q72BvyKel6WthTMGMvWM_lunsUvbNIXjZUU4heGxUKi7=SvLlJryrKfka8U1KuNpt1DurHlaDgK3BE56Tzsur=Njb5Wn1SdJ6CATKg=70S0KB2qHEaiSkMXfaRgJT1ZQH5C_lyCtzWlcZvvVDOUCpj9duWZcp1I7IXWhR1Eodd1rsT13IFpYtHdOQfNEE6oS5hOJSZN4UDjdWZrxaGJQ5ICKzyZGOOcLn2PWLi2eB-UUDcGYris4FOJv0t83egBYUQfnrC444rLMZ057NeIb3GlTl6RZ1BYXFJnYP-ABD=4PY1XgSojPF5nbeUyMTvDu1=PGUcaAfkwXtXnHrR6q1Y2kbKJaXu6ZvGMjBnNf-Q5UAw9lOwuZOoEvMDZhI7O6SNxihSbqkA3XobknVaKttcyTBTOUV75Wy=fejnSocwrvj5N0T9NLFQxb=uAPZA8M14FewkARsa7dzryNqp9W-hEY=yDBCnv0ls=jA4BC0ldUNsyN2=cAL5zq9OIl54q7wI8NWLOSY7vZSTCUSgcgVghDzy1_LJoLSzJjVCJo9Y=f2IiZ4SAAqruJhHeeR9uJVN6D99JH2AMxHHhKpOy4KZPaBBOMXKMEZzT2uTVQB5L4a0PXPbAj5rftfPjLX9GyRun0d2-IPSkf0A6rAF_DV_6CIvcjAVs8vZZHdNyuVudKbFLZqzhgJBXbckVuevVy=0p47HeUcwQT-IttjJP3cNd4v4pJPbADc_BtllcBHEIwGLLi8hiOqAGPbjEtGVOTwynhlvX2LTrkMcwGdxsJ=YaAtyfSiMKonAosXLtzLAMh-f2wAss33tbQ_EYVLhrERNCYxjMXkfpOJejtM_i_C91c16RDRGjH9_DtT1fLC2VDbE3WB6OCNB4uoMo=MxCOyn2iiTXkjEw2NS9UXM9sjtQqLd7KqsOsTYvqAFwx=47OQQNE2v3vXWRupzw31fyAFQeYA3AKrC9V0Ze-sNs7vzlyQLX7stQAhnLhdM04ajf216fwsAFRWIqLCAPEoCyXbTEqW6-sqFHo3ixV0VqwfTweU=Q=85PZqvlI=IZG_ZFTjPggjkOXaI=kbS4_rlUH-7vSsZ_94tAjl15JjVzf-=LuyY1AcTx-EABj4PbfzMKuT2tzgnJXNSC1rRwldLkBYTXxqLXK=zE29590GFhu8uTlcChywP5KZk=bKOsRgws0Rf3gPpK9zE8lc8YbVebJHkj7QEJqzfiPMr6DkBEJk07OgjqPSCI3-P2Fu6e8KhR=nXz0=zAqnO9w==dRijyxs1MPMNlJdRKC-P=PGqIY5Li4a_5bpuUda9WCwtB84xDEfejRtbnpnIlA9_zSZeOZhb_Zg3BcBNycIdOgZdQaaZ5zovQjzl2VpjiUsQTp5VGXnPoySPzRxS46JFLOo5tf0IsvgCEWEL0bU61UM412c22NPprBqB78row1pT4vrXKvvDTXp9wuu4edi2eFsfXzpOdFk6=8aC2yv_j_ZsjYgc_Ghj-3DUbhKCnCeUZNoAq8su0h2VaqggPoVOTfPq5lTwrIEUp3nJQZLTZLxF_hde01L=1ZSBw3_7ugcpG7_CA7YeG78M17XI7fgRJunfo5f6I6aHOYZkHsalBkWOts-iKiE=yjBtdBa7_rz=Fi63lz3VLr6LRTRJM25PZuigiYD7eY52AQsw3_fsFl1ehUx8KedlaigHXyuhu05RY=wVUCw2g07X4G4wxQssXGi7hIJ-wgsHYUFohiCPs4QbkwYRkTXPHxwx6KhxZM=GKO2B7V7LOWcECCGs8MOnGJi9MRV_kZDv2agrPT9tpAQfB-XzKXZljXsKCDfYSGTeW9NZZbTwSKVJ6GVIuS57UiEyEIzGB=Pg53hfkKErzo-rBV6YY7VBL1U=tPJCpHdx2F1tca_sk93olxbBN2IPXbWDK1uTs=v2-Z4t-bIo5Y2RlQ=X_E182lhMuZpZ72VvbsQZIl46Ca67hGHopdJ67EVbRTiBpEP8NG4VNiP4zcCuJE44LcbsSAfJMvPcBYpZk3dubr_DCkE54WN1=JAr5RbXRQ2S_hJO=PVWpJD9tww8Jy2aF1Fv84sQXI4kFbCsc422A-5Mn93SAHVS-21G4D5lsfNbuHva1EfsNvtbtlgn7BYfg3=qHKwjAXh_ld97=QQZz6C0fkeHFDFJl0A50W3Ad9vk2uMA8xQhNMTxRUc7HhwBfGkVipBSIAw7Ldf4IQVt_6BuKf7xtesCS9B=c2h0xP1j=YbjQ9-0L9-vZQR2_4tP-lLEGDts0ol02Fu1ONSOA4piMQdol3bChLXJW4LXE4C7vVMJSfTXjIP0HzhrTarATgZKGrfOCnN_5fDOEREuOw3qlpHBjTgRJMbIe086FC-lg6bsRYFXq26_O92zR7HPiwq2z13-k9j908574GAc3sKf7AnU6u-LNU_XifBYiMO5TD9V1E=JgipVtUxBzuSURqkKJpd-27AfCCICrTTapo-KRagG9N3U8UAcCOwRh2M7GO3jBQWJUBXlU7TJsGFBJjB7v2l_1iOwos=UoCR7Nl4QC4epjfS_VqQN2GNRC4Iv1DcBCTpdnCaGL_7W4eHofGHZ2VpHfobv5MqEnro0cjeVW7USC6pvBilK4IfS3wBPZDxt4TFvnqnwFUTaTQN-zqnDeI'
data = 'SrtxqJDvc91Tf0F4W65a3jK4RHzi-7OJSncBAyy=D_U6FG69037ffGJKpc8lwpb2QEL05woWlCI7s_s6qgD0J5OHBMSlFfXACCEoXeEC=hb6khcfe1Tggak2nMsYpt0ZwtJg=Ww805NCYp_pObtSb1ko770MpSUPzQv_3kFcyzaJe97ufqnXdAFb=db9qjP0wg5WMA_GR5JVU-DF__WOZ_vgxA1hx-fXl7q9I7bWlASyN1BAssKVwH_89xx2jSTYLo2jA716-tjnXJngxdP8OQp2okyAJsBj_5VCYDaZxrr3rrkpMfZUYu1VYx3sWC=RVJIUdTh1g2cw_utdnBPLXWGv0_Md5NJqbiL=Y9F0zvX0ah-6qunxJrda4zORKEK=bCv6BwFv_OSx2TGKQaPFio6XHxXWQxv3aRT0LIXHXX3dd=Gp=Es5dPipDYHyKBuBxUJAhjtBSR9EtSR976eOMX9ioag9B48q20oSn76=ZUXaBtwCHbNsXqgGASbZUZvC4Ao23yXgZpChvr_uHSc3EcS2QnAoT3LJHKNkvF3WICdN0rn81lrZ8YxGfhnKz1gXkqalKdTHt88WuXFMw4TTNzTtn0iA-a5uiQXrc9ef_NWc5=KjFdrnw7uuRoJbZcX1XgjxA9DGuu_xcP9ZxoMXWYEvXpZE8adjBfZEDeHIYQpj06_fTrGSXV4kGF3ph23OgqNFEbw9aK8jYVeKKwy3r4AFbSUhSpk1CglMN8Z8iY7H5GIIF3QIAXkxvtFYrzSFeLLtqv1oSkHZvIW5MP0kDA8DnetitRHFn=J2YtSIMalYOF4GcvzI=qFZg1AZRe81ufZSUckELakxTILLa19P13Z8AOaovJ8o_ugZAkIj6eWS7949F4chV3Uw8sFiRrOQsRwE1RCencs7uFAhJ1TepaOkDgbw_UGY5k_2451Iyadcs=F4ZE6OXf-VB9wWZhxfA0r=puPw6jvIwntZhuAlupT3xM5Le=9GCI3varzZ3K06paLCW6rOgRvcuXBM6jVHGgGpJNysIEz7iEdjq7p4I7g2Ui_1CvIY5dLGozDJni3P397RUo44CzHntFjKbevPSkJswwXkexngkARJkHTIq5uwNqDvYqvsYXyR5VhGFrnL_4ugtcxoV-CepwJzC_9d9L8Q7HDiAVlnyXMufoeJ1KkNtFf4AJN7_NxHwkkHduZRa81X3tkuhD2YHriVxqYNqNtunPjJZUaF-iPYUlu1-GVXlFzs8YOKkMJyba5R960-PyyobT=1sx9O22U=zkv3K9Y5osAhai_GYAYNwweZ4-qraiJOLBV9MwQUSpEOt-492EGXnMt8go_6WZbabzKLAvrjMuaRvqHnqflYx5Id4vnQyvcEbtjX43nWWVP8ITZdMU9JoVVF139rIzMkKnfVTaJXWQf-k8vhIudOJHL_I25CTs8H1XYCBMKDzrwlSQrsR_S6hRCT9nBD7OkjiXOdYNtbF=W1lTEU6Q-=YxLIvlc7WfXzRfLW_LRexL1IprFUhf3-0PolgTGFJ5S_BihgAcQFrr9oFZJxFSHQQ0zMiMM-UBZvGaSDSCLtgVKSO1QTVb4jklIqn8gkhr7fMCe_K2ZkMpjSQOcMb34GMazzMZ5qC52RM60y5SM5ErEIgJaH-j2gDgQb-nQDSplSZfy' data = 'SrtxqJDvc91Tf0F4W65a3jK4RHzi-7OJSncBAyy=D_U6FG69037ffGJKpc8lwpb2QEL05woWlCI7s_s6qgD0J5OHBMSlFfXACCEoXeEC=hb6khcfe1Tggak2nMsYpt0ZwtJg=Ww805NCYp_pObtSb1ko770MpSUPzQv_3kFcyzaJe97ufqnXdAFb=db9qjP0wg5WMA_GR5JVU-DF__WOZ_vgxA1hx-fXl7q9I7bWlASyN1BAssKVwH_89xx2jSTYLo2jA716-tjnXJngxdP8OQp2okyAJsBj_5VCYDaZxrr3rrkpMfZUYu1VYx3sWC=RVJIUdTh1g2cw_utdnBPLXWGv0_Md5NJqbiL=Y9F0zvX0ah-6qunxJrda4zORKEK=bCv6BwFv_OSx2TGKQaPFio6XHxXWQxv3aRT0LIXHXX3dd=Gp=Es5dPipDYHyKBuBxUJAhjtBSR9EtSR976eOMX9ioag9B48q20oSn76=ZUXaBtwCHbNsXqgGASbZUZvC4Ao23yXgZpChvr_uHSc3EcS2QnAoT3LJHKNkvF3WICdN0rn81lrZ8YxGfhnKz1gXkqalKdTHt88WuXFMw4TTNzTtn0iA-a5uiQXrc9ef_NWc5=KjFdrnw7uuRoJbZcX1XgjxA9DGuu_xcP9ZxoMXWYEvXpZE8adjBfZEDeHIYQpj06_fTrGSXV4kGF3ph23OgqNFEbw9aK8jYVeKKwy3r4AFbSUhSpk1CglMN8Z8iY7H5GIIF3QIAXkxvtFYrzSFeLLtqv1oSkHZvIW5MP0kDA8DnetitRHFn=J2YtSIMalYOF4GcvzI=qFZg1AZRe81ufZSUckELakxTILLa19P13Z8AOaovJ8o_ugZAkIj6eWS7949F4chV3Uw8sFiRrOQsRwE1RCencs7uFAhJ1TepaOkDgbw_UGY5k_2451Iyadcs=F4ZE6OXf-VB9wWZhxfA0r=puPw6jvIwntZhuAlupT3xM5Le=9GCI3varzZ3K06paLCW6rOgRvcuXBM6jVHGgGpJNysIEz7iEdjq7p4I7g2Ui_1CvIY5dLGozDJni3P397RUo44CzHntFjKbevPSkJswwXkexngkARJkHTIq5uwNqDvYqvsYXyR5VhGFrnL_4ugtcxoV-CepwJzC_9d9L8Q7HDiAVlnyXMufoeJ1KkNtFf4AJN7_NxHwkkHduZRa81X3tkuhD2YHriVxqYNqNtunPjJZUaF-iPYUlu1-GVXlFzs8YOKkMJyba5R960-PyyobT=1sx9O22U=zkv3K9Y5osAhai_GYAYNwweZ4-qraiJOLBV9MwQUSpEOt-492EGXnMt8go_6WZbabzKLAvrjMuaRvqHnqflYx5Id4vnQyvcEbtjX43nWWVP8ITZdMU9JoVVF139rIzMkKnfVTaJXWQf-k8vhIudOJHL_I25CTs8H1XYCBMKDzrwlSQrsR_S6hRCT9nBD7OkjiXOdYNtbF=W1lTEU6Q-=YxLIvlc7WfXzRfLW_LRexL1IprFUhf3-0PolgTGFJ5S_BihgAcQFrr9oFZJxFSHQQ0zMiMM-UBZvGaSDSCLtgVKSO1QTVb4jklIqn8gkhr7fMCe_K2ZkMpjSQOcMb34GMazzMZ5qC52RM60y5SM5ErEIgJaH-j2gDgQb-nQDSplSZfy'
data = 'RIuBo2j0IKDvxOzBtqqRnuxJ=e37luLwKoxe2U2CRRQy4ju1yEJs_POa8=tSBDWHoxiEX5zQ1Qv44BwO3HhnMsvlKgOqYSeM5U2PcV-gt7DcrW8SeJdlEDx6Wx=Y_xfuL=F=diD=LdSUpkl-V9eLhzvb0zVxdJzn3N44az9qSScMywurrKkhKNARLSI-HbFgPjchBb-iDR9OlvcuNK=sAblXytfCNBRTa2iLk8w3ED=aHcXGK7e6Sha1-2nZuerIhhSEJjJDE5rqNp4KsTB72T_ydS7NuTpzoqkZfDZazi7Y8J0-KT=hR_6Sg91r9uPKSTPhEt_6RPfR=lI2yrE9Hji-l=giSz8L5A_v2LEnx7tsoiYfcPYgWo22BShRWcUzK5v9cLiMh7WaSRUF9kIpqpWhuCqaMgKVZAawE7GV=M_ijzNXS-w2_UYFdWTK389U8K43=L-2tJyA50-5ZyHBiEEorDZWc8M18l-Rvi4bbN_RGi18kdkX8OyNW-BWNMwDGJ-TDGyqJ0oPtcA8zrG50lFGjyx2y4hR=5sfMBBIlZyZkh=F5wdbMU6rWur0eZYQIPcKWylu8JGedqCOK7wdcFFh-TKwxAYIwFDztY92EzxZ0oJ6oWnBjQJg3y33ypyTU8OqXCNnFJ0sLfZJiOYaXzTrVzCGVzBDVOWwZwVoyt9JdxqAz5=XP1SnnhAjEpObqW58a2IEDuAdhLi=IhA7NF0gB1dz8Nq27BT4zVyR8R=S-PUbgAuJWpJ7-fSp9tUtjKxlOE4g4XaIX2hFPe-3kBk23bGxlckSoXullL_Z2fb2ozyacxXs8Mh6wI7_g50DK6sUg4HZ8ZXWRQrzYqEMwUDhSgDBvtQiYzvY4IOVpOSP9LlyidQohHdJEW=5La-Wq_z=vIWPG0=nGFNbLiqv0auJRL6bzF9AcalEzs689MVu4MewbxuRbFNO4OHYPjeY3AycGCk4AwITpdE4fuZO0YQoJFi-oqGqwQ2xg-t1z4ZHdSDerrRvKgqebLUH2tEqtWAIzZ1kA4=C7ocr21guwuF4aYRR_qU8FoRCIzAS_IL=5FXpil11SYbMPase3AD0LBQAA9hrhiLHV8ZcXNSqMbTX9lK7Ry2ycCO-jq376ZgyrUJIxZM=qYIaxACb64=AipLcIA-AYqzzcJdU2ey_NdE2MpdCeyxcEriNh4Sx7wDnkZJ78dL-0p-Vsl5uf582-jc=Ksf-yMPtVP3ZzH9DnIwW3MYjjTX-iw0xv=0FSenKvzWA8-WTRN8Qy4W6osq_RK0LnAZ3=V0WE=Wv=6CZ8LdpWfEbO_3F6o94FWwa0WzBJEiVHa=1a_sWCfXRFFPD9jaMfF3yvHFZbunyMxbrsZsa=Bf0Pdt2wBhfntkIJ3OGYI_lFUXcDKrNDCqrlncVIyVr5B2P8IHIpIceXF8vErI0rIdiOUjYBSNcqo=R953W_9tr01YLu6yrCbIE=xDg=rv3O64j6qtH1rkCI_l3wIfpIefLM-CK_OYc-jJ=AEI_HfTjxc1zERQtIwvWrioFIZ1rjjX5nOwXvRoEpUGDcPJNadwjvji4j8JFV=rPA2W7N7ITChZMFW-7Bgr-xZwjrT746U69xFQ1NV3yPUbuIOREctKxG=VH8qHh44G-O_nxVHlh5kDxRqBxCi8dgK--3zKK30_Tnp8RrCutaC60v53k9K-RItslO9R8tdI=tlu1hJT7ZouJJud8WkZZy6w4ANHQodZH1s0PlAlSPi3TgOnLlrDNHGkiQrpfPF2977qFlGP45LW7rr-JF0-18VsdpO7=avzRK1d8SpO3N4GkyrhrY5iRYQ9MXscoCQ9PN3ijOdHSri7x0FsOoGPFHJTftVIx78bYELdFW6-6CKLgBpdow4SqV8ys-EDaShTLjPJJA=LFd5RPSqIzyPiOp5bgPg8SXELT-TscXainMwiaCoK_fXhkVFdus9nWeyrAr2aniUDzQXUY=l7Dg7nwWBN8Fu46-i708sUF_ZknLPuww5QVnwFUcupLEHt6YuQbx_wo2aePADA21wpL5AU2nAvbVHhPGpGZ_vFychO=5GYvfr0IYsu3l1GRsYQc4S4W6iNwj=tHE-8IOH4tnu8S2EuH0nVsdnoQ6Hr1DfdJ5YtsAvt6QhYNF3ayJv4DB0gc50g6KvFODPSO306hRIt=WsWLPWjnVXanlrsCDqCasgNQzWgJodOn487lCIFUOB92YTf4S==tQsY9gBkNTWNi1gKjvKoXoOM_ySqojlGgfF2S0EWXNh9-0AoobGgOyhCgUaAcp-rtGATqElGbx=vD_xT=OItCZ6Gz976WSU6aXD1HWZXi=FqqnO0w7F4bRdHFIlNySi9g78pjSw832_9jGRV4hU4XWeH4C7vNX-ndrAIgEFeVfhfyXwk6NWUJFHoj3MwO38Mru7ge-q-njotXll5vgn_S7CtjzoJ5Y5X0CLUAP9zRF2Z6BcZGkAyfLMtMcitETbxc2NGx4p9ZodZvFw6wE9UVbUVBUX4RMEsj8XI=FOtMxBPKpcxx0A2UR_WktJUY1TS49lAuqJOG0NOdcNLnR1dhHOzbR4OCVxKyycqGE=tGu4f1oWEQO94UYLhWNcopLqrjqHiItiKKtP_B4M1kxHQ4NS9_uAr81VCXVw2YF8f=-iR_=y0lJfKBGkXupeX4XxQ7gRrZtiVxQOcksDifhcksz=pW_sxAy1MIQ9d7Jd75ftE=2vOvRFZcvYALu5HdJwf_TpQicVQ21yF5yBl5ysSSJ1oEKQ3ng0Cuogq_GiZsKkJkcIJsenQMKIO5N1uFvRA3Ne4XQ7FjisLjjepk_Z3La7FNIEnzWTJ10GvQDuH2FUQK_Hl_x2-wMLd9DFzoy0XvIT43CAlir8Pn0MgbC99Qg8CfMnk-ksCIoGUs=-U8J-S5bd4Rp2cYF71v4Hdq4qGz4E0YcXoiIqdM5OBXNRVDE31Hb2Dq2DeHf-YQzWIeBYeOAdkr_HKi35tlR_9NLGQMzY21JnrKZAWHvJiRR5f7QzlCQLneMfQiXDLKQW7it19dyP-aoEfYi0-ILFBC5c3wlFOLlVI1gSzp4qbvoPq_wFXrcxYE_iNolvujiAdZEvVQ-58Ja-ThUU9PuTeYx6AqD2=FclhFB=N6gzTCa8BG2NPfKddqESZMNCXqC2DnQskipoxc8MEzPRDM=IUZNjiFWL9Ea-CxHKL_K=44MdOIdTuOa4_hqyUjH8eeaP8a4yOO3bCuSS=wv9Fzwl=QJ=aP=jJydQSswO_x0W6RCSrLpjqulOeEwRcXKrskYJyCSqaXpNdBkN63LBNgj1jxHh8UZXWoAtngw4U=1Jj_zdZg8J=h7IiSeSEPv99dgnVPW_=ulW5Z9ZZhS9Wdw6AxlJCnhKuHlAcbDORQCtH4YRY5w45H8C6-3WFLlGNWJWHolQpS59AiUPig6q5uM4Gxjechl3sjHc1UHcnXt4Ko_kWNtEvjoifqrajAaUzrAwG89KivtBzpTu2aWvj3jjG4rIQrZiie3FlQx9c1Qc=r5bMEe5dO0OZhruC5==1UXZyOdaf3oZDMcLTRdAYd0D_T2pybZZ35AVgZrTRj=9NWO=Fp41neU9fpwjZM7kV_2E0a_SXysHcdiOy9GTd_BcdbqSctwUJ1J6VHHOT1JVx0wPUVVJT-MqS7Sep06UE7vjrQp9CRVwAE9wf472XU0UDdaPUSvT3j794c7aV9d5fFMkXWAS7y0VoBUV0Crhsc32VDbZ=sN9zUhqoZLNt_wpgidoLfZr_toqfGr2oS5YIa7UeDpUTjD3taoFbpJ4AiOZy-L7-KK2pYxInWpxw6ld3XTdkcRZ0hwkE_2_BuBd3GLUNgZ1DC54_urlBNlMGzhglLtzawA0E_573vfQDzI-CR_nJvG2GxZeNy2zt_WL-DCiL898vzr=MWNMt=3U0Usy0eE69GHLs=0tjdfeZg1NEgy_G0Y17gK7EigU-EhXLoKaLAS0I-kP0TTQO68gZeOtRKrGF8L57LB1CUckzhreR_W5KZU0N07aSqoiHB5M8A0QDEAJ0wSerBk03TCtWeaci=eEwavHFfOEE0yhYT-IvQn_9bEJUevYkX2PBrRH9wSW1rQDhRN01-xv1FTGUBY-XFz_WpnxTGuPqIjnBbw4H=_Hjke3KyphD4sXQv0hkNXG5Rg0xChHZ98H0-DkvcYwqriPlJe7qU-reLWoPRAwbZ7JTX-CciOuR9dYS7ijPy8Fxo9PGFfuObwBclyzE9CkqiDx6ctqjSNbU8QufpG9NPxDtnNh3DWvGVeGPKS877Z3H-G5S8pg19VLGTRQB960GUAGfEkcIh3qcRpExDnWQ49v7zrvSOu6RdCLNX107jP37uo08ZFyPvdvChZNcMOgp4oolKxgtZii4c6fjjwPGpLLk-DtLFPNeo4IaV6Yc1MWMhj0VrLrC7rY_rrEU8uGOf41JBNUs6gS24WSyqzA=SdaW'
decode(data) decode(data)
\ No newline at end of file
...@@ -79,12 +79,12 @@ for i in range(100): ...@@ -79,12 +79,12 @@ for i in range(100):
# with open('src_run1.js', 'w') as f: # with open('src_run1.js', 'w') as f:
# f.write(code + '\n\n' + c) # f.write(code + '\n\n' + c)
# with open('js_dom_run1.js', 'w') as f: # with open('js_dom_run1.js', 'w') as f:
# f.write(code1 + '\n\n' + c) # f.write(code1 + '\n\n' + c)`
t1 = time.time() t1 = time.time()
# r = requests.get('http://127.0.0.1:5000/getinfo').json()['message'] # r = requests.get('http://127.0.0.1:5000/getinfo').json()['message']
# r = requests.get('http://127.0.0.1:3001').json() # r = requests.get('http://127.0.0.1:3001').json()
p = subprocess.Popen(['node', 'js_dom_run.js', selectId], stdin=subprocess.PIPE, stdout=subprocess.PIPE, # p = subprocess.Popen(['node', 'js_dom_run.js', selectId], stdin=subprocess.PIPE, stdout=subprocess.PIPE,
# p = subprocess.Popen(['node', 'src_run.js', selectId], stdin=subprocess.PIPE, stdout=subprocess.PIPE, p = subprocess.Popen(['node', 'src_run.js', selectId], stdin=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=subprocess.PIPE) stderr=subprocess.PIPE)
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
No preview for this file type
# import tls_client import tls_client
#
# session = tls_client.Session(client_identifier='chrome_112')
# url = "https://jbrest.jetblue.com/lfs-rwb/outboundLFS"
# data = {
# "tripType": "oneWay",
# "from": "LAS",
# "to": "BOS",
# "depart": "2023-09-10",
# "cabin": "economy",
# "refundable": False,
# "dates": {
# "before": "3",
# "after": "3"
# },
# "pax": {
# "ADT": 1,
# "CHD": 0,
# "INF": 0,
# "UNN": 0
# },
# "redempoint": False,
# "pointsBreakup": {
# "option": "",
# "value": 0
# },
# "isMultiCity": False,
# "isDomestic": False
# }
# # proxy = 'http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
# proxy = 'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:10730'
# # proxy = 'http://127.0.0.1:7890'
# session.proxies = {
# 'http': proxy,
# 'https': proxy,
# }
# # print(proxy)
#
# headers = {'Host': 'jbrest.jetblue.com', 'application-channel': 'Desktop_Web', 'sec-ch-ua-platform': '"macOS"', 'sec-ch-ua-mobile': '?0', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0', 'booking-application-type': 'NGB', 'content-type': 'application/json', 'accept': 'application/json', 'api-version': 'v3', 'origin': 'https://www.jetblue.com', 'sec-fetch-site': 'same-site', 'sec-fetch-mode': 'cors', 'sec-fetch-dest': 'empty', 'accept-language': 'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7', 'x-1itxwo9i-f': 'AxvBzMmJAQAAaAQ7zgSP4nlKcZSttXsGb9uYkkLY7uLh100Yc-RKVcn629ZUAWe0HDyuchRAwH9eCOfvosJeCA==', 'x-1itxwo9i-b': 'uixy0h', 'x-1itxwo9i-c': 'AIDoycmJAQAAXTn26Pxf_1wI4-I5djOjN3T2MOw-0aPIA0D-voJsBMavdngQ', 'x-1itxwo9i-d': 'ABaAhIjBCKHFgQGAAYIQgISi0aIA5JmBzvpDzz8AgmwExq92eBAAAAAAH29cNgATB04U6gtu8Zerkf2sfOfx', 'x-1itxwo9i-z': 'q', 'x-1itxwo9i-a': 'IQ8hzLAo5YXL9aH30LKiw8OwGY2HpPNnv5BWJWU6AKbOmW3muL8zYxi0jh6WuRhqMk3UKDMh-xMVBNqos1z0yTHWgLRPDxu5CiJMjAu-sp_Aut3go7bqfI0hvfMc14flP8mN1cXSrI7p5Irr7-TuOjsB_JHzJ2biP7pQrwD3qW9GByOtW3b5uAmpghgv5TMT9NmnrIMzaiw1wGQUxe5w0Nmt3NvmkODRITQuHR81yBWIFBGbWJexl-8bfhVS1YPmdGjabjWjIyHVwgiP9B_AFKVE0TMTvXXksO=LYw92VjpH0W_lQ8NaN8px4FUYcX_09l-yo6PmE=WCNP20rEQ4uDK0ddHtH6woUjxHKXzc6ossSo4NlSDjILznJaa5RHeNTeKDeJeRpdbsMdCaCWd2=YnPDCK4sh1KlV4H68K7fcXTij9rpswKgX1Gp5KNyq8Aj06q6hoeOf4LbB_hFIjy41=fqX_a4gm-D3Fu-srNXg0pwxtUl97gUAo1AgFcGja=Rhm1M9qrUcE1FKpeBTAKC_lhbMkDjioXEbjWALjkmIN8E=fl==UX0X0-nLt5oYUNQnoYIcvPQrGkdp4AUEeYzW=TM5SU1PJkESu4hFuq1SICm3h6VmkTnT4tcqSrM_jMOg6LwR4E2IhmGGM9yXys-ij1GjAyQ9df37W4WbPrjT=TuIqBx_WXgsorJ-6sg0x9vscmiGKl6KqSj1qqudPAneyTfl4Pwv2xd_iPsvK7IA9AxhuR5Rgokal4lV32cuWvuJqkE8INbMi7HtShUlKo4ci7KoHu9FJ-RBX0-G7hR1LwTDW1Gex61KrFjrBD_kasnE6_aN7EUflgrcivkVB2NDsnWu2Y=KJF94TdbF2c1Oyp1QCPGVfbjk7mNxp_EXApSEw13ntT_PX5uwnT=Lq5GUJKs7X9IeLBXQtHp=shuI3knKCCT2kX1N3RdhbAvAszs0-PaSlPWOyBjTrqWKLEr_ppjV8DA3cw45W2g9mO9O6OlfetLUlt90GEAg7JbpmKa1pgyKu1hM5ktq_6KzmJzrmrp4rsFA1b-foV7BFtBJjvWmRPnJeHGwAawvgPKhFhM2zp_p=p2WtB8y0hWFdPb2rJeHLd2kpyMtGPeuEypmu=GnNFJtSpnqHd3RxNFGd0mKfkF9uuUARjPmGCwB=UliB7DMr-=jwLiyNiqt9sl74D1XmoNShkD0LdzvuilzqekrY9M86DXfbDMAB2hPW8Lw3bd=sjdHioVXUaVXOd41eRa6cpgm5lQyHGmdcYct_J0eJRED8nXVNWqHDBH8luCDq5OYALToh64cGtWm_7QHYQhVy2UYrkccvXKaSEIvnlOyN0=H5G2ufUw3PBUKUBCOmxQb7_BaHVtpQ2fzlguGYd-2TLsl7OCLwG9k1fkMJSOdVe6m4_VrXd6VSLQ0JbYzVGcVm97tQuKAbIfi7c'}
#
#
# response = session.post(url, headers=headers, json=data)
#
# print(response.text)
import base64
from Crypto.PublicKey import RSA session = tls_client.Session(client_identifier='chrome_112')
from Crypto.Cipher import PKCS1_v1_5, PKCS1_OAEP url = "https://jbrest.jetblue.com/lfs-rwb/outboundLFS"
data = {
"tripType": "oneWay",
"from": "LAS",
"to": "BOS",
"depart": "2023-09-10",
"cabin": "economy",
"refundable": False,
"dates": {
"before": "3",
"after": "3"
},
"pax": {
"ADT": 1,
"CHD": 0,
"INF": 0,
"UNN": 0
},
"redempoint": False,
"pointsBreakup": {
"option": "",
"value": 0
},
"isMultiCity": False,
"isDomestic": False
}
# proxy = 'http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
proxy = 'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:10730'
# proxy = 'http://127.0.0.1:7890'
session.proxies = {
'http': proxy,
'https': proxy,
}
# print(proxy)
public_key = '-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+cSXdWRN7fovZBkzqcxIJNKQP1lytoU+wsLHXRZ6KDIYDl4H9M4DMtxnRrqsk52xw9lxIbe+P/vYeW2CoU7FB4iM4bvs+n48yqqUv6UkUB/BVH09sdX2ONkMQJmVqxMvaD2r7L7oxZ/POh1nstcGWufKTLYDuFce26vD9mVqikIC+7/lgnWZA5hbBlvtnzofJFbGqv1HBjCrlYsVBdU+okvJutys8EXlEm9Jc/WFoAM3bwIGOqKZwTMGYSBT7hoDxO7jazxh/EFEMPz9ofwf9ebJ5uk7sPVpk5pB2q5+pOmZMg/pRBFJidbZ4zy3ps6VlgN+4j5x/sc90cCNnNorkQIDAQAB\n-----END PUBLIC KEY-----' headers = {'Host': 'jbrest.jetblue.com', 'application-channel': 'Desktop_Web', 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36', 'booking-application-type': 'NGB', 'content-type': 'application/json', 'accept': 'application/json', 'origin': 'https://www.jetblue.com', 'accept-language': 'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7', 'x-1itxwo9i-f': 'A07o0m-KAQAAvLNQXGE1DNe5ZQJtnuQNm_AwNeULaanncTR8HcQJ-EsmopuKAcJoklj6K21wobReCOfvosJeCA==', 'x-1itxwo9i-b': '-wji0rp', 'x-1itxwo9i-c': 'AOBD0W-KAQAAoS3d2kJmCpf3c4Au_-kJDnR47ZZPixCQ0WlU1snZKppIdbE3', 'x-1itxwo9i-d': 'ABaAhIjBCKHFgQGAAYIQgISi0aIA5JmBzvpDzz8Aydkqmkh1sTcAAAAAH29cNgAMzy14CdgPSoAaMDzAAfaK', 'x-1itxwo9i-z': 'q', 'x-1itxwo9i-a': '_OctJxDkUUWAgD_f06reQZX-dqg6yeWr7ioJsg4CIaL4anmuuaZEKNHZ=NWp8Lnv71Tiuqqs7K8lpFq3E4bCOa5QVNl89OEPgYs7MGQB_kkRdxc-vqmF5X5ux9MPGAt9Dcd_DFsanCHqfyFa8Mg3Y7xdE760vuGruM0rfa1660tVH_FoVO4HWSU-iHg1JOkeBsb3NxPUz0AThodm01vTgJWhRUyg=KywalLxw7SWERnAsEvmfqMVJNICh1nMLLBwKJ0-bFurLIke-KYvSv-jHyn3fPXEyP7hkwNm5tvlHJqP1COICV-o3ycnP9asYuiG=04a9cJtU6f=831EJ0mfWR9HXMkfWCwao8ga4QIB=g9to6m3dtnrnMmJ=vAxkvIVL-hcZOzh5xaBuv_KzRvaxRbcfm1T_9TTTZEFy9enFYzsyV0O5-T9rul0CXzF=RTXhqkG__VgSnwDnD5O=f03ZbCqkpmEZQVvFnY6lpxzEFMsqst0XQ=vuzxGtD=qUe7dmrV_ArCLZ6R=L7Oso4zxLYtJSa=wu1jmwnKS-DiBG6d4Aqo3DqxkKJFvdxT9fxa9sZWIFMI0wYbGFRDrPgvecffHU=PLeSww5FCSl9OmLcbsQwAZAhv-qHz1sT0WcQAaD7wyl4gC5z8-_khO_0LF1_ebZtV7F-mQBSQBO4InI_BuMzcAJ3KzAGgKoCb-Gjn8icetkbT0RGi83sBmPk=ihaP1yWq5YBKBMOOSx6ZSMzaSlYs_t-G97sVN5EDRPCNB9YfjEOVlaxvFgdin5Arju5zz6faP3Zz5-tuY71cOXnyHyWL9LW-zLdXKSgPDLuoWQm=q4C=tf9jgWlbDNbwM0-0GGa08lhjblcqz5axHoRdjLYg8GBDyqxEcAZSkpYUgh-KQg09ymjOj__zqwhe1BVF7jjqmvZxjA8gu_PsZuBznDdWaFqVnlnEb39fvUzwIWZFQHFKt6BNMZdlzUulZP1UMkISY0u0kRki5yjHA_lCza0Lil7vg1WucZjvWCzeSoNhzxwDsFRrb3gajPWiBkxOsEi=-hRLPD=NrX8jBFtWqMju_n7K5go8d0U-AykDi9gXsa9cl90tqYhb1fcy9nf__sk7QUmq06zRoU8TI9y_5J=BViNgN60D5Ze1gxFwf=WX8A_hClr5ghMZj69hy8uyXoB8GEb=rFF710QiuNWSokjmr_I8yerPTt0XfleT796yAN16K8ooZRTDsxtq9Q4xHms_SsClHLrj3hflH0uwFSNM4uNtGYZbsSLExjl8sXDx=aGl98uH7PfgI=z1ACps9RogHAYeuxrenKpBnExrWlyhd_zmiLgbbROWgr0pM5=pR=RburDiEm5rd8WZrDrzwMCeXlipcgQnAEvnRKlvpuEDirktNSu7H_eZXRGhBYMx4kdPHn=VHGFOe1Joj9Wv3AskCd3zOSwATw6iMPvD6fygzs9Ipgvl9WPL6FgVtgDG-cr-5mc=c9wzALWttz1wFdh4cfVqjJz99cyWKgXGh5KsBZ4WrrsPrfBHuPqZkiSUqnQxKVo6L7Y9FGVAEkbU_gjT=tipssSfn8d3WGWzrOfBwsyfia4C1UxWKQnPwya3A03waxzVmvH5hooGMjNk0CvzZwJUDyDwlp1VoUAycFhUrnyqUqr3oG-8s99l--Rqq'}
plaintext = '4288160000079092'
rsakey = RSA.import_key(public_key)
cipher = PKCS1_OAEP.new(rsakey) response = session.post(url, headers=headers, json=data)
cipher_text = base64.b64encode(cipher.encrypt(plaintext.encode(encoding="utf-8")))
AccountNumberEncrypted = cipher_text.decode("utf-8") print(response.text)
print(len(AccountNumberEncrypted))
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment