Просмотр исходного кода

【会员系统】不同场景权益补充完善

wanjun 4 месяцев назад
Родитель
Сommit
de8f888b26

+ 1 - 1
PDF Office/PDF Master/AppDelegate.swift

@@ -211,11 +211,11 @@ class AppDelegate: NSObject, NSApplicationDelegate, iRateDelegate{
                 KMUserInfoVCModel().refreshUserInfo { success, msg in
                     if success {
                         KMMemberInfo.shared.isLogin = true
+                        NotificationCenter.default.post(name: NSNotification.Name(rawValue: "MemberCenterLoginSuccess"), object: nil)
                     } else {
                         KMMemberInfo.shared.isLogin = false
                     }
                 }
-                NotificationCenter.default.post(name: NSNotification.Name(rawValue: "MemberCenterLoginSuccess"), object: nil)
             }
         }
 

+ 49 - 99
PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMVerificationMessageViewController.m

@@ -394,7 +394,7 @@ NSPopoverDelegate>
     self.button.title = [NSString stringWithFormat:@" %@ ",NSLocalizedString(@"Upgrade to Pro", nil)];
     [self.button setTitleColor:[NSColor whiteColor]];
     
-    self.aiLabel.stringValue = NSLocalizedString(@"My AI Credit", nil);
+    self.aiLabel.stringValue = NSLocalizedStringFromTable(@"Free to receive 1 year of AI", @"MemberCenterLocalizable", nil);
     [self.aiLabel sizeToFit];
     CGFloat aiWidth = self.aiLabel.frame.size.width;
     aiWidth += 4;
@@ -407,11 +407,9 @@ NSPopoverDelegate>
     self.aiLabel.frame = ailabelRect;
 //    totalWidth+=aiWidth;
 //    totalWidth+=4;
-    
+//    self.aiContendView.hidden = NO;
+
     CGFloat userImageWidth = 24;
-//    self.userButton.frame = CGRectMake(totalWidth, 0, userImageWidth, userImageWidth);
-    totalWidth += userImageWidth;
-    totalWidth += 8;
     if ([KMMemberInfo shared].isLogin) {
         self.userButton.image = [NSImage imageNamed:@"UserProfilePicture"];
     } else {
@@ -424,6 +422,11 @@ NSPopoverDelegate>
         buttonWidth = btnRect.size.width + 10;
     }
     
