diff --git a/server/README.md b/server/README.md
index efd3854..918b5aa 100644
--- a/server/README.md
+++ b/server/README.md
@@ -63,3 +63,13 @@ Source URL: http://updates-http.cdn-apple.com/2019FallSeed/mobileassets/061-2846
The cache server should then download the URL if it is not in the cache, and stream the results while downloading.
All in all, it seems like a really interesting caching API. More to come soon.
+
+## Configuration Plist
+
+The configuration plist which provides a lot of metadata about the caching process (such as whitelists, type mappings, and apparently public keys for iCloud data) is provided at the following URL:
+
+```text
+Configuration URL: http://suconfig.apple.com/resource/registration/v1/config.plist
+```
+
+The script in this directory (a [Dart](https://dart.dev/) script) called `download-config.dart` provides an example of decoding the plist part. A common occurence in the caching API is the use of this "signed plist" (unoffical name created by me) that appears to have a Apple signature around it.
diff --git a/server/config.plist b/server/config.plist
deleted file mode 100644
index a70eb9b..0000000
--- a/server/config.plist
+++ /dev/null
@@ -1,443 +0,0 @@
-MIJTBQYJKoZIhvcNAQcCoIJS9jCCUvICAQExDTALBglghkgBZQMEAgEwgkMeBgkq
-hkiG9w0BBwGggkMPBIJDCzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVU
-Ri04Ij8+CjwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJ
-U1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlM
-aXN0LTEuMC5kdGQiPgo8cGxpc3QgdmVyc2lvbj0iMS4wIj4KPGRpY3Q+Cgk8a2V5
-PmNlcnRpZmljYXRlVVJMPC9rZXk+Cgk8c3RyaW5nPmh0dHBzOi8vbGNkbi1yZWdp
-c3RyYXRpb24uYXBwbGUuY29tL3Jlc291cmNlL2NlcnQuY2VyPC9zdHJpbmc+Cgk8
-a2V5PmVzdGFibGlzaG1lbnRVUkw8L2tleT4KCTxzdHJpbmc+aHR0cHM6Ly9sY2Ru
-LXJlZ2lzdHJhdGlvbi5hcHBsZS5jb20vbGNkbi9zZXNzaW9uPC9zdHJpbmc+Cgk8
-a2V5PnJlZ2lzdHJhdGlvblVSTDwva2V5PgoJPHN0cmluZz5odHRwczovL2xjZG4t
-cmVnaXN0cmF0aW9uLmFwcGxlLmNvbS9sY2RuL3JlZ2lzdGVyPC9zdHJpbmc+Cgk8
-a2V5PmRlcmVnaXN0cmF0aW9uVVJMPC9rZXk+Cgk8c3RyaW5nPmh0dHBzOi8vbGNk
-bi1yZWdpc3RyYXRpb24uYXBwbGUuY29tL2xjZG4vZGVyZWdpc3Rlcjwvc3RyaW5n
-PgoJPGtleT5ibGFja0xpc3RVUkw8L2tleT4KCTxzdHJpbmc+aHR0cDovL3N1Y29u
-ZmlnLmFwcGxlLmNvbS9yZXNvdXJjZS9yZWdpc3RyYXRpb24vdjEvYmxhY2tsaXN0
-LnBsaXN0PC9zdHJpbmc+Cgk8a2V5PnN0YXRpc3RpY3NVUkw8L2tleT4KCTxzdHJp
-bmc+aHR0cHM6Ly94cC1jZG4uYXBwbGUuY29tL3JlcG9ydC8yL3hwX2Nkbl9yZWNl
-aXB0PC9zdHJpbmc+Cgk8a2V5PndoaXRlTGlzdGVkSG9zdHM8L2tleT4KCTxhcnJh
-eT4KCQk8c3RyaW5nPnN3Y2RuLmFwcGxlLmNvbTo4MDwvc3RyaW5nPgoJCTxzdHJp
-bmc+dmFsaWRhdGlvbi5pc3UuYXBwbGUuY29tOjgwPC9zdHJpbmc+CgkJPHN0cmlu
-Zz5hcHBsZG5sZC5hcHBsZS5jb206ODA8L3N0cmluZz4KCQk8c3RyaW5nPm9zY2Ru
-LmFwcGxlLmNvbTo4MDwvc3RyaW5nPgoJCTxzdHJpbmc+c3dkaXN0LmFwcGxlLmNv
-bTo0NDM8L3N0cmluZz4KCQk8c3RyaW5nPnN3ZG93bmxvYWQuYXBwbGUuY29tOjgw
-PC9zdHJpbmc+CgkJPHN0cmluZz5zd2Rvd25sb2FkLmFwcGxlLmNvbTo0NDM8L3N0
-cmluZz4KCQk8c3RyaW5nPmF1ZGlvY29udGVudGRvd25sb2FkLmFwcGxlLmNvbTo4
-MDwvc3RyaW5nPgoJCTxzdHJpbmc+YXVkaW9jb250ZW50ZG93bmxvYWQuYXBwbGUu
-Y29tOjQ0Mzwvc3RyaW5nPgoJCTxzdHJpbmc+ZGVpbW9zLmFwcGxlLmNvbTo4MDwv
-c3RyaW5nPgoJCTxzdHJpbmc+ZGVpbW9zMy5hcHBsZS5jb206ODA8L3N0cmluZz4K
-CQk8c3RyaW5nPmJhc2VqdW1wZXIuYXBwbGUuY29tOjgwPC9zdHJpbmc+CgkJPHN0
-cmluZz5iYXNlanVtcGVyLmFwcGxlLmNvbTo0NDM8L3N0cmluZz4KCQk8c3RyaW5n
-PnBsYXlncm91bmRzLWFzc2V0cy1jZG4uYXBwbGUuY29tOjQ0Mzwvc3RyaW5nPgoJ
-CTxzdHJpbmc+cGxheWdyb3VuZHMtY2RuLmFwcGxlLmNvbTo0NDM8L3N0cmluZz4K
-CQk8c3RyaW5nPnVwZGF0ZXMuY2RuLWFwcGxlLmNvbTo0NDM8L3N0cmluZz4KCQk8
-c3RyaW5nPnVwZGF0ZXMtaHR0cC5jZG4tYXBwbGUuY29tOjgwPC9zdHJpbmc+CgkJ
-PHN0cmluZz5zeWx2YW4uYXBwbGUuY29tOjgwPC9zdHJpbmc+CgkJPHN0cmluZz5z
-eWx2YW4uYXBwbGUuY29tOjQ0Mzwvc3RyaW5nPgoJCTxzdHJpbmc+ZGV2aW1hZ2Vz
-LWNkbi5hcHBsZS5jb206ODA8L3N0cmluZz4KCQk8c3RyaW5nPmRldmltYWdlcy1j
-ZG4uYXBwbGUuY29tOjQ0Mzwvc3RyaW5nPgoJCTxzdHJpbmc+ZG93bmxvYWQuZGV2
-ZWxvcGVyLmFwcGxlLmNvbTo4MDwvc3RyaW5nPgoJCTxzdHJpbmc+ZG93bmxvYWQu
-ZGV2ZWxvcGVyLmFwcGxlLmNvbTo0NDM8L3N0cmluZz4KCTwvYXJyYXk+Cgk8a2V5
-PndoaXRlTGlzdGVkRG9tYWluczwva2V5PgoJPGFycmF5PgoJCTxzdHJpbmc+cGhv
-Ym9zLmFwcGxlLmNvbTo4MDwvc3RyaW5nPgoJCTxzdHJpbmc+aXR1bmVzLmFwcGxl
-LmNvbTo4MDwvc3RyaW5nPgoJCTxzdHJpbmc+aXR1bmVzLmFwcGxlLmNvbTo0NDM8
-L3N0cmluZz4KCQk8c3RyaW5nPmFzc2V0cy5pdHVuZXMuY29tOjgwPC9zdHJpbmc+
-CgkJPHN0cmluZz5hc3NldHMuaXR1bmVzLmNvbTo0NDM8L3N0cmluZz4KCTwvYXJy
-YXk+Cgk8a2V5PmFzc2V0VHlwZU1hcDwva2V5PgoJPGFycmF5PgoJCTxkaWN0PgoJ
-CQk8a2V5Pmhvc3Q8L2tleT4KCQkJPGFycmF5PgoJCQkJPHN0cmluZz5zd2Rpc3Qu
-YXBwbGUuY29tPC9zdHJpbmc+CgkJCTwvYXJyYXk+CgkJCTxrZXk+bWFwPC9rZXk+
-CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+dHlwZTwva2V5PgoJCQkJ
-CTxzdHJpbmc+c3dkaXN0PC9zdHJpbmc+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+
-CgkJPC9kaWN0PgoJCTxkaWN0PgoJCQk8a2V5Pmhvc3Q8L2tleT4KCQkJPGFycmF5
-PgoJCQkJPHN0cmluZz5zd2Rvd25sb2FkLmFwcGxlLmNvbTwvc3RyaW5nPgoJCQk8
-L2FycmF5PgoJCQk8a2V5Pm1hcDwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4K
-CQkJCQk8a2V5PnR5cGU8L2tleT4KCQkJCQk8c3RyaW5nPnN3ZG93bmxvYWQ8L3N0
-cmluZz4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGRpY3Q+
-CgkJCTxrZXk+aG9zdDwva2V5PgoJCQk8YXJyYXk+CgkJCQk8c3RyaW5nPnN3Y2Ru
-LmFwcGxlLmNvbTwvc3RyaW5nPgoJCQk8L2FycmF5PgoJCQk8a2V5Pm1hcDwva2V5
-PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PnR5cGU8L2tleT4KCQkJ
-CQk8c3RyaW5nPnN3Y2RuPC9zdHJpbmc+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+
-CgkJPC9kaWN0PgoJCTxkaWN0PgoJCQk8a2V5Pmhvc3Q8L2tleT4KCQkJPGFycmF5
-PgoJCQkJPHN0cmluZz5vc2Nkbi5hcHBsZS5jb208L3N0cmluZz4KCQkJPC9hcnJh
-eT4KCQkJPGtleT5tYXA8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJ
-PGtleT50eXBlPC9rZXk+CgkJCQkJPHN0cmluZz5vc2Nkbjwvc3RyaW5nPgoJCQkJ
-PC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8ZGljdD4KCQkJPGtleT5o
-b3N0PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxzdHJpbmc+dmFsaWRhdGlvbi5pc3Uu
-YXBwbGUuY29tPC9zdHJpbmc+CgkJCTwvYXJyYXk+CgkJCTxrZXk+bWFwPC9rZXk+
-CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+dHlwZTwva2V5PgoJCQkJ
-CTxzdHJpbmc+dmFsaWRhdGlvbjwvc3RyaW5nPgoJCQkJPC9kaWN0PgoJCQk8L2Fy
-cmF5PgoJCTwvZGljdD4KCQk8ZGljdD4KCQkJPGtleT5ob3N0PC9rZXk+CgkJCTxh
-cnJheT4KCQkJCTxzdHJpbmc+YXBwbGRubGQuYXBwbGUuY29tPC9zdHJpbmc+CgkJ
-CTwvYXJyYXk+CgkJCTxrZXk+bWFwPC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0
-PgoJCQkJCTxrZXk+dHlwZTwva2V5PgoJCQkJCTxzdHJpbmc+YXBwbGRubGQ8L3N0
-cmluZz4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGRpY3Q+
-CgkJCTxrZXk+aG9zdDwva2V5PgoJCQk8YXJyYXk+CgkJCQk8c3RyaW5nPmJhc2Vq
-dW1wZXIuYXBwbGUuY29tPC9zdHJpbmc+CgkJCTwvYXJyYXk+CgkJCTxrZXk+bWFw
-PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+dHlwZTwva2V5
-PgoJCQkJCTxzdHJpbmc+YmFzZWp1bXBlcjwvc3RyaW5nPgoJCQkJPC9kaWN0PgoJ
-CQk8L2FycmF5PgoJCTwvZGljdD4KCQk8ZGljdD4KCQkJPGtleT5ob3N0PC9rZXk+
-CgkJCTxhcnJheT4KCQkJCTxzdHJpbmc+cGxheWdyb3VuZHMtYXNzZXRzLWNkbi5h
-cHBsZS5jb208L3N0cmluZz4KCQkJCTxzdHJpbmc+cGxheWdyb3VuZHMtY2RuLmFw
-cGxlLmNvbTwvc3RyaW5nPgoJCQk8L2FycmF5PgoJCQk8a2V5Pm1hcDwva2V5PgoJ
-CQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PnR5cGU8L2tleT4KCQkJCQk8
-c3RyaW5nPnBsYXlncm91bmRzPC9zdHJpbmc+CgkJCQk8L2RpY3Q+CgkJCTwvYXJy
-YXk+CgkJPC9kaWN0PgoJCTxkaWN0PgoJCQk8a2V5Pmhvc3Q8L2tleT4KCQkJPGFy
-cmF5PgoJCQkJPHN0cmluZz5zeWx2YW4uYXBwbGUuY29tPC9zdHJpbmc+CgkJCTwv
-YXJyYXk+CgkJCTxrZXk+bWFwPC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJ
-CQkJCTxrZXk+dHlwZTwva2V5PgoJCQkJCTxzdHJpbmc+c3lsdmFuPC9zdHJpbmc+
-CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxkaWN0PgoJCQk8
-a2V5Pmhvc3Q8L2tleT4KCQkJPGFycmF5PgoJCQkJPHN0cmluZz5kZXZpbWFnZXMt
-Y2RuLmFwcGxlLmNvbTwvc3RyaW5nPgoJCQkJPHN0cmluZz5kb3dubG9hZC5kZXZl
-bG9wZXIuYXBwbGUuY29tPC9zdHJpbmc+CgkJCTwvYXJyYXk+CgkJCTxrZXk+bWFw
-PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+dHlwZTwva2V5
-PgoJCQkJCTxzdHJpbmc+ZGV2PC9zdHJpbmc+CgkJCQk8L2RpY3Q+CgkJCTwvYXJy
-YXk+CgkJPC9kaWN0PgoJCTxkaWN0PgoJCQk8a2V5Pmhvc3Q8L2tleT4KCQkJPGFy
-cmF5PgoJCQkJPHN0cmluZz5hdWRpb2NvbnRlbnRkb3dubG9hZC5hcHBsZS5jb208
-L3N0cmluZz4KCQkJPC9hcnJheT4KCQkJPGtleT5tYXA8L2tleT4KCQkJPGFycmF5
-PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT50eXBlPC9rZXk+CgkJCQkJPHN0cmluZz5n
-Ym5kPC9zdHJpbmc+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJ
-CTxkaWN0PgoJCQk8a2V5Pmhvc3Q8L2tleT4KCQkJPGFycmF5PgoJCQkJPHN0cmlu
-Zz5vZHIuYXNzZXRzLml0dW5lcy5jb208L3N0cmluZz4KCQkJCTxzdHJpbmc+b2Ry
-Lml0dW5lcy5hcHBsZS5jb208L3N0cmluZz4KCQkJPC9hcnJheT4KCQkJPGtleT5t
-YXA8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT50eXBlPC9r
-ZXk+CgkJCQkJPHN0cmluZz5vZHI8L3N0cmluZz4KCQkJCTwvZGljdD4KCQkJPC9h
-cnJheT4KCQk8L2RpY3Q+CgkJPGRpY3Q+CgkJCTxrZXk+aG9zdDwva2V5PgoJCQk8
-YXJyYXk+CgkJCQk8c3RyaW5nPnAxLXUuaXR1bmVzLmFwcGxlLmNvbTwvc3RyaW5n
-PgoJCQkJPHN0cmluZz5wMi11Lml0dW5lcy5hcHBsZS5jb208L3N0cmluZz4KCQkJ
-CTxzdHJpbmc+ZGVpbW9zLmFwcGxlLmNvbTwvc3RyaW5nPgoJCQkJPHN0cmluZz5k
-ZWltb3MzLmFwcGxlLmNvbTwvc3RyaW5nPgoJCQkJPHN0cmluZz5pdHVuZXN1LmFz
-c2V0cy5pdHVuZXMuY29tPC9zdHJpbmc+CgkJCQk8c3RyaW5nPml0dW5lc3UuaXR1
-bmVzLmFwcGxlLmNvbTwvc3RyaW5nPgoJCQkJPHN0cmluZz5pdHVuZXN1LWFzc2V0
-cy5pdHVuZXMuYXBwbGUuY29tPC9zdHJpbmc+CgkJCTwvYXJyYXk+CgkJCTxrZXk+
-bWFwPC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+dHlwZTwv
-a2V5PgoJCQkJCTxzdHJpbmc+aXR1bmVzdTwvc3RyaW5nPgoJCQkJPC9kaWN0PgoJ
-CQk8L2FycmF5PgoJCTwvZGljdD4KCQk8ZGljdD4KCQkJPGtleT5ob3N0PC9rZXk+
-CgkJCTxhcnJheT4KCQkJCTxzdHJpbmc+Ki5waG9ib3MuYXBwbGUuY29tPC9zdHJp
-bmc+CgkJCQk8c3RyaW5nPioudi5waG9ib3MuYXBwbGUuY29tPC9zdHJpbmc+CgkJ
-CQk8c3RyaW5nPiouYXNzZXRzLml0dW5lcy5jb208L3N0cmluZz4KCQkJCTxzdHJp
-bmc+Ym9va3MuaXR1bmVzLmFwcGxlLmNvbTwvc3RyaW5nPgoJCQkJPHN0cmluZz5p
-b3NhcHBzLml0dW5lcy5hcHBsZS5jb208L3N0cmluZz4KCQkJCTxzdHJpbmc+b3N4
-YXBwcy5pdHVuZXMuYXBwbGUuY29tPC9zdHJpbmc+CgkJCTwvYXJyYXk+CgkJCTxr
-ZXk+bWFwPC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+cGF0
-aDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHN0cmluZz4vKi9QdXJwbGUqLyou
-emlwPC9zdHJpbmc+CgkJCQkJCTxzdHJpbmc+LyovUHVycGxlKi8qLnBrZzwvc3Ry
-aW5nPgoJCQkJCQk8c3RyaW5nPi8qL1B1cnBsZSovKi5pcGE8L3N0cmluZz4KCQkJ
-CQk8L2FycmF5PgoJCQkJCTxrZXk+dHlwZTwva2V5PgoJCQkJCTxzdHJpbmc+QXBw
-czwvc3RyaW5nPgoJCQkJPC9kaWN0PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5wYXRo
-PC9rZXk+CgkJCQkJPGFycmF5PgoJCQkJCQk8c3RyaW5nPi8qL1B1YmxpY2F0aW9u
-Ki8qPC9zdHJpbmc+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PnR5cGU8L2tleT4K
-CQkJCQk8c3RyaW5nPmlCb29rczwvc3RyaW5nPgoJCQkJPC9kaWN0PgoJCQkJPGRp
-Y3Q+CgkJCQkJPGtleT5wYXRoPC9rZXk+CgkJCQkJPGFycmF5PgoJCQkJCQk8c3Ry
-aW5nPi8qL1ZpZGVvLypmLm00djwvc3RyaW5nPgoJCQkJCQk8c3RyaW5nPi8qL1Zp
-ZGVvLypmLm1vdjwvc3RyaW5nPgoJCQkJCTwvYXJyYXk+CgkJCQkJPGtleT50eXBl
-PC9rZXk+CgkJCQkJPHN0cmluZz5Nb3ZpZXM8L3N0cmluZz4KCQkJCTwvZGljdD4K
-CQkJCTxkaWN0PgoJCQkJCTxrZXk+cGF0aDwva2V5PgoJCQkJCTxhcnJheT4KCQkJ
-CQkJPHN0cmluZz4vKi9GZWF0dXJlcy8qLm00cDwvc3RyaW5nPgoJCQkJCQk8c3Ry
-aW5nPi8qL0ZlYXR1cmVzLyoubTRhPC9zdHJpbmc+CgkJCQkJCTxzdHJpbmc+Lyov
-RmVhdHVyZXMvKi5tcDQ8L3N0cmluZz4KCQkJCQkJPHN0cmluZz4vKi9NdXNpYy8q
-Lm00cDwvc3RyaW5nPgoJCQkJCQk8c3RyaW5nPi8qL011c2ljLyoubTRhPC9zdHJp
-bmc+CgkJCQkJCTxzdHJpbmc+LyovTXVzaWMvKi5tcDQ8L3N0cmluZz4KCQkJCQk8
-L2FycmF5PgoJCQkJCTxrZXk+dHlwZTwva2V5PgoJCQkJCTxzdHJpbmc+U29uZ3M8
-L3N0cmluZz4KCQkJCTwvZGljdD4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+cGF0aDwv
-a2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHN0cmluZz4vKi9Db2JhbHQqPC9zdHJp
-bmc+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PnR5cGU8L2tleT4KCQkJCQk8c3Ry
-aW5nPml0dW5lc3U8L3N0cmluZz4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8
-L2RpY3Q+CgkJPGRpY3Q+CgkJCTxrZXk+aG9zdDwva2V5PgoJCQk8YXJyYXk+CgkJ
-CQk8c3RyaW5nPio8L3N0cmluZz4KCQkJPC9hcnJheT4KCQkJPGtleT5tYXA8L2tl
-eT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT50eXBlPC9rZXk+CgkJ
-CQkJPHN0cmluZz5pY2xvdWQ8L3N0cmluZz4KCQkJCQk8a2V5Pm5hbWVzcGFjZTwv
-a2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHN0cmluZz5pY2xvdWQ8L3N0cmluZz4K
-CQkJCQk8L2FycmF5PgoJCQkJCTxrZXk+cGF0aDwva2V5PgoJCQkJCTxhcnJheT4K
-CQkJCQkJPHN0cmluZz5uL2E8L3N0cmluZz4KCQkJCQk8L2FycmF5PgoJCQkJPC9k
-aWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCTwvYXJyYXk+Cgk8a2V5Pm1lZGlh
-VHlwZU1hcDwva2V5PgoJPGFycmF5PgoJCTxkaWN0PgoJCQk8a2V5Pm5hbWVzcGFj
-ZTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8c3RyaW5nPmljbG91ZDwvc3RyaW5nPgoJ
-CQk8L2FycmF5PgoJCQk8a2V5PnBhdGg8L2tleT4KCQkJPGFycmF5PgoJCQkJPHN0
-cmluZz5uL2E8L3N0cmluZz4KCQkJPC9hcnJheT4KCQkJPGtleT50eXBlPC9rZXk+
-CgkJCTxzdHJpbmc+aUNsb3VkPC9zdHJpbmc+CgkJPC9kaWN0PgoJCTxkaWN0PgoJ
-CQk8a2V5PnBhdGg8L2tleT4KCQkJPGFycmF5PgoJCQkJPHN0cmluZz4vKi9Db2Jh
-bHQqPC9zdHJpbmc+CgkJCQk8c3RyaW5nPi9XZWJPYmplY3RzL0NvcmUud29hL0Rv
-d25sb2FkKjwvc3RyaW5nPgoJCQkJPHN0cmluZz4vV2ViT2JqZWN0cy9Db3JlLndv
-YS9GZWVkKjwvc3RyaW5nPgoJCQkJPHN0cmluZz4vV2ViT2JqZWN0cy9Db3JlLndv
-YS9TdWJzY3JpcHRpb24qPC9zdHJpbmc+CgkJCTwvYXJyYXk+CgkJCTxrZXk+dHlw
-ZTwva2V5PgoJCQk8c3RyaW5nPmlUdW5lcyBVPC9zdHJpbmc+CgkJPC9kaWN0PgoJ
-CTxkaWN0PgoJCQk8a2V5PnBhdGg8L2tleT4KCQkJPGFycmF5PgoJCQkJPHN0cmlu
-Zz4qLmVwdWI8L3N0cmluZz4KCQkJCTxzdHJpbmc+Ki5pYm9va3M8L3N0cmluZz4K
-CQkJPC9hcnJheT4KCQkJPGtleT50eXBlPC9rZXk+CgkJCTxzdHJpbmc+Qm9va3M8
-L3N0cmluZz4KCQk8L2RpY3Q+CgkJPGRpY3Q+CgkJCTxrZXk+cGF0aDwva2V5PgoJ
-CQk8YXJyYXk+CgkJCQk8c3RyaW5nPipbYUFdcHBsZVt0VF1bdlZdKjwvc3RyaW5n
-PgoJCQkJPHN0cmluZz4qdHZbb09dW3NTXSo8L3N0cmluZz4KCQkJCTxzdHJpbmc+
-Ki9WaWRlb3MvKi5bbU1dW29PXVt2Vl08L3N0cmluZz4KCQkJPC9hcnJheT4KCQkJ
-PGtleT50eXBlPC9rZXk+CgkJCTxzdHJpbmc+QXBwbGUgVFYgU29mdHdhcmU8L3N0
-cmluZz4KCQk8L2RpY3Q+CgkJPGRpY3Q+CgkJCTxrZXk+cGF0aDwva2V5PgoJCQk8
-YXJyYXk+CgkJCQk8c3RyaW5nPiouaXBhPC9zdHJpbmc+CgkJCQk8c3RyaW5nPiou
-aXBkPC9zdHJpbmc+CgkJCQk8c3RyaW5nPiouaXBzdzwvc3RyaW5nPgoJCQkJPHN0
-cmluZz4qLmFzc2V0cGFjazwvc3RyaW5nPgoJCQkJPHN0cmluZz4vaW9zKjwvc3Ry
-aW5nPgoJCQkJPHN0cmluZz4vaU9TKjwvc3RyaW5nPgoJCQk8L2FycmF5PgoJCQk8
-a2V5PnR5cGU8L2tleT4KCQkJPHN0cmluZz5pT1MgU29mdHdhcmU8L3N0cmluZz4K
-CQk8L2RpY3Q+CgkJPGRpY3Q+CgkJCTxrZXk+cGF0aDwva2V5PgoJCQk8YXJyYXk+
-CgkJCQk8c3RyaW5nPioucGtnPC9zdHJpbmc+CgkJCQk8c3RyaW5nPiouZG1nPC9z
-dHJpbmc+CgkJCTwvYXJyYXk+CgkJCTxrZXk+dHlwZTwva2V5PgoJCQk8c3RyaW5n
-Pk1hYyBTb2Z0d2FyZTwvc3RyaW5nPgoJCTwvZGljdD4KCQk8ZGljdD4KCQkJPGtl
-eT5wYXRoPC9rZXk+CgkJCTxhcnJheT4KCQkJCTxzdHJpbmc+Ki5tNHY8L3N0cmlu
-Zz4KCQkJCTxzdHJpbmc+Ki5tb3Y8L3N0cmluZz4KCQkJPC9hcnJheT4KCQkJPGtl
-eT50eXBlPC9rZXk+CgkJCTxzdHJpbmc+TW92aWVzPC9zdHJpbmc+CgkJPC9kaWN0
-PgoJCTxkaWN0PgoJCQk8a2V5PnBhdGg8L2tleT4KCQkJPGFycmF5PgoJCQkJPHN0
-cmluZz4qLm00cDwvc3RyaW5nPgoJCQkJPHN0cmluZz4qLm00YTwvc3RyaW5nPgoJ
-CQkJPHN0cmluZz4qLm1wNDwvc3RyaW5nPgoJCQk8L2FycmF5PgoJCQk8a2V5PnR5
-cGU8L2tleT4KCQkJPHN0cmluZz5NdXNpYzwvc3RyaW5nPgoJCTwvZGljdD4KCQk8
-ZGljdD4KCQkJPGtleT50eXBlPC9rZXk+CgkJCTxzdHJpbmc+T3RoZXI8L3N0cmlu
-Zz4KCQk8L2RpY3Q+Cgk8L2FycmF5PgoJPGtleT5tZWRpYVR5cGVPcmRlcjwva2V5
-PgoJPGFycmF5PgoJCTxzdHJpbmc+TWFjIFNvZnR3YXJlPC9zdHJpbmc+CgkJPHN0
-cmluZz5pT1MgU29mdHdhcmU8L3N0cmluZz4KCQk8c3RyaW5nPkFwcGxlIFRWIFNv
-ZnR3YXJlPC9zdHJpbmc+CgkJPHN0cmluZz5pQ2xvdWQ8L3N0cmluZz4KCQk8c3Ry
-aW5nPkJvb2tzPC9zdHJpbmc+CgkJPHN0cmluZz5pVHVuZXMgVTwvc3RyaW5nPgoJ
-CTxzdHJpbmc+TW92aWVzPC9zdHJpbmc+CgkJPHN0cmluZz5NdXNpYzwvc3RyaW5n
-PgoJCTxzdHJpbmc+T3RoZXI8L3N0cmluZz4KCTwvYXJyYXk+Cgk8a2V5Pm1lZGlh
-VHlwZVN0cmluZ3M8L2tleT4KCTxkaWN0PgoJCTxrZXk+ZGU8L2tleT4KCQk8ZGlj
-dD4KCQkJPGtleT5BcHBsZSBUViBTb2Z0d2FyZTwva2V5PgoJCQk8c3RyaW5nPkFw
-cGxlIFRWLVNvZnR3YXJlPC9zdHJpbmc+CgkJCTxrZXk+Qm9va3M8L2tleT4KCQkJ
-PHN0cmluZz5Cw7xjaGVyPC9zdHJpbmc+CgkJCTxrZXk+aUNsb3VkPC9rZXk+CgkJ
-CTxzdHJpbmc+aUNsb3VkPC9zdHJpbmc+CgkJCTxrZXk+aU9TIFNvZnR3YXJlPC9r
-ZXk+CgkJCTxzdHJpbmc+aU9TLVNvZnR3YXJlPC9zdHJpbmc+CgkJCTxrZXk+aVR1
-bmVzIFU8L2tleT4KCQkJPHN0cmluZz5pVHVuZXMgVTwvc3RyaW5nPgoJCQk8a2V5
-Pk1hYyBTb2Z0d2FyZTwva2V5PgoJCQk8c3RyaW5nPk1hYy1Tb2Z0d2FyZTwvc3Ry
-aW5nPgoJCQk8a2V5Pk1vdmllczwva2V5PgoJCQk8c3RyaW5nPkZpbG1lPC9zdHJp
-bmc+CgkJCTxrZXk+TXVzaWM8L2tleT4KCQkJPHN0cmluZz5NdXNpazwvc3RyaW5n
-PgoJCQk8a2V5Pk90aGVyPC9rZXk+CgkJCTxzdHJpbmc+QW5kZXJlczwvc3RyaW5n
-PgoJCTwvZGljdD4KCQk8a2V5PmVuPC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+QXBw
-bGUgVFYgU29mdHdhcmU8L2tleT4KCQkJPHN0cmluZz5BcHBsZSBUViBTb2Z0d2Fy
-ZTwvc3RyaW5nPgoJCQk8a2V5PkJvb2tzPC9rZXk+CgkJCTxzdHJpbmc+Qm9va3M8
-L3N0cmluZz4KCQkJPGtleT5pQ2xvdWQ8L2tleT4KCQkJPHN0cmluZz5pQ2xvdWQ8
-L3N0cmluZz4KCQkJPGtleT5pT1MgU29mdHdhcmU8L2tleT4KCQkJPHN0cmluZz5p
-T1MgU29mdHdhcmU8L3N0cmluZz4KCQkJPGtleT5pVHVuZXMgVTwva2V5PgoJCQk8
-c3RyaW5nPmlUdW5lcyBVPC9zdHJpbmc+CgkJCTxrZXk+TWFjIFNvZnR3YXJlPC9r
-ZXk+CgkJCTxzdHJpbmc+TWFjIFNvZnR3YXJlPC9zdHJpbmc+CgkJCTxrZXk+TW92
-aWVzPC9rZXk+CgkJCTxzdHJpbmc+TW92aWVzPC9zdHJpbmc+CgkJCTxrZXk+TXVz
-aWM8L2tleT4KCQkJPHN0cmluZz5NdXNpYzwvc3RyaW5nPgoJCQk8a2V5Pk90aGVy
-PC9rZXk+CgkJCTxzdHJpbmc+T3RoZXI8L3N0cmluZz4KCQk8L2RpY3Q+CgkJPGtl
-eT5lczwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PkFwcGxlIFRWIFNvZnR3YXJlPC9r
-ZXk+CgkJCTxzdHJpbmc+U29mdHdhcmUgQXBwbGUgVFY8L3N0cmluZz4KCQkJPGtl
-eT5Cb29rczwva2V5PgoJCQk8c3RyaW5nPkxpYnJvczwvc3RyaW5nPgoJCQk8a2V5
-PmlDbG91ZDwva2V5PgoJCQk8c3RyaW5nPmlDbG91ZDwvc3RyaW5nPgoJCQk8a2V5
-PmlPUyBTb2Z0d2FyZTwva2V5PgoJCQk8c3RyaW5nPlNvZnR3YXJlIGlPUzwvc3Ry
-aW5nPgoJCQk8a2V5PmlUdW5lcyBVPC9rZXk+CgkJCTxzdHJpbmc+aVR1bmVzIFU8
-L3N0cmluZz4KCQkJPGtleT5NYWMgU29mdHdhcmU8L2tleT4KCQkJPHN0cmluZz5T
-b2Z0d2FyZSBNYWM8L3N0cmluZz4KCQkJPGtleT5Nb3ZpZXM8L2tleT4KCQkJPHN0
-cmluZz5QZWzDrWN1bGFzPC9zdHJpbmc+CgkJCTxrZXk+TXVzaWM8L2tleT4KCQkJ
-PHN0cmluZz5Nw7pzaWNhPC9zdHJpbmc+CgkJCTxrZXk+T3RoZXI8L2tleT4KCQkJ
-PHN0cmluZz5PdHJvczwvc3RyaW5nPgoJCTwvZGljdD4KCQk8a2V5PmZyPC9rZXk+
-CgkJPGRpY3Q+CgkJCTxrZXk+QXBwbGUgVFYgU29mdHdhcmU8L2tleT4KCQkJPHN0
-cmluZz5Mb2dpY2llbHMgQXBwbGUgVFY8L3N0cmluZz4KCQkJPGtleT5Cb29rczwv
-a2V5PgoJCQk8c3RyaW5nPkxpdnJlczwvc3RyaW5nPgoJCQk8a2V5PmlDbG91ZDwv
-a2V5PgoJCQk8c3RyaW5nPmlDbG91ZDwvc3RyaW5nPgoJCQk8a2V5PmlPUyBTb2Z0
-d2FyZTwva2V5PgoJCQk8c3RyaW5nPkxvZ2ljaWVscyBpT1M8L3N0cmluZz4KCQkJ
-PGtleT5pVHVuZXMgVTwva2V5PgoJCQk8c3RyaW5nPmlUdW5lcyBVPC9zdHJpbmc+
-CgkJCTxrZXk+TWFjIFNvZnR3YXJlPC9rZXk+CgkJCTxzdHJpbmc+TG9naWNpZWxz
-IE1hYzwvc3RyaW5nPgoJCQk8a2V5Pk1vdmllczwva2V5PgoJCQk8c3RyaW5nPkZp
-bG1zPC9zdHJpbmc+CgkJCTxrZXk+TXVzaWM8L2tleT4KCQkJPHN0cmluZz5NdXNp
-cXVlPC9zdHJpbmc+CgkJCTxrZXk+T3RoZXI8L2tleT4KCQkJPHN0cmluZz5BdXRy
-ZXM8L3N0cmluZz4KCQk8L2RpY3Q+CgkJPGtleT5pdDwva2V5PgoJCTxkaWN0PgoJ
-CQk8a2V5PkFwcGxlIFRWIFNvZnR3YXJlPC9rZXk+CgkJCTxzdHJpbmc+U29mdHdh
-cmUgQXBwbGUgVFY8L3N0cmluZz4KCQkJPGtleT5Cb29rczwva2V5PgoJCQk8c3Ry
-aW5nPkxpYnJpPC9zdHJpbmc+CgkJCTxrZXk+aUNsb3VkPC9rZXk+CgkJCTxzdHJp
-bmc+aUNsb3VkPC9zdHJpbmc+CgkJCTxrZXk+aU9TIFNvZnR3YXJlPC9rZXk+CgkJ
-CTxzdHJpbmc+U29mdHdhcmUgaU9TPC9zdHJpbmc+CgkJCTxrZXk+aVR1bmVzIFU8
-L2tleT4KCQkJPHN0cmluZz5pVHVuZXMgVTwvc3RyaW5nPgoJCQk8a2V5Pk1hYyBT
-b2Z0d2FyZTwva2V5PgoJCQk8c3RyaW5nPlNvZnR3YXJlIE1hYzwvc3RyaW5nPgoJ
-CQk8a2V5Pk1vdmllczwva2V5PgoJCQk8c3RyaW5nPkZpbG08L3N0cmluZz4KCQkJ
-PGtleT5NdXNpYzwva2V5PgoJCQk8c3RyaW5nPk11c2ljYTwvc3RyaW5nPgoJCQk8
-a2V5Pk90aGVyPC9rZXk+CgkJCTxzdHJpbmc+QWx0cm88L3N0cmluZz4KCQk8L2Rp
-Y3Q+CgkJPGtleT5qYTwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PkFwcGxlIFRWIFNv
-ZnR3YXJlPC9rZXk+CgkJCTxzdHJpbmc+QXBwbGUgVFYg44K944OV44OI44Km44Kn
-44KiPC9zdHJpbmc+CgkJCTxrZXk+Qm9va3M8L2tleT4KCQkJPHN0cmluZz7jg5bj
-g4Pjgq88L3N0cmluZz4KCQkJPGtleT5pQ2xvdWQ8L2tleT4KCQkJPHN0cmluZz5p
-Q2xvdWQ8L3N0cmluZz4KCQkJPGtleT5pT1MgU29mdHdhcmU8L2tleT4KCQkJPHN0
-cmluZz5pT1Mg44K944OV44OI44Km44Kn44KiPC9zdHJpbmc+CgkJCTxrZXk+aVR1
-bmVzIFU8L2tleT4KCQkJPHN0cmluZz5pVHVuZXMgVTwvc3RyaW5nPgoJCQk8a2V5
-Pk1hYyBTb2Z0d2FyZTwva2V5PgoJCQk8c3RyaW5nPk1hYyDjgr3jg5Xjg4jjgqbj
-gqfjgqI8L3N0cmluZz4KCQkJPGtleT5Nb3ZpZXM8L2tleT4KCQkJPHN0cmluZz7j
-g6Djg7zjg5Pjg7w8L3N0cmluZz4KCQkJPGtleT5NdXNpYzwva2V5PgoJCQk8c3Ry
-aW5nPuODn+ODpeODvOOCuOODg+OCrzwvc3RyaW5nPgoJCQk8a2V5Pk90aGVyPC9r
-ZXk+CgkJCTxzdHJpbmc+44Gd44Gu5LuWPC9zdHJpbmc+CgkJPC9kaWN0PgoJCTxr
-ZXk+a288L2tleT4KCQk8ZGljdD4KCQkJPGtleT5BcHBsZSBUViBTb2Z0d2FyZTwv
-a2V5PgoJCQk8c3RyaW5nPkFwcGxlIFRWIOyGjO2UhO2KuOybqOyWtDwvc3RyaW5n
-PgoJCQk8a2V5PkJvb2tzPC9rZXk+CgkJCTxzdHJpbmc+7LGFPC9zdHJpbmc+CgkJ
-CTxrZXk+aUNsb3VkPC9rZXk+CgkJCTxzdHJpbmc+aUNsb3VkPC9zdHJpbmc+CgkJ
-CTxrZXk+aU9TIFNvZnR3YXJlPC9rZXk+CgkJCTxzdHJpbmc+aU9TIOyGjO2UhO2K
-uOybqOyWtDwvc3RyaW5nPgoJCQk8a2V5PmlUdW5lcyBVPC9rZXk+CgkJCTxzdHJp
-bmc+aVR1bmVzIFU8L3N0cmluZz4KCQkJPGtleT5NYWMgU29mdHdhcmU8L2tleT4K
-CQkJPHN0cmluZz5NYWMg7IaM7ZSE7Yq47Juo7Ja0PC9zdHJpbmc+CgkJCTxrZXk+
-TW92aWVzPC9rZXk+CgkJCTxzdHJpbmc+64+Z7JiB7IOBPC9zdHJpbmc+CgkJCTxr
-ZXk+TXVzaWM8L2tleT4KCQkJPHN0cmluZz7snYzslYU8L3N0cmluZz4KCQkJPGtl
-eT5PdGhlcjwva2V5PgoJCQk8c3RyaW5nPuq4sO2DgDwvc3RyaW5nPgoJCTwvZGlj
-dD4KCQk8a2V5Pm5sPC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+QXBwbGUgVFYgU29m
-dHdhcmU8L2tleT4KCQkJPHN0cmluZz5BcHBsZSBUVi1zb2Z0d2FyZTwvc3RyaW5n
-PgoJCQk8a2V5PkJvb2tzPC9rZXk+CgkJCTxzdHJpbmc+Qm9la2VuPC9zdHJpbmc+
-CgkJCTxrZXk+aUNsb3VkPC9rZXk+CgkJCTxzdHJpbmc+aUNsb3VkPC9zdHJpbmc+
-CgkJCTxrZXk+aU9TIFNvZnR3YXJlPC9rZXk+CgkJCTxzdHJpbmc+aU9TLXNvZnR3
-YXJlPC9zdHJpbmc+CgkJCTxrZXk+aVR1bmVzIFU8L2tleT4KCQkJPHN0cmluZz5p
-VHVuZXMgVTwvc3RyaW5nPgoJCQk8a2V5Pk1hYyBTb2Z0d2FyZTwva2V5PgoJCQk8
-c3RyaW5nPk1hYy1zb2Z0d2FyZTwvc3RyaW5nPgoJCQk8a2V5Pk1vdmllczwva2V5
-PgoJCQk8c3RyaW5nPkZpbG1zPC9zdHJpbmc+CgkJCTxrZXk+TXVzaWM8L2tleT4K
-CQkJPHN0cmluZz5NdXppZWs8L3N0cmluZz4KCQkJPGtleT5PdGhlcjwva2V5PgoJ
-CQk8c3RyaW5nPk92ZXJpZzwvc3RyaW5nPgoJCTwvZGljdD4KCQk8a2V5PnpoX0NO
-PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+QXBwbGUgVFYgU29mdHdhcmU8L2tleT4K
-CQkJPHN0cmluZz5BcHBsZSBUViDova/ku7Y8L3N0cmluZz4KCQkJPGtleT5Cb29r
-czwva2V5PgoJCQk8c3RyaW5nPuWbvuS5pjwvc3RyaW5nPgoJCQk8a2V5PmlDbG91
-ZDwva2V5PgoJCQk8c3RyaW5nPmlDbG91ZDwvc3RyaW5nPgoJCQk8a2V5PmlPUyBT
-b2Z0d2FyZTwva2V5PgoJCQk8c3RyaW5nPmlPUyDova/ku7Y8L3N0cmluZz4KCQkJ
-PGtleT5pVHVuZXMgVTwva2V5PgoJCQk8c3RyaW5nPmlUdW5lcyBVPC9zdHJpbmc+
-CgkJCTxrZXk+TWFjIFNvZnR3YXJlPC9rZXk+CgkJCTxzdHJpbmc+TWFjIOi9r+S7
-tjwvc3RyaW5nPgoJCQk8a2V5Pk1vdmllczwva2V5PgoJCQk8c3RyaW5nPuW9seeJ
-hzwvc3RyaW5nPgoJCQk8a2V5Pk11c2ljPC9rZXk+CgkJCTxzdHJpbmc+6Z+z5LmQ
-PC9zdHJpbmc+CgkJCTxrZXk+T3RoZXI8L2tleT4KCQkJPHN0cmluZz7lhbbku5Y8
-L3N0cmluZz4KCQk8L2RpY3Q+CgkJPGtleT56aC1DTjwva2V5PgoJCTxkaWN0PgoJ
-CQk8a2V5PkFwcGxlIFRWIFNvZnR3YXJlPC9rZXk+CgkJCTxzdHJpbmc+QXBwbGUg
-VFYg6L2v5Lu2PC9zdHJpbmc+CgkJCTxrZXk+Qm9va3M8L2tleT4KCQkJPHN0cmlu
-Zz7lm77kuaY8L3N0cmluZz4KCQkJPGtleT5pQ2xvdWQ8L2tleT4KCQkJPHN0cmlu
-Zz5pQ2xvdWQ8L3N0cmluZz4KCQkJPGtleT5pT1MgU29mdHdhcmU8L2tleT4KCQkJ
-PHN0cmluZz5pT1Mg6L2v5Lu2PC9zdHJpbmc+CgkJCTxrZXk+aVR1bmVzIFU8L2tl
-eT4KCQkJPHN0cmluZz5pVHVuZXMgVTwvc3RyaW5nPgoJCQk8a2V5Pk1hYyBTb2Z0
-d2FyZTwva2V5PgoJCQk8c3RyaW5nPk1hYyDova/ku7Y8L3N0cmluZz4KCQkJPGtl
-eT5Nb3ZpZXM8L2tleT4KCQkJPHN0cmluZz7lvbHniYc8L3N0cmluZz4KCQkJPGtl
-eT5NdXNpYzwva2V5PgoJCQk8c3RyaW5nPumfs+S5kDwvc3RyaW5nPgoJCQk8a2V5
-Pk90aGVyPC9rZXk+CgkJCTxzdHJpbmc+5YW25LuWPC9zdHJpbmc+CgkJPC9kaWN0
-PgoJCTxrZXk+emgtSGFuczwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PkFwcGxlIFRW
-IFNvZnR3YXJlPC9rZXk+CgkJCTxzdHJpbmc+QXBwbGUgVFYg6L2v5Lu2PC9zdHJp
-bmc+CgkJCTxrZXk+Qm9va3M8L2tleT4KCQkJPHN0cmluZz7lm77kuaY8L3N0cmlu
-Zz4KCQkJPGtleT5pQ2xvdWQ8L2tleT4KCQkJPHN0cmluZz5pQ2xvdWQ8L3N0cmlu
-Zz4KCQkJPGtleT5pT1MgU29mdHdhcmU8L2tleT4KCQkJPHN0cmluZz5pT1Mg6L2v
-5Lu2PC9zdHJpbmc+CgkJCTxrZXk+aVR1bmVzIFU8L2tleT4KCQkJPHN0cmluZz5p
-VHVuZXMgVTwvc3RyaW5nPgoJCQk8a2V5Pk1hYyBTb2Z0d2FyZTwva2V5PgoJCQk8
-c3RyaW5nPk1hYyDova/ku7Y8L3N0cmluZz4KCQkJPGtleT5Nb3ZpZXM8L2tleT4K
-CQkJPHN0cmluZz7lvbHniYc8L3N0cmluZz4KCQkJPGtleT5NdXNpYzwva2V5PgoJ
-CQk8c3RyaW5nPumfs+S5kDwvc3RyaW5nPgoJCQk8a2V5Pk90aGVyPC9rZXk+CgkJ
-CTxzdHJpbmc+5YW25LuWPC9zdHJpbmc+CgkJPC9kaWN0PgoJCTxrZXk+emhfVFc8
-L2tleT4KCQk8ZGljdD4KCQkJPGtleT5BcHBsZSBUViBTb2Z0d2FyZTwva2V5PgoJ
-CQk8c3RyaW5nPkFwcGxlIFRWIOi7n+mrlDwvc3RyaW5nPgoJCQk8a2V5PkJvb2tz
-PC9rZXk+CgkJCTxzdHJpbmc+5pu457GNPC9zdHJpbmc+CgkJCTxrZXk+aUNsb3Vk
-PC9rZXk+CgkJCTxzdHJpbmc+aUNsb3VkPC9zdHJpbmc+CgkJCTxrZXk+aU9TIFNv
-ZnR3YXJlPC9rZXk+CgkJCTxzdHJpbmc+aU9TIOi7n+mrlDwvc3RyaW5nPgoJCQk8
-a2V5PmlUdW5lcyBVPC9rZXk+CgkJCTxzdHJpbmc+aVR1bmVzIFU8L3N0cmluZz4K
-CQkJPGtleT5NYWMgU29mdHdhcmU8L2tleT4KCQkJPHN0cmluZz5NYWMg6Luf6auU
-PC9zdHJpbmc+CgkJCTxrZXk+TW92aWVzPC9rZXk+CgkJCTxzdHJpbmc+5b2x54mH
-PC9zdHJpbmc+CgkJCTxrZXk+TXVzaWM8L2tleT4KCQkJPHN0cmluZz7pn7PmqII8
-L3N0cmluZz4KCQkJPGtleT5PdGhlcjwva2V5PgoJCQk8c3RyaW5nPuWFtuS7ljwv
-c3RyaW5nPgoJCTwvZGljdD4KCQk8a2V5PnpoLVRXPC9rZXk+CgkJPGRpY3Q+CgkJ
-CTxrZXk+QXBwbGUgVFYgU29mdHdhcmU8L2tleT4KCQkJPHN0cmluZz5BcHBsZSBU
-ViDou5/pq5Q8L3N0cmluZz4KCQkJPGtleT5Cb29rczwva2V5PgoJCQk8c3RyaW5n
-PuabuOexjTwvc3RyaW5nPgoJCQk8a2V5PmlDbG91ZDwva2V5PgoJCQk8c3RyaW5n
-PmlDbG91ZDwvc3RyaW5nPgoJCQk8a2V5PmlPUyBTb2Z0d2FyZTwva2V5PgoJCQk8
-c3RyaW5nPmlPUyDou5/pq5Q8L3N0cmluZz4KCQkJPGtleT5pVHVuZXMgVTwva2V5
-PgoJCQk8c3RyaW5nPmlUdW5lcyBVPC9zdHJpbmc+CgkJCTxrZXk+TWFjIFNvZnR3
-YXJlPC9rZXk+CgkJCTxzdHJpbmc+TWFjIOi7n+mrlDwvc3RyaW5nPgoJCQk8a2V5
-Pk1vdmllczwva2V5PgoJCQk8c3RyaW5nPuW9seeJhzwvc3RyaW5nPgoJCQk8a2V5
-Pk11c2ljPC9rZXk+CgkJCTxzdHJpbmc+6Z+z5qiCPC9zdHJpbmc+CgkJCTxrZXk+
-T3RoZXI8L2tleT4KCQkJPHN0cmluZz7lhbbku5Y8L3N0cmluZz4KCQk8L2RpY3Q+
-CgkJPGtleT56aC1IYW50PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+QXBwbGUgVFYg
-U29mdHdhcmU8L2tleT4KCQkJPHN0cmluZz5BcHBsZSBUViDou5/pq5Q8L3N0cmlu
-Zz4KCQkJPGtleT5Cb29rczwva2V5PgoJCQk8c3RyaW5nPuabuOexjTwvc3RyaW5n
-PgoJCQk8a2V5PmlDbG91ZDwva2V5PgoJCQk8c3RyaW5nPmlDbG91ZDwvc3RyaW5n
-PgoJCQk8a2V5PmlPUyBTb2Z0d2FyZTwva2V5PgoJCQk8c3RyaW5nPmlPUyDou5/p
-q5Q8L3N0cmluZz4KCQkJPGtleT5pVHVuZXMgVTwva2V5PgoJCQk8c3RyaW5nPmlU
-dW5lcyBVPC9zdHJpbmc+CgkJCTxrZXk+TWFjIFNvZnR3YXJlPC9rZXk+CgkJCTxz
-dHJpbmc+TWFjIOi7n+mrlDwvc3RyaW5nPgoJCQk8a2V5Pk1vdmllczwva2V5PgoJ
-CQk8c3RyaW5nPuW9seeJhzwvc3RyaW5nPgoJCQk8a2V5Pk11c2ljPC9rZXk+CgkJ
-CTxzdHJpbmc+6Z+z5qiCPC9zdHJpbmc+CgkJCTxrZXk+T3RoZXI8L2tleT4KCQkJ
-PHN0cmluZz7lhbbku5Y8L3N0cmluZz4KCQk8L2RpY3Q+Cgk8L2RpY3Q+Cgk8a2V5
-PmFzc2V0TmFtZXNwYWNlczwva2V5PgoJPGFycmF5PgoJCTxzdHJpbmc+aWNsb3Vk
-PC9zdHJpbmc+Cgk8L2FycmF5PgoJPGtleT5wdXNoVG9waWM8L2tleT4KCTxzdHJp
-bmc+Y29tLmFwcGxlLmFzc2V0Y2FjaGU8L3N0cmluZz4KCTxrZXk+aWNsb3VkU2ln
-bmF0dXJlSGVhZGVyPC9rZXk+Cgk8c3RyaW5nPlgtQXBwbGUtQ2FjaGUtaUNsb3Vk
-PC9zdHJpbmc+Cgk8a2V5PmljbG91ZFNpZ25hdHVyZUtleXM8L2tleT4KCTxhcnJh
-eT4KCQk8ZGljdD4KCQkJPGtleT52ZXJzaW9uPC9rZXk+CgkJCTxzdHJpbmc+MTwv
-c3RyaW5nPgoJCQk8a2V5PnB1YmxpY0tleXM8L2tleT4KCQkJPGFycmF5PgoJCQkJ
-PGRhdGE+TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFZ1hNS3FS
-WWc5OU1XMm4yWUQ0Yi9sZnhMcDlUcGkxejYzMXJIZ0h3QkFHQi8vNU9rcEtVcVJ6
-UTRnR2IzQ0g4bXVHMnVjQ1cybTJCQU8rdlUzbDRzSXc9PTwvZGF0YT4KCQkJPC9h
-cnJheT4KCQk8L2RpY3Q+Cgk8L2FycmF5Pgo8L2RpY3Q+CjwvcGxpc3Q+CqCCDREw
-ggQTMIIC+6ADAgECAghgJU5WgRbP8TANBgkqhkiG9w0BAQsFADBiMQswCQYDVQQG
-EwJVUzETMBEGA1UEChMKQXBwbGUgSW5jLjEmMCQGA1UECxMdQXBwbGUgQ2VydGlm
-aWNhdGlvbiBBdXRob3JpdHkxFjAUBgNVBAMTDUFwcGxlIFJvb3QgQ0EwHhcNMTIw
-OTEzMjIzNTM3WhcNMjcwOTEzMjIzNTM3WjCBhzE7MDkGA1UEAwwyQXBwbGUgU3lz
-dGVtIEludGVncmF0aW9uIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxJjAkBgNV
-BAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBs
-ZSBJbmMuMQswCQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAJ5I9o+rG4mlnzRHtjgwp7BipJmEKnRLR1tmNWn+lwFkGJ0K+NczKmTYvANP
-zU2AkNLDxdGMwXP2WlBwzeCUNYLEWcq6qZS9iDZ6Mt8IKeCcGRxoAmCH/C6KPDdN
-fIG7bG9yRfWzlmZeq5dUUAPAQfy1qPd43kyaZ/RNJ1SeyHXqjHbBtXnjYM6YITh7
-mlPoV2kT8PCGkS6tdblTSjD2bZaOXufppRbntFvn6W5P5zjaUzlgDv3QCxlSXXk6
-XXsNGZFylA4DphTK3Xon7SIh62cBwJhP93iBNPsISLbspNtg052nRmxQphRKMO53
-h2S2srSS/EWzgFm9hZwv0ddZ4w8CAwEAAaOBpjCBozAdBgNVHQ4EFgQUEnV8R5L9
-g+O+LvxZf2dDgTUQRewwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBQr0GlH
-lHYJ/vRrjS5ApvdHTX8IXjAuBgNVHR8EJzAlMCOgIaAfhh1odHRwOi8vY3JsLmFw
-cGxlLmNvbS9yb290LmNybDAOBgNVHQ8BAf8EBAMCAQYwEAYKKoZIhvdjZAYCCgQC
-BQAwDQYJKoZIhvcNAQELBQADggEBAKo9OIqWm8eUlz0+Wx8JQ+EabmpN1ji7im0A
-yZPcPqLDKpfBTwegoxRs2QuazbHPfMBndRLuLrAoFxh+cz20BJE5fDf7vTQBoN53
-p1u2R45zOo97Y1jEo20ZTZ2e1j6+GFPpME3Sre9L9qSEzyX86g0zWFEA4kv+dNlH
-E56n1zdq6icMbH6Kk+5gEDAb9VkqFE/Yf+ew5j3+cuDIUiEVNxhZ1HxcjVULm/s6
-dQ/2Bim2wn+Nlc5od3Ou3oH6zglysWzO5JSehfjcusRfd+meA5k0jczcn1aY7Sjt
-BlaA6lI6lcRkjwzZV73CqY2gOuJsWip72vaBGgMXawwM2r2OIwYwggQ3MIIDH6AD
-AgECAggKI1PJkLIDIjANBgkqhkiG9w0BAQsFADCBhzE7MDkGA1UEAwwyQXBwbGUg
-U3lzdGVtIEludGVncmF0aW9uIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxJjAk
-BgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApB
-cHBsZSBJbmMuMQswCQYDVQQGEwJVUzAeFw0xMzA3MTcxOTU3MTlaFw0yMTA3MTUx
-OTU3MTlaMF4xHzAdBgNVBAMMFkFwcGxlIFNVIENvbmZpZ3VyYXRpb24xGTAXBgNV
-BAsMEFNVIENvbmZpZ3VyYXRpb24xEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNV
-BAYTAlVTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArHdoifOOmfS3
-D0nsd9eYiqrhA1apQ9qGrN30RlJHZ5rcgTWUrQmICexnMU+7WRlJ8eWehvnVUe0B
-EBp11T+qB9yu79lUcm/CCQe2OA2YD5HKrjCc2t/z+iF/XgYb65HFSf7wrUbiKs0H
-krQ4mtHWKv3gfSoNsGXahVNE9hUAIltN+XIiwbw8OeosUxEX4IiJnMYWFtZzWwid
-wA8RzpjnNeX3vYhdpeST7U30BeQMmdK9mTBj612GF+ceVusp4NgCZAb1K9G7OdEN
-RKCaqJcWopMgxDr/DdyGHz5+eVmbDxdyIWu2ZfIclGfslkRljq1FIXCVOfl0RU8z
-pfT0sYi7gwIDAQABo4HOMIHLMD4GCCsGAQUFBwEBBDIwMDAuBggrBgEFBQcwAYYi
-aHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hc2kwMTAdBgNVHQ4EFgQUgHSc
-hCeCa2GfwsYdwxLrqAqxMAIwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBQSdXxH
-kv2D474u/Fl/Z0OBNRBF7DAOBgNVHQ8BAf8EBAMCB4AwFgYDVR0lAQH/BAwwCgYI
-KwYBBQUHAwMwEwYKKoZIhvdjZAYSAQEB/wQCBQAwDQYJKoZIhvcNAQELBQADggEB
-AJIPePTvAOZNA05LxoLuLOk8J7rq9OstKIoMtBV1GaVkkhJifxFljFdekD2fOXM4
-8HYaZHATetjSW1h8i/uy1va/t/6MU2gC0MQViChp70dTtYD4a/tDTQL9lw0t5Gsr
-wYPQCnavUie0fQX/cDF9iceLTNFlqgRwnoAl7Uwyq1efcSpXQ7DhPBO3BI579R6d
-kGqVAm3w9Fs4FchB9GDesDgfuzjEbl7BBFCluM99++hZySUGd506Nto0ewFsb0XW
-cqK9V9YSTZ7E/XLozteHKgCGoKr+zYM/iyxfA6RocSBBUAALQElB4xi6h4JDuXUz
-AwdQsUPrn31zw2yN+xkmEccwggS7MIIDo6ADAgECAgECMA0GCSqGSIb3DQEBBQUA
-MGIxCzAJBgNVBAYTAlVTMRMwEQYDVQQKEwpBcHBsZSBJbmMuMSYwJAYDVQQLEx1B
-cHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEWMBQGA1UEAxMNQXBwbGUgUm9v
-dCBDQTAeFw0wNjA0MjUyMTQwMzZaFw0zNTAyMDkyMTQwMzZaMGIxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQKEwpBcHBsZSBJbmMuMSYwJAYDVQQLEx1BcHBsZSBDZXJ0aWZp
-Y2F0aW9uIEF1dGhvcml0eTEWMBQGA1UEAxMNQXBwbGUgUm9vdCBDQTCCASIwDQYJ
-KoZIhvcNAQEBBQADggEPADCCAQoCggEBAOSRqQkfkdseR1DrBe1eeYQt6zaiV0xV
-7IsZid75S2z1B6siMALoGD74UAnTf0GomPnRymacJGsR0KO75Bsqwx+VnnoMpEeL
-W9QWNzPLxA9NzhRp0ckZcvVdDtV/X5vyJQO6VY9NXQ3xZDUjFUsVWR2zlPf2nJ7P
-ULrBWFBnjwi0IPfLrCwgb3C2PwEwjLdDzw+dPfMrSSgayP7OtbkO2V4c1ss9tTqt
-9A8OAJILsSEWLnTVPA3bYharo3GSR1NVwa8vQbP4++NwzeajTEV+H0xrUJZBicR0
-YgsQg0GHM4qBsTBY7FoEMoxos48d3mVz/2deZbxJ2HafMxRloXeUyS0CAwEAAaOC
-AXowggF2MA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
-BBQr0GlHlHYJ/vRrjS5ApvdHTX8IXjAfBgNVHSMEGDAWgBQr0GlHlHYJ/vRrjS5A
-pvdHTX8IXjCCAREGA1UdIASCAQgwggEEMIIBAAYJKoZIhvdjZAUBMIHyMCoGCCsG
-AQUFBwIBFh5odHRwczovL3d3dy5hcHBsZS5jb20vYXBwbGVjYS8wgcMGCCsGAQUF
-BwICMIG2GoGzUmVsaWFuY2Ugb24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFy
-dHkgYXNzdW1lcyBhY2NlcHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3Rh
-bmRhcmQgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBw
-b2xpY3kgYW5kIGNlcnRpZmljYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wDQYJ
-KoZIhvcNAQEFBQADggEBAFw2mUwteLftjJvc83eb8nbSdzBPwR+Fg4UbmT1HN/Kp
-m0COLNSxkBLYvvRzm+7SZA/LeU802KI++Xj/a8gH7H05g4tTINM4xLG/mk8Ka/8r
-/FmnBQl8F0BWER5007eLIztHo9VvJOLr0bdw3w9F4SfK8W147ee1Fxeo3H4iNcol
-1dkP1mvUoiQjEfehrI9zgWDGG1sJL5Ky+ERI8GA4nhX1PSZnIIozavcNgs/e66Mv
-+VNqW2TAYzN39zoHLFbr2g8hDtq6cxlPtdk2f8GHVdmnmbkyQvvY1XGefqFStxu9
-k0IkEirHDx22TZxeY8hLgBdQqorV2uT80AkHN7B1dSExggKlMIICoQIBATCBlDCB
-hzE7MDkGA1UEAwwyQXBwbGUgU3lzdGVtIEludGVncmF0aW9uIDIgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUwIICiNTyZCy
-AyIwCwYJYIZIAWUDBAIBoIHkMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJ
-KoZIhvcNAQkFMQ8XDTE5MDExNDE3MTEwOFowLwYJKoZIhvcNAQkEMSIEIB/+QqKo
-Jyfu4lS7yVn8FHatZiD0ZhGCtjTTiHfxKrGoMHkGCSqGSIb3DQEJDzFsMGowCwYJ
-YIZIAWUDBAEqMAsGCWCGSAFlAwQBFjALBglghkgBZQMEAQIwCgYIKoZIhvcNAwcw
-DgYIKoZIhvcNAwICAgCAMA0GCCqGSIb3DQMCAgFAMAcGBSsOAwIHMA0GCCqGSIb3
-DQMCAgEoMA0GCSqGSIb3DQEBAQUABIIBAECw0JXXvwnceLt61TkzrBw0GUvl8NEW
-jdG8pjNY8eNRCcv1SoQQIoLvvvW9smIoAuRtx2bpOUOjec/o2YfRS5JDk1LiUhW2
-WM1rOYoj0zgHHg/+ONYZ/m39Dvd2alijp5SnrCK9ehnplcSSqEvFs9BJK+tT6kIZ
-Ts0IHY3EkGNrWetjVcOUMDYahzkb/NkVglf18vNzjUKV3im7+xrDNgihnYLmQj6w
-fjnr0TrNA04Mgb/sBPbPmbZa2amc8WZx45iWT6RUfWK2uZ5WFUstLakSmkW7H4mN
-aQ21ygj1RzeB+PE2dT9oFR2vyb45iRiOAS6/sg5mxN+4mD1zOrYppS8=
diff --git a/server/config.real.plist b/server/config.real.plist
new file mode 100644
index 0000000..95d7cc4
--- /dev/null
+++ b/server/config.real.plist
@@ -0,0 +1,734 @@
+
+
+
+
+ certificateURL
+ https://lcdn-registration.apple.com/resource/cert.cer
+ establishmentURL
+ https://lcdn-registration.apple.com/lcdn/session
+ registrationURL
+ https://lcdn-registration.apple.com/lcdn/register
+ deregistrationURL
+ https://lcdn-registration.apple.com/lcdn/deregister
+ blackListURL
+ http://suconfig.apple.com/resource/registration/v1/blacklist.plist
+ statisticsURL
+ https://xp-cdn.apple.com/report/2/xp_cdn_receipt
+ whiteListedHosts
+
+ swcdn.apple.com:80
+ validation.isu.apple.com:80
+ appldnld.apple.com:80
+ oscdn.apple.com:80
+ swdist.apple.com:443
+ swdownload.apple.com:80
+ swdownload.apple.com:443
+ audiocontentdownload.apple.com:80
+ audiocontentdownload.apple.com:443
+ deimos.apple.com:80
+ deimos3.apple.com:80
+ basejumper.apple.com:80
+ basejumper.apple.com:443
+ playgrounds-assets-cdn.apple.com:443
+ playgrounds-cdn.apple.com:443
+ updates.cdn-apple.com:443
+ updates-http.cdn-apple.com:80
+ sylvan.apple.com:80
+ sylvan.apple.com:443
+ devimages-cdn.apple.com:80
+ devimages-cdn.apple.com:443
+ download.developer.apple.com:80
+ download.developer.apple.com:443
+
+ whiteListedDomains
+
+ phobos.apple.com:80
+ itunes.apple.com:80
+ itunes.apple.com:443
+ assets.itunes.com:80
+ assets.itunes.com:443
+
+ assetTypeMap
+
+
+ host
+
+ swdist.apple.com
+
+ map
+
+
+ type
+ swdist
+
+
+
+
+ host
+
+ swdownload.apple.com
+
+ map
+
+
+ type
+ swdownload
+
+
+
+
+ host
+
+ swcdn.apple.com
+
+ map
+
+
+ type
+ swcdn
+
+
+
+
+ host
+
+ oscdn.apple.com
+
+ map
+
+
+ type
+ oscdn
+
+
+
+
+ host
+
+ validation.isu.apple.com
+
+ map
+
+
+ type
+ validation
+
+
+
+
+ host
+
+ appldnld.apple.com
+
+ map
+
+
+ type
+ appldnld
+
+
+
+
+ host
+
+ basejumper.apple.com
+
+ map
+
+
+ type
+ basejumper
+
+
+
+
+ host
+
+ playgrounds-assets-cdn.apple.com
+ playgrounds-cdn.apple.com
+
+ map
+
+
+ type
+ playgrounds
+
+
+
+
+ host
+
+ sylvan.apple.com
+
+ map
+
+
+ type
+ sylvan
+
+
+
+
+ host
+
+ devimages-cdn.apple.com
+ download.developer.apple.com
+
+ map
+
+
+ type
+ dev
+
+
+
+
+ host
+
+ audiocontentdownload.apple.com
+
+ map
+
+
+ type
+ gbnd
+
+
+
+
+ host
+
+ odr.assets.itunes.com
+ odr.itunes.apple.com
+
+ map
+
+
+ type
+ odr
+
+
+
+
+ host
+
+ p1-u.itunes.apple.com
+ p2-u.itunes.apple.com
+ deimos.apple.com
+ deimos3.apple.com
+ itunesu.assets.itunes.com
+ itunesu.itunes.apple.com
+ itunesu-assets.itunes.apple.com
+
+ map
+
+
+ type
+ itunesu
+
+
+
+
+ host
+
+ *.phobos.apple.com
+ *.v.phobos.apple.com
+ *.assets.itunes.com
+ books.itunes.apple.com
+ iosapps.itunes.apple.com
+ osxapps.itunes.apple.com
+
+ map
+
+
+ path
+
+ /*/Purple*/*.zip
+ /*/Purple*/*.pkg
+ /*/Purple*/*.ipa
+
+ type
+ Apps
+
+
+ path
+
+ /*/Publication*/*
+
+ type
+ iBooks
+
+
+ path
+
+ /*/Video/*f.m4v
+ /*/Video/*f.mov
+
+ type
+ Movies
+
+
+ path
+
+ /*/Features/*.m4p
+ /*/Features/*.m4a
+ /*/Features/*.mp4
+ /*/Music/*.m4p
+ /*/Music/*.m4a
+ /*/Music/*.mp4
+
+ type
+ Songs
+
+
+ path
+
+ /*/Cobalt*
+
+ type
+ itunesu
+
+
+
+
+ host
+
+ *
+
+ map
+
+
+ type
+ icloud
+ namespace
+
+ icloud
+
+ path
+
+ n/a
+
+
+
+
+
+ mediaTypeMap
+
+
+ namespace
+
+ icloud
+
+ path
+
+ n/a
+
+ type
+ iCloud
+
+
+ path
+
+ /*/Cobalt*
+ /WebObjects/Core.woa/Download*
+ /WebObjects/Core.woa/Feed*
+ /WebObjects/Core.woa/Subscription*
+
+ type
+ iTunes U
+
+
+ path
+
+ *.epub
+ *.ibooks
+
+ type
+ Books
+
+
+ path
+
+ *[aA]pple[tT][vV]*
+ *tv[oO][sS]*
+ */Videos/*.[mM][oO][vV]
+
+ type
+ Apple TV Software
+
+
+ path
+
+ *.ipa
+ *.ipd
+ *.ipsw
+ *.assetpack
+ /ios*
+ /iOS*
+
+ type
+ iOS Software
+
+
+ path
+
+ *.pkg
+ *.dmg
+
+ type
+ Mac Software
+
+
+ path
+
+ *.m4v
+ *.mov
+
+ type
+ Movies
+
+
+ path
+
+ *.m4p
+ *.m4a
+ *.mp4
+
+ type
+ Music
+
+
+ type
+ Other
+
+
+ mediaTypeOrder
+
+ Mac Software
+ iOS Software
+ Apple TV Software
+ iCloud
+ Books
+ iTunes U
+ Movies
+ Music
+ Other
+
+ mediaTypeStrings
+
+ de
+
+ Apple TV Software
+ Apple TV-Software
+ Books
+ Bücher
+ iCloud
+ iCloud
+ iOS Software
+ iOS-Software
+ iTunes U
+ iTunes U
+ Mac Software
+ Mac-Software
+ Movies
+ Filme
+ Music
+ Musik
+ Other
+ Anderes
+
+ en
+
+ Apple TV Software
+ Apple TV Software
+ Books
+ Books
+ iCloud
+ iCloud
+ iOS Software
+ iOS Software
+ iTunes U
+ iTunes U
+ Mac Software
+ Mac Software
+ Movies
+ Movies
+ Music
+ Music
+ Other
+ Other
+
+ es
+
+ Apple TV Software
+ Software Apple TV
+ Books
+ Libros
+ iCloud
+ iCloud
+ iOS Software
+ Software iOS
+ iTunes U
+ iTunes U
+ Mac Software
+ Software Mac
+ Movies
+ Películas
+ Music
+ Música
+ Other
+ Otros
+
+ fr
+
+ Apple TV Software
+ Logiciels Apple TV
+ Books
+ Livres
+ iCloud
+ iCloud
+ iOS Software
+ Logiciels iOS
+ iTunes U
+ iTunes U
+ Mac Software
+ Logiciels Mac
+ Movies
+ Films
+ Music
+ Musique
+ Other
+ Autres
+
+ it
+
+ Apple TV Software
+ Software Apple TV
+ Books
+ Libri
+ iCloud
+ iCloud
+ iOS Software
+ Software iOS
+ iTunes U
+ iTunes U
+ Mac Software
+ Software Mac
+ Movies
+ Film
+ Music
+ Musica
+ Other
+ Altro
+
+ ja
+
+ Apple TV Software
+ Apple TV ソフトウェア
+ Books
+ ブック
+ iCloud
+ iCloud
+ iOS Software
+ iOS ソフトウェア
+ iTunes U
+ iTunes U
+ Mac Software
+ Mac ソフトウェア
+ Movies
+ ムービー
+ Music
+ ミュージック
+ Other
+ その他
+
+ ko
+
+ Apple TV Software
+ Apple TV 소프트웨어
+ Books
+ 책
+ iCloud
+ iCloud
+ iOS Software
+ iOS 소프트웨어
+ iTunes U
+ iTunes U
+ Mac Software
+ Mac 소프트웨어
+ Movies
+ 동영상
+ Music
+ 음악
+ Other
+ 기타
+
+ nl
+
+ Apple TV Software
+ Apple TV-software
+ Books
+ Boeken
+ iCloud
+ iCloud
+ iOS Software
+ iOS-software
+ iTunes U
+ iTunes U
+ Mac Software
+ Mac-software
+ Movies
+ Films
+ Music
+ Muziek
+ Other
+ Overig
+
+ zh_CN
+
+ Apple TV Software
+ Apple TV 软件
+ Books
+ 图书
+ iCloud
+ iCloud
+ iOS Software
+ iOS 软件
+ iTunes U
+ iTunes U
+ Mac Software
+ Mac 软件
+ Movies
+ 影片
+ Music
+ 音乐
+ Other
+ 其他
+
+ zh-CN
+
+ Apple TV Software
+ Apple TV 软件
+ Books
+ 图书
+ iCloud
+ iCloud
+ iOS Software
+ iOS 软件
+ iTunes U
+ iTunes U
+ Mac Software
+ Mac 软件
+ Movies
+ 影片
+ Music
+ 音乐
+ Other
+ 其他
+
+ zh-Hans
+
+ Apple TV Software
+ Apple TV 软件
+ Books
+ 图书
+ iCloud
+ iCloud
+ iOS Software
+ iOS 软件
+ iTunes U
+ iTunes U
+ Mac Software
+ Mac 软件
+ Movies
+ 影片
+ Music
+ 音乐
+ Other
+ 其他
+
+ zh_TW
+
+ Apple TV Software
+ Apple TV 軟體
+ Books
+ 書籍
+ iCloud
+ iCloud
+ iOS Software
+ iOS 軟體
+ iTunes U
+ iTunes U
+ Mac Software
+ Mac 軟體
+ Movies
+ 影片
+ Music
+ 音樂
+ Other
+ 其他
+
+ zh-TW
+
+ Apple TV Software
+ Apple TV 軟體
+ Books
+ 書籍
+ iCloud
+ iCloud
+ iOS Software
+ iOS 軟體
+ iTunes U
+ iTunes U
+ Mac Software
+ Mac 軟體
+ Movies
+ 影片
+ Music
+ 音樂
+ Other
+ 其他
+
+ zh-Hant
+
+ Apple TV Software
+ Apple TV 軟體
+ Books
+ 書籍
+ iCloud
+ iCloud
+ iOS Software
+ iOS 軟體
+ iTunes U
+ iTunes U
+ Mac Software
+ Mac 軟體
+ Movies
+ 影片
+ Music
+ 音樂
+ Other
+ 其他
+
+
+ assetNamespaces
+
+ icloud
+
+ pushTopic
+ com.apple.assetcache
+ icloudSignatureHeader
+ X-Apple-Cache-iCloud
+ icloudSignatureKeys
+
+
+ version
+ 1
+ publicKeys
+
+ MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEgXMKqRYg99MW2n2YD4b/lfxLp9Tpi1z631rHgHwBAGB//5OkpKUqRzQ4gGb3CH8muG2ucCW2m2BAO+vU3l4sIw==
+
+
+
+
+
diff --git a/server/download-config.dart b/server/download-config.dart
index d2125fe..6464e13 100644
--- a/server/download-config.dart
+++ b/server/download-config.dart
@@ -1,4 +1,3 @@
-
import 'dart:async';
import 'dart:convert';
import 'dart:io';
@@ -7,9 +6,11 @@ Future main(List args) async {
var client = new HttpClient();
var request = await client.getUrl(Uri.parse("http://suconfig.apple.com/resource/registration/v1/config.plist"));
var response = await request.close();
- var signedXmlBase64 = await utf8.decodeStream(response);
- var begin = signedXmlBase64.substring(85);
- print(begin);
+ var signedXmlBase64 = (await utf8.decodeStream(response)).replaceAll("\n", "");
+ var signedXmlContent = base64.decode(signedXmlBase64);
+ var xmlBytes = signedXmlContent.sublist(64);
+ var xml = const Utf8Decoder(allowMalformed: true).convert(xmlBytes);
+ xml = xml.substring(0, xml.lastIndexOf("") + 8);
+ print(xml);
client.close();
}
-