Skip to content

Commit

Permalink
Merge pull request #332 from bazaarvoice/develop
Browse files Browse the repository at this point in the history
Release 8.11.0
  • Loading branch information
rahulbawane authored Oct 25, 2023
2 parents 0e71abd + d1a2b3f commit 444e95b
Show file tree
Hide file tree
Showing 17 changed files with 150 additions and 33 deletions.
1 change: 1 addition & 0 deletions .dccache

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion BVSDK.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

Pod::Spec.new do |s|
s.name = "BVSDK"
s.version = '8.10.0'
s.version = '8.11.0'
s.homepage = 'https://developer.bazaarvoice.com/'
s.license = { :type => 'Commercial', :text => 'See https://developer.bazaarvoice.com/API_Terms_of_Use' }
s.author = { 'Bazaarvoice' => '[email protected]' }
Expand Down
20 changes: 16 additions & 4 deletions BVSDK.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -672,6 +672,8 @@
B5D7E840205083EC00DEB434 /* testSubmitStoreReviewWithPhoto.json in Resources */ = {isa = PBXBuildFile; fileRef = B5D7E83F205083EC00DEB434 /* testSubmitStoreReviewWithPhoto.json */; };
B5D7E8422050840E00DEB434 /* testSubmitReviewFailureStore.json in Resources */ = {isa = PBXBuildFile; fileRef = B5D7E8412050840E00DEB434 /* testSubmitReviewFailureStore.json */; };
B5DDA04E1FE8633800C47C01 /* BVCurationsAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B5DDA04D1FE8633800C47C01 /* BVCurationsAssets.xcassets */; };
B7856D222ABC18EF0031D22A /* userIdJSON.json in Resources */ = {isa = PBXBuildFile; fileRef = B7856D212ABC18EF0031D22A /* userIdJSON.json */; };
B7856D242ABC1F770031D22A /* BVTestUsers.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7856D232ABC1F770031D22A /* BVTestUsers.swift */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
Expand Down Expand Up @@ -1349,6 +1351,8 @@
B5D7E83F205083EC00DEB434 /* testSubmitStoreReviewWithPhoto.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = testSubmitStoreReviewWithPhoto.json; sourceTree = "<group>"; };
B5D7E8412050840E00DEB434 /* testSubmitReviewFailureStore.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = testSubmitReviewFailureStore.json; sourceTree = "<group>"; };
B5DDA04D1FE8633800C47C01 /* BVCurationsAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = BVCurationsAssets.xcassets; sourceTree = "<group>"; };
B7856D212ABC18EF0031D22A /* userIdJSON.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = userIdJSON.json; sourceTree = "<group>"; };
B7856D232ABC1F770031D22A /* BVTestUsers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BVTestUsers.swift; sourceTree = "<group>"; };
EC098EFAFB725736F0751BA0 /* libPods-BVSDK.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-BVSDK.a"; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */

