Decoding a URL param - base64
Previously, I was able to find out where my Outbrain traffic was coming from because they included a URL param "origSrc=1534129" (which is FoxNews.com) in the referrer like this:
http://paid.outbrain.com/network/redir?key=ba8d39805de79b21e0a2fcffd446bcb9&rdid=821633827&type=RPM_/NA_ch2&in-site=false&idx=0&pc_id=21501924&req_id=5b740ff295227c1753749adc72bbb725&agent=blog_JS_rec&recMode=7&reqType=1&wid=150&adsCats=1708,-1,-1&refPub=296&scp=false&reqIdx=2&fcapElementId=22824&origSrc=1534129&did=714910702&pv_id=78d716e32bec0124bcb424aa2eddaabf&uuid=2c2af39f-d968-4e88-8e88-ab230fcd7b33
They recently encoded their URLs and they now look like this (taken from a module on FoxNews):
http://paid.outbrain.com/network/redir?p=feJ7Nr753ZKUyzw%2BkQlkGkqo5h6KSzmqBURelKOHYrNFhpUzeNFwXTxpvZ9lBtLT%2FgisNu6dS9DPr4g73pQz4w9YK0W5LSzfsnlqPupuJb3Mcq4pJ7X9LIlPVyzR4QOTRGDIeznBTsTvVl9vPhOW9QJOZPzmQpAK7Q5yMiMwwXaPwzL78WZrc%2BC0bpWCIRwHsJSjqcMVcK%2FN6d8scrmnCAPlDwQVXudXKBRynneq02%2FD9Uqx%2F5zL501Asq0%2BTukd4UBkYdAS21EOSP7AkBn2dJl1G5HXtdURXZst%2F%2F%2B0TcQkRoZ98%2BO8qxKH87AX0uw5a2svIsbL9AmGnX3%2BlLVuMYZFTZRt0LbUnFUWuXFSkvT0oDfO93yhU5Kfcw%2BgpclDQe7NSaHu2ylLobiHuldabM%2B5DslhvZRSG7a4KZkYj%2BRAerkozmIuzDhbydgWPItX3pFDtt0e0tgwZ7Gen%2FT2lmA0qr1%2BLLs%2FPwx098SSR58%3D&v=2
http://paid.outbrain.com/network/redir?p=309deACtZtKjR3dLT6Bj9O0z08jGMvbDzb%2Fd8oIFnvZXEP7XkkjGe6ZhdKc0g2SYaXZfed7Xd9%2BGTy4%2B%2F%2BPxhWGXYoj5Acl9Vu7d3UPDnTZyzq9q%2BjzRXMMPnFezyYZ4swDqWJf1lRqOpBJhG%2Fmoge0OSSvdL2TdKpTvkf1Nj05z%2BL%2BthUPKVXZJ5cx%2BpSeUDsi4SfKr1VkY8hd6HWmspnwghK6KDuKwUjtzesbzYmp%2Bh9keRCCKUwciJ6LU2R17Wnj6BVm7onAsV4INFNPI2Q9lOb%2B%2FX4QRvPxlQXiV5anx9%2BEz%2B1rGtDUdN%2Fy9wYn%2FdUggxWvYNeEbkP2c3fBhnOFEbonbMjPKILpuJB6736QDoyoMuA1ajf4ol%2FbcIhr4p0JXnqd3NPgiQY1%2Fr69z5tiNucv5FkU9v0ndUP%2FyN4FLg2dzo2GxednAZemvGtveCwXbIYGaCAEuWRUvleHgjWKBq5oD0c4cXvTrF%2BiYvmg%3D&v=2
http://paid.outbrain.com/network/redir?p=MYWXGHfkM0sqd18Ui%2BFev3GftAAm1Kb6pMI5j7F0ajSSxG9%2F9iYBjIOsnuqKi9vYijInoR1WxEhljCj8x13h0DIq7tN2dbhbJ9XnZUatWQgEifNWdRSD8ctvH2Y7CLvFnn8jLVovdJLyEVhAgbbOp55WiaEBPfKySR6pMUSPxlViQKLqGvpWRihGnl0STT1dpZqXSdYPixEg69pYB1Ug25u%2BQWrqZh9nI2mQe%2FfClHU6RO8DjiJfBLybujkSCa3aZcB9BeQPgsD6ZF824ymK%2FuyhF7TbR4XUsj7VzM06UjHxwOf4yyG%2FKnRja%2Bn7TOctwZlQJS4NM1Hcd9VEUOjZXVstFrUL6eIxw7nyVSfEkHxOr%2FRZFbbuigxQTei%2BhOExXozKbdfVjZlM8DyQEC0vSOk65NZoZH6sqDdS82Kzq3tCo7StJfv7vJqX9M3jHCizFu8H7IrLZ8%2FI3DhNYDWWY5hv1ECQXjrBdBDJvdQmP8c%3D&v=2
http://paid.outbrain.com/network/redir?p=6iwOm%2B%2BX4zGj74w0QWgyt4ix6H27RiHYp1gQ4qWa3mx90Q2MqZOZTjjiwepqeJpnA9aSwVgJpr9hB0Cy5CM9bBxCVmS%2FGOLl%2BtEc%2B567MNWivjSXAU2KTbV39EqwhOTfCcQAvqtShB%2BM2GtsUyxT63Wt16Q%2B1pMOH17JscejlYAcOjz%2BIkZDQXsKQi3%2FG%2FBzQDTl1suimn3DA63sE230KwmoZPLrgQuSaQENsq9bmcOFHq%2BOGqMLFg9AUKFeXyObjktfdmvPvBCCXH3zNZcYxMAv%2FHCHNGBEzvDHo58h4%2BG15ME%2FriHgPoVbZAVGzpKGspCwPJ8FKOHCjEw%2BZ7PDL%2BeO%2F3MYpqNH5VWVhYna2Tv0zIHrWpRtFSrxqM%2B73DR7gGOogNF32zayMdqHPbUOR2AAkOaW2gLZIn6Z%2F%2F8yh7ms77fgxdeQr8N0IaLOkxhE93UiK9dP216xOaUc64AKcPm7s2qGlW7b3QyG33CBmzY%3D&v=2
Somewhere in those four URLs is a param that identifies the site as FoxNews.com or an origSrc id.
Does anyone know how to find out what the origSrc is in the new URLs?
The site paid.outbrain.com is getting paid by the number of times that a link is clicked. It is absolutely in their best interest to make it such that it is not possible to determine what the original source is for the link without actually clicking on it and thus getting the redirect from their servers. If they have done their job correctly, then there should not be a way to determine what the data encoded in the parameters to the URL actually contain and certainly not the original source (without a lot of time effort, money, and much more data collected). They want people to have to click the link, not be able to decode the link and bypass recording the click.
However, we can do some analysis to see what is up. One thing that would help in doing this type of analysis is to also have links which are known to not contain the desired information.
There are two parameters being passed: p and v. v=2 is identical for each; has a value that appears to contain very limited information, probably just indicating to the server that it is a new style link. It can be ignored.
Given the length of the p parameter, it is likely that there is data encoded. An alternate implementation would have been for them to just send an index into data stored on their servers. This would prevent the person receiving the link from having any information as to what the link might be. However, it does not appear they did that.
The p parameters for the links are:
feJ7Nr753ZKUyzw%2BkQlkGkqo5h6KSzmqBURelKOHYrNFhpUzeNFwXTxpvZ9lBtLT%2FgisNu6dS9DPr4g73pQz4w9YK0W5LSzfsnlqPupuJb3Mcq4pJ7X9LIlPVyzR4QOTRGDIeznBTsTvVl9vPhOW9QJOZPzmQpAK7Q5yMiMwwXaPwzL78WZrc%2BC0bpWCIRwHsJSjqcMVcK%2FN6d8scrmnCAPlDwQVXudXKBRynneq02%2FD9Uqx%2F5zL501Asq0%2BTukd4UBkYdAS21EOSP7AkBn2dJl1G5HXtdURXZst%2F%2F%2B0TcQkRoZ98%2BO8qxKH87AX0uw5a2svIsbL9AmGnX3%2BlLVuMYZFTZRt0LbUnFUWuXFSkvT0oDfO93yhU5Kfcw%2BgpclDQe7NSaHu2ylLobiHuldabM%2B5DslhvZRSG7a4KZkYj%2BRAerkozmIuzDhbydgWPItX3pFDtt0e0tgwZ7Gen%2FT2lmA0qr1%2BLLs%2FPwx098SSR58%3D
309deACtZtKjR3dLT6Bj9O0z08jGMvbDzb%2Fd8oIFnvZXEP7XkkjGe6ZhdKc0g2SYaXZfed7Xd9%2BGTy4%2B%2F%2BPxhWGXYoj5Acl9Vu7d3UPDnTZyzq9q%2BjzRXMMPnFezyYZ4swDqWJf1lRqOpBJhG%2Fmoge0OSSvdL2TdKpTvkf1Nj05z%2BL%2BthUPKVXZJ5cx%2BpSeUDsi4SfKr1VkY8hd6HWmspnwghK6KDuKwUjtzesbzYmp%2Bh9keRCCKUwciJ6LU2R17Wnj6BVm7onAsV4INFNPI2Q9lOb%2B%2FX4QRvPxlQXiV5anx9%2BEz%2B1rGtDUdN%2Fy9wYn%2FdUggxWvYNeEbkP2c3fBhnOFEbonbMjPKILpuJB6736QDoyoMuA1ajf4ol%2FbcIhr4p0JXnqd3NPgiQY1%2Fr69z5tiNucv5FkU9v0ndUP%2FyN4FLg2dzo2GxednAZemvGtveCwXbIYGaCAEuWRUvleHgjWKBq5oD0c4cXvTrF%2BiYvmg%3D
MYWXGHfkM0sqd18Ui%2BFev3GftAAm1Kb6pMI5j7F0ajSSxG9%2F9iYBjIOsnuqKi9vYijInoR1WxEhljCj8x13h0DIq7tN2dbhbJ9XnZUatWQgEifNWdRSD8ctvH2Y7CLvFnn8jLVovdJLyEVhAgbbOp55WiaEBPfKySR6pMUSPxlViQKLqGvpWRihGnl0STT1dpZqXSdYPixEg69pYB1Ug25u%2BQWrqZh9nI2mQe%2FfClHU6RO8DjiJfBLybujkSCa3aZcB9BeQPgsD6ZF824ymK%2FuyhF7TbR4XUsj7VzM06UjHxwOf4yyG%2FKnRja%2Bn7TOctwZlQJS4NM1Hcd9VEUOjZXVstFrUL6eIxw7nyVSfEkHxOr%2FRZFbbuigxQTei%2BhOExXozKbdfVjZlM8DyQEC0vSOk65NZoZH6sqDdS82Kzq3tCo7StJfv7vJqX9M3jHCizFu8H7IrLZ8%2FI3DhNYDWWY5hv1ECQXjrBdBDJvdQmP8c%3D
6iwOm%2B%2BX4zGj74w0QWgyt4ix6H27RiHYp1gQ4qWa3mx90Q2MqZOZTjjiwepqeJpnA9aSwVgJpr9hB0Cy5CM9bBxCVmS%2FGOLl%2BtEc%2B567MNWivjSXAU2KTbV39EqwhOTfCcQAvqtShB%2BM2GtsUyxT63Wt16Q%2B1pMOH17JscejlYAcOjz%2BIkZDQXsKQi3%2FG%2FBzQDTl1suimn3DA63sE230KwmoZPLrgQuSaQENsq9bmcOFHq%2BOGqMLFg9AUKFeXyObjktfdmvPvBCCXH3zNZcYxMAv%2FHCHNGBEzvDHo58h4%2BG15ME%2FriHgPoVbZAVGzpKGspCwPJ8FKOHCjEw%2BZ7PDL%2BeO%2F3MYpqNH5VWVhYna2Tv0zIHrWpRtFSrxqM%2B73DR7gGOogNF32zayMdqHPbUOR2AAkOaW2gLZIn6Z%2F%2F8yh7ms77fgxdeQr8N0IaLOkxhE93UiK9dP216xOaUc64AKcPm7s2qGlW7b3QyG33CBmzY%3D
What jumps out immediately is the % characters. We can hypothesize that the % indicates separating a field. For simple analysis, we are then interested in those fields that are identical across the different links, so we count the number of occurrences:
Count Field
4 %3D
4 %2F
3 %2B
1 feJ7Nr753ZKUyzw
1 MYWXGHfkM0sqd18Ui
1 6iwOm
1 309deACtZtKjR3dLT6Bj9O0z08jGMvbDzb
1 %2FyN4FLg2dzo2GxednAZemvGtveCwXbIYGaCAEuWRUvleHgjWKBq5oD0c4cXvTrF
1 %2Fy9wYn
1 %2FuyhF7TbR4XUsj7VzM06UjHxwOf4yyG
1 %2FriHgPoVbZAVGzpKGspCwPJ8FKOHCjEw
1 %2Fr69z5tiNucv5FkU9v0ndUP
1 %2Fmoge0OSSvdL2TdKpTvkf1Nj05z
1 %2FgisNu6dS9DPr4g73pQz4w9YK0W5LSzfsnlqPupuJb3Mcq4pJ7X9LIlPVyzR4QOTRGDIeznBTsTvVl9vPhOW9QJOZPzmQpAK7Q5yMiMwwXaPwzL78WZrc
1 %2FfClHU6RO8DjiJfBLybujkSCa3aZcB9BeQPgsD6ZF824ymK
1 %2FdUggxWvYNeEbkP2c3fBhnOFEbonbMjPKILpuJB6736QDoyoMuA1ajf4ol
1 %2Fd8oIFnvZXEP7XkkjGe6ZhdKc0g2SYaXZfed7Xd9
1 %2FbcIhr4p0JXnqd3NPgiQY1
1 %2FX4QRvPxlQXiV5anx9
1 %2FT2lmA0qr1
1 %2FRZFbbuigxQTei
1 %2FPwx098SSR58
1 %2FN6d8scrmnCAPlDwQVXudXKBRynneq02
1 %2FKnRja
1 %2FI3DhNYDWWY5hv1ECQXjrBdBDJvdQmP8c
1 %2FHCHNGBEzvDHo58h4
1 %2FGOLl
1 %2FG
1 %2FD9Uqx
1 %2FBzQDTl1suimn3DA63sE230KwmoZPLrgQuSaQENsq9bmcOFHq
1 %2F9iYBjIOsnuqKi9vYijInoR1WxEhljCj8x13h0DIq7tN2dbhbJ9XnZUatWQgEifNWdRSD8ctvH2Y7CLvFnn8jLVovdJLyEVhAgbbOp55WiaEBPfKySR6pMUSPxlViQKLqGvpWRihGnl0STT1dpZqXSdYPixEg69pYB1Ug25u
1 %2F8yh7ms77fgxdeQr8N0IaLOkxhE93UiK9dP216xOaUc64AKcPm7s2qGlW7b3QyG33CBmzY
1 %2F5zL501Asq0
1 %2F3MYpqNH5VWVhYna2Tv0zIHrWpRtFSrxqM
1 %2BthUPKVXZJ5cx
1 %2BtEc
1 %2BpSeUDsi4SfKr1VkY8hd6HWmspnwghK6KDuKwUjtzesbzYmp
1 %2Bn7TOctwZlQJS4NM1Hcd9VEUOjZXVstFrUL6eIxw7nyVSfEkHxOr
1 %2BlLVuMYZFTZRt0LbUnFUWuXFSkvT0oDfO93yhU5Kfcw
1 %2BkQlkGkqo5h6KSzmqBURelKOHYrNFhpUzeNFwXTxpvZ9lBtLT
1 %2BjzRXMMPnFezyYZ4swDqWJf1lRqOpBJhG
1 %2BiYvmg
1 %2BhOExXozKbdfVjZlM8DyQEC0vSOk65NZoZH6sqDdS82Kzq3tCo7StJfv7vJqX9M3jHCizFu8H7IrLZ8
1 %2Bh9keRCCKUwciJ6LU2R17Wnj6BVm7onAsV4INFNPI2Q9lOb
1 %2BgpclDQe7NSaHu2ylLobiHuldabM
1 %2BeO
1 %2BZ7PDL
1 %2BX4zGj74w0QWgyt4ix6H27RiHYp1gQ4qWa3mx90Q2MqZOZTjjiwepqeJpnA9aSwVgJpr9hB0Cy5CM9bBxCVmS
1 %2BTukd4UBkYdAS21EOSP7AkBn2dJl1G5HXtdURXZst
1 %2BRAerkozmIuzDhbydgWPItX3pFDtt0e0tgwZ7Gen
1 %2BQWrqZh9nI2mQe
1 %2BPxhWGXYoj5Acl9Vu7d3UPDnTZyzq9q
1 %2BOGqMLFg9AUKFeXyObjktfdmvPvBCCXH3zNZcYxMAv
1 %2BO8qxKH87AX0uw5a2svIsbL9AmGnX3
1 %2BM2GtsUyxT63Wt16Q
1 %2BLLs
1 %2BL
1 %2BIkZDQXsKQi3
1 %2BGTy4
1 %2BG15ME
1 %2BFev3GftAAm1Kb6pMI5j7F0ajSSxG9
1 %2BEz
1 %2BC0bpWCIRwHsJSjqcMVcK
1 %2B73DR7gGOogNF32zayMdqHPbUOR2AAkOaW2gLZIn6Z
1 %2B5DslhvZRSG7a4KZkYj
1 %2B567MNWivjSXAU2KTbV39EqwhOTfCcQAvqtShB
1 %2B1rGtDUdN
1 %2B1pMOH17JscejlYAcOjz
1 %2B0TcQkRoZ98
We see that there are no % fields which are duplicated. From this, we can conclude that either the hypothesis that the % character was a field separator was wrong, that there were no fields containing duplicate data, or the method for encoding the data does not produce the same output in each URL for any single field that is identical. There are multiple ways for this to be the case. There could easily be a seed value encoded in the string. Such a seed value could just be an index into a list of actual decode keys which exist only on their server.
So, with the assumption that the % marks fields tossed out because it does not demonstrate that there are any repeating fields, we look at it to see what else it might be.
The output above makes it clear that there are only 3 different strings of the format %[0-9A-F][0-9A-F]. We known that for transmitting data through URLs it is required to encode many characters in exactly that format. Converting the codes used of %2F=/, %2B=+, and of course the %3D==mentioned in comments. We see:
feJ7Nr753ZKUyzw+kQlkGkqo5h6KSzmqBURelKOHYrNFhpUzeNFwXTxpvZ9lBtLT/gisNu6dS9DPr4g73pQz4w9YK0W5LSzfsnlqPupuJb3Mcq4pJ7X9LIlPVyzR4QOTRGDIeznBTsTvVl9vPhOW9QJOZPzmQpAK7Q5yMiMwwXaPwzL78WZrc+C0bpWCIRwHsJSjqcMVcK/N6d8scrmnCAPlDwQVXudXKBRynneq02/D9Uqx/5zL501Asq0+Tukd4UBkYdAS21EOSP7AkBn2dJl1G5HXtdURXZst//+0TcQkRoZ98+O8qxKH87AX0uw5a2svIsbL9AmGnX3+lLVuMYZFTZRt0LbUnFUWuXFSkvT0oDfO93yhU5Kfcw+gpclDQe7NSaHu2ylLobiHuldabM+5DslhvZRSG7a4KZkYj+RAerkozmIuzDhbydgWPItX3pFDtt0e0tgwZ7Gen/T2lmA0qr1+LLs/Pwx098SSR58=
309deACtZtKjR3dLT6Bj9O0z08jGMvbDzb/d8oIFnvZXEP7XkkjGe6ZhdKc0g2SYaXZfed7Xd9+GTy4+/+PxhWGXYoj5Acl9Vu7d3UPDnTZyzq9q+jzRXMMPnFezyYZ4swDqWJf1lRqOpBJhG/moge0OSSvdL2TdKpTvkf1Nj05z+L+thUPKVXZJ5cx+pSeUDsi4SfKr1VkY8hd6HWmspnwghK6KDuKwUjtzesbzYmp+h9keRCCKUwciJ6LU2R17Wnj6BVm7onAsV4INFNPI2Q9lOb+/X4QRvPxlQXiV5anx9+Ez+1rGtDUdN/y9wYn/dUggxWvYNeEbkP2c3fBhnOFEbonbMjPKILpuJB6736QDoyoMuA1ajf4ol/bcIhr4p0JXnqd3NPgiQY1/r69z5tiNucv5FkU9v0ndUP/yN4FLg2dzo2GxednAZemvGtveCwXbIYGaCAEuWRUvleHgjWKBq5oD0c4cXvTrF+iYvmg=
MYWXGHfkM0sqd18Ui+Fev3GftAAm1Kb6pMI5j7F0ajSSxG9/9iYBjIOsnuqKi9vYijInoR1WxEhljCj8x13h0DIq7tN2dbhbJ9XnZUatWQgEifNWdRSD8ctvH2Y7CLvFnn8jLVovdJLyEVhAgbbOp55WiaEBPfKySR6pMUSPxlViQKLqGvpWRihGnl0STT1dpZqXSdYPixEg69pYB1Ug25u+QWrqZh9nI2mQe/fClHU6RO8DjiJfBLybujkSCa3aZcB9BeQPgsD6ZF824ymK/uyhF7TbR4XUsj7VzM06UjHxwOf4yyG/KnRja+n7TOctwZlQJS4NM1Hcd9VEUOjZXVstFrUL6eIxw7nyVSfEkHxOr/RZFbbuigxQTei+hOExXozKbdfVjZlM8DyQEC0vSOk65NZoZH6sqDdS82Kzq3tCo7StJfv7vJqX9M3jHCizFu8H7IrLZ8/I3DhNYDWWY5hv1ECQXjrBdBDJvdQmP8c=
6iwOm++X4zGj74w0QWgyt4ix6H27RiHYp1gQ4qWa3mx90Q2MqZOZTjjiwepqeJpnA9aSwVgJpr9hB0Cy5CM9bBxCVmS/GOLl+tEc+567MNWivjSXAU2KTbV39EqwhOTfCcQAvqtShB+M2GtsUyxT63Wt16Q+1pMOH17JscejlYAcOjz+IkZDQXsKQi3/G/BzQDTl1suimn3DA63sE230KwmoZPLrgQuSaQENsq9bmcOFHq+OGqMLFg9AUKFeXyObjktfdmvPvBCCXH3zNZcYxMAv/HCHNGBEzvDHo58h4+G15ME/riHgPoVbZAVGzpKGspCwPJ8FKOHCjEw+Z7PDL+eO/3MYpqNH5VWVhYna2Tv0zIHrWpRtFSrxqM+73DR7gGOogNF32zayMdqHPbUOR2AAkOaW2gLZIn6Z//8yh7ms77fgxdeQr8N0IaLOkxhE93UiK9dP216xOaUc64AKcPm7s2qGlW7b3QyG33CBmzY=
From this we recognize that they may be encoded using base64. In fact they all decode into 368 bytes of data. Binary files are commonly separated into fields of fixed length. If the data contained a simple number map indicating that it points to a particular website, we would expect to find an area within all four 368 byte long sequence which is identical across all four. So, we break out the multi-file data comparator. It produces:
0x000 7d df 31 ea 1 multi-diff
0x001 e2 4f 85 2c O multi-diff
0x002 7b 5d 97 0e ] multi-diff
0x003 36 78 18 9b 6 x multi-diff
0x004 be 00 77 ef w multi-diff
0x005 f9 ad e4 97 multi-diff
0x006 dd 66 33 e3 f 3 multi-diff
0x007 92 d2 4b 31 K 1 multi-diff
0x008 94 a3 2a a3 multi-diff
0x009 cb 47 77 ef G w multi-diff
0x00a 3c 77 5f 8c < w _ multi-diff
0x00b 3e 4b 14 34 > K 4 multi-diff
0x00c 91 4f 8b 41 O A multi-diff
0x00d 09 a0 e1 68 h multi-diff
0x00e 64 63 5e 32 d c ^ 2 multi-diff
0x00f 1a f4 bf b7 multi-diff
0x010 4a ed 71 88 J q multi-diff
0x011 a8 33 9f b1 3 multi-diff
0x012 e6 d3 b4 e8 multi-diff
0x013 1e c8 00 7d multi-diff
0x014 8a c6 26 bb multi-diff
0x015 4b 32 d4 46 K 2 F multi-diff
0x016 39 f6 a6 21 9 multi-diff
0x017 aa c3 fa d8 multi-diff
0x018 05 cd a4 a7 multi-diff
0x019 44 bf c2 58 D X multi-diff
0x01a 5e dd 39 10 ^ 9 multi-diff
0x01b 94 f2 8f e2 multi-diff
0x01c a3 82 b1 a5 multi-diff
0x01d 87 05 74 9a t multi-diff
0x01e 62 9e 6a de b j multi-diff
0x01f b3 f6 34 6c 4 l multi-diff
0x020 45 57 92 7d E W multi-diff
0x021 86 10 c4 d1 multi-diff
0x022 95 fe 6f 0d o multi-diff
0x023 33 d7 7f 8c 3 multi-diff
0x024 78 92 f6 a9 x multi-diff
0x025 d1 48 26 93 H multi-diff
0x026 70 c6 01 99 p multi-diff
0x027 5d 7b 8c 4e ] N multi-diff
0x028 3c a6 83 38 < 8 multi-diff
0x029 69 61 ac e2 i a multi-diff
0x02a bd 74 9e c1 t multi-diff
0x02b 9f a7 ea ea multi-diff
0x02c 65 34 8a 6a e 4 j multi-diff
0x02d 06 83 8b 78 x multi-diff
0x02e d2 64 db 9a d multi-diff
0x02f d3 98 d8 67 g multi-diff
0x030 fe 69 8a 03 i multi-diff
0x031 08 76 32 d6 v 2 multi-diff
0x032 ac 5f 27 92 _ multi-diff
0x033 36 79 a1 c1 6 y multi-diff
0x034 ee de 1d 58 X multi-diff
0x035 9d d7 56 09 V multi-diff
0x036 4b 77 c4 a6 K w multi-diff
0x037 d0 df 48 bf H multi-diff
0x038 cf 86 65 61 e a multi-diff
0x039 af 4f 8c 07 O multi-diff
0x03a 88 2e 28 40 # multi-diff
0x03b 3b 3e fc b2 ; > multi-diff
0x03c de ff c7 e4 multi-diff
0x03d 94 e3 5d 23 ] multi-diff
0x03e 33 f1 e1 3d 3 = multi-diff
0x03f e3 85 d0 6c l multi-diff
0x040 0f 61 32 1c a 2 multi-diff
0x041 58 97 2a 42 X B multi-diff
0x042 2b 62 ee 56 b V multi-diff
0x043 45 88 d3 64 E d multi-diff
0x044 b9 f9 76 bf v multi-diff
0x045 2d 01 75 18 u multi-diff
0x046 2c c9 b8 e2 multi-diff
0x047 df 7d 5b e5 [ multi-diff
0x048 b2 56 27 fa V multi-diff
0x049 79 ee d5 d1 y multi-diff
0x04a 6a dd e7 1c j multi-diff
0x04b 3e dd 65 fb > e multi-diff
0x04c ea 43 46 9e C F multi-diff
0x04d 6e c3 ad bb n multi-diff
0x04e 25 9d 59 30 Y 0 multi-diff
0x04f bd 36 08 d5 6 multi-diff
0x050 cc 72 04 a2 r multi-diff
0x051 72 ce 89 be r multi-diff
0x052 ae af f3 34 4 multi-diff
0x053 29 6a 56 97 j V multi-diff
0x054 27 fa 75 01 u multi-diff
0x055 b5 3c 14 4d < M multi-diff
0x056 fd d1 83 8a multi-diff
0x057 2c 5c f1 4d \ M multi-diff
0x058 89 c3 cb b5 multi-diff
0x059 4f 0f 6f 77 O o w multi-diff
0x05a 57 9c 1f f4 W multi-diff
0x05b 2c 57 66 4a W f J multi-diff
0x05c d1 b3 3b b0 ; multi-diff
0x05d e1 c9 08 84 multi-diff
0x05e 03 86 bb e4 multi-diff
0x05f 93 78 c5 df x multi-diff
0x060 44 b3 9e 09 D multi-diff
0x061 60 00 7f c4 ` multi-diff
0x062 c8 ea 23 00 multi-diff
0x063 7b 58 2d be X multi-diff
0x064 39 97 5a ab 9 Z multi-diff
0x065 c1 f5 2f 52 R multi-diff
0x066 4e 95 74 84 N t multi-diff
0x067 c4 1a 92 1f multi-diff
0x068 ef 8e f2 8c multi-diff
0x069 56 a4 11 d8 V multi-diff
0x06a 5f 12 58 6b _ X k multi-diff
0x06b 6f 61 40 6c o a # l multi-diff
0x06c 3e 1b 81 53 > S multi-diff
0x06d 13 f9 b6 2c multi-diff
0x06e 96 a8 ce 53 S multi-diff
0x06f f5 81 a7 eb multi-diff
0x070 02 ed 9e 75 u multi-diff
0x071 4e 0e 56 ad N V multi-diff
0x072 64 49 89 d7 d I multi-diff
0x073 fc 2b a1 a4 multi-diff
0x074 e6 dd 01 3e > multi-diff
0x075 42 2f 3d d6 B = multi-diff
0x076 90 64 f2 93 d multi-diff
0x077 0a dd b2 0e multi-diff
0x078 ed 2a 49 1f I multi-diff
0x079 0e 94 1e 5e ^ multi-diff
0x07a 72 ef a9 c9 r multi-diff
0x07b 32 91 31 b1 2 1 multi-diff
0x07c 23 fd 44 c7 D multi-diff
0x07d 30 4d 8f a3 0 M multi-diff
0x07e c1 8f c6 95 multi-diff
0x07f 76 4e 55 80 v N U multi-diff
0x080 8f 73 62 1c s b multi-diff
0x081 c3 f8 40 3a # : multi-diff
0x082 32 bf a2 3c 2 < multi-diff
0x083 fb ad ea fe multi-diff
0x084 f1 85 1a 22 multi-diff
0x085 66 43 fa 46 f C F multi-diff
0x086 6b ca 56 43 k V C multi-diff
0x087 73 55 46 41 s U F A multi-diff
0x088 e0 76 28 7b v multi-diff
0x089 b4 49 46 0a I F multi-diff
0x08a 6e e5 9e 42 n B multi-diff
0x08b 95 cc 5d 2d ] multi-diff
0x08c 82 7e 12 ff multi-diff
0x08d 21 a5 4d 1b M multi-diff
0x08e 1c 27 3d f0 = multi-diff
0x08f 07 94 5d 73 ] s multi-diff
0x090 b0 0e a5 40 # multi-diff
0x091 94 c8 9a 34 4 multi-diff
0x092 a3 b8 97 e5 multi-diff
0x093 a9 49 49 d6 I I multi-diff
0x094 c3 f2 d6 cb multi-diff
0x095 15 ab 0f a2 multi-diff
0x096 70 d5 8b 9a p multi-diff
0x097 af 59 11 7d Y multi-diff
0x098 cd 18 20 c3 multi-diff
0x099 e9 f2 eb 03 multi-diff
0x09a df 17 da ad multi-diff
0x09b 2c 7a 58 ec z X multi-diff
0x09c 72 1d 07 13 r multi-diff
0x09d b9 69 55 6d i U m multi-diff
0x09e a7 ac 20 f4 multi-diff
0x09f 08 a6 db 2b multi-diff
0x0a0 03 7c 9b 09 multi-diff
0x0a1 e5 20 be a8 multi-diff
0x0a2 0f 84 41 64 A d multi-diff
0x0a3 04 ae 6a f2 j multi-diff
0x0a4 15 8a ea eb multi-diff
0x0a5 5e 0e 66 81 ^ f multi-diff
0x0a6 e7 e2 1f 0b multi-diff
0x0a7 57 b0 67 92 W g multi-diff
0x0a8 28 52 23 69 R i multi-diff
0x0a9 14 3b 69 01 ; i multi-diff
0x0aa 72 73 90 0d r s multi-diff
0x0ab 9e 7a 7b b2 z multi-diff
0x0ac 77 c6 f7 af w multi-diff
0x0ad aa f3 c2 5b [ multi-diff
0x0ae d3 62 94 99 b multi-diff
0x0af 6f 6a 75 c3 o j u multi-diff
0x0b0 c3 7e 3a 85 : multi-diff
0x0b1 f5 87 44 1e D multi-diff
0x0b2 4a d9 ef af J multi-diff
0x0b3 b1 1e 03 8e multi-diff
0x0b4 ff 44 8e 1a D multi-diff
0x0b5 9c 20 22 a3 multi-diff
0x0b6 cb 8a 5f 0b _ multi-diff
0x0b7 e7 53 04 16 S multi-diff
0x0b8 4d 07 bc 0f M multi-diff
0x0b9 40 22 9b 40 # # multi-diff
0x0ba b2 27 ba 50 P multi-diff
0x0bb ad a2 39 a1 9 multi-diff
0x0bc 3e d4 12 5e > ^ multi-diff
0x0bd 4e d9 09 5f N _ multi-diff
0x0be e9 1d ad 23 multi-diff
0x0bf 1d 7b da 9b multi-diff
0x0c0 e1 5a 65 8e Z e multi-diff
0x0c1 40 78 c0 4b # x K multi-diff
0x0c2 64 fa 7d 5f d _ multi-diff
0x0c3 61 05 05 76 a v multi-diff
0x0c4 d0 59 e4 6b Y k multi-diff
0x0c5 12 bb 0f cf multi-diff
0x0c6 db a2 82 bc multi-diff
0x0c7 51 70 c0 10 Q p multi-diff
0x0c8 0e 2c fa 82 multi-diff
0x0c9 48 57 64 5c H W d \ multi-diff
0x0ca fe 82 5f 7d _ multi-diff
0x0cb c0 0d 36 f3 6 multi-diff
0x0cc 90 14 e3 35 5 multi-diff
0x0cd 19 d3 29 97 multi-diff
0x0ce f6 c8 8a 18 multi-diff
0x0cf 74 d9 fe c4 t multi-diff
0x0d0 99 0f ec c0 multi-diff
0x0d1 75 65 a1 2f u e multi-diff
0x0d2 1b 39 17 fc 9 multi-diff
0x0d3 91 bf b4 70 p multi-diff
0x0d4 d7 bf db 87 multi-diff
0x0d5 b5 5f 47 34 _ G 4 multi-diff
0x0d6 d5 84 85 60 ` multi-diff
0x0d7 11 11 d4 44 D multi-diff
0x0d8 5d bc b2 ce ] multi-diff
0x0d9 9b fc 3e f0 > multi-diff
0x0da 2d 65 d5 c7 e multi-diff
0x0db ff 41 cc a3 A multi-diff
0x0dc ff 78 cd 9f x multi-diff
0x0dd b4 95 3a 21 : multi-diff
0x0de 4d e5 52 e3 M R multi-diff
0x0df c4 a9 31 e1 1 multi-diff
0x0e0 24 f1 f1 b5 multi-diff
0x0e1 46 f7 c0 e4 F multi-diff
0x0e2 86 e1 e7 c1 multi-diff
0x0e3 7d 33 f8 3f 3 ? multi-diff
0x0e4 f3 fb cb ae multi-diff
0x0e5 e3 5a 21 21 Z multi-diff
0x0e6 bc c6 bf e0 multi-diff
0x0e7 ab b4 2a 3e > multi-diff
0x0e8 12 35 74 85 5 t multi-diff
0x0e9 87 1d 63 5b c [ multi-diff
0x0ea f3 37 6b 64 7 k d multi-diff
0x0eb b0 fc e9 05 multi-diff
0x0ec 17 bd fb 46 F multi-diff
0x0ed d2 c1 4c ce L multi-diff
0x0ee ec 89 e7 92 multi-diff
0x0ef 39 ff 2d 86 9 multi-diff
0x0f0 6b 75 c1 b2 k u multi-diff
0x0f1 6b 48 99 90 k H multi-diff
0x0f2 2f 20 50 b0 P multi-diff
0x0f3 22 c5 25 3c < multi-diff
0x0f4 c6 6b 2e 9f k multi-diff
0x0f5 cb d8 0d 05 multi-diff
0x0f6 f4 35 33 28 5 3 multi-diff
0x0f7 09 e1 51 e1 Q multi-diff
0x0f8 86 1b dc c2 multi-diff
0x0f9 9d 90 77 8c w multi-diff
0x0fa 7d fd d5 4c L multi-diff
0x0fb fe 9c 44 3e D > multi-diff
0x0fc 94 dd 50 67 P g multi-diff
0x0fd b5 f0 e8 b3 multi-diff
0x0fe 6e 61 d9 c3 n a multi-diff
0x0ff 31 9c 5d 2f 1 ] multi-diff
0x100 86 e1 5b e7 [ multi-diff
0x101 45 44 2d 8e E D multi-diff
0x102 4d 6e 16 ff M n multi-diff
0x103 94 89 b5 73 s multi-diff
0x104 6d db 0b 18 m multi-diff
0x105 d0 32 e9 a6 2 multi-diff
0x106 b6 33 e2 a3 3 multi-diff
0x107 d4 ca 31 47 1 G multi-diff
0x108 9c 20 c3 e5 multi-diff
0x109 55 ba b9 55 U U multi-diff
0x10a 16 6e f2 95 n multi-diff
0x10b b9 24 55 85 U multi-diff
0x10c 71 1e 27 89 q multi-diff
0x10d 52 bb c4 da R multi-diff
0x10e 92 df 90 d9 multi-diff
0x10f f4 a4 7c 3b ; multi-diff
0x110 f4 03 4e f4 N multi-diff
0x111 a0 a3 af cc multi-diff
0x112 37 2a f4 81 7 multi-diff
0x113 ce 0c 59 eb Y multi-diff
0x114 f7 b8 15 5a Z multi-diff
0x115 7c 0d b6 94 multi-diff
0x116 a1 5a ee 6d Z m multi-diff
0x117 53 8d 8a 15 S multi-diff
0x118 92 fe 0c 2a multi-diff
0x119 9f 28 50 f1 P multi-diff
0x11a 73 97 4d a8 s M multi-diff
0x11b 0f f6 e8 cf multi-diff
0x11c a0 dc be bb multi-diff
0x11d a5 22 84 dc multi-diff
0x11e c9 1a e1 34 4 multi-diff
0x11f 43 f8 31 7b C 1 multi-diff
0x120 41 a7 5e 80 A ^ multi-diff
0x121 ee 42 8c 63 B c multi-diff
0x122 cd 57 ca a8 W multi-diff
0x123 49 9e 6d 80 I m multi-diff
0x124 a1 a7 d7 d1 multi-diff
0x125 ee 77 d5 77 w w multi-diff
0x126 db 34 8d db 4 multi-diff
0x127 29 f8 99 36 6 multi-diff
0x128 4b 22 4c b2 K L multi-diff
0x129 a1 41 f0 31 A 1 multi-diff
0x12a b8 8d 3c da < multi-diff
0x12b 87 7f 90 87 multi-diff
0x12c ba af 10 3d = multi-diff
0x12d 57 af 2d b5 W multi-diff
0x12e 5a 73 2f 0e Z s multi-diff
0x12f 6c e6 48 47 l H G multi-diff
0x130 cf d8 e9 60 ` multi-diff
0x131 b9 8d 3a 00 : multi-diff
0x132 0e b9 e4 90 multi-diff
0x133 c9 cb d6 e6 multi-diff
0x134 61 f9 68 96 a h multi-diff
0x135 bd 16 64 da d multi-diff
0x136 94 45 7e 02 E multi-diff
0x137 52 3d ac d9 R = multi-diff
0x138 1b bf a8 22 multi-diff
0x139 b6 49 37 7e I 7 multi-diff
0x13a b8 dd 52 99 R multi-diff
0x13b 29 50 f3 ff P multi-diff
0x13c 99 ff 62 ff b multi-diff
0x13d 18 f2 b3 32 2 multi-diff
0x13e 8f 37 ab 87 7 multi-diff
0x13f e4 81 7b b9 multi-diff
0x140 40 4b 42 ac # K B multi-diff
0x141 7a 83 a3 ef z multi-diff
0x142 b9 67 b4 b7 g multi-diff
0x143 28 73 ad e0 s multi-diff
0x144 ce a3 25 c5 multi-diff
0x145 62 61 fb d7 b a multi-diff
0x146 2e b1 fb 90 multi-diff
0x147 cc 79 bc af y multi-diff
0x148 38 d9 9a c3 8 multi-diff
0x149 5b c0 97 74 [ t multi-diff
0x14a c9 65 f4 21 e multi-diff
0x14b d8 e9 cd a2 multi-diff
0x14c 16 af e3 ce multi-diff
0x14d 3c 1a 1c 93 < multi-diff
0x14e 8b db 28 18 multi-diff
0x14f 57 de b3 44 W D multi-diff
0x150 de 0b 16 f7 multi-diff
0x151 91 05 ef 75 u multi-diff
0x152 43 db 07 22 C multi-diff
0x153 b6 21 ec 2b multi-diff
0x154 dd 81 8a d7 multi-diff
0x155 1e 9a cb 4f O multi-diff
0x156 d2 08 67 db g multi-diff
0x157 d8 01 cf 5e ^ multi-diff
0x158 30 2e c8 b1 0 multi-diff
0x159 67 59 dc 39 g Y 9 multi-diff
0x15a b1 15 38 a5 8 multi-diff
0x15b 9e 2f 4d 1c M multi-diff
0x15c 9f 95 60 eb ` multi-diff
0x15d f4 e1 35 80 5 multi-diff
0x15e f6 e0 96 0a multi-diff
0x15f 96 8d 63 70 c p multi-diff
0x160 60 62 98 f9 ` b multi-diff
0x161 34 81 6f bb 4 o multi-diff
0x162 aa ab d4 b3 multi-diff
0x163 bd 9a 40 6a # j multi-diff
0x164 7e 03 90 86 multi-diff
0x165 2c d1 5e 95 ^ multi-diff
0x166 bb ce 3a 6e : n multi-diff
0x167 3f 1c c1 db ? multi-diff
0x168 3f 5e 74 dd ? ^ t multi-diff
0x169 0c f4 10 0c multi-diff
0x16a 74 eb c9 86 t multi-diff
0x16b f7 17 bd df multi-diff
0x16c c4 e8 d4 70 p multi-diff
0x16d 92 98 26 81 multi-diff
0x16e 47 be 3f 9b G ? multi-diff
0x16f 9f 68 c7 36 h 6 multi-diff
From this we see that there are no byte positions within the data which match across all four pieces of data, assuming it is base64 encoded, which is likely. Thus, it appears that the desired information is not encoded in a binary field of fixed length and position.
So basically, we can either conclude that something was missed in a quick and dirty look at this, or assume that they are doing their job correctly and using an encoding that prevents us from decoding without data held on their servers.
Even if data on their servers was required for decoding, it would be possible to determine that information. However, the techniques for doing so generally require obtaining large quantities of encoded messages so that eventually the data values used for encoding are repeated. From that it could be possible to determine the unknown data needed to decode the messages.
There is quite a bit that I have not covered. The field of cracking encodings/encryption is vast and huge amounts of money is put into it. What is here is just a very simple look at the data.
The point of most encryption is to make it cost more (time, effort, CPU, money) to obtain the raw data than the raw data is worth. It appears that paid.outbrain.com has succeeded in using an encoding/encryption that passes that bar.
Related
Manually Parse Form Data Node.js Express
How can I parse form-data manually at node js? I get chunks of the large file at the server side. And can't merge it, because it will borrow RAM equals to the (file size + file info size). As far as I understand, I can't use the libraries, such as multer/connect-busboy/connect-multiparty etc. In simple terms, now I get following data at server side and can't figure out how to receive, example, a file name, and how to determine, which byte is responsible for the beginning of the file. [1] Get request... [1] data: <Buffer 2d 2d 2d 2d 2d 2d 57 65 62 4b 69 74 46 6f 72 6d 42 6f 75 6e 64 61 72 79 62 66 30 31 63 62 36 38 71 4d 41 4d 36 6d 51 31 0d 0a 43 6f 6e 74 65 6e 74 2d ... 65486 more bytes> [1] data: <Buffer 02 10 00 00 01 ce 00 00 01 ef 00 00 14 e4 00 00 01 de 00 00 01 b2 00 00 01 d8 00 05 f0 1a 00 00 06 70 00 00 00 fa 00 00 00 cf 00 00 0a 3b 00 00 01 4a ... 65486 more bytes> [1] data: <Buffer 31 52 2e 9a 5b df 11 19 5f c2 5d 38 ed db 23 00 06 05 bd 8f 71 e7 6b 03 9d 3a 88 e3 24 10 00 0f a1 10 43 82 ff 67 bd 5d eb 8e 59 fe a9 d3 e6 45 f2 9e ... 65486 more bytes> [1] data: <Buffer 2b 6c cf 18 40 13 d8 fd 09 fa 56 25 e6 6d 6a 57 94 8c a4 9c d1 7b 99 bb 20 c0 21 e7 4a 1f 72 5a a5 3d 8e 84 5d 97 eb 1b 0f db b1 a9 81 f9 db ef 06 36 ... 65486 more bytes> [1] data: <Buffer bb 29 4b 0d 06 1d 69 e1 c7 47 a7 99 c6 e4 c3 48 2e 85 6a b3 57 01 68 09 00 aa 6d b4 7b c7 07 2f 73 c0 c4 6b c4 48 9b 8f 81 64 8e 25 c7 a3 de c3 4f 2a ... 65486 more bytes> [1] data: <Buffer 21 2b 1c dd 57 02 23 f5 43 a1 70 72 b4 8d 8d a8 4a 4b c1 e1 21 75 84 ed 07 00 34 de 5c 8d b0 0a 6f 99 60 28 34 b1 c5 bd a2 3c 3e d5 01 0f 62 57 a8 e8 ... 65486 more bytes> [1] data: <Buffer 2d 96 e3 47 75 ce 25 63 77 26 15 96 b6 43 b9 d2 59 7d 12 c9 64 b2 11 f2 39 29 3e bf 83 1a f3 15 7b 14 ee f3 33 52 5c 39 34 75 06 41 2f e7 11 e8 26 4e ... 65486 more bytes> [1] data: <Buffer 4a 9d 20 c7 a8 55 35 22 26 ff c7 b4 11 d9 6c 4d ce e1 a0 b2 b3 01 37 da 6a ad ae 98 fd 9b 8e 9c 8b 4a 27 8e e3 10 4a dc 80 f2 50 df 88 d9 c8 f9 ef 48 ... 65486 more bytes> [1] data: <Buffer 52 ee b3 96 1f 7c af df fa 3f 9c 9a f7 01 20 7d 3f ea 4e 7e aa 4e d9 57 31 cb b5 f3 09 49 c7 ee 92 83 2e cb 58 d2 ea 1b b0 35 2a 3c 6c 27 75 0c d0 39 ... 65486 more bytes> ...more ...more ...and more After receiving all the above data, I need to get file name and send each chunk of the file(not other info, such as name/mime type) to another client. (It's file sharing web resource) Another solutions? At the same time, I could to send the file separated manually by the chunks of type ArrayBuffer. Each chunk would be encoded additional information, like a "file name", "mime type". But in this case, I should to separate file at client side and get again the above problem the lack of memory. A working solution, but a bit insecure. Send the file name and mime type separately from the main file data. The part of the code responsible for sending data: app.get(`/${senderId}/get`, (request, response) => { let countChunks = 0; // waiting for the sender's request now... app.post(`/${senderId}/send`, (requestSender, responseSender) => { // start sharing... let countChunks = 0; requestSender.on("data", (chunk) => { if (countChunks === 0) { // need get the name from the chunks const fileName = "test_name"; response.setHeader("Content-Disposition", `attachment; filename="${fileName}"`); } countChunks += 1; // need to get the first byte of the file data and start sending starting with it response.write(chunk); }) requestSender.on("end", () => { response.end(); }) }) })
Node.js - node-rsa - Error during encryption. Original error: Error: error:0306E06C:bignum routines:BN_mod_inverse:no inverse
I`m trying to encrypt data via RSA using public key (128-bytes == 1024-bits) received from auth server. Here is a code in Node.js: const NodeRSA = require('node-rsa'); const openData = Buffer.from('example'); const rsaPublicKey = Buffer.from('04 D4 8B 30 F6 1C 89 8B 36 0B 32 BB 64 25 ED C0 76 1D 23 76 A9 49 D4 E7 24 99 24 C4 2E D7 D8 90 96 AF EE 53 3F 65 CE 3F 42 34 AB 56 47 7B 9A DD D5 7C 97 21 6F 37 2D 5A 7A E0 72 08 38 7A 18 85 AA FF C8 14 96 84 BB 65 33 68 11 E5 C4 9F CE 9F 19 1A C7 29 A5 13 80 4B D4 7E 8C 63 81 A1 FE 99 7D 11 35 46 08 93 BF D2 23 28 47 04 B4 B6 2B EF 5D 30 CF 33 CB D5 0E 28 A6 87 63 62 22 1E 46 74'.split(' ').join(''), 'hex'); const key = new NodeRSA(); key.importKey({ n: rsaPublicKey, e: 65537 }, 'components-public'); const encryptedData = key.encrypt(openData); But I`ve got error: /Users/xok/node_modules/node-rsa/src/NodeRSA.js:283 throw Error('Error during encryption. Original error: ' + e); ^ Error: Error during encryption. Original error: Error: error:0306E06C:bignum routines:BN_mod_inverse:no inverse at NodeRSA.module.exports.NodeRSA.$$encryptKey (/Users/xok/node_modules/node-rsa/src/NodeRSA.js:283:19) at NodeRSA.module.exports.NodeRSA.encrypt (/Users/xok/node_modules/node-rsa/src/NodeRSA.js:238:21) If I use another key received from the same auth server, then all is OK: const rsaPublicKey = Buffer.from('41 F5 0E FC 66 16 4D 28 89 E8 50 C9 8A CD C7 64 A7 5B D8 D0 98 4E 29 9F 52 FC 24 6C EA A5 5B 23 CD 37 B5 1E 9F F9 61 C5 FD C7 95 35 51 13 A0 4A 94 7E FA 23 92 0E DA 4E AD B8 98 86 6F EC 7D D4 C3 DA BF 98 01 A0 3F 8C 7A EC EE CB 53 2F 26 4C 66 2D D6 48 48 25 02 09 85 35 9F 6F F8 5F F7 1B BD 0A E0 02 61 B8 81 6A EE B2 F3 B0 BA EF 18 25 48 B6 1B 73 CB 32 33 E7 13 A7 3B D1 D7 D8 95 A9'.split(' ').join(''), 'hex'); Question: Could you say what I`m doing wrong, please?
Formulas to filter a search and to compare to a cell
I would like to automate a task in Google Sheets (because it's quite tedious and time consumming to do it manually). A B C D E F G H I J 01 A00 D1 4F F6 24 C8 BD 4F 75 9E 7D E7 53 98 6C 9F EC 4E C4 02 A01 C5 8F 8E 68 E5 39 7D 41 36 6B 38 3D 99 54 61 83 C6 42 03 A02 72 F4 99 CA 91 C1 1E 58 25 3A 96 33 91 4E FC 87 70 1C 04 A03 65 11 17 82 78 3F 56 18 23 77 2F B3 4A B0 67 FF 66 1B 05 A04 D4 BA D8 58 F5 3A DA 21 32 43 03 95 94 18 78 76 68 53 06 A05 1D ED 7D 41 86 BB A4 07 CC 00 5F 17 BB 7D B3 30 28 C8 07 A06 98 97 EF 9A 85 53 E5 A9 8D 3A C7 6C 8D D0 44 FF 1C 4C 08 A07 8F 26 E1 BB 88 46 74 46 42 0F E2 B7 4D 5C 34 F0 4A C5 09 A08 AD FD 61 93 EF 9F 50 7A 10 24 65 6D 2F 2D BF F4 45 1B 10 A09 5A 5F A2 93 A6 F6 76 DB D5 FE 3F 33 28 3E 3E F9 F5 8F 11 A10 B3 30 07 7E 9A AA 70 AB 78 63 16 E4 23 E4 93 3B BA 28 12 A11 24 A6 DA 5F 15 CC E4 F3 AB 18 4B FE EB 2E 2D 74 9A AC 13 A12 C4 0D 22 54 DA 9F 8A 69 A8 B3 44 2B 91 C1 7D 41 40 17 14 A13 01 1E BA FC 27 89 71 5A 1B BF B3 01 E4 73 A3 9F DE 24 15 A14 6E D7 71 8F 44 B6 4C 16 95 A6 BF C6 21 B9 D0 48 08 DA 16 A15 79 F2 E7 53 D9 4D 3D B4 3B 7E 9D 80 25 EB 7F 0B 43 33 If I search a value (for example "67 FF"), firstly I would like to display the value of the A column corresponding to the raw of the search (in this example: "67 FF" => I4 => A4 => "A03"). Secondly, I would like to display (in an other cell) the number of columns and raws (the table vertically loops) compared to the B1 cell (in the same example: "67 FF" => I4 => 3 raws & 7 columns). But, if there are several results, I would like to display the closest value to B1 (the table vertically loops). Other examples: "E7 53" => G1 ; C16 => C16 => A16 => "A15" / 1 raw & 1 column "7D 41" => E2 ; C6 ; I13 => E2 => A2 => "A01" / 1 raw & 3 columns "B3 30" => I6 ; B11 => B11 => A11 => "A10" / 6 raws & 0 column
I hope it's not too late to answer. Nonetheless, please check google-sheet-lookup-value-in-2d-range. Spreadsheet contains formula to lookup value by looping both horizontally and vertically. formula to lookup value by looping vertically: =ifs( NOT(ISERROR(MATCH(A29,$B$1:$J$1,0))),MATCH(A29,$B$1:$J$1,0)+1&","&1, NOT(ISERROR(MATCH(A29,$B$2:$J$2,0))),MATCH(A29,$B$2:$J$2,0)+1&","&2, NOT(ISERROR(MATCH(A29,$B$3:$J$3,0))),MATCH(A29,$B$3:$J$3,0)+1&","&3, NOT(ISERROR(MATCH(A29,$B$4:$J$4,0))),MATCH(A29,$B$4:$J$4,0)+1&","&4, NOT(ISERROR(MATCH(A29,$B$5:$J$5,0))),MATCH(A29,$B$5:$J$5,0)+1&","&5, NOT(ISERROR(MATCH(A29,$B$6:$J$6,0))),MATCH(A29,$B$6:$J$6,0)+1&","&6, NOT(ISERROR(MATCH(A29,$B$7:$J$7,0))),MATCH(A29,$B$7:$J$7,0)+1&","&7, NOT(ISERROR(MATCH(A29,$B$8:$J$8,0))),MATCH(A29,$B$8:$J$8,0)+1&","&8, NOT(ISERROR(MATCH(A29,$B$9:$J$9,0))),MATCH(A29,$B$9:$J$9,0)+1&","&9, NOT(ISERROR(MATCH(A29,$B$10:$J$10,0))),MATCH(A29,$B$10:$J$10,0)+1&","&10, NOT(ISERROR(MATCH(A29,$B$11:$J$12,0))),MATCH(A29,$B$11:$J$11,0)+1&","&11, NOT(ISERROR(MATCH(A29,$B$12:$J$13,0))),MATCH(A29,$B$12:$J$12,0)+1&","&12, NOT(ISERROR(MATCH(A29,$B$13:$J$13,0))),MATCH(A29,$B$13:$J$13,0)+1&","&13, NOT(ISERROR(MATCH(A29,$B$14:$J$14,0))),MATCH(A29,$B$14:$J$14,0)+1&","&14, NOT(ISERROR(MATCH(A29,$B$15:$J$15,0))),MATCH(A29,$B$15:$J$15,0)+1&","&15, NOT(ISERROR(MATCH(A29,$B$16:$J$16,0))),MATCH(A29,$B$16:$J$16,0)+1&","&16 )
Decoding RS485 signal
I'm spying on some RS485 communication between two devices. The only information I know is that the master is 'pinging' the slave constantly. Its checking if it is still connected and functioning. The first i need to detect is the correct properties of the signal (baud rate, data bits, parity, stop bits). My idea is to listen on the communication using all the most common settings. Then I would write an algorithm that would look for patterns in the string of hex numbers. Is that a good approach? (note. I don't have an oscilloscope ) I first used most common settings 115200 8n1, and at a first glance it seems that they are correct. There are 6 repeating patterns in the raw code. I'm assuming that those are the actual commands for the protocol. Now how to decode the protocol used here? If it is not some in-house protocol that they used. Note here that the slave is disconnected and this is just transmissions from master. 1. 00 02 c0 fe ff 22 00 08 2a 2. 00 02 c0 ff fe 12 00 19 6e 3. 00 02 c0 ff 01 12 00 7a a1 4. 00 02 c0 01 ff 62 00 67 6c 5. 00 02 c0 01 ff 32 00 d8 62 6. 00 02 c0 01 ff 22 00 ab 61 There are a bunch of random hex values in between the patterns. Due to the nature of the RS485 signal I'm assuming that this is just noise? Here is the the full captured data 02 c0 ff fe 12 00 19 6e 28 68 cb c2 9f 12 ed 13 c5 13 3f 09 92 dd 26 d6 64 7f 00 02 c0 fe ff 22 00 08 2a 2f 20 0d 0c 37 3a 0c 0a c1 58 f4 8e 21 4b ce 12 a8 b0 4e 16 80 8c a8 06 3a 09 9c c8 24 49 33 01 42 04 00 02 c0 ff fe 12 00 19 6e 77 92 59 43 9e 65 85 63 ab ff 71 62 a8 69 46 d3 53 b9 00 02 c0 fe ff 22 00 08 2a bd 4a ef 4d 60 00 1a 37 6c df e1 fc 1f 3e 04 61 a8 ad 4d e3 28 c8 23 68 31 28 39 ee 01 d9 12 27 5e 6d 00 02 c0 ff fe 12 00 19 6e df 00 76 b4 f9 aa 22 47 a7 47 9f b9 a4 4b 44 84 cf e5 00 02 c0 fe ff 22 00 08 2a 2a a4 4a cb a0 ca a9 ca ad ca 00 72 ca 0f c2 ac b4 1c c8 37 21 97 bc c3 af f8 27 71 be 3e 75 f0 94 54 00 02 c0 ff 01 12 00 7a a1 7a bd 2b b0 f5 64 e7 b2 76 76 33 1b 7e 22 b2 a1 17 30 00 02 c0 01 ff 62 00 67 6c 45 c3 4a 8c 3a d0 d2 03 c7 39 1a c5 15 8c e0 ac 9e e9 01 46 0d 6f 75 cd ad af 17 08 c8 e1 29 78 66 9a 29 0e 2b 30 56 8e 1f 0e 5a 7b 16 15 b2 51 2c e9 4b 4c 40 6b a2 8b 73 6a d2 8b f9 da 58 9b 02 de 71 f8 1c 0a c0 08 38 72 51 ac c8 bc 75 c8 2f 69 3d 53 ed c1 46 90 6a 26 44 09 4e f9 13 ed 0b 71 00 02 c0 ff 01 12 00 7a a1 19 4f a5 ce 15 02 50 ff 81 7f 10 db 8e 38 d1 da b3 11 00 02 c0 01 ff 32 00 d8 62 fa f6 0b e8 e0 6f 8a 82 d3 e0 36 f5 be 79 cb ab 32 b8 17 a9 dd a1 7c 9e 9b 22 b9 19 8c ef 26 55 a0 6c be 0d 64 d6 c3 e3 55 d9 dd eb b2 c7 00 80 f6 89 00 02 c0 ff 01 12 00 7a a1 19 8e b3 8e 01 3a d6 eb 29 bc 4c de 32 31 13 18 0d ae 00 02 c0 01 ff 22 00 ab 61 d9 fa 8f 29 fc 41 9e 19 a9 0c 55 eb 79 92 9d 17 5f 9d 88 3a e1 d3 2d 42 27 2e 43 f8 05 a4 03 4b a3 fe 00 02 c0 ff fe 12 00 19 6e a4 52 a3 b6 91 d2 90 21 4f fd c4 5e ba 0e 1f 10 6c 30 00 02 c0 fe ff 22 00 08 2a a7 8c b3 71 8b 91 d2 a1 0f c6 b6 cb 0f 9b fe e3 50 0b 1d cc c8 9c d5 e5 f8 85 ff 0d 3e e9 54 b7 ec 0d 00 02 c0 ff fe 12 00 19 6e 75 13 65 35 e1 17 ef 6f be 91 3a b1 52 43 4b b7 74 2e 00 02 c0 fe ff 22 00 08 2a 5e 46 3e 84 e5 ae e6 c8 45 01 e8 a7 a7 7c 27 d3 ff bf 90 a9 2f 4c b6 2d 6b 8a 18 c1 15 aa 8e d6 8e c9 00 02 c0 ff 01 12 00 7a a1 f3 05 85 da 10 da c0 60 10 31 9e 04 89 23 1f 51 9b e5 00 02 c0 01 ff 62 00 67 6c 89 50 18 c5 74 d1 48 ef ca 80 e5 0e 86 24 59 ad c2 71 39 12 1f 7f b9 14 40 5d 06 0e 98 ad b3 84 18 9c 59 0b d6 fb ae 86 b0 4f b8 cb a6 a8 d9 74 a4 e8 fe 07 95 dc 42 b9 92 38 6b f7 ad a5 9b ce 7a 9c b3 3b 0c bb 5c d7 b8 ca 9e 18 d7 cb 2e 11 0f 45 31 65 7b 5f 5c b5 44 b7 30 fb 6e 8d 3c f4 5f 28 00 02 c0 ff 01 12 00 7a a1 15 7e be ae 7e e4 a9 98 cf 87 3e ef cb 9a c0 ed 76 d5 00 02 c0 01 ff 32 00 d8 62 6f 12 b4 55 2d ad 42 19 9b 91 05 0f c1 a9 c1 e4 46 13 a4 e0 50 c1 ca c9 7d 6a 02 3f 94 8b ae 0f 01 68 58 ff ad 18 04 43 c7 98 2e ce 43 f5 64 31 78 fa 00 02 c0 ff fe 12 00 19 6e a7 a5 37 aa 6e da 26 79 58 90 47 33 5f f0 a5 33 09 5d 00 02 c0 fe ff 22 00 08 2a 5e 6c 21 68 d2 aa 0e b6 e8 03 21 5e 3a bc b5 5f 9f 21 2e 3d ad cb d6 d8 2d 12 77 48 7b b0 3b 33 18 df 00 02 c0 ff fe 12 00 19 6e 79 8f aa 97 56 ac a4 86 8b 5b 39 8c cf 9a 09 ab fa 63 00 02 c0 fe ff 22 00 08 2a 43 2d 94 ba a3 06 0b de 34 00 5c 24 f6 e9 45 4c 0d 69 17 ed 70 fd c0 00 ba ab 8b ca fc 6c e1 c4 76 76 00 02 c0 ff fe 12 00 19 6e e1 b8 57 cd f3 6c 75 86 9a 0d 7d 9f 91 a5 59 08 ae 1d 00 02 c0 fe ff 22 00 08 2a 3c cb 32 3e 78 bc 88 6d 8c 16 64 7b 74 74 36 d1 0b 10 36 cb 08 c6 60 69 42 0d 8c ce bc d5 ca ec 41 fc 00 02 c0 ff 01 12 00 7a a1 f1 45 3a be 4f ce bd 22 a9 e8 e4 1f 60 fb ff ad 0c 7f 00 02 c0 01 ff 62 00 67 6c dd 09 fd 95 dc 92 77 0e 57 bf 2c c5 b9 ae 64 f6 9e c4 c8 e3 47 75 b4 75 89 97 a9 41 c6 d4 f7 bd c8 9e 28 2b 09 98 6d 15 53 12 6d 5e 57 37 fc e4 59 cc bc 88 25 07 0b 26 b1 fa 4d 0f 3f 87 f9 04 fe 25 41 7d 97 9c 0c 46 70 b4 b4 4b f7 19 4d 02 8e 18 4c b7 83 2c 94 0f 9b aa 1a 2a f8 39 90 8a 74 5d 00 02 c0 ff 01 12 00 7a a1 39 b7 63 f0 10 8b 5c 7c 9d 34 34 4a a2 35 f0 c0 5b 24 00 02 c0 01 ff 22 00 ab 61 5a 91 b4 24 c9 62 1c 0b 72 83 e7 d2 68 9b 2b 55 7d f4 1a f0 7e f3 4b ac e1 ae fb ad 4c 60 bc cb 05 75 00 02 c0 ff 01 12 00 7a a1 6e b3 8f 72 fb b1 9a 48 c8 4e 79 52 b4 f5 13 fb 43 c9 00 02 c0 01 ff 32 00 d8 62 8a 20 4e 3d 67 d2 12 bb c5 e4 a7 ce 4c 64 db 17 f4 51 bb b7 f7 ea 2c 0a 11 5e 65 c8 ea e2 7d 60 9b d2 c8 ae 52 b1 7f b3 50 2e 32 df 57 d7 2e 2e cb cf 00 02 c0 ff fe 12 00 19 6e 38 bb 48 00 2e 70 28 93 5a 47 cd 1b 44 d5 eb d0 13 2b 00 02 c0 fe ff 22 00 08 2a 54 a8 6b 65 2c d0 c7 89 a3 63 85 47 55 4e 6d b7 23 32 c5 5b df 12 93 be 11 4f c2 ba d0 13 76 b3 be 82 00 02 c0 ff 01 12 00 7a a1 c7 23 14 2c 9a dc ea 73 12 b4 18 3e 4a 6d 54 49 c4 4d 00 02 c0 01 ff 22 00 ab 61 90 33 f8 0e 6d 9c 2f 05 02 41 28 d1 55 2c c5 3d 64 c4 0f df 07 1a 4a fc 1f ed a8 2f f4 2a a4 a2 0f aa 00 02 c0 ff fe 12 00 19 6e 31 c4 36 83 7f ad ac 53 ac e3 21 64 b8 28 5f ea 33 28 00 02 c0 fe ff 22 00 08 2a 1a b8 af 63 ef 64 dc 2d 32 5b 48 1c e3 b8 a7 f0 ed 32 65 af 21 1a 09 d4 1d 29 82 5b c7 cd 42 1c ff 3a 00 02 c0 ff 01 12 00 7a a1 28 fc d5 32 2b 5c 8b f8 bc a1 8d 7b 86 89 e6 b6 66 e5 00 02 c0 01 ff 62 00 67 6c 92 66 ea a2 63 4a 02 81 05 21 a0 32 f6 f1 1e 1a 92 36 92 e2 67 89 5d 73 92 13 fe fa fa aa 8e 06 f8 c4 f7 a3 42 a2 78 05 31 07 1c 42 78 ec 0b 88 8e a8 ae 67 59 a6 93 eb 3b dd aa 32 ca dd 77 f7 d0 3d 6e a2 61 e8 63 13 b0 65 3f d3 d0 22 1f 26 18 e9 62 b3 9a 8b f7 5d c1 27 77 3c f8 37 5a 42 9a 7a 00 02 c0 ff 01 12 00 7a a1 9e f1 fc 84 34 e5 ce 59 9c 7a 24 75 c7 76 55 52 01 0b 00 02 c0 01 ff 32 00 d8 62 41 31 93 a0 fd 3a 0a 8a 0c 90 fb 6a 15 9f 46 8f d2 db 4a 99 85 5a 01 fb dd 7a 05 7a 73 3b a8 24 c8 c4 a5 31 30 b3 11 0b 8e 7b 20 ac b8 ba 66 c0 c7 88 00 02 c0 ff fe 12 00 19 6e d5 48 35 ab a7 4e fb ec 6e 99 37 df 89 9e c7 bb 44 2f 00 02 c0 fe ff 22 00 08 2a 93 d0 d9 92 c0 30 05 d7 5a da e3 9f b7 24 9c dc 14 f5 02 81 89 b9 c0 a7 14 59 a6 39 c9 f6 92 9f 79 5a 00 02 c0 ff fe 12 00 19 6e f7 57 db 1a 53 6c 5b 2d 31 ee f2 8d 08 33 1b 02 fb 1c 00 02 c0 fe ff 22 00 08 2a 89 a2 19 9e fd 2d 83 a4 e8 7c 25 a8 aa e2 5d d8 14 85 34 66 cc 1f 98 56 f0 60 95 f9 67 4e 85 60 09 a4 00 02 c0 ff fe 12 00 19 6e ac 66 8d fe ce 6a 61 77 e1 1f 2c 76 f1 17 14 17 34 87 00 02 c0 fe ff 22 00 08 2a 69 69 d4 80 7f fa aa bc 97 1b 37 b1 89 64 06 af 6c 80 4c 6f 53 fe 6a 78 39 66 83 a7 71 cb f4 7b ba a7 00 02 c0 ff 01 12 00 7a a1 46 d4 ab 96 8b 93 62 a0 c5 d4 b1 68 a5 94 64 61 87 d5 00 02 c0 01 ff 22 00 ab 61 a1 ac a1 97 2f 69 82 d3 c1 5b 94 3c 92 7e 36 4a 3f 7f 44 69 d5 cc 2f cd 54 41 60 f0 43 97 90 1f 8c 6d 00 02 c0 ff 01 12 00 7a a1 1e d9 f4 c5 ec e5 40 50 5c bc 61 2a 04 10 5e c8 fd 73 00 02 c0 01 ff 62 00 67 6c 33 f2 d5 1f 5d b4 43 64 c3 83 f2 a8 ed 4f dd b2 eb 08 d9 ac fa 23 64 52 5c 49 09 fb d4 bf bd 69 20 e8 76 84 c4 27 21 58 d6 12 eb f8 56 01 86 ca 0c 8b 61 4d 5b 6d 42 5a c6 83 8f f7 31 f6 7a ca 42 e7 13 5a f6 35 50 f7 46 a0 5e 3d 0a 89 57 a7 13 88 87 00 03 ab 73 26 f1 b2 73 34 6d d9 56 3c b5 f0 00 02 c0 ff 01 12 00 7a a1 d2 fa f4 0f 57 4d 06 8c b8 74 f0 ac ef 17 01 93 f1 09 00 02 c0 01 ff 32 00 d8 62 ac 85 4d ca c0 d3 48 02 b1 e3 b9 a9 c0 88 ba e5 69 80 9a d8 13 dc 7f 2f 98 41 43 41 1f 38 c2 e0 02 b7 e5 71 cf fd 99 9b f8 40 ec 16 0c 0c 76 51 34 ab 00 02 c0 ff fe 12 00 19 6e 27 6d a3 4a e4 a4 ee 5a 6e c2 f2 4f 7b 31 f6 61 84 04 00 02 c0 fe ff 22 00 08 2a d5 dd 0f 67 a3 23 5b 2e 7a 1f 65 49 80 55 f6 f5 91 14 b4 19 ae 51 8e ed 87 df 31 d4 4a a3 48 aa 61 5f 00 02 c0 ff fe 12 00 19 6e 24 dc ff 2a 70 9b af 7e 7c a0 96 3f ca ec 58 f7 e0 d3 00 02 c0 fe ff 22 00 08 2a 47 e0 02 03 c8 49 11 2c bc e2 b8 85 dd 24 b3 f5 bd 0d 00 29 04 01 e1 4f 95 a7 7c 4d 65 e1 6f da 18 b7 00 02 c0 ff fe 12 00 19 6e fa b4 8e 15 b5 6b b0 bd ff 25 f4 62 8b 63 77 de a7 2b 00 02 c0 fe ff 22 00 08 2a e1 c4 dd 89 b9 67 47 7d 1e 9b 47 58 52 03 90 6b 70 e7 ec e7 99 67 49 57 c5 04 ec 85 7c e0 b6 03 b4 e6 00 02 c0 ff 01 12 00 7a a1 47 7f e8 39 0d fa 71 81 30 6a be c4 d0 a2 0d 79 0f d9 00 02 c0 01 ff 62 00 67 6c e1 f9 68 c7 a1 57 b7 56 dd 8c f7 f9 33 28 7f 42 a8 8f e8 e8 5e 97 52 9b 5a 4b 9d 40 48 f9 c3 cd 2a fb 41 29 8d 44 06 0f 47 1a bb 85 c4 90 0f fe 1d a6 a3 a4 81 78 84 28 4e f7 63 2f 06 8b af 90 45 0b 6d b8 79 c3 e0 f6 b1 e3 ca fd ea bd a8 6e 68 d6 1b d8 f2 8a 0a 1d 3a 32 8b f8 4b 52 6e c0 90 f0 00 02 c0 ff 01 12 00 7a a1 06 2f 7e 85 03 16 5b 4f 59 47 7d 72 ba df 6a 2d a5 d9 00 02 c0 01 ff 32 00 d8 62 97 cc 1d 63 a1 93 18 d3 3a 0f e2 11 bc c7 ca 49 3b 6a 62 59 80 a4 7c 98 a5 bf 68 25 f2 4e a2 71 6f 43 d1 65 0e cc 92 b4 69 c3 61 85 6b 38 9a cc bc 6d 00 02 c0 ff fe 12 00 19 6e 9a 08 1f 9a 70 7c 3d dd f9 fd 33 1c 67 c0 7a 81 15 d1 00 02 c0 fe ff 22 00 08 2a 37 43 2d bc a8 f7 96 9f d1 29 bd 5f f1 5f db 46 8f 24 5b 80 86 be 69 e0 97 54 e0 23 5d f8 47 39 b6 e2 00 02 c0 ff fe 12 00 19 6e 4b 2d b9 28 7a 4e 36 3c 44 3c 1b 42 9e f9 be 20 1a 2f 00 02 c0 fe ff 22 00 08 2a 0a 36 07 6b 1e 1b 69 c8 12 e8 38 18 1c 0c de cb 05 bc 8b e1 94 e2 91 bc 1e 02 d2 09 4b a9 7a dc a7 e8 00 02 c0 ff 01 12 00 7a a1 52 2d 31 20 02 aa e5 4d 2c 5d 5a b7 71 1a b5 5e 45 19 00 02 c0 01 ff 22 00 ab 61 4a 2a 17 6c 19 c6 5a b4 a7 d5 a1 17 7d 1a 96 f6 63 e5 a6 5e 98 0b 09 7d 4b 5e 5f 67 43 2d 24 7a 20 05 00 02 c0 ff 01 12 00 7a a1 8b 07 bf a0 db 8f c9 ff 71 32 eb 84 ac 52 69 c3 45 05 00 02 c0 01 ff 62 00 67 6c c2 55 6a d3 4d 1b 98 72 22 3a 1d 73 73 dd 2b 98 1b 65 c5 95 e7 0c bc a8 d0 b9 87 9a 3d b0 f4 53 18 13 a1 6c 95 9a a5 9e e3 d4 9e a3 02 0c 81 46 f4 43 26 4b e5 fc 84 11 1b 79 a6 dc fe 5c 03 f1 b2 31 5b fb 93 47 9c 2c 65 62 4b 13 93 47 af b9 02 7d df ba ea 4b b1 aa 69 8f 69 3c ae 1b 05 e4 fe a6 00 02 c0 ff 01 12 00 7a a1 9f e9 11 5f 36 e1 3d fa c0 8c ec c3 68 b1 32 18 c6 71 00 02 c0 01 ff 32 00 d8 62 bd cf c7 e1 66 0d c7 2f 3f 7b be 68 55 ca 96 0d 15 75 7c ce 31 69 f0 c5 dd c1 f1 d4 29 03 17 38 e8 0e bc dc 43 41 47 a8 4b 8f 47 5c b6 d4 be bf 32 5f 00 02 c0 ff fe 12 00 19 6e 97 d8 44 4a 3a e6 cd f7 eb d7 bb 7e ff 22 e1 c8 ac fc 00 02 c0 fe ff 22 00 08 2a 88 a5 23 8e 29 64 42 fd d2 eb 33 38 04 4d a5 5e 69 27 a6 be 1e d6 0d 32 66 20 4c c1 a6 f9 d2 00 17 40 00 02 c0 ff 01 12 00 7a a1 0d 3f 76 e7 d7 38 dc 4d dc 74 f1 c3 c5 1d 99 c2 fd 09 00 02 c0 01 ff 22 00 ab 61 3e af bf 0d ff 5d ac 58 00 1b 17 8a a5 93 6d 3b b2 60 eb 2f 1d df 1c b4 92 b8 47 e3 82 69 0e bf af 29 00 02 c0 ff fe 12 00 19 6e 6b c1 33 cd 4a 9c d2 d7 65 57 30 0b 19 ba 39 82 b3 8a 00 02 c0 fe ff 22 00 08 2a 5c 02 b3 e6 8b 55 8c f3 ae 81 0a 2e a8 d9 d0 17 d8 9b 82 c0 9d 8e f7 a6 c8 ea b5 f1 80 d1 bd 7e 08 b9 00 02 c0 ff 01 12 00 7a a1 cf c1 3c b3 2d 15 3d d4 f6 f5 99 a2 7e 17 16 bd 6c 06 00 02 c0 01 ff 62 00 67 6c 80 01 29 5c 58 88 b3 a2 ad ec 23 20 57 39 7a e6 37 c3 7d d5 d8 78 6f ac c2 56 78 4d ee da 48 be ab 3a 7c 8d 7f e6 d8 cb cb 67 d9 df 03 a7 6f 8a 72 0f 02 d5 68 21 48 f2 1a 73 ab 78 55 d5 fe 89 1a 9a 76 98 73 e5 5c de 28 8c 8a 62 b2 07 3f 54 1c ad 15 39 d3 9d 85 54 9c 52 30 3f c2 b2 70 96 e5 32 00 02 c0 ff 01 12 00 7a a1 15 9d 3a 08 7b 14 3a 48 a6 ec bd 1a ea 94 ed 35 34 6c 00 02 c0 01 ff 32 00 d8 62 30 b8 b9 56 dc 4c ef 5c df e5 d2 41 02 c0 7d d6 1c c3 31 d0 be 2e 0c d2 e1 51 b5 61 2f 63 b3 c4 b4 b3 bf c4 30 c2 2f 2e b4 19 29 da 3b 75 c8 3a 6c e8 00 02 c0 ff fe 12 00 19 6e 6f 23 40 dc f0 85 e7 33 d6 86 64 e0 a1 23 76 ce df 52 00 02 c0 fe ff 22 00 08 2a c2 4b 02 d7 ba a9 c2 4b 5a 4e e4 6d 04 56 3c 14 a3 1e b9 90 28 bc 00 3d 3a d6 44 db d4 fe 80 19 31 f5 00 02 c0 ff fe 12 00 19 6e 56 1d 31 7c fd 98 51 da ef 4f 6c 1d 6d 51 73 65 f9 0b 00 02 c0 fe ff 22 00 08 2a 36 bf 1c 8c 59 6f 33 cc 8c 28 72 cb 84 fe e5 f2 3f 07 c4 8f a9 05 cb a8 97 b6 11 b4 2c 64 d0 7f 28 f1 00 02 c0 ff fe 12 00 19 6e 9c d9 c0 1e b2 36 68 f9 5c 9f 20 2c cf 13 5e cc 87 f3 00 02 c0 fe ff 22 00 08 2a b6 83 e2 56 38 00 2a 6d 43 6f 34 a3 73 93 64 ab 9a f3 ad 75 63 38 2e 74 39 11 e4 c9 84 98 57 6a 15 65 00 02 c0 ff 01 12 00 7a a1 d6 b2 f3 56 b3 b6 cb 34 08 ef 5c 5c da e5 37 97 f3 3d 00 02 c0 01 ff 22 00 ab 61 83 5f 46 c1 e6 6b 81 f1 14 7a 04 91 35 88 d7 00 b0 d7 39 f0 9d 1f b2 57 66 06 9c 8b 9d 13 34 08 fe a9 00 02 c0 ff 01 12 00 7a a1 e9 ba fe 70 bc 32 fd fb b5 6b bc 39 be 61 38 5b f9 ee 00 02 c0 01 ff 62 00 67 6c fe a2 30 a7 1d 0c f3 e7 13 de 75 64 ed 85 58 da 67 2f c2 0a 24 df 40 32 75 fe e5 e5 20 41 28 4b 46 e4 6a 76 f0 60 c0 87 a3 45 46 f4 d3 75 47 74 0a e8 f0 c4 a9 e1 4c bc 11 5b 41 25 eb bd 5c 95 0a 3b 83 f1 78 e9 ef 3f 84 8f af e5 02 1a a9 a9 9e c1 13 f3 0b e8 05 72 37 d0 57 8f dc 49 18 eb 80 7d 00 02 c0 ff fe 12 00 19 6e 82 70 d2 aa d4 7f 4c 57 af 76 ee 95 01 07 84 4d 3b 78 00 02 c0 fe ff 22 00 08 2a 80 41 ab 37 bc b3 8d ca bb 41 95 93 ae f9 fe 19 a5 82 01 8a 4b 90 6d 99 b3 f6 c6 db 0c 01 56 ba a9 99 00 02 c0 ff 01 12 00 7a a1 e3 c9 a8 14 77 6a 4f 07 6e f1 14 d6 ae fd de 59 c1 6c 00 02 c0 01 ff 32 00 d8 62 6e ba ad ea 99 a6 eb ed dd e1 2c 95 29 18 f7 e4 56 00 0a f7 0f 69 62 52 a7 22 43 c5 f6 c9 23 14 d3 7f 64 40 d2 26 0d 80 53 dc 70 12 89 a0 0b 9d e4 b5 00 02 c0 ff fe 12 00 19 6e 29 f3 ea 85 6f f2 56 13 6e 58 1a 89 0c 8d 6a 2f 31 1a 00 02 c0 fe ff 22 00 08 2a bf 37 b0 6c fb d3 ca 9a ef c4 b8 cd 11 44 40 95 86 d2 fc d2 b8 73 e5 d9 db 82 ad c1 58 a6 ca 5f 92 20 00 02 c0 ff fe 12 00 19 6e 22 5e a8 ad 1c f7 c1 03 87 6b 04 c9 28 9d 06 96 25 11 00 02 c0 fe ff 22 00 08 2a 90 db ed 21 5b 65 2c c7 ac c5 e0 85 07 f9 e6 6e ef c9 f4 49 04 0b 06 70 ff 1b 26 82 23 ef 31 ac 7c e5 00 02 c0 ff 01 12 00 7a a1 01 b9 7d 05 fe 9f fa e1 40 7e 1f 38 cf 66 f7 f8 a9 aa 00 02 c0 01 ff 62 00 67 6c 46 7d c8 e6 7c 9a db b5 60 94 24 c7 c0 60 06 cc ed 81 c4 6d cf 1e 13 b2 ed 65 b3 87 78 f2 42 6e 7f f9 17 48 45 cd c9 52 4b 98 d4 77 de 47 df 3d a5 f7 2a 22 9c 92 1a 20 8c 7b bb c9 f6 a5 d0 29 07 fe 19 79 2e 2d e3 65 2a 8d bc 9c af 5a da e2 bc 05 52 5f a4 0b f3 14 f2 8f 56 3a 12 70 35 d9 31 6d 00 02 c0 ff 01 12 00 7a a1 52 4d aa 97 e3 14 57 9d 1b 04 48 fd be 10 73 25 66 53 00 02 c0 01 ff 32 00 d8 62 d0 65 46 22 83 8f f7 12 79 39 f0 a1 dd 6d 75 56 22 9e f4 73 9b 89 1e ff 81 f8 81 6a 5b e4 04 7b 53 17 c2 a0 70 2e 77 8d 18 03 cb 3e 18 83 3b 7d 1c 7b 00 02 c0 ff fe 12 00 19 6e a6 4c 38 f3 7f 3c 95 c7 6d 2c 1e 51 66 c5 68 e0 51 c5 00 02 c0 fe ff 22 00 08 2a 9d 2a 3e 74 89 19 02 bd 06 5c 2f a9 7b 97 7b ce 48 6f 9f 6b 81 b0 f3 50 0f 8c 4c 48 0b 18 97 55 32 53 00 02 c0 ff 01 12 00 7a a1 03 b3 af 73 5a dd a5 b1 8c ad 7f 08 61 ca 29 f2 29 74 00 02 c0 01 ff 22 00 ab 61 11 a2 4d 7d c2 c9 2f fe 52 52 3c 9c af 8e 81 ba a1 c3 14 0f 3b 05 29 5a 1e 11 65 97 6b 6f fd 2b 21 10 00 02 c0 ff fe 12 00 19 6e 9f 19 5b 4b 76 a4 23 96 af fc d4 d4 5f 4d d8 76 3d 01 00 02 c0 fe ff 22 00 08 2a 8d 57 1b 27 75 a6 e8 73 1a 13 af fe b7 b1 ae 6c b5 dc 7d 61 50 71 9c 61 ef 68 41 9e 73 85 96 74 40 ad 00 02 40 ff 00 04 00 4f 1d 04 00 c4 cc 00 02 c0 ff fe 12 00 19 6e 91 f9 15 f3 28 b9 36 e4 4b 92 06 a5 cf e6 f1 3e 5d 5a 00 02 c0 fe ff 22 00 08 2a 16 ee 05 70 48 8e ec 58 74 7c f9 54 38 3d 80 77 32 64 2d 13 3d 30 a9 0e 5e ca 4a 14 eb ed 4e 9f 49 19 00 02 c0 ff 01 12 00 7a a1 58 40 58 b5 0f 95 a7 39 3b 15 9c ab f3 74 c2 69 cb bd 00 02 c0 01 ff 22 00 ab 61 e7 2c 3e 52 fe 76 67 e8 34 6d 43 c3 4d 3b 58 15 a0 c7 02 2e cc 97 04 13 fe fb f2 5c 58 dd d0 1c cf fb 00 02 c0 ff 01 12 00 7a a1 1c 3c b9 45 e3 bd 77 0e ed b2 e4 38 3a 69 04 bc 62 76 00 02 c0 01 ff 62 00 67 6c 1e c3 b9 36 00 bb cd a9 d4 9d 70 b7 e6 c3 63 35 2d 72 ea 5f bb e1 8f de c7 77 9c e1 0b 95 f9 5f 94 3b 3b 8f 4c a8 c3 ee 3c ac 3b 2a ed cf 72 bd 6f 53 4a be 7c ca 0b 92 fe 20 06 c0 a1 45 da d2 b8 c8 d1 06 49 77 45 41 cb 81 9b 75 26 67 dd 6a 9b b8 c1 a6 fe 49 1a ad 09 35 a8 a2 d7 8a 8a 38 f0 f1 00 02 c0 ff 01 12 00 7a a1 9c 6f 7d dd 1d 34 30 9c 26 a5 9b 21 d4 1e ea 44 44 a0 00 02 c0 01 ff 32 00 d8 62 be de fc 74 07 86 bd 0b c2 da 6b f6 0d 19 00 63 da 57 db db dc d6 cd 25 98 47 4d 8e 16 c4 17 c9 be c1 2b 7f 0b ef 76 c3 98 53 84 d5 98 81 ea 7b 9a 87 00 02 c0 ff fe 12 00 19 6e d2 fc ef c6 55 2d 0e ec 4e 1b 7d 0a ba 95 eb 24 f1 b9 00 02 c0 fe ff 22 00 08 2a 23 0e ad 40 67 b1 cf b8 8a a6 cb 27 8d 0c ac 92 bd 97 96 c6 6a 3b c7 2f 69 9d c8 09 d3 38 91 09 fb 2e 00 02 c0 ff fe 12 00 19 6e 82 f0 c2 07 2b bd d1 40 1f 07 a3 47 7d 4e f8 a2 91 6c 00 02 c0 fe ff 22 00 08 2a ad 34 70 8f d8 ee 26 38 d3 45 83 50 86 42 2c 99 7c 76 e4 bc 9c 57 c2 c9 c5 58 ef b8 16 a8 e0 1f 29 38 00 02 c0 ff 01 12 00 7a a1 5a fc 5c da 93 6c 12 c8 62 f0 21 da 56 15 32 92 bd 7c 00 02 c0 01 ff 62 00 67 6c 3a 44 38 2c da eb 81 d7 1a ea 2c 43 36 b8 d0 5c 5e 35 2c 25 4c bc 38 38 1e 4f 5b 23 84 b5 7a 85 bb a9 2f 2f 9c c5 eb f0 e9 ca d0 97 ef ea 8e 2e 5c 2b c4 3b 67 ef 0e cd 45 06 ba f8 e2 12 42 40 73 3b 6d d8 12 24 dd 32 22 db 6c 63 d4 de 0a 51 52 37 c5 85 da 49 33 1f 24 b7 3e 22 7e e6 d5 56 e1 2b 00 02 c0 ff fe 12 00 19 6e fe 09 10 60 af 1c 06 49 db 0a 3b 87 70 39 f0 c6 07 9e 00 02 c0 fe ff 22 00 08 2a 9a 89 0b 79 e8 ff 64 8f 9e d4 2a e0 e7 e5 53 0d 82 5e ba 17 77 c1 5e d5 ad ae 84 d0 84 8b 99 54 63 a4 00 02 c0 ff 01 12 00 7a a1 b3 2b c8 cf b3 af c3 7b e3 f4 cc 36 cc fb 24 86 81 45 00 02 c0 01 ff 32 00 d8 62 74 82 24 fa cc 3e d4 36 ed 57 0d 49 af 55 d9 6f 96 a9 a2 af 5a 5f f7 4d 11 fa 15 0f cb 98 80 6a 4c 98 46 a3 02 86 3f 70 39 75 e6 30 d7 72 7b 39 62 4d 00 02 c0 ff fe 12 00 19 6e 57 c8 ed 3f e7 c8 ac 5e 57 0c 94 1c 35 0d 78 ac 28 ed 00 02 c0 fe ff 22 00 08 2a 98 23 61 ac 0d 70 ce 89 d4 c6 66 2b 06 b2 91 43 ee 90 a6 e9 a7 95 0f 99 3e 84 48 8b 0c 44 42 62 12 19 00 02 c0 ff 01 12 00 7a a1 61 89 92 d8 93 39 d4 e5 bc cf e3 4f 3f ec 77 98 29 71 00 02 c0 01 ff 22 00 ab 61 15 c3 bd 73 4c d9 e7 8f ee 36 c6 78 ef 2c 61 4a 4d 69 44 ea eb 7d 54 f7 5a 62 7a 2d 8f fa 23 fb 27 a2 00 02 c0 ff fe 12 00 19 6e f9 21 59 19 8b ca bb 5e e7 71 8c c4 77 5e 92 60 8a 52 00 02 c0 fe ff 22 00 08 2a e9 c4 0c d5 54 bd 47 2b a3 eb b4 d5 ef 43 e2 d2 ed ad f4 34 29 b6 c9 40 68 fb 67 6e 6a 21 f5 db 6b b2 00 02 c0 ff 01 12 00 7a a1 43 14 64 f5 0d a6 a8 54 00 75 6a cf 1f 7b ee b7 d1 df 00 02 c0 01 ff 62 00 67 6c 96 5a d6 9f 43 78 c8 a3 a2 10 83 53 a9 66 b1 cc c1 60 62 9d bd 4d 0a dc b5 01 cc 3a ad a5 4a 7c 50 2c 97 ce c3 36 30 ff 7d 2a ae 08 db 08 e7 c3 90 29 e2 d4 d2 06 86 14 e5 d1 49 81 b4 b4 14 0d a6 25 ea 50 45 df 8b d6 1f b5 83 b2 b3 e4 de 27 af 49 bb 58 1e f1 74 83 9e 33 17 63 59 42 9d 1f 6c a2 00 02 c0 ff 01 12 00 7a a1 fb b7 80 52 1e d6 26 cb e4 ca 70 5e 1e b1 a5 40 2e 29 00 02 c0 01 ff 32 00 d8 62 77 c8 c6 57 f1 47 fd 9a 8c 2a ec 19 7e e1 6b 46 4d ff 82 3b 9c b0 b0 7b ac 7b cb f1 8f ce eb b2 73 c4 ac ff 9c 2c 76 a6 ca 68 f2 ee d7 ed 97 27 f9 c9 00 02 c0 ff fe 12 00 19 6e 67 2f 16 65 c6 e0 3c 86 21 30 61 ac fa 5c 1b c4 4f 6a 00 02 c0 fe ff 22 00 08 2a 1f b1 95 5d 63 1e a0 54 23 18 f5 53 b7 5f e9 7a 8e 5e d5 9f be f8 82 a2 6d ef a0 14 1c 04 10 1a 2c df 00 02 c0 ff fe 12 00 19 6e 0d d9 a5 87 d8 58 b5 97 4a ef 7a 58 a2 ae e9 d5 97 3c 00 02 c0 fe ff 22 00 08 2a c0 1a 92 df 88 4d 48 4d 6b 2b dd d4 ea 7b ac e7 a9 c5 26 9b 3f df ac 93 5c 1a 05 e0 f0 50 24 31 19 1e 00 02 c0 ff fe 12 00 19 6e c9 2c de a4 7a c0 68 6b 30 08 1d 84 e7 f2 01 bf 9b 65 00 02 c0 fe ff 22 00 08 2a 20 66 15 64 f4 68 c3 ba 39 06 39 ea a4 d4 80 b6 bb 3c fc a7 70 7c f0 a4 07 b4 e9 90 ec 35 4d 7b 77 7a 00 02 c0 ff 01 12 00 7a a1 18 22 1f 60 23 99 1c 14 d4 2b 98 a8 d7 8b c5 6d 27 28 00 02 c0 01 ff 62 00 67 6c 4f 4f 9a 7d 4d 0e 81 61 fc 71 6f 3d d6 5c bf 57 41 36 25 eb 01 6d c6 77 4f de 0f 6f 00 9f 70 5b 94 16 31 fd c8 b2 a7 10 eb d8 64 ca 15 ab f1 84 0b 55 ce 60 fd 6d 4a 11 99 6c 12 96 45 a6 fa 69 b1 bf e7 c6 7a 50 df 66 2e 48 cb 6f 9f 80 40 92 11 5f 04 19 89 d7 f3 25 10 9f 6a 16 fe 4b 9e fb a5 3d 00 02 c0 ff 01 12 00 7a a1 e3 a0 11 0e ab d2 2a 04 e0 16 d2 72 9d c4 c3 30 a9 e9 00 02 c0 01 ff 32 00 d8 62 93 9f 3d 93 60 28 1a fa 16 0d 3e 47 13 94 37 5c fb 87 25 2e 2a 86 fb 1b d3 5e c7 0b 46 54 59 ce c8 11 22 a5 3a e4 58 9c e3 02 84 6e d3 74 87 27 f6 12 00 02 c0 ff 01 12 00 7a a1 f1 4a 8b c8 4e 3a b9 d3 cc 58 a2 2f 2d 20 07 1a ad d8 00 02 c0 01 ff 22 00 ab 61 cb 62 13 3e a0 1a 2f fc 1e 86 83 7e 7a d5 31 c1 f5 68 cb 03 bc 0c c7 69 11 91 d0 08 21 f2 63 05 b1 71 00 02 c0 ff fe 12 00 19 6e c0 2d af 35 23 bf 89 b5 31 36 a6 b6 7b fd 91 55 19 e0 00 02 c0 fe ff 22 00 08 2a f9 8b 60 f7 e2 e0 4b 3e de 0b 1a 6b b9 61 0e 64 3b 4f fd b4 5d 81 93 2b ad 80 e2 19 35 a7 4f 72 fc 89 00 02 c0 ff 01 12 00 7a a1 8f 77 18 5a 62 3f ba ea cb f7 77 fd 20 6f 5d 3f 88 e3 00 02 c0 01 ff 22 00 ab 61 3b 34 a6 7f 69 85 2a 3e 29 41 e4 26 a7 d4 e8 0f 8f 36 d3 61 0c 82 a9 ef 7e 7f 37 03 3a f8 36 a5 04 f2 00 02 c0 ff fe 12 00 19 6e 36 89 d1 70 39 4c 22 89 77 85 3e ca cc 09 19 2a 3a 95 00 02 c0 fe ff 22 00 08 2a 00 d9 76 db 9c f6 ef 75 fc 6c 67 5f 4b 7e 66 6d 52 e1 db 8b c9 96 cb da b4 e0 38 38 e0 62 12 41 a3 12 00 02 c0 ff 01 12 00 7a a1 4b ca 4b 50 d4 94 34 4d ba 91 4b 94 52 0c 06 90 54 6d 00 02 c0 01 ff 62 00 67 6c ff e4 d5 53 e4 78 11 6d 40 cc f5 a1 08 b0 9f a6 66 aa 00 da 3b 43 74 72 56 1e a3 fc 56 33 45 4f fc c1 77 02 3e 57 b5 c1 5e 0b 6d a7 4c ed ee fe 4e 0b 56 b6 54 1a 0f 74 69 97 47 a9 86 64 08 ab e6 10 da 1c 1e d8 88 34 36 f6 15 70 a2 0c 11 a9 4b 30 f2 11 0e 4e 5e 3c 51 1f 66 92 0f ac 7e b5 35 cd 00 02 c0 ff 01 12 00 7a a1 dd b7 48 04 55 0f a3 82 77 d4 41 07 ba 43 1f a0 1b 1a 00 02 c0 01 ff 32 00 d8 62 43 b3 2d 70 1d d0 98 4d 1e 6a e2 a2 44 33 aa 50 de 85 9e 0f ca f1 07 11 c0 58 e4 82 6b 17 e1 6e 26 5a ca c0 85 d2 99 85 53 9c 90 f0 61 43 be 52 99 76 00 02 c0 ff fe 12 00 19 6e 5e 6a b1 67 dd 34 1e 4a a9 c3 a0 55 1d 3e ad a3 85 3b 00 02 c0 fe ff 22 00 08 2a f5 d5 c1 b6 d0 12 71 76 cb 5c bb 0b 9b f6 2c 30 09 d0 74 64 d7 d9 7b 9e 8b 8b b2 1b fc dc ef 5f c1 e4 00 02 c0 ff fe 12 00 19 6e 71 39 a5 4d fd 53 dd 39 94 60 25 17 e4 e7 81 de 36 a8 00 02 c0 fe ff 22 00 08 2a 21 2a a6 37 d3 85 f6 90 7f 93 0f fc 48 63 a1 b4 d7 17 26 24 50 15 60 b1 51 c6 05 b3 56 d0 51 ad 3f 8f 00 02 c0 ff fe 12 00 19 6e da 32 e3 14 b1 72 89 d0 a8 9f 7c fe c9 01 ae c2 a3 0e 00 02 c0 fe ff 22 00 08 2a fd 9c aa de c6 5e 6d 5f 58 8f 55 a0 be 72 43 13 f5 e3 0b aa 59 2c 9b 34 85 43 02 8e 34 74 b5 06 a9 b3 00 02 c0 ff 01 12 00 7a a1 ad cc eb 40 1d df fb 8a ab 17 d7 58 03 1e 98 b4 ef 79 00 02 c0 01 ff 62 00 67 6c 89 b3 e8 5d e4 c0 bb 4a 76 43 da 38 d1 35 0a 7d 15 5a 7a a9 38 a8 dd 48 4f 8c 1e b7 54 a2 51 a5 0d 18 cd 4e 02 c7 15 b3 6e 7b d5 df a8 ee 55 ea 5e 19 1a fa d3 60 13 2c 6b 0c b2 46 bc b0 ac 59 af a2 49 5a 01 00 b6 4f 34 c4 51 59 19 fe fb 3b 2b 70 f9 d3 13 b7 13 48 8e 2c 11 6d 16 89 73 b4 b7 3b 00 02 c0 ff 01 12 00 7a a1 e4 b9 c3 88 99 17 9a 22 29 d2 03 59 07 15 74 3e 9a e5 00 02 c0 01 ff 32 00 d8 62 4a 8b a5 56 3e a2 50 75 e7 08 2e a4 4f b5 8a c9 5e cb 40 53 88 43 8c 53 ed 14 61 d5 69 c1 75 cf 8b 2d 8e 92 c2 13 2b 11 f4 ea 08 bd 37 80 c9 d2 20 0b 00 02 c0 ff fe 12 00 19 6e 9a 3d 95 2e 6f 12 1c f4 31 68 c2 df 06 31 91 0a ba b2 00 02 c0 fe ff 22 00 08 2a 3a 7b 0c 52 49 b1 3d a3 8b 7a 5a 83 1b 60 fe ab 06 01 b4 39 7a 9a 62 71 14 4e c7 c8 35 9a af 67 d2 89 00 02 c0 ff 01 12 00 7a a1 04 e6 a7 c8 99 6a 9f 35 f9 44 fe 13 f3 73 23 e8 2b 7e 00 02 c0 01 ff 22 00 ab 61 7b ad fe 14 3d a4 7a be bd 9c 43 ea 05 6c f6 7d 7d 5b d8 c0 56 cd 57 e8 dc 03 9e bf ca 7c c7 61 1a 10 00 02 c0 ff fe 12 00 19 6e e3 6e 28 c5 3b 23 4f 6e fb f7 9e dd f4 51 e7 f1 af 30 00 02 c0 fe ff 22 00 08 2a 58 c5 ca c9 9b 7d db a3 7a 42 e1 f3 c1 73 30 e6 2a 91 b3 d1 09 6c 1c a7 78 f2 47 99 81 b8 3c 27 de ee 00 02 c0 ff fe 12 00 19 6e f9 6e d3 4e 30 8d c6 97 8c d4 f5 1e dd f2 c0 6a d3 06 00 02 c0 fe ff 22 00 08 2a b0 42 60 64 c0 c8 87 6e 3a ab 34 1f f7 3f 43 d3 52 5a 7b 5f f6 2e a4 3e b0 21 51 57 96 6d 22 69 55 34 00 02 c0 ff 01 12 00 7a a1 f3 12 30 21 55 c8 c5 dd 62 3e 87 6f c9 a2 85 89 6e 75 00 02 c0 01 ff 62 00 67 6c 36 99 60 30 e0 88 3c 80 60 46 22 bf 8f ad 0f 87 53 8a 2b f7 b3 b8 b7 a7 9c b6 ba 43 5f 39 a7 70 5a 35 2d 83 b5 dd a1 22 81 94 08 16 46 ea ee af 2c 81 3b c4 3e df 7b 66 ac 80 f6 c5 8e 8e bb ec fc f3 d6 38 05 cb eb 27 9c b3 df 79 e9 1d bf 88 7e 14 6c 5f 66 62 50 27 19 d8 bb 44 17 b2 13 69 f6 a4 00 02 c0 ff 01 12 00 7a a1 d7 e3 5f 66 fc 09 47 08 45 fe 43 90 0c a7 15 93 c3 5d 00 02 c0 01 ff 32 00 d8 62 59 35 0c 12 49 36 3b a5 fa de 52 1e 8a 92 0d 69 33 d6 b0 14 cb cb e4 c2 c6 74 4e c5 0b 1e 97 d6 0e 88 62 d2 09 c0 f1 94 ed 38 a8 71 c2 3e 9b 22 4f 3c 00 02 c0 ff fe 12 00 19 6e 7e 94 d1 13 4a bd 7c 83 ea 80 f1 a8 d1 52 35 98 23 36 00 02 c0 fe ff 22 00 08 2a 1e c1 e0 42 6b cd f9 b7 9f d4 88 15 5d 19 a0 fd 1c cb 12 8f b5 cf 09 20 1c 02 e1 52 b2 ff 70 b4 a2 44 00 02 c0 ff fe 12 00 19 6e c0 81 82 7f 75 52 38 eb 93 c5 ae d0 27 d0 b6 4e 2e af 00 02 c0 fe ff 22 00 08 2a 65 14 56 77 6f 85 64 c0 23 66 31 ea 0e cf 45 32 e2 b5 af 40 1b 09 e4 4c 45 c9 8d b5 74 3e e8 b3 c2 e8 00 02 c0 ff 01 12 00 7a a1 65 f0 87 52 d4 03 3d b8 44 81 a8 c9 2a 0a 8c cb 98 ef 00 02 c0 01 ff 62 00 67 6c 63 bf 37 1f 0f 71 fc 3f 32 67 c7 49 5b c7 bf c7 eb bf 64 2d 8a 87 48 81 bf 46 04 4f 07 9e 6c 37 ec df f4 0b a3 0c 64 6d a1 e9 ed ba 6e 47 35 4c 9b 8c ca bb 3e 96 be 7d 56 51 2d ea 90 b4 43 42 02 51 4d ed 58 1c 1f 76 c5 fb 6e 76 7f 28 09 5c 2a ba e7 9d 2f b6 4f 6c 03 1b 94 59 3b 28 15 1a 86 8a 00 02 c0 ff 01 12 00 7a a1 2c 95 a2 f6 4c 56 f6 cc b6 23 29 fd 05 65 cb 78 bb be 00 02 c0 01 ff 32 00 d8 62 de e2 b6 3f 05 92 d5 8c 37 5a 16 d5 05 16 62 1a a8 b3 10 cd 4f 32 80 a7 69 f1 5d 94 36 3d e8 c3 00 41 34 7d f4 2b af 3f 5c 2a 24 58 14 f3 55 e7 44 9f 00 02 c0 ff 01 12 00 7a a1 05 f2 fa 47 69 d1 bf a8 28 57 fc 1d 80 ef 2f eb 00 85 00 02 c0 01 ff 22 00 ab 61 b5 d6 45 36 f8 6f f8 ca 6b 62 3f 66 69 c2 99 fc 0b a8 52 ba 64 f2 d7 99 a7 99 eb 72 04 e1 d1 51 f7 71 00 02 c0 ff fe 12 00 19 6e c1 0d fa 73 42 8c 7d 38 4b c1 f2 b6 da 51 d8 c1 f8 6a 00 02 c0 fe ff 22 00 08 2a 1f 1f ce aa 11 b5 bd 74 ac ef 98 96 77 9b c6 53 40 8f 6f 8e 2e b1 26 a3 7a 3b b6 2a a3 08 9e 78 26 bc 00 02 c0 ff 01 12 00 7a a1 92 0a 20 2f e4 2a d0 a1 b2 07 bd f6 7a 57 4f d2 b2 50 00 02 c0 01 ff 22 00 ab 61 98 ef f0 8c 34 47 1b 00 cb 07 05 5d 13 3b d4 44 9d c3 36 5d fb f5 0e cc 9c 01 0c da d4 10 b2 96 89 31 00 02 c0 ff fe 12 00 19 6e ea 6d bd e8 af fb 15 1f 87 ff c3 ee 58 97 6c 5a cb 9f 00 02 c0 fe ff 22 00 08 2a 40 2a 69 d4 25 46 bb 59 0d 34 75 47 a0 91 6c 2e d4 1e 7a 57 e8 95 15 7c 50 5d da 33 94 d8 2a 79 57 22 00 02 c0 ff 01 12 00 7a a1 43 db 54 8d 13 22 f8 62 eb 36 4f e7 c8 76 cf 5f bd 55 00 02 c0 01 ff 62 00 67 6c a3 52 91 a4 be 33 6f 86 88 38 96 01 78 ea 38 fa 19 30 86 33 b4 c0 f3 d2 8a 7a 05 d9 af fb 17 ea 9b a5 07 f1 ba 65 9d 83 49 88 8b 32 da cc e2 af 63 51 7f 00 b1 6a 7b 25 18 ca a3 82 a5 3e a0 2e 7c 9a 3e 05 ec cd e1 e3 ee d8 79 df e4 e0 f1 cb 02 f3 4e d5 8e 8c ed 17 8c 82 e1 f5 c1 e2 af 55 17 58 00 02 c0 ff 01 12 00 7a a1 8c 32 73 da 85 5d 6f d1 32 cf f4 48 06 0b a2 ac a9 30 00 02 c0 01 ff 32 00 d8 62 f4 bd 91 11 ca 66 dc de bf af 65 3b 7a c5 21 99 42 01 9e 8c d4 bd a7 c5 3b 9a e9 41 18 8c 9c ea 62 28 fa 83 93 61 4c 9d 1c 33 d3 3f 47 3a 5f bc 38 19 00 02 c0 ff fe 12 00 19 6e 8f 54 a1 ad 9f 45 5d cb 22 de ab 90 5e f4 97 13 8d ed 00 02 c0 fe ff 22 00 08 2a 8a eb 1a 5b ee 12 60 fd eb ca be 61 1b 64 a6 57 f5 5f 92 1c eb 39 b0 95 1d 28 b1 c3 6d 95 54 a2 cf 7c 00 02 c0 ff fe 12 00 19 6e 8f 52 81 b6 06 a9 b9 59 75 68 b2 9c 65 63 86 55 c0 1c 00 02 c0 fe ff 22 00 08 2a 10 d9 9b 3d 3e 42 e9 3e 64 20 b1 36 b3 0d dd 83 5f f9 35 f9 7d 08 e0 ee d9 12 16 41 d7 31 b2 5f 11 bc 00 02 c0 ff fe 12 00 19 6e 4a 42 1e 1c 6f 20 a6 ac 65 b7 ac 48 15 a7 8d c0 d3 71 00 02 c0 fe ff 22 00 08 2a 02 4c 52 d6 af 36 a3 1f 01 c8 3b d4 97 fd dc b9 be 71 64 c5 29 c7 ae 44 b8 ff fb 82 3b 68 59 08 6a 6f 00 02 c0 ff fe 12 00 19 6e 85 4d 84 21 eb c8 47 c1 63 ba cf c5 73 87 1c 54 5d c3 00 02 c0 fe ff 22 00 08 2a 34 bd e3 99 75 02 3b 55 83 db 6a c3 fc 49 b1 a7 8a 80 bb 15 c2 4c 65 0d 53 b2 33 47 bc 7e 2c 21 49 f2 00 02 c0 ff 01 12 00 7a a1 bf 81 13 e2 71 79 5a 5d 28 61 60 c0 1e d1 51 d9 32 05 00 02 c0 01 ff 62 00 67 6c 46 b1 40 0f 5c 7a db 02 7e 2e 1d c5 39 37 f3 ab 2c ee ae fa 69 d4 18 09 84 b4 95 f2 f0 ad 29 23 70 ba a6 49 d6 9b c0 fe 3f 9b 83 83 75 9b 28 73 6f e8 1f 9a 67 3c f2 37 33 83 cc ad 61 fb 76 4d de fa 16 33 68 15 85 e0 99 f9 ae d5 d4 25 c6 de 6a 0e b4 b5 ef 1d d6 56 40 e9 91 1f 1b e9 02 a1 ea 8a 00 02 c0 ff 01 12 00 7a a1 32 69 9a 88 af a2 ed 68 39 4f fe 8e d1 98 74 43 e8 8c 00 02 c0 01 ff 22 00 ab 61 24 21 12 1d d1 c6 6c ad 05
A partial answer, since nobody had other insights to offer: Your serial settings are correct, and your master telegrams are ended by a non-standard 16 byte CRC checksum. I found this with a modified CRC puzzle solver I wrote for other CRC Stackoverflow posts. The Docklight CRC specs are CRC:16,1021,0000,0000,No,No and your checksum is in Little Endian format (low significant byte first) at the end of the telegram. Here is the Docklight output including a test where I correctly re-created the first three master telegram checksums Trying CRC spec : CRC:16,1021,0000,0000,No,No (LittleEndian) Found it! Relevant sequence for checksum from startpos=1 to endpos=7 00 02 C0 FE FF 22 00 CRC spec: CRC:16,1021,0000,0000,No,No (LittleEndian) CRC result: 2A 08 (Integer = 10760) Use the Send button to send some predefined sequences... 30.08.2017 14:00:08.494 [TX] - 00 02 C0 FE FF 22 00 08 2A 30.08.2017 14:00:09.028 [TX] - 00 02 C0 FF FE 12 00 19 6E 30.08.2017 14:00:09.411 [TX] - 00 02 C0 FF 01 12 00 7A A1 I will improve this answer later. Knowing now that every message has this CRC checksum at the end, Docklight should be able to split the full transfer into its individual protoocol frames.
CRC-16 checksum is not matching for HDLC frames
I've a streaming HDLC data as follows: 00 CE DB B1 FB 94 BC 51 D8 87 CF FF FB FF FF FF FB FF FF F9 7E AE 79 3D C4 D6 7B DB BD 7E 7B DF B8 FE 7B D8 7A 0B 3D ED DD 5B 3D EC DF 17 FF FC FE F3 FF FF FD 7F FC BD BF 9D BC 6C FF 05 FE FD FF 33 FE 51 FE C3 FE 43 FE 73 FE F1 FE 4A DF 36 FF A8 9F AB 9E 95 1E 4E 85 23 03 E6 EC 7E E5 2A 14 FF FE 5E 31 DE 0A 4F 88 4F EF 2F 96 1F 82 7F A7 FF 93 87 F2 BF F2 DF DE DF C2 DF C2 BF 9B 5F CE DF AA BF EB 3F F4 DF 84 DF D7 3F D1 5F E7 5F 98 DF DF 3F A1 5F 98 BF A7 3F ED 5F C8 DF B0 DF FC BF ED 7E 3B CB DC 49 34 A0 I want to decode the data and get the IP frames from its payload. From various resources regarding HDLC framing I've tracked out frame delimiters (0x7E) and get the HDLC frames as follows (2 of those frames): Frame-1 In the original order as it is received : 7E AE 79 3D C4 D6 7B DB BD 7E In the reverse-byte order (as HDLC sends the least significant first): 7E 75 9E BC 23 6B DE DB BD 7E Frame-2 Original order: 7E E5 2A 14 FF FE 5E 31 DE 0A 4F 88 4F EF 2F 96 1F 82 7F A7 FF 93 87 F2 BF F2 DF DE DF C2 DF C2 BF 9B 5F CE DF AA BF EB 3F F4 DF 84 DF D7 3F D1 5F E7 5F 98 DF DF 3F A1 5F 98 BF A7 3F ED 5F C8 DF B0 DF FC BF ED 7E Reverse-byte order: 7E A7 54 28 FF 7F 7A 8C 7B 50 F2 11 F2 F7 F4 69 F8 41 FE E5 FF C9 E1 4F FD 4F FB 7B FB 43 FB 43 FD D9 FA 73 FB 55 FD D7 FC 2F FB 21 FB EB FC 8B FA E7 FA 19 FB FB FC 85 FA 19 FD E5 FC B7 FA 13 FB 0D FB 3F FD B7 7E But the problem is, the last 2 byte CRC (DB BD for Frame-1 and BF ED for Frame-2) is not matching for any of the frames. I've tried suggestions from many forums, of which these 2 were most relevant: https://www.lammertbies.nl/forum/viewtopic.php?t=607 Calculating FCS(CRC) for HDLC frame Please help.