Skip to content
This repository was archived by the owner on Mar 26, 2025. It is now read-only.

Commit a18d08a

Browse files
authored
Merge pull request #17 from rtm516/revert-the-revert
Remerge #16 with fixes to tests.
2 parents 0becb7b + f7738e1 commit a18d08a

File tree

5 files changed

+111
-23
lines changed

5 files changed

+111
-23
lines changed

‎StoreLib/Models/FE3.cs‎

Lines changed: 85 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
usingSystem;
22
usingSystem.Collections.Generic;
3-
usingSystem.IO;
4-
usingSystem.Text;
5-
usingSystem.Xml.XPath;
3+
usingNewtonsoft.Json;
64

75
namespaceStoreLib.Models
86
{
@@ -11,14 +9,95 @@ public class PackageInstance
119
publicstringPackageMoniker;
1210
publicUriPackageUri;
1311
publicPackageTypePackageType;
12+
publicApplicabilityBlobApplicabilityBlob;
13+
publicStringUpdateId;
1414

15-
publicPackageInstance(stringPackageMoniker,UriPackageUri,PackageTypepackageType)
15+
publicPackageInstance(stringPackageMoniker,UriPackageUri,PackageTypePackageType,ApplicabilityBlobApplicabilityBlob,StringUpdateId)
1616
{
1717
this.PackageMoniker=PackageMoniker;
1818
this.PackageUri=PackageUri;
19-
this.PackageType=packageType;
19+
this.PackageType=PackageType;
20+
this.ApplicabilityBlob=ApplicabilityBlob;
21+
this.UpdateId=UpdateId;
2022
}
23+
}
24+
25+
// Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(myJsonResponse);
26+
publicclassContentTargetPlatform
27+
{
28+
[JsonProperty("platform.maxVersionTested")]
29+
publiclongPlatformMaxVersionTested{get;set;}
30+
31+
[JsonProperty("platform.minVersion")]
32+
publiclongPlatformMinVersion{get;set;}
33+
34+
[JsonProperty("platform.target")]
35+
publicintPlatformTarget{get;set;}
36+
}
37+
38+
publicclassPolicy
39+
{
40+
[JsonProperty("category.first")]
41+
publicstringCategoryFirst{get;set;}
42+
43+
[JsonProperty("category.second")]
44+
publicstringCategorySecond{get;set;}
45+
46+
[JsonProperty("category.third")]
47+
publicstringCategoryThird{get;set;}
48+
49+
[JsonProperty("optOut.backupRestore")]
50+
publicboolOptOutBackupRestore{get;set;}
51+
52+
[JsonProperty("optOut.removeableMedia")]
53+
publicboolOptOutRemoveableMedia{get;set;}
54+
}
55+
56+
publicclassThirdPartyAppRating
57+
{
58+
[JsonProperty("level")]
59+
publicintLevel{get;set;}
60+
61+
[JsonProperty("systemId")]
62+
publicintSystemId{get;set;}
63+
}
64+
65+
publicclassPolicy2
66+
{
67+
[JsonProperty("ageRating")]
68+
publicintAgeRating{get;set;}
69+
70+
[JsonProperty("optOut.DVR")]
71+
publicboolOptOutDVR{get;set;}
72+
73+
[JsonProperty("thirdPartyAppRatings")]
74+
publicList<ThirdPartyAppRating>ThirdPartyAppRatings{get;set;}
75+
}
76+
77+
publicclassApplicabilityBlob
78+
{
79+
[JsonProperty("blob.version")]
80+
publiclongBlobVersion{get;set;}
81+
82+
[JsonProperty("content.isMain")]
83+
publicboolContentIsMain{get;set;}
84+
85+
[JsonProperty("content.packageId")]
86+
publicstringContentPackageId{get;set;}
87+
88+
[JsonProperty("content.productId")]
89+
publicstringContentProductId{get;set;}
90+
91+
[JsonProperty("content.targetPlatforms")]
92+
publicList<ContentTargetPlatform>ContentTargetPlatforms{get;set;}
93+
94+
[JsonProperty("content.type")]
95+
publicintContentType{get;set;}
96+
97+
[JsonProperty("policy")]
98+
publicPolicyPolicy{get;set;}
2199

22-
100+
[JsonProperty("policy2")]
101+
publicPolicy2Policy2{get;set;}
23102
}
24103
}