Expand Down Expand Up @@ -2103,6 +2107,7 @@
87F2DD901DAD698500FB43F3 /* emptyJSON.json */,
87A9ECB71E1DA87E00666636 /* malformedJSON.json */,
87F2DD911DAD698500FB43F3 /* productsToReviewResult.json */,
B7856D212ABC18EF0031D22A /* userIdJSON.json */,
87F2DD921DAD698500FB43F3 /* recommendations */,
);
path = MockData;
Expand Down Expand Up @@ -2466,6 +2471,7 @@
children = (
15D4F8451DF5EFFF00E6B30D /* BVSDKTests-Bridging-Header.h */,
87F2DAB71DAD579D00FB43F3 /* Info.plist */,
B7856D232ABC1F770031D22A /* BVTestUsers.swift */,
);
path = Support;
sourceTree = "<group>";
Expand Down Expand Up @@ -3191,6 +3197,7 @@
B5A7B5342050758300494F83 /* testSubmitQuestionWithPhotoPreview.json in Resources */,
B5D7E83A20507E5300DEB434 /* testSubmitReviewFailure.json in Resources */,
B5D7E83E20507E8400DEB434 /* testSubmitReviewFailureCodeParsing.json in Resources */,
B7856D222ABC18EF0031D22A /* userIdJSON.json in Resources */,
B5D7E83C20507E6D00DEB434 /* testSubmitReviewFailureFormCodeParsing.json in Resources */,
B5A7B52620505BCC00494F83 /* testSumbitReviewCommentWithError.json in Resources */,
B5A7B524205059FA00494F83 /* testSubmitReviewComment.json in Resources */,
Expand Down Expand Up @@ -3540,6 +3547,7 @@
87EDAFC91EDDC6A900FA07C0 /* CommentSubmissionTests.swift in Sources */,
87F2DE0B1DAD945D00FB43F3 /* QuestionDisplayTests.swift in Sources */,
B56D71822032476A002EC872 /* BVLocaleManagerTests.m in Sources */,
B7856D242ABC1F770031D22A /* BVTestUsers.swift in Sources */,
987C07612252933E00227934 /* BVInitiateSubmitTest.swift in Sources */,
87F2DE101DAD945D00FB43F3 /* FilterTests.swift in Sources */,
B59185962040DADC006BE717 /* BVInternalAnalyticsTest.m in Sources */,
Expand Down Expand Up @@ -3620,7 +3628,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.4;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
Expand Down Expand Up @@ -3675,7 +3683,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.4;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
Expand Down Expand Up @@ -3710,7 +3718,7 @@
);
INFOPLIST_FILE = BVSDK/Support/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.4;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.bazaarvoice.bvsdk;
PRODUCT_NAME = "$(TARGET_NAME)";
Expand Down Expand Up @@ -3739,7 +3747,7 @@
GCC_PREFIX_HEADER = "";
INFOPLIST_FILE = BVSDK/Support/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.4;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.bazaarvoice.bvsdk;
PRODUCT_NAME = "$(TARGET_NAME)";
Expand All @@ -3760,6 +3768,7 @@
"COCOAPODS=1",
);
INFOPLIST_FILE = BVSDKTests/Support/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks ${BUILT_PRODUCTS_DIR}/CommonCryptoModuleMap";
PRODUCT_BUNDLE_IDENTIFIER = com.bazaarvoice.bvsdk.BVSDKTests;
PRODUCT_NAME = "$(TARGET_NAME)";
Expand All @@ -3781,6 +3790,7 @@
"COCOAPODS=1",
);
INFOPLIST_FILE = BVSDKTests/Support/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks ${BUILT_PRODUCTS_DIR}/CommonCryptoModuleMap";
PRODUCT_BUNDLE_IDENTIFIER = com.bazaarvoice.bvsdk.BVSDKTests;
PRODUCT_NAME = "$(TARGET_NAME)";
Expand All @@ -3793,6 +3803,7 @@
87F2DDC91DAD6C6E00FB43F3 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTS_MACCATALYST = NO;
};
Expand All @@ -3801,6 +3812,7 @@
87F2DDCA1DAD6C6E00FB43F3 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTS_MACCATALYST = NO;
};
Expand Down
2 changes: 1 addition & 1 deletion BVSDK/BVCommon/BVSDKConstants.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
#define BVSDKConstants_h

/// Provides the master version of the SDK.
#define BV_SDK_VERSION @"8.10.1"
#define BV_SDK_VERSION @"8.11.0"

/// Conversation SDK Version
#define SDK_HEADER_NAME @"X-UA-BV-SDK"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@
@property(nullable, nonatomic, strong, readonly)
BVSyndicationSource *syndicationSource;
@property(nullable) NSString *sourceClient;
@property(nullable) NSString *originalProductName;

@property(nonnull, readonly) NSArray<BVComment *> *includedComments;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ - (id)initWithApiResponse:(NSDictionary *)apiResponse
SET_IF_NOT_NULL(self.moderationStatus, apiResponse[@"ModerationStatus"])
SET_IF_NOT_NULL(self.clientResponses, apiResponse[@"ClientResponses"])
SET_IF_NOT_NULL(self.identifier, apiResponse[@"Id"])
SET_IF_NOT_NULL(self.originalProductName, apiResponse[@"OriginalProductName"])