+    if ([[KMMemberInfo shared].isHaveAIDiscount isEqualToString:@"1"]) {
+        self.aiContendView.hidden = NO;
+        totalWidth+=aiWidth;
+        totalWidth+=4;
+    }
     if ([KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type1 ||
         [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type3 ||
         [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type4 ||
@@ -467,60 +470,6 @@ NSPopoverDelegate>
         totalWidth+=CGRectGetWidth(self.signUpView.bounds);
     }
     
-//    if ([KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type1 || [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type2) {
-//        self.bgImg.hidden = NO;
-//        self.button.hidden = NO;
-//        self.signUpView.hidden = NO;
-//        self.button.frame = CGRectMake(totalWidth, kbottomGap, buttonWidth, self.view.frame.size.height -2 *kbottomGap);
-//        CGRect rect = self.button.frame;
-//        self.bgImg.frame = rect;
-//        totalWidth+=CGRectGetWidth(self.button.bounds);
-//        totalWidth+=4;
-//        self.signUpView.frame = CGRectMake(totalWidth, 0, signUpWidth, self.view.frame.size.height);
-//        totalWidth+=CGRectGetWidth(self.signUpView.bounds);
-//    } else if ([KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type3 || [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type4) {
-//        self.signUpView.hidden = NO;
-//        self.signUpView.frame = CGRectMake(totalWidth, 0, signUpWidth, self.view.frame.size.height);
-//        totalWidth+=CGRectGetWidth(self.signUpView.bounds);
-//    } else if ([KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type5 ||
-//               [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type6 ||
-//               [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type7 ||
-//               [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type10 ||
-//               [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type11) {
-//        if ([KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type5) {
-//            self.button.title = [NSString stringWithFormat:@" %@ ",NSLocalizedString(@"Free Trial", nil)];
-//        } else if ([KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type6 ||
-//                   [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type10 ||
-//                   [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type11) {
-//            self.button.title = [NSString stringWithFormat:@" %@ ",NSLocalizedStringFromTable(@"立即续费", @"MemberCenterLocalizable", nil)];
-//        } else if ([KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type7) {
-//            self.button.title = [NSString stringWithFormat:@" %@ ",NSLocalizedStringFromTable(@"立即升级", @"MemberCenterLocalizable", nil)];
-//        }
-//        [self.button setTitleColor:[NSColor whiteColor]];
-//        self.bgImg.hidden = NO;
-//        self.button.hidden = NO;
-//        self.userButton.hidden = NO;
-//        self.button.frame = CGRectMake(totalWidth, kbottomGap, buttonWidth, self.view.frame.size.height -2 *kbottomGap);
-//        CGRect rect = self.button.frame;
-//        self.bgImg.frame = rect;
-//        totalWidth+=CGRectGetWidth(self.button.bounds);
-//        totalWidth+=8;
-//        
-//        self.userButton.frame = CGRectMake(totalWidth, 0, userImageWidth, userImageWidth);
-//        totalWidth += userImageWidth;
-//        totalWidth += 8;
-//    } else if ([KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type8 ||
-//               [KMMemberInfo shared].userScenarioType == KMUserScenarioTypeLite_type9) {
-//        self.userButton.hidden = NO;
-//        self.userButton.frame = CGRectMake(totalWidth, 0, userImageWidth, userImageWidth);
-//        totalWidth += userImageWidth;
-//        totalWidth += 8;
-//    } else {
-//        self.userButton.hidden = NO;
-//        self.userButton.frame = CGRectMake(totalWidth, 0, userImageWidth, userImageWidth);
-//        totalWidth += userImageWidth;
-//        totalWidth += 8;
-//    }
     if (self.view.superview) {
         self.view.frame = CGRectMake(MAX(0, CGRectGetWidth(self.view.superview.frame)-totalWidth - 8), (CGRectGetHeight(self.view.superview.frame)-CGRectGetHeight(self.view.frame))/2., totalWidth, self.view.frame.size.height);
     } else {
@@ -734,46 +683,47 @@ NSPopoverDelegate>
 
 - (IBAction)AIButtonAction:(NSButton *)sender {
     __block typeof(self) blockSelf = self;
-    [[FMTrackEventManager defaultManager] trackEventWithEvent:@"Tbr" withProperties:@{@"Tbr_Btn":@"Btn_Tbr_AICredit"}];
-    [[AIInfoManager defaultManager] fetchAIInfoWithComplention:^(NSDictionary *info, NSError *error) {
-            
-    }];
-    AIUserInfoController *controller = [[AIUserInfoController alloc] init];
-    controller.purchaseHandle = ^(AIUserInfoController * _Nonnull vc) {
-#if VERSION_DMG
-        KMPurchaseEmbeddedWindowController *embeddedWC = [KMPurchaseEmbeddedWindowController currentFirstTrialWC:@"com.brother.pdfreaderpro.ai.product_1"];
-        [embeddedWC showWindow:nil];
-        [[embeddedWC window] center];
-#else
-        
-        [[AIPurchaseWindowController currentWC] showWindow:nil];
-#endif
-        [[FMTrackEventManager defaultManager] trackEventWithEvent:@"Tbr" withProperties:@{@"Tbr_Btn":@"Btn_Tbr_AICredit_BuyNow"}];
-    };
-    controller.enterLicenseHandle = ^(AIUserInfoController * _Nonnull vc) {
-        KMVerificationWindowController *verifyVC = [KMVerificationWindowController verificationWithType:KMVerificationTypeActivateAIInfo];
-        verifyVC.callback = ^{
-
-        };
-        [verifyVC showWindow:nil];
-    };
-    
-    controller.guideHandle = ^(AIUserInfoController * _Nonnull vc) {
-        if (!blockSelf.guideWindowVC) {
-            KMFunctionGuideWindowController *guideWindowVC = [[KMFunctionGuideWindowController alloc] initWithWindowNibName:@"KMFunctionGuideWindowController"];
-            blockSelf.guideWindowVC = guideWindowVC;
-        }
-        ((KMFunctionGuideWindowController *)(blockSelf.guideWindowVC)).type = KMGuideInfoTypeFunctionMulti;
-        [blockSelf.guideWindowVC showWindow:nil];
-        [KMFunctionGuideWindowController setDidShowFor:KMGuideInfoTypeFunctionMultiAIGuide];
-        [blockSelf.guideWindowVC.window orderFront:nil];
-    };
-    
-    NSPopover *popover = [[NSPopover alloc] init];
-    popover.contentViewController = controller;
-    popover.animates = YES;
-    popover.behavior = NSPopoverBehaviorTransient;
-    [popover showRelativeToRect:[sender bounds] ofView:sender preferredEdge:NSMinYEdge];
+//    [[FMTrackEventManager defaultManager] trackEventWithEvent:@"Tbr" withProperties:@{@"Tbr_Btn":@"Btn_Tbr_AICredit"}];
+//    [[AIInfoManager defaultManager] fetchAIInfoWithComplention:^(NSDictionary *info, NSError *error) {
+//            
+//    }];
+//    AIUserInfoController *controller = [[AIUserInfoController alloc] init];
+//    controller.purchaseHandle = ^(AIUserInfoController * _Nonnull vc) {
+//#if VERSION_DMG
+//        KMPurchaseEmbeddedWindowController *embeddedWC = [KMPurchaseEmbeddedWindowController currentFirstTrialWC:@"com.brother.pdfreaderpro.ai.product_1"];
+//        [embeddedWC showWindow:nil];
+//        [[embeddedWC window] center];
+//#else
+//        
+//        [[AIPurchaseWindowController currentWC] showWindow:nil];
+//#endif
+//        [[FMTrackEventManager defaultManager] trackEventWithEvent:@"Tbr" withProperties:@{@"Tbr_Btn":@"Btn_Tbr_AICredit_BuyNow"}];
+//    };
+//    controller.enterLicenseHandle = ^(AIUserInfoController * _Nonnull vc) {
+//        KMVerificationWindowController *verifyVC = [KMVerificationWindowController verificationWithType:KMVerificationTypeActivateAIInfo];
+//        verifyVC.callback = ^{
+//
+//        };
+//        [verifyVC showWindow:nil];
+//    };
+//    
+//    controller.guideHandle = ^(AIUserInfoController * _Nonnull vc) {
+//        if (!blockSelf.guideWindowVC) {
+//            KMFunctionGuideWindowController *guideWindowVC = [[KMFunctionGuideWindowController alloc] initWithWindowNibName:@"KMFunctionGuideWindowController"];
+//            blockSelf.guideWindowVC = guideWindowVC;
+//        }
+//        ((KMFunctionGuideWindowController *)(blockSelf.guideWindowVC)).type = KMGuideInfoTypeFunctionMulti;
+//        [blockSelf.guideWindowVC showWindow:nil];
+//        [KMFunctionGuideWindowController setDidShowFor:KMGuideInfoTypeFunctionMultiAIGuide];
+//        [blockSelf.guideWindowVC.window orderFront:nil];
+//    };
+//    
+//    NSPopover *popover = [[NSPopover alloc] init];
+//    popover.contentViewController = controller;
+//    popover.animates = YES;
+//    popover.behavior = NSPopoverBehaviorTransient;
+//    [popover showRelativeToRect:[sender bounds] ofView:sender preferredEdge:NSMinYEdge];
+    [[KMFreeGetAIWC shared] showWindow:nil];
 }
 
 - (IBAction)userButtonAction:(NSButton *)sender {

+ 1 - 0
PDF Office/PDF Master/Class/Purchase/IAPProductsManager.h

@@ -52,6 +52,7 @@ extern NSString * const KMIAPSubscriptionLoadedNotification;
 
 @property (nonatomic,readonly) IAPProduct *advancedSixMonthPlan_lite;
 @property (nonatomic,readonly) IAPProduct *advancedAnnualPlan_lite;
+@property (nonatomic,readonly) IAPProduct *aiYearPlan_lite;
 
 @property (nonatomic,readonly) IAPProduct *monthProduct;
 @property (nonatomic,readonly) IAPProduct *newlyMonthProduct;

+ 74 - 71
PDF Office/PDF Master/Class/Purchase/IAPProductsManager.m

@@ -29,20 +29,24 @@ NSString *const KMItunesServer = @"https://store.filmagepro.com:3018/api/subscri
 NSString *const KMStoreReceipt = @"KMStoreReceiptKey";
 
 /** PDF Reader  Pro 免费版*/
-NSString * const KMMonthLicenseProductIdentifier = @"com.pdfreaderpro.mac_free.member.all_access_pack_6months.001"; // 产品名称:all_access_pack_6months
-NSString * const KMYearLicenseProductIdentifier = @"com.pdfreaderpro.mac_free.member.all_access_pack_12months.001"; // 产品名称:all_access_pack_12months
-NSString * const KMNewMonthLicenseProductIdentifier = @"com.pdfreaderpro.mac_free.member.all_access_pack_new_6months.001"; // 产品名称:all_access_pack_new_6months
-NSString * const KM4DevicesAllAccessPackNew6Months = @"com.pdfreaderpro.mac_free.member.all_access_pack_advanced_annual.001"; // 产品名称:4_devices_all_access_pack_new_6months
-NSString * const KM4DevicesAllAccessPack12months = @"com.pdfreaderpro.mac_free.member.all_access_pack_new_6months.001"; // 产品名称:4_devices_all_access_pack_12month
-
-// 多设备包订阅
-NSString * const KMLiteAdvancedAddDevicesAllAccessPack12Months = @"com.pdfreaderpro.mac_free.member.advanced_add_devices_all_access_pack_advanced_annual.001"; // 产品名称:advanced_add_devices_all_access_pack_12months
-NSString * const KMLiteAdvancedAdd2DevicesAllAccessPack12Months = @"com.pdfreaderpro.mac_free.member.advanced_add_2_devices_all_access_pack_advanced_annual.001"; // 产品名称:advanced_add_2_devices_all_access_pack_12months
-
+NSString * const KMMonthLicenseProductIdentifier_Free = @"com.pdfreaderpro.mac_free.member.all_access_pack_6months.001"; // 产品名称:all_access_pack_6months(订阅)
+NSString * const KMYearLicenseProductIdentifier_Free = @"com.pdfreaderpro.mac_free.member.all_access_pack_12months.001"; // 产品名称:all_access_pack_12months(订阅)
+NSString * const KMNewMonthLicenseProductIdentifier_Free = @"com.pdfreaderpro.mac_free.member.all_access_pack_new_6months.001"; // 产品名称:all_access_pack_new_6months(订阅)
+NSString * const KM4DevicesAllAccessPackNew6Months_Free = @"com.pdfreaderpro.mac_free.member.all_access_pack_advanced_6months.001"; // 产品名称:4_devices_all_access_pack_new_6months(订阅)
+NSString * const KM4DevicesAllAccessPack12Months_Free = @"com.pdfreaderpro.mac_free.member.all_access_pack_advanced_annual.001"; // 产品名称:4_devices_all_access_pack_12month(订阅)
+NSString * const KMAIAllAccessPack1Month_Free = @"com.pdfreaderpro.mac_free.member.ai_pack_1_month"; // 产品名称:ai_all_access_pack_1month(订阅)
+NSString * const KMAIAllAccessPack12Month_Free = @"com.pdfreaderpro.mac_free.member.ai_pack_12_month"; // 产品名称:ai_all_access_pack_12month(订阅)
+NSString * const KMAllAccessPackPermanen_Freet = @"com.pdfreaderpro.mac_free.member.all_access_pack_advanced_permanent_license.001"; // 产品名称:all_access_pack_permanent(永久)
+NSString * const KMAdvancedAddDevicesAllAccessPack12Months_Free = @"com.pdfreaderpro.mac_free.member.advanced_add_devices_all_access_pack_advanced_annual.001"; // 产品名称:advanced_add_devices_all_access_pack_12months(多设备包订阅)
+NSString * const KMAdvancedAdd2DevicesAllAccessPack12Months_Free = @"com.pdfreaderpro.mac_free.member.advanced_add_2_devices_all_access_pack_advanced_annual.001"; // 产品名称:advanced_add_2_devices_all_access_pack_12months(多设备包订阅)
 /** PDF Reader  Pro 付费版*/
-NSString * const KMStandardAddDevicesAllAccessPack12Months = @"com.pdfreaderpro.mac.standard_add_devices_all_access_pack_advanced_annual.001"; // 产品名称:standard_add_devices_all_access_pack_12months
-NSString * const KMProAdvancedAddDevicesAllAccessPack12Months = @"com.pdfreaderpro.mac.advanced_add_devices_all_access_pack_advanced_annual.001"; // 产品名称:advanced_add_devices_all_access_pack_12months
-NSString * const KMProAdvancedAdd2DevicesAllAccessPack12Months = @"com.pdfreaderpro.mac.advanced_add_2_devices_all_access_pack_advanced_annual.001"; // 产品名称:advanced_add_2_devices_all_access_pack_12months
+NSString * const KMAIAllAccessPack1Month = @"com.pdfreaderpro.mac.ai_pack_1_month"; // 产品名称:ai_all_access_pack_1month(AI 订阅)
+NSString * const KMAIAllAccessPack12Month = @"com.pdfreaderpro.mac.ai_pack_12_month"; // 产品名称:ai_all_access_pack_12month(AI 订阅)
+NSString * const KMPDFToOfficePackPermanent = @"com.pdfreaderpro.mac.pdf_to_office_pack_permanent_license.001"; // 产品名称:pdf_to_office_pack_permanent(永久转档)
+NSString * const KM4DevicesAllAccessPack12Months = @"com.pdfreaderpro.mac.all_access_pack_advanced_annual.001"; // 产品名称:4_devices_all_access_pack_12months(全平台高级年订阅)
+NSString * const KMStandardAddDevicesAllAccessPack_12Months = @"com.pdfreaderpro.mac.standard_add_devices_all_access_pack_advanced_annual.001"; // 产品名称:standard_add_devices_all_access_pack_12months(多设备包订阅)
+NSString * const KMAdvancedAddDevicesAllAccessPack12Months = @"com.pdfreaderpro.mac.advanced_add_devices_all_access_pack_advanced_annual.001"; // 产品名称:advanced_add_devices_all_access_pack_12months(多设备包订阅)
+NSString * const KMAdvancedAdd2DevicesAllAccessPack12Months = @"com.pdfreaderpro.mac.advanced_add_2_devices_all_access_pack_advanced_annual.001"; // 产品名称:advanced_add_2_devices_all_access_pack_12months(多设备包订阅)
 
 //NSString * const KMNewMonthLicenseProductIdentifier = @"com.pdftechnologies.pdfreader.mac.yearly.002.Test";
 NSString * const KMAllLicenseProductIdentifier = @"com.pdfreaderpro.mac_free.member.all_access_pack_permanent_license.001";
@@ -276,18 +280,19 @@ NSString * const KMIAPSubscriptionLoadedNotification = @"KMIAPSubscriptionLoaded
 <SKProductsRequestDelegate,SKPaymentTransactionObserver>
 #endif
 
-@property (nonatomic,retain) IAPProduct *standardAnnualPlan_dmg; // 全平台标准版年订阅
-@property (nonatomic,retain) IAPProduct *advancedAnnualPlan_dmg; // 全平台高级版年订阅
-@property (nonatomic,retain) IAPProduct *permanent_dmg; // Mac&Windows双平台高级版永久
-@property (nonatomic,retain) IAPProduct *aiAnnualPlan_dmg; // AI 年订阅
-@property (nonatomic,retain) IAPProduct *aiMonthlyPlan_dmg; // AI 月订阅
-@property (nonatomic,retain) IAPProduct *addTwoDeviceAdvancedAnnual_dmg; // 多设备 年订阅 - 高级双平台升级高级全平台年订阅
+//@property (nonatomic,retain) IAPProduct *standardAnnualPlan_dmg; // 全平台标准版年订阅
+//@property (nonatomic,retain) IAPProduct *advancedAnnualPlan_dmg; // 全平台高级版年订阅
+//@property (nonatomic,retain) IAPProduct *permanent_dmg; // Mac&Windows双平台高级版永久
+//@property (nonatomic,retain) IAPProduct *aiAnnualPlan_dmg; // AI 年订阅
+//@property (nonatomic,retain) IAPProduct *aiMonthlyPlan_dmg; // AI 月订阅
+//@property (nonatomic,retain) IAPProduct *addTwoDeviceAdvancedAnnual_dmg; // 多设备 年订阅 - 高级双平台升级高级全平台年订阅
 
 @property (nonatomic,retain) IAPProduct *advancedSixMonthPlan_lite; // 全平台高级版6个月订阅
 @property (nonatomic,retain) IAPProduct *advancedAnnualPlan_lite; // 全平台高级版年订阅
-@property (nonatomic,retain) IAPProduct *addThreeDeviceAdvancedAnnual; // 多设备 年订阅 - 高级双平台升级高级全平台年订阅
-
-@property (nonatomic,retain) IAPProduct *addDeviceAdvancedAnnual; // 多设备 年订阅 - 标准单平台升级高级全平台年订阅
+@property (nonatomic,retain) IAPProduct *aiMonthPlan_lite; // ai 1月订阅
+@property (nonatomic,retain) IAPProduct *aiYearPlan_lite; // ai 1年订阅
+@property (nonatomic,retain) IAPProduct *addDeveiceAllAccteePackYear_lite; // 多设备 高级版年订阅
+@property (nonatomic,retain) IAPProduct *add2DeveiceAllAccteePackYear_lite; // 多设备 高级版年订阅
 
 @property (nonatomic,retain) IAPProduct *monthProduct;
 @property (nonatomic,retain) IAPProduct *newlyMonthProduct;
@@ -339,33 +344,40 @@ NSString * const KMIAPSubscriptionLoadedNotification = @"KMIAPSubscriptionLoaded
 #if VERSION_FREE
         // 免费版
         self.advancedSixMonthPlan_lite = [[[IAPProduct alloc] init] autorelease];
-        self.advancedSixMonthPlan_lite.productIdentifier = KM4DevicesAllAccessPackNew6Months;
+        self.advancedSixMonthPlan_lite.productIdentifier = KM4DevicesAllAccessPackNew6Months_Free;
         self.advancedSixMonthPlan_lite.priceNumber = @(49.99);
         self.advancedSixMonthPlan_lite.offersPriceNumber = @(29.99);
         self.advancedSixMonthPlan_lite.isOffers = isOffers;
         self.advancedSixMonthPlan_lite.mouthNumber = 6;
         
         self.advancedAnnualPlan_lite = [[[IAPProduct alloc] init] autorelease];
-        self.advancedAnnualPlan_lite.productIdentifier = KM4DevicesAllAccessPack12months;
+        self.advancedAnnualPlan_lite.productIdentifier = KM4DevicesAllAccessPack12Months_Free;
         self.advancedAnnualPlan_lite.priceNumber = @(99.99);
         self.advancedAnnualPlan_lite.offersPriceNumber = @(79.99);
         self.advancedAnnualPlan_lite.isOffers = isOffers;
         self.advancedAnnualPlan_lite.mouthNumber = 12;
+        
+        self.aiYearPlan_lite = [[[IAPProduct alloc] init] autorelease];
+        self.aiYearPlan_lite.productIdentifier = KMAIAllAccessPack12Month_Free;
+        self.aiYearPlan_lite.priceNumber = @(125.99);
+        self.aiYearPlan_lite.offersPriceNumber = @(125.99);
+        self.aiYearPlan_lite.isOffers = isOffers;
+        self.aiYearPlan_lite.mouthNumber = 12;
 
         self.monthProduct = [[[IAPProduct alloc] init] autorelease];
-        self.monthProduct.productIdentifier = KMMonthLicenseProductIdentifier;
+        self.monthProduct.productIdentifier = KMMonthLicenseProductIdentifier_Free;
         self.monthProduct.priceNumber = @(29.99);
         self.monthProduct.mouthNumber = 1;
         
         self.newlyMonthProduct = [[[IAPProduct alloc] init] autorelease];
-        self.newlyMonthProduct.productIdentifier = KMNewMonthLicenseProductIdentifier;
+        self.newlyMonthProduct.productIdentifier = KMNewMonthLicenseProductIdentifier_Free;
         self.newlyMonthProduct.priceNumber = @(39.99);
         self.newlyMonthProduct.offersPriceNumber = @(29.99);
         self.newlyMonthProduct.isOffers = isOffers;
         self.newlyMonthProduct.mouthNumber = 6;
         
         self.yearProduct = [[[IAPProduct alloc] init] autorelease];
-        self.yearProduct.productIdentifier = KMYearLicenseProductIdentifier;
+        self.yearProduct.productIdentifier = KMYearLicenseProductIdentifier_Free;
         self.yearProduct.priceNumber = @(59.99);
         self.yearProduct.offersPriceNumber = @(29.99);
         self.yearProduct.isOffers = isOffers;
@@ -387,9 +399,9 @@ NSString * const KMIAPSubscriptionLoadedNotification = @"KMIAPSubscriptionLoaded
             self.allAccessProduct.isSubscribed = [[[NSUserDefaults standardUserDefaults] objectForKey:@"allAccessProduct.isSubscribed"] boolValue];
         }
         
-        self.productIdentifiers = @[KMMonthLicenseProductIdentifier,
-                                    KMNewMonthLicenseProductIdentifier,
-                                    KMYearLicenseProductIdentifier,
+        self.productIdentifiers = @[KMMonthLicenseProductIdentifier_Free,
+                                    KMNewMonthLicenseProductIdentifier_Free,
+                                    KMYearLicenseProductIdentifier_Free,
                                     KMAllLicenseProductIdentifier,
                                     KMAILicenseProductIdentifier];
 #else
@@ -426,6 +438,7 @@ NSString * const KMIAPSubscriptionLoadedNotification = @"KMIAPSubscriptionLoaded
 #endif
     [_advancedSixMonthPlan_lite release];
     [_advancedAnnualPlan_lite release];
+    [_aiYearPlan_lite release];
 
     [_monthProduct release];
     [_newlyMonthProduct release];
@@ -514,7 +527,6 @@ NSString * const KMIAPSubscriptionLoadedNotification = @"KMIAPSubscriptionLoaded
         
         NSString *discountId = @"all_access_pack_12months_202407260";
         NSString *sixDiscountId = @"all_access_pack_new_6months_202407260";
-//        SKProductDiscount *discount = iapProduct.product.discounts.firstObject;
         SKProductDiscount *flagDiscount = nil;
         for (SKProductDiscount *dis in iapProduct.product.discounts) {
             if ([dis.identifier isEqualToString:discountId]) {
@@ -543,15 +555,6 @@ NSString * const KMIAPSubscriptionLoadedNotification = @"KMIAPSubscriptionLoaded
                 payment.paymentDiscount = paymentDiscount;
 
                 [[SKPaymentQueue defaultQueue] addPayment:payment];
-                
-//                SKMutablePayment *payment = [SKMutablePayment paymentWithProduct:iapProduct.product];
-//                NSUUID *uid = [[NSUUID alloc] initWithUUIDString:@"198b80fe-181f-53f4-9c4e-5d6e73f290eb"];
-//                NSNumber *time = [NSNumber numberWithDouble:1721983323123];
-//                SKPaymentDiscount *paymentDiscount = [[SKPaymentDiscount alloc] initWithIdentifier:flagDiscount.identifier keyIdentifier:@"7ZM85LHZYB" nonce:uid signature:@"MEUCIQCa3ZbKANYgJFsr71tCfPQeUyMXXMHKRFhzIDzxaJX8TAIgTN29r1bYCxwResW7gfos1DuWE9ni2MpcacOla+aUCTQ=" timestamp:time];
-//                payment.applicationUsername = @"user_name";
-//                payment.paymentDiscount = paymentDiscount;
-//
-//                [[SKPaymentQueue defaultQueue] addPayment:payment];
             } else {
                 [[NSNotificationCenter defaultCenter] postNotificationName:KMIAPProductFailedNotification
                                                                                    object:iapProduct.productIdentifier];
@@ -713,33 +716,7 @@ NSString * const KMIAPSubscriptionLoadedNotification = @"KMIAPSubscriptionLoaded
     NSURL *url = [NSURL URLWithString:KMSandboxServer];
 #else
     NSURL *url = [NSURL URLWithString:KMItunesServer];
-#endif
-//    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
-//    [request setHTTPMethod:@"POST"];
-//    [request setHTTPBody:requestData];
-//
-//    NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
-//    NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
-//        BOOL isSuccessful = NO;
-//        if (!error) {
-//            NSDictionary *jsonResponse = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
-//            jsonResponse = [jsonResponse filterNullObject];
-//            isSuccessful = [self fetchReceipt:jsonResponse];
-//            if (isSuccessful) {
-//                [[NSUserDefaults standardUserDefaults] setObject:jsonResponse forKey:KMStoreReceipt];
-//                [[NSUserDefaults standardUserDefaults] synchronize];
-//            } else {
-//                error = [[[NSError alloc] init] autorelease];
-//            }
-//        }
-//        dispatch_async(dispatch_get_main_queue(), ^{
-//            if (handler) {
-//                handler(error);
-//            }
-//        });
-//    }];
-//    [task resume];
-    
+#endif    
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:url] autorelease];
         request.defaultResponseEncoding = NSUTF8StringEncoding;
@@ -844,6 +821,14 @@ NSString * const KMIAPSubscriptionLoadedNotification = @"KMIAPSubscriptionLoaded
                     self.advancedAnnualPlan_lite.isTrialPeriod = YES;
                 }
                 self.advancedAnnualPlan_lite.originalPurchased = YES;
+            } else if ([product_id isEqualToString:self.aiYearPlan_lite.productIdentifier]) {
+                if (!self.aiYearPlan_lite.isSubscribed) {
+                    self.aiYearPlan_lite.isSubscribed = isActive;
+                }
+                if ([receipt[@"is_trial_period"] boolValue]) {
+                    self.aiYearPlan_lite.isTrialPeriod = YES;
+                }
+                self.aiYearPlan_lite.originalPurchased = YES;
             }
         }
     }
@@ -915,6 +900,14 @@ NSString * const KMIAPSubscriptionLoadedNotification = @"KMIAPSubscriptionLoaded
                     self.advancedAnnualPlan_lite.isTrialPeriod = YES;
                 }
                 self.advancedAnnualPlan_lite.originalPurchased = YES;