‎StoreLib/Services/DisplayCatalogHandler.cs‎

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,18 +43,20 @@ public static DisplayCatalogHandler ProductionConfig()
4343
/// Returns an IList of Uris containing the direct download links for the product's apps and dependacies. (if it has any).
4444
/// </summary>
4545
/// <returns>IList of Direct File URLs</returns>
46-
publicasyncTask<IList<PackageInstance>>GetPackagesForProductAsync()
46+
publicasyncTask<IList<PackageInstance>>GetPackagesForProductAsync(stringMSAToken=null)
4747
{
48-
stringxml=awaitFE3Handler.SyncUpdatesAsync(ProductListing.Product.DisplaySkuAvailabilities[0].Sku.Properties.FulfillmentData.WuCategoryId);
48+
stringxml=awaitFE3Handler.SyncUpdatesAsync(ProductListing.Product.DisplaySkuAvailabilities[0].Sku.Properties.FulfillmentData.WuCategoryId,MSAToken);
4949
IList<string>RevisionIDs;
5050
IList<string>PackageNames;
5151
IList<string>UpdateIDs;
5252
FE3Handler.ProcessUpdateIDs(xml,outRevisionIDs,outPackageNames,outUpdateIDs);
53-
IList<PackageInstance>PackageInstances=awaitFE3Handler.GetPackageInstancesAsync(ProductListing.Product.DisplaySkuAvailabilities[0].Sku.Properties.FulfillmentData.WuCategoryId);
54-
IList<Uri>Files=awaitFE3Handler.GetFileUrlsAsync(UpdateIDs,RevisionIDs);
53+
IList<PackageInstance>PackageInstances=awaitFE3Handler.GetPackageInstancesAsync(xml);
54+
IList<Uri>Files=awaitFE3Handler.GetFileUrlsAsync(UpdateIDs,RevisionIDs,MSAToken);
5555
foreach(PackageInstancepackageinPackageInstances)
5656
{
57-
package.PackageUri=Files[PackageInstances.IndexOf(package)];
57+
intid=PackageInstances.IndexOf(package);
58+
package.PackageUri=Files[id];
59+
package.UpdateId=UpdateIDs[id];
5860
}
5961
returnPackageInstances;
6062
}

‎StoreLib/Services/FE3Handler.cs‎

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,24 @@
1010
usingSystem.Threading.Tasks;
1111
usingSystem.Web;
1212
usingSystem.Xml;
13+
usingNewtonsoft.Json;
1314

1415