self.lastModificationTime = [BVModelUtil
convertTimestampToDatetime:apiResponse[@"LastModificationTime"]];
Expand Down
2 changes: 1 addition & 1 deletion BVSDK/Support/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>8.10.0</string>
<string>8.11.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSApplicationCategoryType</key>
Expand Down
6 changes: 3 additions & 3 deletions BVSDKTests/BVIProgressiveSubmitTest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ class BVProgressiveSubmitTest: XCTestCase {
func testHostedAuthProgressiveSubmitRequestIncorrectUserId() {
let expectation = self.expectation(description: "testHostedAuthProgressiveSubmitRequestIncorrectUserId")
let submission = self.buildHostedAuthRequest()
submission.userId = "IncorrectUserId"
submission.userId = BVTestUsers().loadKeyForUserId(userId: .incorrectUserId)

submission.submit({ (submittedReview) in
expectation.fulfill()
Expand Down Expand Up @@ -160,7 +160,7 @@ class BVProgressiveSubmitTest: XCTestCase {
let expectation = self.expectation(description: "testProgressiveSubmitMissingUserEmailError")
let submission = self.buildRequest()
submission.userToken = nil
submission.userId = "tets109"
submission.userId = BVTestUsers().loadKeyForUserId(userId: .submitUserId)

submission.submit({ (submittedReview) in
expectation.fulfill()
Expand Down Expand Up @@ -275,7 +275,7 @@ class BVProgressiveSubmitTest: XCTestCase {
"additionalfield_DateOfUserExperience": "2021-05-05"
]
let submission = BVProgressiveSubmitRequest(productId:"product1")
submission.userId = "zeygrozkxbvg01ulz5yuxzk2y3"
submission.userId = BVTestUsers().loadKeyForUserId(userId: .hostedAuthUserId)
submission.locale = "en_US"
submission.submissionSessionToken = "9y8kITDlqeFpCLH634OJJvRnOcHwAsELZjOO4UT488WRz+qyogOam0P+YyZna5/CpyFK6I4XwPNAuKP7hDRBtXfkXAUp2qtGgI/GqbhcEIydQPMh9TGx8kc/8Dgn6Ik1"
submission.submissionFields = fields as! [AnyHashable : Any]
Expand Down
12 changes: 6 additions & 6 deletions BVSDKTests/BVInitiateSubmitTest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class BVInitiateSubmitTest: XCTestCase {
func testInitiateSubmitWithUserID() {
let expectation = self.expectation(description: "testInitiateSubmitWithUserID")
let initiateSubmitRequest = BVInitiateSubmitRequest(productIds: ["product1", "product2", "product3"])
initiateSubmitRequest.userId = "test109"
initiateSubmitRequest.userId = BVTestUsers().loadKeyForUserId(userId: .submitUserId)
initiateSubmitRequest.locale = "en_US"
initiateSubmitRequest.submit({ (initiateSubmitResponseData) in
let products = initiateSubmitResponseData.result?.products
Expand All @@ -47,7 +47,7 @@ class BVInitiateSubmitTest: XCTestCase {
func testInitiateSubmitWithExtendedResponse() {
let expectation = self.expectation(description: "testInitiateSubmitWithUserID")
let initiateSubmitRequest = BVInitiateSubmitRequest(productIds: ["product1", "product2", "product3"])
initiateSubmitRequest.userId = "test109"
initiateSubmitRequest.userId = BVTestUsers().loadKeyForUserId(userId: .submitUserId)
initiateSubmitRequest.locale = "en_US"

initiateSubmitRequest.submit({ (initiateSubmitResponseData) in
Expand Down Expand Up @@ -114,7 +114,7 @@ class BVInitiateSubmitTest: XCTestCase {
let initiateSubmitRequest = BVInitiateSubmitRequest(productIds: ["product1", "product2"])
initiateSubmitRequest.locale = "en_US"
initiateSubmitRequest.hostedauth = true;
initiateSubmitRequest.userId = "Nickname"
initiateSubmitRequest.userId = BVTestUsers().loadKeyForUserId(userId: .incorrectUserId)

initiateSubmitRequest.submit({ (initiateSubmitResponseData) in
expectation.fulfill()
Expand Down Expand Up @@ -161,7 +161,7 @@ class BVInitiateSubmitTest: XCTestCase {

let expectation = self.expectation(description: "testInitiateSubmitInvalidApiKeyError")
let initiateSubmitRequest = BVInitiateSubmitRequest(productIds: ["product1", "product2", "product3"])
initiateSubmitRequest.userId = "test109"
initiateSubmitRequest.userId = BVTestUsers().loadKeyForUserId(userId: .submitUserId)
initiateSubmitRequest.locale = "en_US"

initiateSubmitRequest.submit({ (initiateSubmitResponseData) in
Expand All @@ -180,7 +180,7 @@ class BVInitiateSubmitTest: XCTestCase {
let expectation = self.expectation(description: "testInitiateSubmitMissingProductsError")

let initiateSubmitRequest = BVInitiateSubmitRequest(productIds: [])
initiateSubmitRequest.userId = "test109"
initiateSubmitRequest.userId = BVTestUsers().loadKeyForUserId(userId: .submitUserId)
initiateSubmitRequest.locale = "en_US"

initiateSubmitRequest.submit({ (initiateSubmitResponseData) in
Expand All @@ -199,7 +199,7 @@ class BVInitiateSubmitTest: XCTestCase {
let expectation = self.expectation(description: "testInitiateSubmitMissingLocaleError")

let initiateSubmitRequest = BVInitiateSubmitRequest(productIds: ["product1", "product2", "product3"])
initiateSubmitRequest.userId = "test109"
initiateSubmitRequest.userId = BVTestUsers().loadKeyForUserId(userId: .submitUserId)

initiateSubmitRequest.submit({ (initiateSubmitResponseData) in
expectation.fulfill()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ class ReviewDisplayTests: XCTestCase {
XCTAssertNil(review.photos.first?.caption, "Etiam malesuada ultricies urna in scelerisque. Sed viverra blandit nibh non egestas. Sed rhoncus, ipsum in vehicula imperdiet, purus lectus sodales erat, eget ornare lacus lectus ac leo. Suspendisse tristique sollicitudin ultricies. Aliquam erat volutpat.")
XCTAssertEqual(review.photos.first?.identifier, "79880")
XCTAssertNotNil(review.photos.first?.sizes?.thumbnailUrl)
XCTAssertEqual(review.originalProductName, nil)

// Not getting this Object
/*
Expand Down Expand Up @@ -824,4 +825,51 @@ class ReviewDisplayTests: XCTestCase {
}

}

func testReviewQueryDisplayOriginalProductName() {
let configDict = ["clientId": "apitestcustomer",
"apiKeyConversations": "caB45h2jBqXFw1OE043qoMBD1gJC8EwFNCjktzgwncXY4"];

BVSDKManager.configure(withConfiguration: configDict, configType: .staging)

let expectation = self.expectation(description: "testReviewQueryDisplayOriginalProductName")

let request = BVReviewsRequest(productId: "data-gen-moppq9ekthfzbc6qff3bqokie", limit: 10, offset: 4)
.sort(by: .reviewRating, monotonicSortOrderValue: .descending)

request.load({ (response) in

XCTAssertEqual(response.results.count, 10)
let review = response.results.first!
XCTAssertEqual(review.rating, 5)
XCTAssertEqual(review.title, "Test")
XCTAssertEqual(review.reviewText, "test test test test test test test usernickname can be used on 2 different products or not testreviewtest jhcontest")
XCTAssertEqual(review.moderationStatus, "APPROVED")
XCTAssertEqual(review.identifier, "41173932")
XCTAssertNotNil(review.productId)
XCTAssertEqual(review.isRatingsOnly, false)
XCTAssertEqual(review.isFeatured, false)
XCTAssertEqual(review.productId, "data-gen-moppq9ekthfzbc6qff3bqokie")
XCTAssertEqual(review.authorId, "jh12345")
XCTAssertEqual(review.userNickname, "jhcontest")
XCTAssertEqual(review.userLocation, nil)
XCTAssertEqual(review.originalProductName, "14K White Gold Diamond Teardrop Necklace")

response.results.forEach { (review) in
XCTAssertEqual(review.productId, "data-gen-moppq9ekthfzbc6qff3bqokie")
}

expectation.fulfill()

}) { (error) in

XCTFail("review display request error: \(error)")

}

self.waitForExpectations(timeout: 1000) { (error) in
XCTAssertNil(error, "Something went horribly wrong, request took too long.")
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ class AnswerSubmissionTests: BVBaseStubTestCase {
let expectation = self.expectation(description: "")

let answer = BVAnswerSubmission(questionId: "6104", answerText: "")
answer.userId = "craiggil"
answer.userId = BVTestUsers().loadKeyForUserId(userId: .answerUserId)
answer.action = .preview

let sequenceFiles:[String] =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,7 @@ class FeedbackSubmissionTests: BVBaseStubTestCase {
stub(withJSONSequence: sequenceFiles)

let feedback = BVFeedbackSubmission(contentId: "83725", with: .review, with: .helpfulness)

feedback.userId = "userId3532791931"
feedback.userId = BVTestUsers().loadKeyForUserId(userId: .feedbackUserId)
feedback.vote = .positive

feedback.submit({ (response) in
Expand Down Expand Up @@ -82,8 +81,7 @@ class FeedbackSubmissionTests: BVBaseStubTestCase {
stub(withJSONSequence: sequenceFiles)

let feedback = BVFeedbackSubmission(contentId: "83725", with: .review, with: .inappropriate)

feedback.userId = "userId1302958052"
feedback.userId = BVTestUsers().loadKeyForUserId(userId: .feedbackUserId)
feedback.reasonText = "Optional reason text in this field."

feedback.submit({ (response) in
Expand Down Expand Up @@ -141,7 +139,7 @@ class FeedbackSubmissionTests: BVBaseStubTestCase {
let expectation = self.expectation(description: "testSubmitFeedbackWithUserId")

let feedback = BVFeedbackSubmission(contentId: "83725", with: .review, with: .helpfulness)
feedback.userId = "userId3532791931"
feedback.userId = BVTestUsers().loadKeyForUserId(userId: .feedbackUserId)
feedback.vote = .positive

feedback.submit({ (response) in
Expand Down Expand Up @@ -171,7 +169,7 @@ class FeedbackSubmissionTests: BVBaseStubTestCase {

let feedback = BVFeedbackSubmission(contentId: "83725", with: .review, with: .helpfulness)
feedback.vote = .positive
feedback.user = "dea9114258e49d5d95f4db5d4465991f7573657269643d7573657249643335333237393139333126646174653d3230323030353039"
feedback.user = BVTestUsers().loadKeyForUserId(userId: .feedbackUser)

feedback.submit({ (response) in
// success
Expand Down Expand Up @@ -199,7 +197,7 @@ class FeedbackSubmissionTests: BVBaseStubTestCase {
let expectation = self.expectation(description: "testSubmitFeedbackWithUASForRequireEncryptedUserIds")

let feedback = BVFeedbackSubmission(contentId: "83725", with: .review, with: .helpfulness)
feedback.userId = "userId3532791931"
feedback.userId = BVTestUsers().loadKeyForUserId(userId: .feedbackUserId)
feedback.vote = .positive

feedback.submit({ (response) in
Expand All @@ -224,7 +222,7 @@ class FeedbackSubmissionTests: BVBaseStubTestCase {

let feedback = BVFeedbackSubmission(contentId: "83725", with: .review, with: .helpfulness)
feedback.vote = .positive
feedback.user = "dea9114258e49d5d95f4db5d4465991f7573657269643d7573657249643335333237393139333126646174653d3230323030353039"
feedback.user = BVTestUsers().loadKeyForUserId(userId: .feedbackUser)

feedback.submit({ (response) in
// success
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ class QuestionSubmissionTests: BVBaseStubTestCase {

let question = BVQuestionSubmission(productId: "1000001")
question.userNickname = "cgil"
question.userId = "craiggiddl"
question.userId = BVTestUsers().loadKeyForUserId(userId: .questionsUserId)
question.action = .preview

question.submit({ (questionSubmission) in
Expand Down
Loading

0 comments on commit 444e95b

Please sign in to comment.