+            } else if ([product_id isEqualToString:self.aiYearPlan_lite.productIdentifier]) {
+                if (!self.aiYearPlan_lite.isSubscribed) {
+                    self.aiYearPlan_lite.isSubscribed = isActive;
+                }
+                if ([receipt[@"is_trial_period"] boolValue]) {
+                    self.aiYearPlan_lite.isTrialPeriod = YES;
+                }
+                self.aiYearPlan_lite.originalPurchased = YES;
             }
         }
     }
@@ -936,6 +929,8 @@ NSString * const KMIAPSubscriptionLoadedNotification = @"KMIAPSubscriptionLoaded
                 self.advancedSixMonthPlan_lite.autoRenewStatus = status;
             } else if([product_id isEqualToString:self.advancedAnnualPlan_lite.productIdentifier]) {
                 self.advancedAnnualPlan_lite.autoRenewStatus = status;
+            } else if([product_id isEqualToString:self.aiYearPlan_lite.productIdentifier]) {
+                self.aiYearPlan_lite.autoRenewStatus = status;
             }
         }
     }
@@ -1096,6 +1091,12 @@ NSString * const KMIAPSubscriptionLoadedNotification = @"KMIAPSubscriptionLoaded
                                                                 object:nil];
         }];
         self.advancedAnnualPlan_lite.isSubscribed = YES;