1516
namespaceStoreLib.Services
1617
{
1718
publicstaticclassFE3Handler
1819
{
1920
privatestaticreadonlyMSHttpClient_httpClient=newMSHttpClient();
21+
privatestaticreadonlyString_msaToken="<Device>dAA9AEUAdwBBAHcAQQBzAE4AMwBCAEEAQQBVADEAYgB5AHMAZQBtAGIAZQBEAFYAQwArADMAZgBtADcAbwBXAHkASAA3AGIAbgBnAEcAWQBtAEEAQQBMAGoAbQBqAFYAVQB2AFEAYwA0AEsAVwBFAC8AYwBDAEwANQBYAGUANABnAHYAWABkAGkAegBHAGwAZABjADEAZAAvAFcAeQAvAHgASgBQAG4AVwBRAGUAYwBtAHYAbwBjAGkAZwA5AGoAZABwAE4AawBIAG0AYQBzAHAAVABKAEwARAArAFAAYwBBAFgAbQAvAFQAcAA3AEgAagBzAEYANAA0AEgAdABsAC8AMQBtAHUAcgAwAFMAdQBtAG8AMABZAGEAdgBqAFIANwArADQAcABoAC8AcwA4ADEANgBFAFkANQBNAFIAbQBnAFIAQwA2ADMAQwBSAEoAQQBVAHYAZgBzADQAaQB2AHgAYwB5AEwAbAA2AHoAOABlAHgAMABrAFgAOQBPAHcAYQB0ADEAdQBwAFMAOAAxAEgANgA4AEEASABzAEoAegBnAFQAQQBMAG8AbgBBADIAWQBBAEEAQQBpAGcANQBJADMAUQAvAFYASABLAHcANABBAEIAcQA5AFMAcQBhADEAQgA4AGsAVQAxAGEAbwBLAEEAdQA0AHYAbABWAG4AdwBWADMAUQB6AHMATgBtAEQAaQBqAGgANQBkAEcAcgBpADgAQQBlAEUARQBWAEcAbQBXAGgASQBCAE0AUAAyAEQAVwA0ADMAZABWAGkARABUAHoAVQB0AHQARQBMAEgAaABSAGYAcgBhAGIAWgBsAHQAQQBUAEUATABmAHMARQBGAFUAYQBRAFMASgB4ADUAeQBRADgAagBaAEUAZQAyAHgANABCADMAMQB2AEIAMgBqAC8AUgBLAGEAWQAvAHEAeQB0AHoANwBUAHYAdAB3AHQAagBzADYAUQBYAEIAZQA4AHMAZwBJAG8AOQBiADUAQQBCADcAOAAxAHMANgAvAGQAUwBFAHgATgBEAEQAYQBRAHoAQQBYAFAAWABCAFkAdQBYAFEARQBzAE8AegA4AHQAcgBpAGUATQBiAEIAZQBUAFkAOQBiAG8AQgBOAE8AaQBVADcATgBSAEYAOQAzAG8AVgArAFYAQQBiAGgAcAAwAHAAUgBQAFMAZQBmAEcARwBPAHEAdwBTAGcANwA3AHMAaAA5AEoASABNAHAARABNAFMAbgBrAHEAcgAyAGYARgBpAEMAUABrAHcAVgBvAHgANgBuAG4AeABGAEQAbwBXAC8AYQAxAHQAYQBaAHcAegB5AGwATABMADEAMgB3AHUAYgBtADUAdQBtAHAAcQB5AFcAYwBLAFIAagB5AGgAMgBKAFQARgBKAFcANQBnAFgARQBJADUAcAA4ADAARwB1ADIAbgB4AEwAUgBOAHcAaQB3AHIANwBXAE0AUgBBAFYASwBGAFcATQBlAFIAegBsADkAVQBxAGcALwBwAFgALwB2AGUATAB3AFMAawAyAFMAUwBIAGYAYQBLADYAagBhAG8AWQB1AG4AUgBHAHIAOABtAGIARQBvAEgAbABGADYASgBDAGEAYQBUAEIAWABCAGMAdgB1AGUAQwBKAG8AOQA4AGgAUgBBAHIARwB3ADQAKwBQAEgAZQBUAGIATgBTAEUAWABYAHoAdgBaADYAdQBXADUARQBBAGYAZABaAG0AUwA4ADgAVgBKAGMAWgBhAEYASwA3AHgAeABnADAAdwBvAG4ANwBoADAAeABDADYAWgBCADAAYwBZAGoATAByAC8ARwBlAE8AegA5AEcANABRAFUASAA5AEUAawB5ADAAZAB5AEYALwByAGUAVQAxAEkAeQBpAGEAcABwAGgATwBQADgAUwAyAHQANABCAHIAUABaAFgAVAB2AEMAMABQADcAegBPACsAZgBHAGsAeABWAG0AKwBVAGYAWgBiAFEANQA1AHMAdwBFAD0AJgBwAD0A</Device>";
2022

2123
/// <summary>
2224
/// Returns raw xml containing various (Revision, Update, Package) IDs and info.
2325
/// </summary>
2426
/// <param name="WuCategoryID"></param>
2527
/// <returns></returns>
26-
publicstaticasyncTask<string>SyncUpdatesAsync(stringWuCategoryID)
28+
publicstaticasyncTask<string>SyncUpdatesAsync(stringWuCategoryID,stringMSAToken=null)
2729
{
28-
HttpContenthttpContent=newStringContent(String.Format(GetResourceTextFile("WUIDRequest.xml"),awaitGetCookieAsync(),WuCategoryID),Encoding.UTF8,"application/soap+xml");//Load in the Xml for this FE3 request and format it a cookie and the provided WuCategoryID.
30+
HttpContenthttpContent=newStringContent(String.Format(GetResourceTextFile("WUIDRequest.xml"),awaitGetCookieAsync(),WuCategoryID,MSAToken??_msaToken),Encoding.UTF8,"application/soap+xml");//Load in the Xml for this FE3 request and format it a cookie and the provided WuCategoryID.
2931
HttpRequestMessagehttpRequest=newHttpRequestMessage();
3032
httpRequest.RequestUri=Endpoints.FE3Delivery;
3133
httpRequest.Content=httpContent;
@@ -36,29 +38,32 @@ public static async Task<string> SyncUpdatesAsync(string WuCategoryID)
3638
returncontent;
3739
}
3840

39-
publicstaticasyncTask<IList<PackageInstance>>GetPackageInstancesAsync(stringWuCategoryID)
41+
publicstaticasyncTask<IList<PackageInstance>>GetPackageInstancesAsync(stringWuCategoryID,stringMSAToken)
4042
{
41-
IList<PackageInstance>PackageInstances=newList<PackageInstance>();
42-
HttpContenthttpContent=newStringContent(String.Format(GetResourceTextFile("WUIDRequest.xml"),awaitGetCookieAsync(),WuCategoryID),Encoding.UTF8,"application/soap+xml");//Load in the Xml for this FE3 request and format it a cookie and the provided WuCategoryID.
43+
HttpContenthttpContent=newStringContent(String.Format(GetResourceTextFile("WUIDRequest.xml"),awaitGetCookieAsync(),WuCategoryID,MSAToken??_msaToken),Encoding.UTF8,"application/soap+xml");//Load in the Xml for this FE3 request and format it a cookie and the provided WuCategoryID.
4344
HttpRequestMessagehttpRequest=newHttpRequestMessage();
4445
httpRequest.RequestUri=Endpoints.FE3Delivery;
4546
httpRequest.Content=httpContent;
4647
httpRequest.Method=HttpMethod.Post;
4748
HttpResponseMessagehttpResponse=await_httpClient.SendAsync(httpRequest,newSystem.Threading.CancellationToken());
4849
stringcontent=awaithttpResponse.Content.ReadAsStringAsync();
4950
content=HttpUtility.HtmlDecode(content);
51+
returnawaitGetPackageInstancesAsync(content);
52+
}
53+
54+
publicstaticasyncTask<IList<PackageInstance>>GetPackageInstancesAsync(stringcontent)
55+
{
56+
IList<PackageInstance>PackageInstances=newList<PackageInstance>();
5057
XmlDocumentdoc=newXmlDocument();
5158
doc.LoadXml(content);
5259
XmlNodeListnodes=doc.GetElementsByTagName("AppxMetadata");
5360
foreach(XmlNodenodeinnodes)
5461
{
5562
if(node.Attributes.Count>=3)
5663
{
57-
PackageInstancepackage=newPackageInstance(node.Attributes.GetNamedItem("PackageMoniker").Value,newUri("http://test.com"),Utilities.TypeHelpers.StringToPackageType(node.Attributes.GetNamedItem("PackageType").Value));
64+
PackageInstancepackage=newPackageInstance(node.Attributes.GetNamedItem("PackageMoniker").Value,newUri("http://test.com"),Utilities.TypeHelpers.StringToPackageType(node.Attributes.GetNamedItem("PackageType").Value),JsonConvert.DeserializeObject<ApplicabilityBlob>(node.FirstChild.InnerText),"");
5865
PackageInstances.Add(package);
5966
}
60-
61-
6267
}
6368
returnPackageInstances;
6469

@@ -111,13 +116,13 @@ public static void ProcessUpdateIDs(string Xml, out IList<string> RevisionIDs, o
111116
/// <param name="UpdateIDs"></param>
112117
/// <param name="RevisionIDs"></param>
113118
/// <returns>IList of App Package Download Uris</returns>
114-
publicstaticasyncTask<IList<Uri>>GetFileUrlsAsync(IList<string>UpdateIDs,IList<string>RevisionIDs)
119+
publicstaticasyncTask<IList<Uri>>GetFileUrlsAsync(IList<string>UpdateIDs,IList<string>RevisionIDs,stringMSAToken=null)
115120
{
116121
XmlDocumentdoc=newXmlDocument();
117122
IList<Uri>uris=newList<Uri>();
118123
foreach(stringIDinUpdateIDs)
119124
{
120-
HttpContenthttpContent=newStringContent(String.Format(GetResourceTextFile("FE3FileUrl.xml"),ID,RevisionIDs[UpdateIDs.IndexOf(ID)]),Encoding.UTF8,"application/soap+xml");//Loading the request xml from a file to keep things nice and tidy.
125+
HttpContenthttpContent=newStringContent(String.Format(GetResourceTextFile("FE3FileUrl.xml"),ID,RevisionIDs[UpdateIDs.IndexOf(ID)],MSAToken??_msaToken),Encoding.UTF8,"application/soap+xml");//Loading the request xml from a file to keep things nice and tidy.
121126
HttpRequestMessagehttpRequest=newHttpRequestMessage();
122127
httpRequest.RequestUri=Endpoints.FE3DeliverySecured;
123128
httpRequest.Content=httpContent;

‎StoreLib/Xml/FE3FileUrl.xml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
1717
xmlns:wuws="http://schemas.microsoft.com/msus/2014/10/WindowsUpdateAuthorization">
1818
<TicketTypeName="MSA"Version="1.0"Policy="MBI_SSL">
19-
<Device>dAA9AEUAdwBBAHcAQQBzAE4AMwBCAEEAQQBVADEAYgB5AHMAZQBtAGIAZQBEAFYAQwArADMAZgBtADcAbwBXAHkASAA3AGIAbgBnAEcAWQBtAEEAQQBQAHoANQBoAFoAaQBtAGYAYwA1AE0AbgBVADMAYwAvADQARgAyAEwAawBFAFkAKwAwADkAMABhAEwAUgBOAEYAUwBTAE0AeQB3AGsAZAAyAC8ARQBZADMAWQB1AFUAeQBzACsAWABDAFIARQBoAEUAUwA3AGcAeQBBAGgAawByAGUAZQBHAHUAOABSAG4AYwBWAEYAVgBiAFUAUgBYAE0AWgBMAEMATQBWAEcARABTAFYANgB2ADMAeQBJAE0AYwBXAEwARgBUAC8ATgBuAE4ATgBRAE0ARgArAHAAWgBuAHYAZABaADAAcwBOAGwAMABwAEEARAA4AHMAMgBDAGgAcgBiAE0AZQBoAGsATwB2AEEATgA0AHUATwAyAFUAVgAwAFcAagBLAG8ARABPAEsAagBJAHkAMABXAE4AMQBnAGUASABwAC8AVwBhAEwANABTAFkAVwBBADIAWQBBAEEAQQBqAFEAZwA5AGwAUQAwAFoATwA3AEMAWQBBAEIAagAyAHgAZwB0AFQATQBuAFUAdgBkAHQAYQBOAE0AbwBxAG4AYwB3AFUATABEAHIAQQBhAG0ATQA0ADMAKwBwAGEAMwA3AG4ANgBTAEsARwBBAHYAdwB1AEwAaQAzAEQAZAB4AEcAVAAvAFEAaQAzAEYAZQBTAEUAcgA3AGkANwBiAG8ANwBoAFUAKwB2AGkASQBtAHEAVABRAG4AKwA2AEQAMgB0AEUAZgBHAGMAZQBaADgAUgB1AGoAdAAzAFIAVQBkAHIAQwB5AC8ASgBOAFIAZwBRAGcATABWAHcANABGAEwAOQB6AEsAMwBMAE8AKwBTAHoARgA0AFQAQgBuADYAbwB6AEIAcABJAHQAYgBZAHAARwAxAE8ASwBtAEoAdwBDAHIANwBqAGEAUAA2AGoASwBlAGYAbQA3AFQASQBlAEQAegBOADIAcQBMAHUAMwB5AFIAOABIAE4ANABPAFMAeABWAGsATQA4AGIANgBkAEwAVgB6AHQANwBhAEYAdABsADIANABEAFcAUwB2AG0AVwBMAG8AKwArADMAbwA0ACsASQBGAHcAagBlAHYATABuADgAYgBjAGoARwBTAEEARgBlAFAAYQBtADUAcAA0ADQANQBlAEcAegBQAFAANABiAFMASAB2AEsAbwBQAFEASwBFAG4AUQBwAEoATQBKAFIAZAA4AEcAZgBNAG4AOQA1ADgAZgBtADYALwBzADcANgBYAHEAMgBSAGUAQQBIAGUAcwBvAHoAWQBOAHYAVABlADYAQQAvAHAATgBnAFoAWQAzAGkAYgAzAEcAaABuAFYAWgBUAGcAdAA1AG4AOQBWAGoAbABwAEMAawBZAHMAOAA1AGEAbQBSADcAdQAwAGgAZAByADkALwBYAEsANgBxAGkATQBFAC8ASwAwAEQAWgBnAEEASQBSAEYAUgBuAE4AQQAxAEUAZgB4AGcARABNAEIAWgBoAFUAbgBqAHgAMABwAHcANgBPAHgAYgB3AHgAMQA5AEgAcABIAE4AOAB0ACsAQgBoAC8AVABvAE0AVABKAHoANQAvAG8AcgBzAFcATwBDAGQARgB1AHIARAAzAHUAbABWAHQAMAB1AGkAegBHAE4AVABQAEkARABsAGkAcgBkAFUAbQBFAGkAbQA4AFMAdQAyAEMANQBuAHoAbwB1AGMARQBpAGIAZgBmAGYAWAA2AFIATwBMAHcATABsAFIAYwBoAFIAMABhAFkAWQA2AEIANgB2AEEAVgB4AHYAbgA5ADMATQBNAEwAawBaAEcAYQBQACsAdQBHACsAWgA1AEoALwBqAFAANwBWAC8ASwB1AFgAOQB4ADkAUABvADUAVABmAEkATwAxAHMAdwBFAD0AJgBwAD0A</Device>
19+
{2}
2020
</TicketType>
2121
</wuws:WindowsUpdateTicketsToken>
2222
</o:Security>

‎StoreLib/Xml/WUIDRequest.xml‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
1717
xmlns:wuws="http://schemas.microsoft.com/msus/2014/10/WindowsUpdateAuthorization">
1818
<TicketTypeName="MSA"Version="1.0"Policy="MBI_SSL">
19-
<Device>dAA9AEUAdwBBAHcAQQBzAE4AMwBCAEEAQQBVADEAYgB5AHMAZQBtAGIAZQBEAFYAQwArADMAZgBtADcAbwBXAHkASAA3AGIAbgBnAEcAWQBtAEEAQQBMAGoAbQBqAFYAVQB2AFEAYwA0AEsAVwBFAC8AYwBDAEwANQBYAGUANABnAHYAWABkAGkAegBHAGwAZABjADEAZAAvAFcAeQAvAHgASgBQAG4AVwBRAGUAYwBtAHYAbwBjAGkAZwA5AGoAZABwAE4AawBIAG0AYQBzAHAAVABKAEwARAArAFAAYwBBAFgAbQAvAFQAcAA3AEgAagBzAEYANAA0AEgAdABsAC8AMQBtAHUAcgAwAFMAdQBtAG8AMABZAGEAdgBqAFIANwArADQAcABoAC8AcwA4ADEANgBFAFkANQBNAFIAbQBnAFIAQwA2ADMAQwBSAEoAQQBVAHYAZgBzADQAaQB2AHgAYwB5AEwAbAA2AHoAOABlAHgAMABrAFgAOQBPAHcAYQB0ADEAdQBwAFMAOAAxAEgANgA4AEEASABzAEoAegBnAFQAQQBMAG8AbgBBADIAWQBBAEEAQQBpAGcANQBJADMAUQAvAFYASABLAHcANABBAEIAcQA5AFMAcQBhADEAQgA4AGsAVQAxAGEAbwBLAEEAdQA0AHYAbABWAG4AdwBWADMAUQB6AHMATgBtAEQAaQBqAGgANQBkAEcAcgBpADgAQQBlAEUARQBWAEcAbQBXAGgASQBCAE0AUAAyAEQAVwA0ADMAZABWAGkARABUAHoAVQB0AHQARQBMAEgAaABSAGYAcgBhAGIAWgBsAHQAQQBUAEUATABmAHMARQBGAFUAYQBRAFMASgB4ADUAeQBRADgAagBaAEUAZQAyAHgANABCADMAMQB2AEIAMgBqAC8AUgBLAGEAWQAvAHEAeQB0AHoANwBUAHYAdAB3AHQAagBzADYAUQBYAEIAZQA4AHMAZwBJAG8AOQBiADUAQQBCADcAOAAxAHMANgAvAGQAUwBFAHgATgBEAEQAYQBRAHoAQQBYAFAAWABCAFkAdQBYAFEARQBzAE8AegA4AHQAcgBpAGUATQBiAEIAZQBUAFkAOQBiAG8AQgBOAE8AaQBVADcATgBSAEYAOQAzAG8AVgArAFYAQQBiAGgAcAAwAHAAUgBQAFMAZQBmAEcARwBPAHEAdwBTAGcANwA3AHMAaAA5AEoASABNAHAARABNAFMAbgBrAHEAcgAyAGYARgBpAEMAUABrAHcAVgBvAHgANgBuAG4AeABGAEQAbwBXAC8AYQAxAHQAYQBaAHcAegB5AGwATABMADEAMgB3AHUAYgBtADUAdQBtAHAAcQB5AFcAYwBLAFIAagB5AGgAMgBKAFQARgBKAFcANQBnAFgARQBJADUAcAA4ADAARwB1ADIAbgB4AEwAUgBOAHcAaQB3AHIANwBXAE0AUgBBAFYASwBGAFcATQBlAFIAegBsADkAVQBxAGcALwBwAFgALwB2AGUATAB3AFMAawAyAFMAUwBIAGYAYQBLADYAagBhAG8AWQB1AG4AUgBHAHIAOABtAGIARQBvAEgAbABGADYASgBDAGEAYQBUAEIAWABCAGMAdgB1AGUAQwBKAG8AOQA4AGgAUgBBAHIARwB3ADQAKwBQAEgAZQBUAGIATgBTAEUAWABYAHoAdgBaADYAdQBXADUARQBBAGYAZABaAG0AUwA4ADgAVgBKAGMAWgBhAEYASwA3AHgAeABnADAAdwBvAG4ANwBoADAAeABDADYAWgBCADAAYwBZAGoATAByAC8ARwBlAE8AegA5AEcANABRAFUASAA5AEUAawB5ADAAZAB5AEYALwByAGUAVQAxAEkAeQBpAGEAcABwAGgATwBQADgAUwAyAHQANABCAHIAUABaAFgAVAB2AEMAMABQADcAegBPACsAZgBHAGsAeABWAG0AKwBVAGYAWgBiAFEANQA1AHMAdwBFAD0AJgBwAD0A</Device>
19+
{2}
2020
</TicketType>
2121
</wuws:WindowsUpdateTicketsToken>
2222
</o:Security>
@@ -39,6 +39,7 @@
3939
<int>544</int>
4040
<int>549</int>
4141
<int>2359974</int>
42+
<int>2359977</int>
4243
<int>5169044</int>
4344
<int>8788830</int>
4445
<int>23110993</int>
@@ -69,6 +70,7 @@
6970
<int>130040031</int>
7071
<int>132387090</int>
7172
<int>132393049</int>
73+
<int>133399034</int>
7274
<int>138537048</int>
7375
<int>140377312</int>
7476
<int>143747671</int>

0 commit comments

Comments
(0)