Merge branch 'eugenp:master' into danielmcnally285_last_n_characters
This commit is contained in:
@@ -4,8 +4,8 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>akka-modules</artifactId>
|
||||
<name>akka-modules</name>
|
||||
<packaging>pom</packaging>
|
||||
<name>akka-modules</name>
|
||||
|
||||
<parent>
|
||||
<artifactId>parent-modules</artifactId>
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>cxf-spring</artifactId>
|
||||
<name>cxf-spring</name>
|
||||
<packaging>war</packaging>
|
||||
<name>cxf-spring</name>
|
||||
|
||||
<parent>
|
||||
<groupId>com.baeldung</groupId>
|
||||
|
||||
@@ -5,8 +5,9 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>apache-cxf-modules</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<name>apache-cxf-modules</name>
|
||||
<packaging>pom</packaging>
|
||||
<name>apache-cxf-modules</name>
|
||||
|
||||
|
||||
<parent>
|
||||
<groupId>com.baeldung</groupId>
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>sse-jaxrs</artifactId>
|
||||
<name>sse-jaxrs</name>
|
||||
<packaging>pom</packaging>
|
||||
<name>sse-jaxrs</name>
|
||||
|
||||
<parent>
|
||||
<groupId>com.baeldung</groupId>
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>sse-jaxrs-server</artifactId>
|
||||
<name>sse-jaxrs-server</name>
|
||||
<packaging>war</packaging>
|
||||
<name>sse-jaxrs-server</name>
|
||||
|
||||
<parent>
|
||||
<groupId>com.baeldung</groupId>
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>apache-httpclient4</artifactId>
|
||||
<version>0.1-SNAPSHOT</version>
|
||||
<name>apache-httpclient4</name>
|
||||
<packaging>war</packaging>
|
||||
<name>apache-httpclient4</name>
|
||||
|
||||
<parent>
|
||||
<groupId>com.baeldung</groupId>
|
||||
@@ -193,7 +193,6 @@
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
|
||||
</build>
|
||||
|
||||
<profiles>
|
||||
|
||||
@@ -24,14 +24,12 @@
|
||||
<artifactId>camel-core</artifactId>
|
||||
<version>${camel.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.camel</groupId>
|
||||
<artifactId>camel-test-junit5</artifactId>
|
||||
<version>${camel.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.camel</groupId>
|
||||
<artifactId>camel-main</artifactId>
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>apache-spark</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<name>apache-spark</name>
|
||||
<packaging>jar</packaging>
|
||||
<name>apache-spark</name>
|
||||
|
||||
<parent>
|
||||
<groupId>com.baeldung</groupId>
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>apache-thrift</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<name>apache-thrift</name>
|
||||
<packaging>pom</packaging>
|
||||
<name>apache-thrift</name>
|
||||
|
||||
<parent>
|
||||
<groupId>com.baeldung</groupId>
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>apache-velocity</artifactId>
|
||||
<version>0.1-SNAPSHOT</version>
|
||||
<name>apache-velocity</name>
|
||||
<packaging>war</packaging>
|
||||
<name>apache-velocity</name>
|
||||
|
||||
<parent>
|
||||
<groupId>com.baeldung</groupId>
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>aws-dynamodb</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<name>aws-dynamodb</name>
|
||||
<packaging>jar</packaging>
|
||||
<name>aws-dynamodb</name>
|
||||
|
||||
<parent>
|
||||
<groupId>com.baeldung</groupId>
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>lambda-function</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<name>lambda-function</name>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<parent>
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>aws-lambda-modules</artifactId>
|
||||
<name>aws-lambda-modules</name>
|
||||
<packaging>pom</packaging>
|
||||
<name>aws-lambda-modules</name>
|
||||
|
||||
<parent>
|
||||
<groupId>com.baeldung</groupId>
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>ShippingFunction</artifactId>
|
||||
<version>1.0</version>
|
||||
<name>ShippingFunction</name>
|
||||
<version>1.0</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<parent>
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>helloworld</groupId>
|
||||
<artifactId>ToDoFunction</artifactId>
|
||||
<version>1.0</version>
|
||||
<name>ToDoFunction</name>
|
||||
<version>1.0</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<parent>
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>aws-miscellaneous</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<name>aws-miscellaneous</name>
|
||||
<packaging>jar</packaging>
|
||||
<name>aws-miscellaneous</name>
|
||||
|
||||
<parent>
|
||||
<groupId>com.baeldung</groupId>
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>aws-s3</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<name>aws-s3</name>
|
||||
<packaging>jar</packaging>
|
||||
<name>aws-s3</name>
|
||||
|
||||
<parent>
|
||||
<groupId>com.baeldung</groupId>
|
||||
@@ -26,7 +26,6 @@
|
||||
<version>${aws.java.sdk.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
@@ -56,7 +55,6 @@
|
||||
<version>${com.adobe.testing.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.testcontainers</groupId>
|
||||
<artifactId>junit-jupiter</artifactId>
|
||||
|
||||
+10
-10
@@ -4,6 +4,7 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>aws-modules</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<name>aws-modules</name>
|
||||
|
||||
<parent>
|
||||
@@ -12,16 +13,6 @@
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.amazonaws</groupId>
|
||||
<artifactId>aws-java-sdk-dynamodb</artifactId>
|
||||
<version>1.12.523</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<modules>
|
||||
<module>aws-app-sync</module>
|
||||
<module>aws-dynamodb</module>
|
||||
@@ -31,6 +22,15 @@
|
||||
<module>aws-s3</module>
|
||||
</modules>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.amazonaws</groupId>
|
||||
<artifactId>aws-java-sdk-dynamodb</artifactId>
|
||||
<version>1.12.523</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<properties>
|
||||
<aws-java-sdk.version>1.12.331</aws-java-sdk.version>
|
||||
<aws-java-sdk-v2.version>2.24.9</aws-java-sdk-v2.version>
|
||||
|
||||
+1
-1
@@ -5,8 +5,8 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>azure</artifactId>
|
||||
<version>0.1</version>
|
||||
<name>azure</name>
|
||||
<packaging>war</packaging>
|
||||
<name>azure</name>
|
||||
<description>Demo project for Spring Boot on Azure</description>
|
||||
|
||||
<parent>
|
||||
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
package com.baeldung.checkiftimebetweentwotimes;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import java.time.LocalTime;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
public class CheckIfTimeBetweenTwoTimesUnitTest {
|
||||
private LocalTime startTime = LocalTime.parse("09:00:00");
|
||||
private LocalTime endTime = LocalTime.parse("17:00:00");
|
||||
private LocalTime targetTime = LocalTime.parse("12:30:00");
|
||||
|
||||
@Test
|
||||
public void givenLocalTime_whenUsingIsAfterIsBefore_thenTimeIsBetween() {
|
||||
assertTrue(!targetTime.isBefore(startTime) && !targetTime.isAfter(endTime));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenLocalTime_whenUsingCompareTo_thenTimeIsBetween() {
|
||||
assertTrue(targetTime.compareTo(startTime) >= 0 && targetTime.compareTo(endTime) <= 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenDate_whenUsingAfterBefore_thenTimeIsBetween() {
|
||||
Calendar startCalendar = Calendar.getInstance();
|
||||
startCalendar.set(Calendar.HOUR_OF_DAY, 9);
|
||||
startCalendar.set(Calendar.MINUTE, 0);
|
||||
Date startTime = startCalendar.getTime();
|
||||
|
||||
Calendar endCalendar = Calendar.getInstance();
|
||||
endCalendar.set(Calendar.HOUR_OF_DAY, 17);
|
||||
endCalendar.set(Calendar.MINUTE, 0);
|
||||
Date endTime = endCalendar.getTime();
|
||||
|
||||
Calendar targetCalendar = Calendar.getInstance();
|
||||
targetCalendar.set(Calendar.HOUR_OF_DAY, 12);
|
||||
targetCalendar.set(Calendar.MINUTE, 30);
|
||||
Date targetTime = targetCalendar.getTime();
|
||||
|
||||
assertTrue(!targetTime.before(startTime) && !targetTime.after(endTime));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
=========
|
||||
|
||||
### Relevant articles:
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>core-java-lang-math-4</artifactId>
|
||||
<name>core-java-lang-math-4</name>
|
||||
|
||||
<parent>
|
||||
<groupId>com.baeldung.core-java-modules</groupId>
|
||||
<artifactId>core-java-modules</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
</project>
|
||||
+78
@@ -0,0 +1,78 @@
|
||||
package com.baeldung.percentile;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class CalculatePercentileUnitTest {
|
||||
|
||||
public static <T extends Comparable<T>> T getPercentile(Collection<T> input, double percentile) {
|
||||
if (input == null || input.isEmpty()) {
|
||||
throw new IllegalArgumentException("The input dataset cannot be null or empty.");
|
||||
}
|
||||
if (percentile < 0 || percentile > 100) {
|
||||
throw new IllegalArgumentException("Percentile must be between 0 and 100(exclusive)");
|
||||
}
|
||||
List<T> sortedList = input.stream()
|
||||
.sorted()
|
||||
.collect(Collectors.toList());
|
||||
|
||||
int rank = percentile == 0 ? 1 : (int) Math.ceil(percentile / 100.0 * input.size());
|
||||
return sortedList.get(rank - 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenCallingGetPercentileWithAList_thenGetExpectedResult() {
|
||||
assertThrows(IllegalArgumentException.class, () -> getPercentile(List.of(1, 2, 3), -1));
|
||||
assertThrows(IllegalArgumentException.class, () -> getPercentile(List.of(1, 2, 3), 101));
|
||||
|
||||
List<Integer> list100 = IntStream.rangeClosed(1, 100)
|
||||
.boxed()
|
||||
.collect(Collectors.toList());
|
||||
Collections.shuffle(list100);
|
||||
|
||||
assertEquals(1, getPercentile(list100, 0));
|
||||
assertEquals(10, getPercentile(list100, 10));
|
||||
assertEquals(25, getPercentile(list100, 25));
|
||||
assertEquals(50, getPercentile(list100, 50));
|
||||
assertEquals(76, getPercentile(list100, 75.3));
|
||||
assertEquals(100, getPercentile(list100, 100));
|
||||
|
||||
List<Integer> list8 = IntStream.of(-1, 200, 30, 42, -5, 7, 8, 92)
|
||||
.boxed()
|
||||
.collect(Collectors.toList());
|
||||
|
||||
assertEquals(-5, getPercentile(list8, 0));
|
||||
assertEquals(-5, getPercentile(list8, 10));
|
||||
assertEquals(-1, getPercentile(list8, 25));
|
||||
assertEquals(8, getPercentile(list8, 50));
|
||||
assertEquals(92, getPercentile(list8, 75.3));
|
||||
assertEquals(200, getPercentile(list8, 100));
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenCallingGetPercentileWithAnArray_thenGetExpectedResult() {
|
||||
|
||||
long[] theArray = new long[] { -1, 200, 30, 42, -5, 7, 8, 92 };
|
||||
|
||||
//convert the long[] array to a List<Long>
|
||||
List<Long> list8 = Arrays.stream(theArray)
|
||||
.boxed()
|
||||
.toList();
|
||||
|
||||
assertEquals(-5, getPercentile(list8, 0));
|
||||
assertEquals(-5, getPercentile(list8, 10));
|
||||
assertEquals(-1, getPercentile(list8, 25));
|
||||
assertEquals(8, getPercentile(list8, 50));
|
||||
assertEquals(92, getPercentile(list8, 75.3));
|
||||
assertEquals(200, getPercentile(list8, 100));
|
||||
}
|
||||
}
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
package com.baeldung.integersatbitlevel;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
class IntegersBitLevelUnitTest {
|
||||
|
||||
@Test
|
||||
void givenNumbers_whenBitwiseAND_thenResultIsExpected() {
|
||||
int result = 0b1100 & 0b0111;
|
||||
assertEquals(0b0100, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenNumbers_whenBitwiseOR_thenResultIsExpected() {
|
||||
int result = 0b1100 | 0b0111;
|
||||
assertEquals(0b1111, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenNumbers_whenBitwiseXOR_thenResultIsExpected() {
|
||||
int result = 0b1100 ^ 0b0111;
|
||||
assertEquals(0b1011, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenNumber_whenBitwiseNOT_thenResultIsExpected() {
|
||||
int result = ~0b0101;
|
||||
assertEquals(-0b0110, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenNumber_whenBitwiseLeftShift_thenResultIsExpected() {
|
||||
int result = 0b0101 << 2;
|
||||
assertEquals(0b10100, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenNumber_whenBitwiseRightShift_thenResultIsExpected() {
|
||||
int result = 0b0101 >> 1;
|
||||
assertEquals(0b10, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenOriginalColor_whenApplyingMask_thenObtainModifiedColor() {
|
||||
int originalColor = 0xFF336699;
|
||||
|
||||
int alphaMask = 0xFF000000;
|
||||
int redMask = 0x00FF0000;
|
||||
int greenMask = 0x0000FF00;
|
||||
int blueMask = 0x000000FF;
|
||||
|
||||
int alpha = (originalColor & alphaMask) >>> 24;
|
||||
int red = (originalColor & redMask) >>> 16;
|
||||
int green = (originalColor & greenMask) >>> 8;
|
||||
int blue = originalColor & blueMask;
|
||||
|
||||
red = Math.min(255, red + 50);
|
||||
green = Math.min(255, green + 30);
|
||||
|
||||
int modifiedColor = (alpha << 24) | (red << 16) | (green << 8) | blue;
|
||||
|
||||
assertEquals(-10124135, modifiedColor);
|
||||
}
|
||||
}
|
||||
@@ -55,7 +55,7 @@
|
||||
</build>
|
||||
|
||||
<properties>
|
||||
<validator.version>1.7</validator.version>
|
||||
<validator.version>1.8.0</validator.version>
|
||||
<emoji-java.version>5.1.1</emoji-java.version>
|
||||
<apache-commons-text.version>1.10.0</apache-commons-text.version>
|
||||
</properties>
|
||||
|
||||
@@ -144,6 +144,7 @@
|
||||
<module>core-java-lang-6</module>
|
||||
<module>core-java-lang-math</module>
|
||||
<module>core-java-lang-math-2</module>
|
||||
<module>core-java-lang-math-4</module>
|
||||
<module>core-java-lang-oop-constructors</module>
|
||||
<module>core-java-lang-oop-patterns</module>
|
||||
<module>core-java-lang-oop-generics</module>
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>deeplearning4j</artifactId>
|
||||
<name>deeplearning4j</name>
|
||||
<packaging>jar</packaging>
|
||||
<name>deeplearning4j</name>
|
||||
|
||||
<parent>
|
||||
<groupId>com.baeldung</groupId>
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>guice</artifactId>
|
||||
<name>guice</name>
|
||||
<packaging>jar</packaging>
|
||||
<name>guice</name>
|
||||
|
||||
<parent>
|
||||
<groupId>com.baeldung</groupId>
|
||||
|
||||
+1
-1
@@ -4,8 +4,8 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>di-modules</artifactId>
|
||||
<name>di-modules</name>
|
||||
<packaging>pom</packaging>
|
||||
<name>di-modules</name>
|
||||
|
||||
<parent>
|
||||
<artifactId>parent-modules</artifactId>
|
||||
|
||||
+1
-1
@@ -4,8 +4,8 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>disruptor</artifactId>
|
||||
<name>disruptor</name>
|
||||
<packaging>jar</packaging>
|
||||
<name>disruptor</name>
|
||||
|
||||
<parent>
|
||||
<groupId>com.baeldung</groupId>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user