+    } else if ([productIdentifier isEqualToString:self.aiYearPlan_lite.productIdentifier]) {
+        [self loadReceipt:^(NSError *error) {
+            [[NSNotificationCenter defaultCenter] postNotificationName:KMIAPSubscriptionLoadedNotification
+                                                                object:nil];
+        }];
+        self.aiYearPlan_lite.isSubscribed = YES;
     }
     if (!self.isPurchasing) {
         return;
@@ -1180,7 +1181,9 @@ NSString * const KMIAPSubscriptionLoadedNotification = @"KMIAPSubscriptionLoaded
             informative = NSLocalizedString(@"Restore successfully", nil);
         } else if (self.allAccessProduct.isSubscribed || self.advancedSixMonthPlan_lite.isSubscribed || self.advancedAnnualPlan_lite.isSubscribed) {
             informative = NSLocalizedString(@"Restore successfully. You can start using the advanced tools, including PDF to Office, PDF Watermark, Page Editor, and more.", nil);
-        } else if (self.monthProduct.originalPurchased ||
+        } else if (self.aiYearPlan_lite.isSubscribed) {
+            informative = NSLocalizedString(@"Restore successfully", nil);
+        }else if (self.monthProduct.originalPurchased ||
                    self.newlyMonthProduct.originalPurchased || self.yearProduct.originalPurchased) {
             informative = [NSString stringWithFormat:@"\n%@\n\n%@\n\n%@\n\n",
                            NSLocalizedString(@"Your subscription has expired, please repurchase", nil),
@@ -1314,9 +1317,9 @@ NSString * const KMIAPSubscriptionLoadedNotification = @"KMIAPSubscriptionLoaded
             self.proAIProduct.product = product;
         } else if ([product.productIdentifier isEqualToString:self.advancedSixMonthPlan_lite.productIdentifier]) {
             self.advancedSixMonthPlan_lite.product = product;
-        } else if ([product.productIdentifier isEqualToString:self.advancedAnnualPlan_lite.productIdentifier]) {
-            self.advancedAnnualPlan_lite.product = product;
-        }
+        } else if ([product.productIdentifier isEqualToString:self.aiYearPlan_lite.productIdentifier]) {
+            self.aiYearPlan_lite.product = product;
+        } 
     }
     dispatch_async(dispatch_get_main_queue(), ^{
         [[NSNotificationCenter defaultCenter] postNotificationName:KMIAPProductLoadedNotification

+ 38 - 0
PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Color/1D2023.colorset/Contents.json

@@ -0,0 +1,38 @@
+{
+  "colors" : [
+    {
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0x23",
+          "green" : "0x20",
+          "red" : "0x1D"
+        }
+      },
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0x23",
+          "green" : "0x20",
+          "red" : "0x1D"
+        }
+      },
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 38 - 0
PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Color/F04438.colorset/Contents.json

@@ -0,0 +1,38 @@
+{
+  "colors" : [
+    {
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0x38",
+          "green" : "0x44",
+          "red" : "0xF0"
+        }
+      },
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "color" : {
+        "color-space" : "srgb",
+        "components" : {
+          "alpha" : "1.000",
+          "blue" : "0x38",
+          "green" : "0x44",
+          "red" : "0xF0"
+        }
+      },
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 12 - 0
PDF Office/PDF Master/MemberCenter/Model/KMMemberInfo.swift

@@ -304,6 +304,12 @@ import Cocoa
     // 是否允许全部功能
     var isMemberAllFunction: Bool {
         get {
+#if VERSION_FREE
+#if VERSION_DMG
+    // DMG
+
+#else
+    // AppStore 免费版本
             if KMMemberInfo.shared.isLogin {
                 if IAPProductsManager.default().allAccessProduct.isSubscribed == true {
                     return true
@@ -319,6 +325,12 @@ import Cocoa
                 }
                 return false
             }
+#endif
+#else
+    // AppStore 付费版
+            return true
+#endif
+            return false
         }
     }
     

+ 2 - 2
PDF Office/PDF Master/MemberCenter/View/KMSignUpView.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23504" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23504"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
         <capability name="Named colors" minToolsVersion="9.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>

+ 20 - 0
PDF Office/PDF Master/MemberCenter/ViewModel/KMProductModel.swift

@@ -28,6 +28,26 @@ import Combine
     case macPlatformAdvanced // MAC单平台高级版永久
 }
 
+@objc enum KMPurchasedProductType : Int {
+    case fourDevicesAllAccessPackNew6months_lite = 0    // 4_devices_all_access_pack_new_6months(订阅)
+    case fourDevicesAllAccessPackNew12months_lite       // 4_devices_all_access_pack_12months(订阅)
+    case allAccessPackNew6months_lite                   // all_access_pack_new_6months(订阅)
+    case allAccessPack12months_lite                     // all_access_pack_12months(订阅)
+    case allAccessPack6months_lite                      // all_access_pack_6months(订阅)
+    case aiAllAccessPack1month_lite                     // ai_all_access_pack_1month(订阅)
+    case aiAllAccessPack12month_lite                    // ai_all_access_pack_12month(订阅)
+    case allAccessPackPermanent_lite                    // all_access_pack_permanent(永久)
+    case advancedAddDevicesAllAccessPack12months_lite   // advanced_add_devices_all_access_pack_12months(订阅)
+    case advancedAdd2DevicesAllAccessPack12months_lite  // advanced_add_2_devices_all_access_pack_12months(订阅)
+    case aiAllAccessPack1month_pro  // ai_all_access_pack_1month(订阅)
+    case aiAllAccessPack12month_pro  // ai_all_access_pack_1month(订阅)
+    case pdfToOfficePackPermanent_pro  // pdf_to_office_pack_permanent(永久)
+    case fourDevicesAllAccessPack12months_pro  // 4_devices_all_access_pack_12months(全平台高级年订阅)
+    case standardAddDevicesAllAccessPack12months_pro  // standard_add_devices_all_access_pack_12months(订阅)
+    case advancedAddDevicesAllAccessPack12months_pro  // advanced_add_devices_all_access_pack_12months(订阅)
+    case advancedAdd2DevicesAllAccessPack12months_pro  // advanced_add_2_devices_all_access_pack_12months(订阅)
+}
+
 @objcMembers
 class KMProductModel: ObservableObject {
     /**

+ 118 - 0
PDF Office/PDF Master/MemberCenter/WindowsController/KMFreeGetAIWC.swift

@@ -0,0 +1,118 @@
+//
+//  KMFreeGetAIWC.swift
+//  PDF Reader Pro
+//
+//  Created by wanjun on 2024/11/11.
+//
+
+import Cocoa
+
+@objcMembers
+class KMFreeGetAIWC: NSWindowController {
+    
+    @IBOutlet weak var titleLabel1: NSTextField!
+    @IBOutlet weak var titleLabel2: NSTextField!
+    @IBOutlet weak var subTitle1: NSTextField!
+    @IBOutlet weak var subTitle2: NSTextField!
+    @IBOutlet weak var subTitle3: NSTextField!
+    @IBOutlet weak var aitoolsBox: KMBox!
+    @IBOutlet weak var aitoolsLabel: NSTextField!
+    @IBOutlet weak var laterButton: NSButton!
+    @IBOutlet weak var privacyPolicyLabel: NSTextField!
+    @IBOutlet weak var termsServiceLabel: NSTextField!
+
+    private var viewModel = KMProductModel()
+    
+    static let shared: KMFreeGetAIWC = {
+        let windowC = KMFreeGetAIWC(windowNibName: "KMFreeGetAIWC")
+        return windowC
+    }()
+
+    override func windowDidLoad() {
+        super.windowDidLoad()
+
+        // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
+        languageLocalized()
+        initializeUI()
+    }
+    
+    // MARK: Private Method
+    
+    private func languageLocalized() -> Void {
+        titleLabel1.stringValue = NSLocalizedString("Successfully subscribe PDF Reader", tableName: "MemberCenterLocalizable", comment: "")
+        titleLabel2.stringValue = NSLocalizedString("Pro Advanced - Annual Plan!", tableName: "MemberCenterLocalizable", comment: "")
+        subTitle1.stringValue = String(format: " · %@", NSLocalizedString("You get the chance to use AI Tools free for a year on the desktop version", tableName: "MemberCenterLocalizable", comment: ""))
+        subTitle2.stringValue = String(format: " · %@", NSLocalizedString("Free for the first year, then automatically renew at $169.99 annually. You can cancel your subscription anytime.", tableName: "MemberCenterLocalizable", comment: ""))
+        subTitle3.stringValue = String(format: " · %@", NSLocalizedString("Pick up free AI tools before 23:59:00, or it will be invalid", tableName: "MemberCenterLocalizable", comment: ""))
+        aitoolsLabel.stringValue = NSLocalizedString("Get 1-Year AI Tools with $0", tableName: "MemberCenterLocalizable", comment: "")
+        laterButton.title = NSLocalizedString("Later", tableName: "MemberCenterLocalizable", comment: "")
+        
+        privacyPolicyLabel.isEditable = false
+        privacyPolicyLabel.isSelectable = true
+        privacyPolicyLabel.allowsEditingTextAttributes = true
+        let privacyPolicy = NSLocalizedString("Privacy Policy", tableName: "MemberCenterLocalizable", comment: "")
+        let termsService = NSLocalizedString("Terms of Service", tableName: "MemberCenterLocalizable", comment: "")
+        let attributedString1 = NSMutableAttributedString(string: privacyPolicy)
+        let attributedString2 = NSMutableAttributedString(string: termsService)
+        let privacyPolicyRange = (privacyPolicy as NSString).range(of: privacyPolicy)
+        let termsServiceRange = (termsService as NSString).range(of: termsService)
+        attributedString1.addAttributes([
+            .font: NSFont.systemFont(ofSize: 12),
+            .foregroundColor: NSColor(named: "273C62") ?? .blue,
+            .underlineStyle: NSUnderlineStyle.single.rawValue,
+            .link: NSURL(string: NSLocalizedString("https://www.pdfreaderpro.com/privacy-policy", comment: ""))!
+        ], range: privacyPolicyRange)
+        attributedString2.addAttributes([
+            .font: NSFont.systemFont(ofSize: 12),
+            .foregroundColor: NSColor(named: "273C62") ?? .blue,
+            .underlineStyle: NSUnderlineStyle.single.rawValue,
+            .link: NSURL(string: NSLocalizedString("https://www.pdfreaderpro.com/terms_of_service", comment: ""))!
+        ], range: termsServiceRange)
+        privacyPolicyLabel.attributedStringValue = attributedString1
+        termsServiceLabel.attributedStringValue = attributedString2
+        
+        aitoolsBox.moveCallback =  { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
+            guard let self = self else { return }
+            
+        }
+        aitoolsBox.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
+            guard let self = self else { return }
+#if VERSION_FREE
+#if VERSION_DMG
+    // DMG
+#else
+    // AppStore 免费版本
+            IAPProductsManager.default().makeSubProduct(IAPProductsManager.default().aiYearPlan_lite, discount: IAPProductsManager.default().isCancelAutoRenew())
+#endif
+#else
+    // AppStore 付费版
+            
+#endif
+
+        }
+
+    }
+    
+    private func initializeUI() -> Void {
+        titleLabel1.textColor = NSColor(named: "1D2023")
+        titleLabel1.font = NSFont.SFProTextSemiboldFont(24)
+        titleLabel2.textColor = NSColor(named: "1D2023")
+        titleLabel2.font = NSFont.SFProTextSemiboldFont(24)
+        subTitle1.textColor = NSColor(named: "101828")
+        subTitle1.font = NSFont.SFProTextRegularFont(14)
+        subTitle2.textColor = NSColor(named: "101828")
+        subTitle2.font = NSFont.SFProTextRegularFont(14)
+        subTitle3.textColor = NSColor(named: "F04438")
+        subTitle3.font = NSFont.SFProTextRegularFont(14)
+        aitoolsBox.fillColor = NSColor(named: "273C62") ?? .blue
+        aitoolsLabel.textColor = NSColor(named: "FFFFFF")
+        aitoolsLabel.font = NSFont.SFProTextRegularFont(13)
+        laterButton.setTitleColor(color: NSColor(named: "4982E6") ?? NSColor.white, font: NSFont.SFProTextRegularFont(12))
+    }
+    
+    // MARK: Action
+    
+    @IBAction func laterButtonAction(_ sender: NSButton) {
+        window?.close()
+    }
+}

+ 229 - 0
PDF Office/PDF Master/MemberCenter/WindowsController/KMFreeGetAIWC.xib

@@ -0,0 +1,229 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+    <dependencies>
+        <deployment identifier="macosx"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <customObject id="-2" userLabel="File's Owner" customClass="KMFreeGetAIWC" customModule="PDF_Reader_Pro" customModuleProvider="target">
+            <connections>
+                <outlet property="aitoolsBox" destination="Abq-53-J71" id="ZYX-PN-OsR"/>
+                <outlet property="aitoolsLabel" destination="uVk-XT-pWG" id="YFC-Qh-M9Y"/>
+                <outlet property="laterButton" destination="E7S-Bk-g72" id="Th5-8w-qCA"/>
+                <outlet property="privacyPolicyLabel" destination="ULb-Gh-JF4" id="Epk-OR-Rrp"/>
+                <outlet property="subTitle1" destination="rRa-ah-efA" id="8XS-Qi-3RF"/>
+                <outlet property="subTitle2" destination="6D4-4c-2Nm" id="JAd-cI-cwH"/>
+                <outlet property="subTitle3" destination="PBU-ok-xbw" id="b6W-UI-E6z"/>
+                <outlet property="termsServiceLabel" destination="8EG-n3-qe5" id="cpb-ZZ-qng"/>
+                <outlet property="titleLabel1" destination="rmE-FB-IiS" id="SWe-sK-cFh"/>
+                <outlet property="titleLabel2" destination="w7d-TK-EBj" id="Mk6-OY-x36"/>
+                <outlet property="window" destination="F0z-JX-Cv5" id="gIp-Ho-8D9"/>
+            </connections>
+        </customObject>
+        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
+        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+        <window title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" titlebarAppearsTransparent="YES" titleVisibility="hidden" id="F0z-JX-Cv5">
+            <windowStyleMask key="styleMask" titled="YES" closable="YES"/>
+            <rect key="contentRect" x="196" y="240" width="538" height="436"/>
+            <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1415"/>
+            <value key="minSize" type="size" width="538" height="436"/>
+            <value key="maxSize" type="size" width="538" height="436"/>
+            <view key="contentView" id="se5-gp-TjO">
+                <rect key="frame" x="0.0" y="0.0" width="538" height="436"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="53R-cw-WGs">
+                        <rect key="frame" x="0.0" y="304" width="538" height="132"/>
+                        <constraints>
+                            <constraint firstAttribute="width" constant="538" id="Vh5-CD-Qdr"/>
+                            <constraint firstAttribute="height" constant="132" id="kbH-ZM-OPy"/>
+                        </constraints>
+                        <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="ButtonBackgroundImage6" id="AZS-Ua-rlK"/>
+                    </imageView>
+                    <customView translatesAutoresizingMaskIntoConstraints="NO" id="iRN-bz-X6B">
+                        <rect key="frame" x="40" y="352" width="458" height="72"/>
+                        <subviews>
+                            <customView translatesAutoresizingMaskIntoConstraints="NO" id="mbR-HY-7t5">
+                                <rect key="frame" x="211" y="20" width="37" height="32"/>
+                                <subviews>
+                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="w7d-TK-EBj">
+                                        <rect key="frame" x="-2" y="0.0" width="41" height="16"/>
+                                        <textFieldCell key="cell" alignment="center" title="Label" id="r7M-gJ-38u">
+                                            <font key="font" metaFont="system"/>
+                                            <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                        </textFieldCell>
+                                    </textField>
+                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="rmE-FB-IiS">
+                                        <rect key="frame" x="-2" y="16" width="41" height="16"/>
+                                        <textFieldCell key="cell" alignment="center" title="Label" id="ajC-Av-in6">
+                                            <font key="font" metaFont="system"/>
+                                            <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                        </textFieldCell>
+                                    </textField>
+                                </subviews>
+                                <constraints>
+                                    <constraint firstItem="w7d-TK-EBj" firstAttribute="top" secondItem="rmE-FB-IiS" secondAttribute="bottom" id="QXf-5J-jqH"/>
+                                    <constraint firstAttribute="trailing" secondItem="rmE-FB-IiS" secondAttribute="trailing" id="RhD-nw-ugn"/>
+                                    <constraint firstItem="rmE-FB-IiS" firstAttribute="top" secondItem="mbR-HY-7t5" secondAttribute="top" id="kLV-Hw-xYQ"/>
+                                    <constraint firstItem="w7d-TK-EBj" firstAttribute="leading" secondItem="mbR-HY-7t5" secondAttribute="leading" id="o65-TC-LGn"/>
+                                    <constraint firstItem="rmE-FB-IiS" firstAttribute="leading" secondItem="mbR-HY-7t5" secondAttribute="leading" id="or0-Na-UiA"/>
+                                    <constraint firstAttribute="bottom" secondItem="w7d-TK-EBj" secondAttribute="bottom" id="osl-lx-xDX"/>
+                                    <constraint firstAttribute="trailing" secondItem="w7d-TK-EBj" secondAttribute="trailing" id="vd7-0i-YFE"/>
+                                </constraints>
+                            </customView>
+                        </subviews>
+                        <constraints>
+                            <constraint firstItem="mbR-HY-7t5" firstAttribute="centerX" secondItem="iRN-bz-X6B" secondAttribute="centerX" id="DGn-JD-LIk"/>
+                            <constraint firstAttribute="height" constant="72" id="Nvj-mX-QZB"/>
+                            <constraint firstItem="mbR-HY-7t5" firstAttribute="centerY" secondItem="iRN-bz-X6B" secondAttribute="centerY" id="hGj-ob-oa2"/>
+                        </constraints>
+                    </customView>
+                    <customView translatesAutoresizingMaskIntoConstraints="NO" id="hWR-hK-k4D">
+                        <rect key="frame" x="40" y="288" width="458" height="40"/>
+                        <subviews>
+                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="rRa-ah-efA">
+                                <rect key="frame" x="-2" y="12" width="462" height="16"/>
+                                <textFieldCell key="cell" title="Label" id="fSS-vD-GT4">
+                                    <font key="font" usesAppearanceFont="YES"/>
+                                    <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                    <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                </textFieldCell>
+                            </textField>
+                        </subviews>
+                        <constraints>
+                            <constraint firstItem="rRa-ah-efA" firstAttribute="leading" secondItem="hWR-hK-k4D" secondAttribute="leading" id="0Zl-0n-HUG"/>
+                            <constraint firstItem="rRa-ah-efA" firstAttribute="centerY" secondItem="hWR-hK-k4D" secondAttribute="centerY" id="HHW-C5-S1r"/>
+                            <constraint firstAttribute="width" constant="458" id="Yo8-6T-6Kf"/>
+                            <constraint firstAttribute="height" constant="40" id="e9G-8L-oii"/>
+                            <constraint firstAttribute="trailing" secondItem="rRa-ah-efA" secondAttribute="trailing" id="sOd-6u-35l"/>
+                        </constraints>
+                    </customView>
+                    <customView translatesAutoresizingMaskIntoConstraints="NO" id="c5z-V7-cme">
+                        <rect key="frame" x="40" y="236" width="458" height="40"/>
+                        <subviews>
+                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="6D4-4c-2Nm">
+                                <rect key="frame" x="-2" y="12" width="462" height="16"/>
+                                <textFieldCell key="cell" title="Label" id="J3d-xq-Ci9">
+                                    <font key="font" usesAppearanceFont="YES"/>
+                                    <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                    <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                </textFieldCell>
+                            </textField>
+                        </subviews>
+                        <constraints>
+                            <constraint firstItem="6D4-4c-2Nm" firstAttribute="centerY" secondItem="c5z-V7-cme" secondAttribute="centerY" id="50z-eh-ocP"/>
+                            <constraint firstAttribute="height" constant="40" id="7lI-Ip-CzL"/>
+                            <constraint firstItem="6D4-4c-2Nm" firstAttribute="leading" secondItem="c5z-V7-cme" secondAttribute="leading" id="9VC-KL-w9D"/>
+                            <constraint firstAttribute="trailing" secondItem="6D4-4c-2Nm" secondAttribute="trailing" id="ySA-l3-Lbw"/>
+                        </constraints>
+                    </customView>
+                    <customView translatesAutoresizingMaskIntoConstraints="NO" id="Vcv-ai-hhc">
+                        <rect key="frame" x="40" y="204" width="458" height="20"/>
+                        <subviews>
+                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="PBU-ok-xbw">
+                                <rect key="frame" x="-2" y="2" width="462" height="16"/>
+                                <textFieldCell key="cell" title="Label" id="Ch7-0B-Mtk">
+                                    <font key="font" usesAppearanceFont="YES"/>
+                                    <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                    <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                </textFieldCell>
+                            </textField>
+                        </subviews>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="20" id="10m-S9-DT3"/>
+                            <constraint firstItem="PBU-ok-xbw" firstAttribute="leading" secondItem="Vcv-ai-hhc" secondAttribute="leading" id="NXI-ub-PO3"/>
+                            <constraint firstItem="PBU-ok-xbw" firstAttribute="centerY" secondItem="Vcv-ai-hhc" secondAttribute="centerY" id="USq-HE-KVq"/>
+                            <constraint firstAttribute="trailing" secondItem="PBU-ok-xbw" secondAttribute="trailing" id="ckQ-FA-JY2"/>
+                        </constraints>
+                    </customView>
+                    <box boxType="custom" borderWidth="0.0" cornerRadius="1" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="Abq-53-J71" customClass="KMBox" customModule="PDF_Reader_Pro" customModuleProvider="target">
+                        <rect key="frame" x="212" y="148" width="114" height="32"/>
+                        <view key="contentView" id="ZXj-k3-y1s">
+                            <rect key="frame" x="0.0" y="0.0" width="114" height="32"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                            <subviews>
+                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="uVk-XT-pWG">
+                                    <rect key="frame" x="37" y="8" width="41" height="16"/>
+                                    <textFieldCell key="cell" alignment="center" title="Label" id="ncL-TJ-VPL">
+                                        <font key="font" usesAppearanceFont="YES"/>
+                                        <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                    </textFieldCell>
+                                </textField>
+                            </subviews>
+                            <constraints>
+                                <constraint firstItem="uVk-XT-pWG" firstAttribute="leading" secondItem="ZXj-k3-y1s" secondAttribute="leading" constant="38.5" id="9dW-Z3-m7F"/>
+                            </constraints>
+                        </view>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="32" id="kru-Se-rVB"/>
+                            <constraint firstItem="uVk-XT-pWG" firstAttribute="centerX" secondItem="Abq-53-J71" secondAttribute="centerX" id="tK7-JO-t5N"/>
+                            <constraint firstItem="uVk-XT-pWG" firstAttribute="centerY" secondItem="Abq-53-J71" secondAttribute="centerY" id="wi6-hH-ef0"/>
+                        </constraints>
+                    </box>
+                    <button translatesAutoresizingMaskIntoConstraints="NO" id="E7S-Bk-g72">
+                        <rect key="frame" x="247" y="124" width="45" height="16"/>
+                        <buttonCell key="cell" type="bevel" title="Button" bezelStyle="rounded" alignment="center" imageScaling="proportionallyDown" inset="2" id="WO4-oe-cbl">
+                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                            <font key="font" metaFont="system"/>
+                        </buttonCell>
+                        <connections>
+                            <action selector="laterButtonAction:" target="-2" id="gnh-yw-lhH"/>
+                        </connections>
+                    </button>
+                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ULb-Gh-JF4">
+                        <rect key="frame" x="38" y="40" width="37" height="16"/>
+                        <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="5UK-0b-DhR">
+                            <font key="font" metaFont="system"/>
+                            <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                        </textFieldCell>
+                    </textField>
+                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="8EG-n3-qe5">
+                        <rect key="frame" x="463" y="40" width="37" height="16"/>
+                        <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="YEh-dx-OZB">
+                            <font key="font" metaFont="system"/>
+                            <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                        </textFieldCell>
+                    </textField>
+                </subviews>
+                <constraints>
+                    <constraint firstItem="Vcv-ai-hhc" firstAttribute="top" secondItem="c5z-V7-cme" secondAttribute="bottom" constant="12" id="1Z4-JM-965"/>
+                    <constraint firstAttribute="trailing" secondItem="iRN-bz-X6B" secondAttribute="trailing" constant="40" id="5Pn-81-Dq3"/>
+                    <constraint firstItem="Vcv-ai-hhc" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="40" id="6DE-Db-wFX"/>
+                    <constraint firstItem="c5z-V7-cme" firstAttribute="top" secondItem="hWR-hK-k4D" secondAttribute="bottom" constant="12" id="BfD-VE-xLJ"/>
+                    <constraint firstItem="53R-cw-WGs" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" id="Bng-eA-ciz"/>
+                    <constraint firstItem="c5z-V7-cme" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="40" id="EO0-GC-J8H"/>
+                    <constraint firstItem="Abq-53-J71" firstAttribute="centerX" secondItem="se5-gp-TjO" secondAttribute="centerX" id="GwF-JY-IS0"/>
+                    <constraint firstItem="E7S-Bk-g72" firstAttribute="centerX" secondItem="Abq-53-J71" secondAttribute="centerX" id="HXx-UU-pM9"/>
+                    <constraint firstAttribute="trailing" secondItem="53R-cw-WGs" secondAttribute="trailing" id="J2l-FC-LOI"/>
+                    <constraint firstAttribute="trailing" secondItem="c5z-V7-cme" secondAttribute="trailing" constant="40" id="LOE-NI-ay3"/>
+                    <constraint firstAttribute="bottom" secondItem="ULb-Gh-JF4" secondAttribute="bottom" constant="40" id="PCS-rV-cTG"/>
+                    <constraint firstAttribute="trailing" secondItem="hWR-hK-k4D" secondAttribute="trailing" constant="40" id="TVV-JY-3DS"/>
+                    <constraint firstAttribute="trailing" secondItem="Vcv-ai-hhc" secondAttribute="trailing" constant="40" id="TvF-Yj-Vxz"/>
+                    <constraint firstItem="hWR-hK-k4D" firstAttribute="top" secondItem="iRN-bz-X6B" secondAttribute="bottom" constant="24" id="Uji-Fh-FjF"/>
+                    <constraint firstItem="hWR-hK-k4D" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="40" id="ZYO-ZB-LgB"/>
+                    <constraint firstItem="ULb-Gh-JF4" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="40" id="ev1-wB-DQK"/>
+                    <constraint firstAttribute="trailing" secondItem="8EG-n3-qe5" secondAttribute="trailing" constant="40" id="fAM-fm-Oj7"/>
+                    <constraint firstAttribute="bottom" secondItem="8EG-n3-qe5" secondAttribute="bottom" constant="40" id="iKr-SN-RaN"/>
+                    <constraint firstItem="E7S-Bk-g72" firstAttribute="top" secondItem="Abq-53-J71" secondAttribute="bottom" constant="8" id="kPm-QF-vAc"/>
+                    <constraint firstItem="Abq-53-J71" firstAttribute="top" secondItem="Vcv-ai-hhc" secondAttribute="bottom" constant="24" id="nPG-Jc-qT4"/>
+                    <constraint firstItem="iRN-bz-X6B" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="40" id="qCB-9U-jBF"/>
+                    <constraint firstItem="53R-cw-WGs" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" id="t22-ci-px4"/>
+                    <constraint firstItem="iRN-bz-X6B" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" constant="12" id="wLM-sf-QQ7"/>
+                </constraints>
+            </view>
+            <connections>
+                <outlet property="delegate" destination="-2" id="0bl-1N-AYu"/>
+            </connections>
+            <point key="canvasLocation" x="35" y="144"/>
+        </window>
+    </objects>
+    <resources>
+        <image name="ButtonBackgroundImage6" width="538" height="132"/>
+    </resources>
+</document>

+ 16 - 0
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -1032,6 +1032,12 @@
 		9F9085CF2CC7CB7400ACAF58 /* KMSignUpModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F9085CE2CC7CB7400ACAF58 /* KMSignUpModel.swift */; };
 		9F9085D02CC7CB7400ACAF58 /* KMSignUpModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F9085CE2CC7CB7400ACAF58 /* KMSignUpModel.swift */; };
 		9F9085D12CC7CB7400ACAF58 /* KMSignUpModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F9085CE2CC7CB7400ACAF58 /* KMSignUpModel.swift */; };
