use of com.google.common.io.ByteSource in project controller by opendaylight.
the class SnapshotTrackerTest method testAddChunks.
@Test
public void testAddChunks() throws IOException {
try (SnapshotTracker tracker = new SnapshotTracker(LOG, 3, "leader", mockContext)) {
tracker.addChunk(1, chunk1, Optional.of(LeaderInstallSnapshotState.INITIAL_LAST_CHUNK_HASH_CODE));
tracker.addChunk(2, chunk2, Optional.of(Arrays.hashCode(chunk1)));
tracker.addChunk(3, chunk3, Optional.of(Arrays.hashCode(chunk2)));
ByteSource snapshotBytes = tracker.getSnapshotBytes();
assertEquals("Deserialized", data, SerializationUtils.deserialize(snapshotBytes.read()));
}
verify(fbos).cleanup();
}
use of com.google.common.io.ByteSource in project controller by opendaylight.
the class MigratedMessagesTest method testNoSnapshotAfterStartupWithNoMigratedMessages.
@Test
public void testNoSnapshotAfterStartupWithNoMigratedMessages() {
TEST_LOG.info("testNoSnapshotAfterStartupWithNoMigratedMessages starting");
String id = factory.generateActorId("test-actor-");
InMemoryJournal.addEntry(id, 1, new UpdateElectionTerm(1, id));
InMemoryJournal.addEntry(id, 2, new SimpleReplicatedLogEntry(0, 1, new MockRaftActorContext.MockPayload("A")));
InMemoryJournal.addEntry(id, 3, new ApplyJournalEntries(0));
DefaultConfigParamsImpl config = new DefaultConfigParamsImpl();
config.setCustomRaftPolicyImplementationClass(DisableElectionsRaftPolicy.class.getName());
RaftActorSnapshotCohort snapshotCohort = new RaftActorSnapshotCohort() {
@Override
public void createSnapshot(ActorRef actorRef, java.util.Optional<OutputStream> installSnapshotStream) {
actorRef.tell(new CaptureSnapshotReply(ByteState.empty(), installSnapshotStream), actorRef);
}
@Override
public void applySnapshot(Snapshot.State snapshotState) {
}
@Override
public State deserializeSnapshot(ByteSource snapshotBytes) {
throw new UnsupportedOperationException();
}
};
TestActorRef<MockRaftActor> raftActorRef = factory.createTestActor(MockRaftActor.builder().id(id).config(config).snapshotCohort(snapshotCohort).persistent(Optional.of(true)).props().withDispatcher(Dispatchers.DefaultDispatcherId()), id);
MockRaftActor mockRaftActor = raftActorRef.underlyingActor();
mockRaftActor.waitForRecoveryComplete();
Uninterruptibles.sleepUninterruptibly(750, TimeUnit.MILLISECONDS);
List<Snapshot> snapshots = InMemorySnapshotStore.getSnapshots(id, Snapshot.class);
assertEquals("Snapshots", 0, snapshots.size());
TEST_LOG.info("testNoSnapshotAfterStartupWithNoMigratedMessages ending");
}
use of com.google.common.io.ByteSource in project solution-finder by knewjade.
the class UtilFigTetfuCaseTest method useTetfuCase2.
@Test
void useTetfuCase2() throws Exception {
// オプション: next, delay, loop, hold
String tetfu = "v115@vhHRQYLFFLDmClcJSAVDEHBEooRBJoAVBq+jFDM3KW?CaujPC0/DxCznFgCpCmFDzvaFDK+VWCPNmFDpintCvvjFDJ?HExCpurgCziPPCvyjFDpu3LCviLuC0HztCpOUPCaX9VCUt/?VCzurgCK+NMCsvaFDTnLuC0SNPCMNOMCanntCauaPC0i3LC?UNUFDv+bgCqX8LCTXNPC0izFDpCegCzfLuCp/DxCvfjxCpy?bgCzirgCK+dgCs/9tCaezPCJNegCsCegC6PltCvX8LCq+Tx?CqybgCpHztCpizPC0+LMCv3/VCv/9tCpXEWCp/dgCzXMgC0?vjFDJn/VCT+lFDpuntCMnbMC6OUPCP9KxCaujPCMnzPCJNW?WCzfjxCJHstCK+TFDU3LMC0fjWCv3/wCJNMgCpyytC03PFD?zSdBA+tB3mBcqBihBTpBlsBKpBfgglIeglCeilCehlAeAtg?lR4Beg0B8AeG8g0A8AeG8g0A8AeA8i0C8h0AeAtg0xhB8gl?JeMZBvhCRSB/LBuYBZfQ4IeR4HeglQ4Aezhh0AtglCeilg0?BthlAeAtglR4g0Atg0whA8AeG8xhAeG8g0whAeT4hlAtg0A?8AeA8i0glBth0A8APg0xhglAtglBeA8AAHeA8AAHeA8AAHe?A8AAPeTxAvhEepAd9Al9ASEBX/Alfg0MeR4BeQ4g0CeQ4Ae?QLRpwhglgHB8xhg0xwfeA8AAweA8AAOeU2Abfg0DeBtGeQ4?QpAeAtQ4g0CeQ4AeQLRawhglgHB8xhg0xwfeA8AAweA8AAI?eA8BeAALeTtAxeRpg0DeBtAeRpg0CeR4BtQ4h0BeR4glRpB?8AeG8xwgHD8BtA8xwgHC8xhBtwhglgHB8xhg0xwBeA8AAHe?A8AAHeA8AAHeA8AASeA8AAHeA8CeAABeAABeA8FeAABeA8F?eAACeA8EeAAFeA8LeRbAvhX6YAFgA8fAJuA23A/tATuAG1A?00AF2Ai1A5HB/MBNSB8MBpPBqNBuQBvTBTHBOQBfPBMUBTQ?BFfRpGeAtTpCeQ4BtG8AeB8AeI8AeI8AeI8AeO8AeE8AeG8?xwAeF8AtxwwSwwC8whBtBeAADeA8BeA8AeAAGeA8AeAAkez?lAxeRpCeRpBeAtTpAeRpQ4BtxwC8xwAeA8AtwSywA8xwwhB?tAAFeA8VeA8EeAACeA8AeAAIeAACeA8qeAAAeA8GeAAAeA8?GeA8HeAAA8HeAAJeZWAvhMthAKfAZtAd6AT7As0AC2Au4A+?sAT3AK3Af0A81A0eQ4DeAtg0glBeR4BeBtg0glCeQ4AeBth?0hlAeh0BtilB8AewhD8Atglg0A8AexhB8Btglg0A8AeA8wh?A8Bthlh0AehlBti0TeAAAeA8GeAAAeA8IeA8FeAABeA8FeA?AA8DeAADeA8DeAAIeAACeA8EeAACeA8JeJ9AvhJF4Au5AJ9?A/BBCABT2AX4AF+AU5AT3AZfRpAeBtCeTpR4BtBeRpBtQ4x?hwwAeglSaAtgHAeQpglAeAtwhQpwDxhSpA8i0gWwhQ4xhgl?A8BtglA8HeAAA8HeAAEeAACeA8EeAACeA8YeA8AeAAGeA8A?eAALeM1AvhSP6AN4AZ8A6PBuLBTOBUKBiBBFNBpcBGjBymB?3cB3VBMQBTZBGYBlbBxcBggAtHeAtCezhCeQpQ4AeQaywRp?gWRaAeglBPgWwhQpg0hlA8i0APAtglLeAADeA8LeZGBvhOa?RBeCBTUBtRB3TBsSBzIBvUBFSBKGBpKBuTB8bBXXBtaBBgg?lwwGewhglxwAeR4Cexhwwg0AeAtRpg0Q4whG8AeB8g0QpE8?AeA8Q4g0QpQLA8xhC8R4QpglA8APxwglwhQ4DeAABeA8FeA?ABeA8DeA8AeAAOe6HBvhF8OBxNBmNBTLB8TB3GBafR4GeR4?HeRpFeAtAeRpBei0BtAeB8AeH8xhA8AeE8xhB8AeE8xwB8A?eC8AtA8xwB8gHhlBtA8BeA8CeAAGeA8AeAAGeA8AeAAGeA8?AeAAGeA8AeAAMep2AvhCGpAN9AT/Aafi0GexhFewhQ4AewD?gHBeRpBeBPwwEeAtAexwQpA8AeA8xwAtQ4heA8AeAAweA8B?eAAJeOtAvhBZIBKyAneglIeglIehlHeh0Hej0FeAtR4g0Ee?whwwQ4DeRpAeyhwwCeRpAtwhhlD8AeC8jlB8AeC8glxhglB?8AeB8Q4xhD8wSwwA8Q4xwQpC8wSwwAtQ4FeA8BeAACeAABe?A8FeAABeA8FeAABeA8FeAABeA8FeAAEeA8JefxAvhClzAMm?ATnAdeglTeglEeAtBeBtDeAtAeRpBeh0CeQpCexhCeAPAeA?tgWwhAegWQawwAeQpAPBeBPBeQLCewSAexwRpB8wSwwAtQ4?teA8BeAACeAAEeA87elqAvhSKvATnAuvA3uAcuAZEB6BBTD?B3EBOJBpKBaMB8RBsSBdUBiQB5lB9jBviBvgQ4BewwGeQ4w?wAeilCewSGeBtAegWAeAPi0AeCtRpQ4CeA8BeAAMe+cBagg?0Q4BewwEeg0R4xwilAeg0AewSQ4wwAeilAeAtgWwSgWAeAP?i0AehlAtwhRpi0A8BtAPRpQ4MeAABeA8MezJBvhC3LBpABc?GBsfwhKeAtHeAtFeRpBeQpQ4Beg0Q4BeAtQpAewDDeAtglA?eRLglAeg0AewSGehWAegWAeAPi0AeCtRpQ4CeA8BeAAFeAA?BeA8MeAABeA8Pei/AvhKlMBuWB2bB0RBNQBzOB6XBJYB/aB?vcBSeBfgQ4CeQ4DeglAeQ4CeQ4whhlAegWCewDBexhQaQpw?hA8AeA8whQ4xwQ4JeAABeA8FeA8AeAAQeMPBvhETOBuNBzE?BlbBpFBsfwhIewhQeRpFeh0SpEeg0QpAewhQpQ4CeQ4AewS?AewhgWR4BeQ4whgWQahWwhB8AewhglxwAtg0wDwhB8xhQ4i?0BeAAA8FeA8DeAAFeA8BeAANeiDBvhC2/AT5A/1AVfQ4JeQ?4AewhDeRpQaJeQag0EeRaAPxSFeBtBeQpDegWAewSAewhAe?Q4CeQ4DegWAeQ4CewhgWQagWAexhA8AexhQ4i0AABeA8FeA?8AeAAIeA8BeAASeA8BeAAKe0GBvhKlHB5MBmQBZQBPbBUbB?lbBaeBTaBybB9ZBAgwwDeglCexwRpilAeQ4hlwwRpywAeR4?glwhE8AeC8QpD8g0AeB8Rpxwi0A8whg0gWQpwSwwSpA8xhg?0Q4AADeA8IeA8AeAAIeAAA8KeT8AvhP89AO9ApNB3TBsSBC?TBzMB+QBFZBZaBvcB+jByiB3YBLPBpJBqfwhIewhIewhRpH?eRpDeQ4Beg0Q4EeS4g0QaQpwhg0AeRpQ4glwhQaQpwhg0Ae?QpAPhlQLQag0D8yhwDg0glQ4glA8xwwhg0gWg0glQ4glA8x?wg0gWg0hlFeAAA8EeAACeA8LeMGBvhDzDBFMBxHBPEByfQ4?AewhHeQ4EeyhgHBeRpAeAtSaglAPCeAtCeQ4Beg0AtxSglA?eQpAPRaQLQag0Q4glA8xwh0gWhlPeAAA8OeAABeA8FeA8Be?AAMeMBBvhDyHBNMB9PBGMBufi0AeQ4AewhAewwAeAtwwg0g?lR4whxwG8AeI8AeC8ilA8whAeQ4A8QpA8AtQpglg0whwDQ4?RpCeAACeA8HeAAA8BeAAEeA8CeAAEeA8FeA8DeAAGeA8AeA?AKeZyAvhJzyAf5AM7AKvA2tAGpAd6AX2A5/ATABrfRpj0gl?CeRpj0glBewhBtjlg0A8AeA8xwjlg0A8AeQ4xhCeAABeA8M?eAABeA8FeAAEeA8CeA8GeAAAeA8GeAAIeA8AAHeA8AAJeaE?BvhISJB8HBOOBZQBzVB/RBUUBdNBTLBdfwwEeRpQ4xwEeRp?R4wwBeBtAewhRpQ4AtAeh0BtwhRpBtAeg0glRpD8QpC8AeA?8xwwhRpC8AeA8xwxhQpB8BtAeQ4xwwhAtA8hlAtAPQ4xwBt?Aeglg0xwEeAABeA8FeAABeA8FeAACeA8EeAACeA8Je92Avh?Qu+Aq+A//A89Az8AO8AJFBCKBfCBtCBUABZ3AFEBuDBpPBS?UBPRBLgwhQ4GeglBeQ4Beh0hlDewwBegHhlQaQ4xhQpA8gH?A8BtQ4neAADeA8Ne0HBvhNTBBMKBFOBaNBphBumBnnBTeBT?dBUgBFhBZaBPlBSoBpgwhHeglwhQ4EeilAeR4CeSpwhQawh?E8i0Q4wDwhC8zwA8CeAAOeTPB1fRpHeRpwhHeglwhQ4Eeil?whR4CeRpCeG8xwQ4AeG8g0Q4whB8AeB8i0Q4xhC8wwwSxwA?8FeAACeA8EeAAFeA8BeAALe0HBvhA2EBrfRpFeg0CewhFeg?0QpQaAeQ4BtBegHBPCeQpAeAtAeQpyhQaxhBtA8zwA8AAIe?A8BeAAIeA8BeAAmeA8AeAAJeW9AvhA/1ALfQ4IeR4RpAeg0?DeQaQ4Rpwhi0BeRaQpQaxhBtBegHQLRaAexhgWAtAeySwhQ?awhBtC8i0Q4wDwhBtA8zwA8CeAAFeA8EeAAFeA8BeAAceA8?AeAAEeAAAeA8GeAACeA8Jet5AvhGa5AZ3AG+A01Ad9A58A/?CBeewhQ4HewhR4BeBtBexhwwQ4BeQ4BtAeD8AeL8AeI8AeI?8AeI8AeK8AeA8Q4whB8AeE8Q4xhA8AeBtB8R4QpwhA8Aewh?BtA8DeA8AAIeAAAeA8GeAAAeA8GeAAAeA8IeA8AAIeAAA8E?eA8BeAAFeA8BeAAKeTWAvhHvYAOUAibA5rA62A91ATsAXpA?HfR4DeRpAeQ4AewDCewwBeg0QawDCewwAeRaAeQLQ4Aehlw?SAewwAeglQ4whA8g0gWg0Qpwhg0AfA8BeAAgeAAEeA8KeMj?AyeAtHeAtAeR4DeRpAeQpAewDCewwBeglQawDCewwAeRaAe?QLQ4AehlwSAewwAeglQ4whA8g0gWg0Qpwhg0AfA8BeAAgeA?AEeA8CeA8EeAAKe9pAvhOpIB2+AS/AT7AU4AO3AM6ApIBNN?B/MBTKBKBBq8AzCB34AkfglAeR4EeglAeQ4AewDGeQLAPQp?GewwEeRpBtAeAtwSBeAtCegWwSAewwAeAtCeglBtwhQpA8B?twSwwfeAAEeA8CeA8EeAAHeAAA8KelIBvhAAAA";
String command = String.format("util fig -t %s -n 6 -d 10 -L false -H hidden", tetfu);
RunnerHelper.runnerCatchingLog(() -> EntryPointMain.main(command.split(" ")));
ByteSource actual = FigureFileHelper.loadGifByteSource();
ByteSource expect = FigureFileHelper.loadResourceByteSource(UtilFigResources.TetfuCase2);
assertThat(actual.contentEquals(expect)).isTrue();
}
use of com.google.common.io.ByteSource in project solution-finder by knewjade.
the class UtilFigTetfuCaseTest method useTetfuCase5.
@Test
void useTetfuCase5() throws Exception {
// オプション: next, delay, frame:right, start:3, end:158, hold
String tetfu = "v115@vhKWSYzDFLDmClcJSAVDEHBEooRBUoAVBqybgCpHUx?CMn3LC6ubMCKHstCPt/VCa+VxCJNMgCqHUWCqubMCPtbMCq?+KWCTHUPC0nFgCqO8LCzHztCpCmPCan/wCJtjWCzuzPCpya?PCM3LMC6uzPCT+VWCvnNPCv+TWCa+TPCU9aPCP+9tCs3zPC?0yLMCvvjFDvS9wC0fjWCPujPCvHMMCs+TWCUuaPCat/VCpH?LxCPNWWC6PltC0i3LCanbMCKHExCTNUPCp+aFD6vbgCpOst?CUnjWCpf/wC6ybgCJtzPCMuKxC0SNPCa9qBASwBXmBTpBJn?BUoBVhBvXB6WBzdBOfB5fhlQ4HeglR4Deh0AeglwwQ4AeRp?Aeg0BeywwhRpAeg0AehWAeQ4whBtAeRpAewwAeQLwhg0Btx?SBewSQLwhRpg0glB8RpQLQ4xwA8glC8whwDQ4BtA8xwA8xh?gWQ4glBtxwA8h0gWQ4ilJepKBvhEMEBFRBMKBdWBeTBRgg0?LeAtBehlQ4g0AeBtCegWBewhgWBewSC8g0whwDCtQ4ieA8A?eAALeTQBvhEiRBphBTkBvmBmfBpgi0AeQ4EeRpg0AeR4g0C?exSAPglQLQ4g0BeAtxwglA8xhglAeB8xwh0gWwhglB8AtDe?AABeA8Le6WBvhBMeB3LBCgR4GeR4hlFeg0RaglQ4DeAtBPA?tAeR4g0AeBtxSAPAeQLQ4g0AeAtAexwglg0xhglAeBtxwh0?gWwhglA8BtDeAABeA8FeA8AeAAGeA8AeAAMelIBvhBlOBpK?BAgwhKeR4GeQ4AeQLglywCeBPBewSglwhAeAtQpxwi0whgl?AeBtDeAABeA8PeA8AeAASeA8BeAAJeZ8AvhEq8ATtAuTBUT?BfUBZfRpHeRpHewhglHegWQaEeQ4AewhgWQaglBeBtR4whA?ewwQ4CeBtQ4whQ4g0B8AeB8whA8R4h0A8AeBtxhR4xhC8AP?AtwhQ4DeA8AeAAGeA8DeAADeAAAeA8GeAAAeA8GeAADeA8J?eX6AvhEa7AFIB0HBONBTMB3fRpHeTpCehlAegWQaRph0R4g?lAezwB8Aeh0A8Q4g0xwhlwDwhg0A8FeA8BeAADeAAAeA8Ge?AADeA8NeA8DeAADeA8DeAAJepABvhEUDBfABm8AFEBT8Atf?RpOeQ4BeRpg0EeQ4whilC8AexhQ4PeA8BeAADeAADeA8XeA?8DeAAReAAA8JeSDBvhHJEBvPBKMBGKBTBBUJBFNBTBBPfRp?HeRpHeRpHeRpglBeBti0D8AeE8xwB8AeE8xwB8AeE8xwG8A?exwg0B8BthlgHDeA8CeAAEeA8BeAAFeA8BeAAIeAAAeA8Ge?AAAeA8GeAAA8KeuzAvhCJ+A6PB1SBjfRpHeRpAeh0wwDeRp?Aeg0ywAehlH8AeA8xwE8AeB8xwA8hlQpA8AeB8xwA8glSpA?eh0GeAAA8QeAAA8HeAAA8HeAAA8HeAAA8Lev6AvhUJzAMAB?T3A5TBSXBXNBtYB+ZBzTBURBWSBJnBfcBUeBifBFiBvhB9j?B2kB8dBqaBggglFeAtEeQ4BeAtAewwg0AeglQ4AeQ4BewhB?eBtEeQaAexSgWwSCeRawhBewSQpAeQLAeglQpAexwQ4xhgW?A8QphlJeTRBvhgOQBJiBTVBvjBKbBMnBZcBMdBuWB9ZBXPB?pmBykBTaB0bB1WBOnBpUBzYB3QBlcBidBpmBUrB2sBSoBNp?BvrBTfBziBGeBFqBvrBjgQ4Bei0RpBeR4AeRpg0RpBeR4Ae?RpglD8AeI8wDB8ilxwB8wDwhA8xwglxwB8wDwhA8xwg0Jea?YBvhAhOBRgzhDeQ4glwhywRpCewwAexSJeAPxwB8wDwhg0x?wg0deAACeA8OecRBvhB2QBsLBlfAtHeBtGeg0AtDezhRpAt?AeR4glRpglB8AtA8AeF8BtA8AeE8glAtB8AeA8T4xwAtA8w?Dwhg0xwg0AACeA8EeAACeA8EeAACeA8EeAACeA8YeS7AvhG?99AZNBTSBXPBPTB0MBTJBffRpDeBtAeQ4RpR4BeCtT4glAe?BtwwRpQ4ilAeI8AeE8xwB8AeA8BtA8whxwxhAeA8Ctzhg0A?eBtQpxwwhi07e+sAvhOZkBNLBCMB2JBMNBiLBzMBZkBXjBN?kBTiB+eBvmB8bBCdBjgAtDeg0CeAtAeilFeQpAexhg0Aeww?BeAPAewwBexhAewwAeQpAPAeQpAtAeQaQLQpA8xwwhglxhg?lTeFgBvhV/fBSdBRXBRSBzIBOeBFbBPgB+ZB8YBCPBcWBZk?BTkBTZBPdB9YBKPBMOBmfBFhBpPBKgwhQeAtglGeAtJewhA?ewhEeQ4whAexhFeglCeRpBtAeBPQawhQpwSAtAewSwhhWAe?glAeA8whAtT4AtgHglJePhBvhDykBNkBmlBphB2fwhEewhC?ewhEewhAeAtglwhEewhBtglwhwwAei0whAtwwhlH8AeJ8Qa?E8Q4C8QaE8Q4A8Atg0QaE8Q4Btg0QaQpA8ilQ4AtQpg0gWF?eAAAeA8KesGBvhZMGBzHB2HBz9AiJBNGBfPBXHB6NBOOBpj?B9oBTkBMoBxqB2kB8nBzgBXbB9eB6hB3VB5YBNQBMUBSXBL?gwwHeAtAewwCeglAewhAtBeglQ4hlDewhglBewwDewhAeQa?BeAPwhCeQaBeRaDeQpAeQaxSQLhWQaDexwT4AeCtAeAADeA?8MeJiBvhB2gBzYBIgRpAewwAeg0DeRpAtxwi0glAewhBtww?R4ilAewhAtwwT4hlAegWglwwQpAeglD8xwAtRpilg0A8QaB?tQpxhi0A8QaAtQpzhh0A8QaRpAeA8EeAALeGABvhNlBBSIB?X+AT3AJOB3MBUKBmGB0CBpABz/AFOBdTBAAA";
String command = String.format("util fig -t %s -n 7 -d 17 -f right -s 3 -e 158 -H hidden", tetfu);
RunnerHelper.runnerCatchingLog(() -> EntryPointMain.main(command.split(" ")));
ByteSource actual = FigureFileHelper.loadGifByteSource();
ByteSource expect = FigureFileHelper.loadResourceByteSource(UtilFigResources.TetfuCase5);
assertThat(actual.contentEquals(expect)).isTrue();
}
use of com.google.common.io.ByteSource in project solution-finder by knewjade.
the class UtilFigTetfuCaseTest method pngCase2.
@Test
void pngCase2() throws Exception {
// オプション: format:png
String tetfu = "v115@vhK2OJzkBifB9tB0sBXjBplB2mBMrBXsBAAA";
String command = String.format("util fig -F png -f no -t %s", tetfu);
Log log = RunnerHelper.runnerCatchingLog(() -> EntryPointMain.main(command.split(" ")));
// 出力ディレクトリを取得
String output = log.getOutput();
String outputDirectory = extractOutputDirectory(output);
// 出力されたPNGを取得
List<ByteSource> actuals = java.nio.file.Files.walk(Paths.get(outputDirectory)).map(Path::toFile).filter(File::isFile).sorted(Comparator.comparing(File::getName)).map(Files::asByteSource).collect(Collectors.toList());
// Assertion
List<ByteSource> expects = FigureFileHelper.loadResourcesByteSource(UtilFigResources.PngCase2);
assertThat(actuals).hasSameSizeAs(expects);
for (int index = 0; index < actuals.size(); index++) assertThat(actuals.get(index).contentEquals(expects.get(index))).isTrue();
// 出力されたPNGを削除
// noinspection ResultOfMethodCallIgnored
new File(outputDirectory).delete();
}
Aggregations