http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/GetExtendedUpdateInfo2
        urn:uuid:$uuid
        https://fe3.delivery.mp.microsoft.com/ClientWebService/client.asmx/secured
        
            
                $created
                $expires
            
            
                
                    $device
                
            
        
    
    
        
            
                
                    $updateId
                    $rev
                
            
            
                FileUrl
                FileDecryption
            
            $deviceAttributes
        
    
XML;
}
// Composes POST data for fetching the latest update information from Windows Update
function composeFetchUpdRequest($device, $encData, $arch, $flight, $ring, $build, $sku = 48) {
    $uuid = genUUID();
    $createdTime = time();
    $expiresTime = $createdTime + 120;
    $cookieExpiresTime = $createdTime + 604800;
    $created = gmdate(DATE_W3C, $createdTime);
    $expires = gmdate(DATE_W3C, $expiresTime);
    $cookieExpires = gmdate(DATE_W3C, $cookieExpiresTime);
    $branch = branchFromBuild($build);
    $products = array(
        'PN=Client.OS.rs2.'.$arch.'&Branch='.$branch.'&PrimaryOSProduct=1&Repairable=1&V='.$build,
        'PN=Windows.Appraiser.'.$arch.'&Repairable=1&V='.$build,
        'PN=Windows.AppraiserData.'.$arch.'&Repairable=1&V='.$build,
        'PN=Windows.EmergencyUpdate.'.$arch.'&Repairable=1&V='.$build,
        'PN=Windows.OOBE.'.$arch.'&IsWindowsOOBE=1&Repairable=1&V='.$build,
        'PN=Windows.UpdateStackPackage.'.$arch.'&Name=Update Stack Package&Repairable=1&V='.$build,
        'PN=Hammer.'.$arch.'&Source=UpdateOrchestrator&V=0.0.0.0',
        'PN=MSRT.'.$arch.'&Source=UpdateOrchestrator&V=0.0.0.0',
        'PN=SedimentPack.'.$arch.'&Source=UpdateOrchestrator&V=0.0.0.0',
    );
    $callerAttrib = array(
        'Id=UpdateOrchestrator',
        'SheddingAware=1',
        'Interactive=1',
        'IsSeeker=1',
    );
    $products = htmlentities(implode(';', $products));
    $callerAttrib = htmlentities('E:'.implode('&', $callerAttrib));
    $deviceAttributes = composeDeviceAttributes(
        $flight,
        $ring,
        $build,
        $arch,
        $sku
    );
    return <<
    
        http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/SyncUpdates
        urn:uuid:$uuid
        https://fe3.delivery.mp.microsoft.com/ClientWebService/client.asmx
        
            
                $created
                $expires
            
            
                
                    $device
                
            
        
    
    
        
            
                $cookieExpires
                $encData
            
            
                false
                
                
                false
                true
                true
                
                
                    
                        Extended
                        LocalizedProperties
                        Eula
                    
                    
                        en-US
                    
                
                
                
                    false
                    $deviceAttributes
                    $callerAttrib
                    $products
                
            
        
    
XML;
}
// Composes POST data for Get Cookie request
function composeGetCookieRequest($device) {
    $uuid = genUUID();
    $createdTime = time();
    $expiresTime = $createdTime + 120;
    $created = gmdate(DATE_W3C, $createdTime);
    $expires = gmdate(DATE_W3C, $expiresTime);
    return <<
    
        http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/GetCookie
        urn:uuid:$uuid
        https://fe3.delivery.mp.microsoft.com/ClientWebService/client.asmx
        
            
                $created
                $expires
            
            
                
                    $device
                
            
        
    
    
        
            
                $created
            
            $created
            $created
            2.0
        
    
XML;
}
?>