+		9F93494D2CE25F8900BC3E1C /* KMFreeGetAIWC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F93494B2CE25F8900BC3E1C /* KMFreeGetAIWC.swift */; };
+		9F93494E2CE25F8900BC3E1C /* KMFreeGetAIWC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F93494B2CE25F8900BC3E1C /* KMFreeGetAIWC.swift */; };
+		9F93494F2CE25F8900BC3E1C /* KMFreeGetAIWC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F93494B2CE25F8900BC3E1C /* KMFreeGetAIWC.swift */; };
+		9F9349502CE25F8900BC3E1C /* KMFreeGetAIWC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9F93494C2CE25F8900BC3E1C /* KMFreeGetAIWC.xib */; };
+		9F9349512CE25F8900BC3E1C /* KMFreeGetAIWC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9F93494C2CE25F8900BC3E1C /* KMFreeGetAIWC.xib */; };
+		9F9349522CE25F8900BC3E1C /* KMFreeGetAIWC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9F93494C2CE25F8900BC3E1C /* KMFreeGetAIWC.xib */; };
 		9F94617D2BD643720076574B /* KMTableAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F94617B2BD643720076574B /* KMTableAnnotation.m */; };
 		9F94617E2BD643720076574B /* KMTableAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F94617B2BD643720076574B /* KMTableAnnotation.m */; };
 		9F94617F2BD643720076574B /* KMTableAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F94617B2BD643720076574B /* KMTableAnnotation.m */; };
@@ -6154,6 +6160,8 @@
 		9F8DDF2C2924B855006CDC73 /* KMPDFToolsViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMPDFToolsViewController.xib; sourceTree = "<group>"; };
 		9F8DDF332924DA6B006CDC73 /* KMPDFToolsCollectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPDFToolsCollectionView.swift; sourceTree = "<group>"; };
 		9F9085CE2CC7CB7400ACAF58 /* KMSignUpModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMSignUpModel.swift; sourceTree = "<group>"; };
+		9F93494B2CE25F8900BC3E1C /* KMFreeGetAIWC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMFreeGetAIWC.swift; sourceTree = "<group>"; };
+		9F93494C2CE25F8900BC3E1C /* KMFreeGetAIWC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMFreeGetAIWC.xib; sourceTree = "<group>"; };
 		9F94617B2BD643720076574B /* KMTableAnnotation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KMTableAnnotation.m; sourceTree = "<group>"; };
 		9F94617C2BD643720076574B /* KMTableAnnotation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KMTableAnnotation.h; sourceTree = "<group>"; };
 		9F9461802BD644BE0076574B /* KMTableDataManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KMTableDataManager.h; sourceTree = "<group>"; };
@@ -9114,6 +9122,8 @@
 				9F33C9D02CDA21D70080D3C2 /* KMCloseVerificationWC.xib */,
 				9F33C9D72CDA370D0080D3C2 /* KMCloseApplyWC.swift */,
 				9F33C9D82CDA370D0080D3C2 /* KMCloseApplyWC.xib */,
+				9F93494B2CE25F8900BC3E1C /* KMFreeGetAIWC.swift */,
+				9F93494C2CE25F8900BC3E1C /* KMFreeGetAIWC.xib */,
 				9F33C9EE2CDB34A50080D3C2 /* KMProductCompareWC.swift */,
 				9F33C9EF2CDB34A50080D3C2 /* KMProductCompareWC.xib */,
 				9F33C9DF2CDB04460080D3C2 /* DMG */,
@@ -15476,6 +15486,7 @@
 				ADD1B6BF2942DD3D00C3FFF7 /* KMPrintChooseView.xib in Resources */,
 				ADDF83A42B391A5D00A81A4E /* DSignatureConfigWindowController.xib in Resources */,
 				9F8539EB2947131F00DF644E /* KMChromiumTabView.xib in Resources */,
+				9F9349502CE25F8900BC3E1C /* KMFreeGetAIWC.xib in Resources */,
 				BB8F454A295A9CDC0037EA22 /* KMHeaderFooterListController.xib in Resources */,
 				BB73F28B2C63147E00131EE7 /* KMUnbindAlertViewController.xib in Resources */,
 				9F853A082947137500DF644E /* newtab.pdf in Resources */,
@@ -16058,6 +16069,7 @@
 				9F8539E42947126000DF644E /* KMChromiumToolbar.xib in Resources */,
 				BB1B0B0E2B4FC6E900889528 /* KMGuideInfoWindowController.xib in Resources */,
 				ADF1569D29A63CBF001D1018 /* KMLightMember.xcassets in Resources */,
+				9F9349512CE25F8900BC3E1C /* KMFreeGetAIWC.xib in Resources */,
 				AD055E4F2B7234810035F824 /* KMBookmarkSheetView.xib in Resources */,
 				BB986AE82AD5376100ADF172 /* WelcomeWindowController.xib in Resources */,
 				ADBC376229CC637900D93208 /* KMReadModelView.xib in Resources */,
@@ -16390,6 +16402,7 @@
 				9FF371D52C69B8C6005F9CC5 /* CPerimeterMeasureInfoWindowController.xib in Resources */,
 				ADD1B6F62946C07800C3FFF7 /* KMPrintChoosePageSizePosterView.xib in Resources */,
 				9FB2210C2B19BD8B00A5B208 /* KMGeneralAnnotationViewController.xib in Resources */,
+				9F9349522CE25F8900BC3E1C /* KMFreeGetAIWC.xib in Resources */,
 				89E4E6F12963D1B7002DBA6F /* KMColorPickerViewController.xib in Resources */,
 				BBFE6E6A293097A600142C01 /* KMPageRangePickerWindowController.xib in Resources */,
 				ADE86AA22B031FDB00414DFA /* KMCompareWindowController.xib in Resources */,
@@ -17268,6 +17281,7 @@
 				ADDEEA492AD38BDB00EF675D /* KMSignatureHelpViewController.swift in Sources */,
 				BB146FBA299DC0D100784A6A /* GTLRBase64.m in Sources */,
 				BB1B0ACB2B4FC6E900889528 /* KMFunctionGuideWindowController.swift in Sources */,
+				9F93494D2CE25F8900BC3E1C /* KMFreeGetAIWC.swift in Sources */,
 				BB981E522AD4F638001988CA /* KMCoverButton.swift in Sources */,
 				9F53D5472AD664C300CCF9D8 /* CPDFListHoverAnnotationViewController.swift in Sources */,
 				BB4A949B2B04B77F00940F8B /* KMOCROperation.swift in Sources */,
@@ -19379,6 +19393,7 @@
 				AD0E8ABA2A31BDDD00DBFD3C /* KMProduct.swift in Sources */,
 				AD58F4172B1DAC0900299EE0 /* KMPrintSettingView.swift in Sources */,
 				BBF19E902B0B304C007154C8 /* KMStampCreaterWindowController.swift in Sources */,
+				9F93494E2CE25F8900BC3E1C /* KMFreeGetAIWC.swift in Sources */,
 				BB35C4A02975362900D46EE2 /* KMRedactTopToolBar.swift in Sources */,
 				BB49ECEE293F3B0D00C82CA2 /* KMConvertOCRSettingItemView.swift in Sources */,
 				BBBE20942B21B18900509C4E /* KMPDFInsertWindowController.swift in Sources */,
@@ -19663,6 +19678,7 @@
 				9FDD0FA829533494000C4DAD /* KMJSONParser.swift in Sources */,
 				BBEC00C9295C319400A26C98 /* KMBatesManager.swift in Sources */,
 				AD88108529A719D400178CA1 /* KMRegisterView.swift in Sources */,
+				9F93494F2CE25F8900BC3E1C /* KMFreeGetAIWC.swift in Sources */,
 				9FDD0F71294AD13C000C4DAD /* KMMainViewController+Action.swift in Sources */,
 				ADF1569529A62D1D001D1018 /* KMLoginLeftImageView.swift in Sources */,
 				9F1F82E52934D5240092C4B4 /* KMHomeExtractActionViewController.swift in Sources */,