17 Commits

Author SHA1 Message Date
69af57f876 Merge pull request 'develop' (#11) from develop into main
Reviewed-on: #11
2025-12-16 18:08:36 +00:00
c80b40082c Merge pull request 'Changement en DB du nom de la colonne personne_id en proprietaire_id dans la table enquete' (#10) from features/crud_entites into develop
All checks were successful
CD - Deploy on main / deploy (pull_request) Successful in 44s
Reviewed-on: #10
2025-12-16 18:06:52 +00:00
1d4a1f61c9 Changement en DB du nom de la colonne personne_id en proprietaire_id dans la table enquete
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 32s
2025-12-16 19:01:07 +01:00
56f78e77f3 Merge pull request 'develop' (#9) from develop into main
Reviewed-on: #9
2025-12-05 19:24:21 +00:00
4a88af6487 Merge pull request 'Changement en DB du nom de la colonne personne_id en proprietaire_id dans la table enquete' (#8) from features/crud_entites into develop
All checks were successful
CD - Deploy on main / deploy (pull_request) Successful in 34s
Reviewed-on: #8
2025-12-05 19:24:00 +00:00
bc31074a24 Changement en DB du nom de la colonne personne_id en proprietaire_id dans la table enquete
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 29s
2025-12-05 20:23:36 +01:00
0c7dc082fd Merge pull request 'develop' (#7) from develop into main
Reviewed-on: #7
2025-12-05 19:21:28 +00:00
966b0af1c2 Merge pull request 'Changement en DB du nom de la colonne personne_id en proprietaire_id dans la table enquete' (#6) from features/crud_entites into develop
All checks were successful
CD - Deploy on main / deploy (pull_request) Successful in 36s
Reviewed-on: #6
2025-12-05 19:20:57 +00:00
ad2c3c70b2 Changement en DB du nom de la colonne personne_id en proprietaire_id dans la table enquete
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 28s
2025-12-05 20:19:58 +01:00
3f5d7e980c Merge pull request 'develop' (#5) from develop into main
Reviewed-on: #5
2025-12-05 19:11:10 +00:00
58aa088ac3 Merge pull request 'ajout de ci-cd' (#4) from features/crud_entites into develop
All checks were successful
CD - Deploy on main / deploy (pull_request) Successful in 39s
Reviewed-on: #4
2025-12-05 19:10:37 +00:00
ac624a62fb ajout de ci-cd
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 29s
2025-12-05 20:09:45 +01:00
87be4e4483 Merge pull request 'develop' (#3) from develop into main
Reviewed-on: #3
2025-12-05 19:07:16 +00:00
033b430051 Merge pull request 'ajout de ci-cd' (#2) from features/crud_entites into develop
Some checks failed
CD - Deploy on main / deploy (pull_request) Failing after 39s
Reviewed-on: #2
2025-12-05 19:06:43 +00:00
87615f210b ajout de ci-cd
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 29s
2025-12-05 20:05:52 +01:00
b8dbc7f625 Merge pull request 'ajout de ci-cd' (#1) from features/crud_entites into develop
Reviewed-on: #1
2025-12-05 17:53:30 +00:00
de2f149cf7 ajout de ci-cd
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 49s
2025-12-05 18:39:21 +01:00
256 changed files with 33532 additions and 74 deletions

View File

@@ -0,0 +1,118 @@
name: CD - Deploy on main
on:
pull_request:
branches:
- main
jobs:
deploy:
runs-on: self-hosted
steps:
# 1) S'assurer que Node.js est installé
- name: Ensure Node.js is installed
shell: sh
run: |
if command -v node >/dev/null 2>&1; then
echo "Node.js already installed: $(node -v)"
else
echo "Node.js not found, installing..."
apk update && apk add --no-cache nodejs
echo "Node.js installed: $(node -v)"
fi
# 2) S'assurer que Java & Maven sont installés
- name: Ensure Java & Maven are installed
shell: sh
run: |
if command -v java >/dev/null 2>&1; then
echo "Java already installed:"
java -version
else
echo "Java not found, installing OpenJDK 17..."
apk update && apk add --no-cache openjdk17-jdk
echo "Java installed:"
java -version
fi
if command -v mvn >/dev/null 2>&1; then
echo "Maven already installed:"
mvn -version
else
echo "Maven not found, installing Maven..."
apk update && apk add --no-cache maven
echo "Maven installed:"
mvn -version
fi
# 3) Détecter JAVA_HOME dynamiquement et le propager
- name: Detect JAVA_HOME dynamically
shell: sh
run: |
JAVA_BIN=$(readlink -f "$(command -v java)")
JAVA_HOME=$(dirname "$(dirname "$JAVA_BIN")")
echo "Detected JAVA_HOME=$JAVA_HOME"
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
# 4) Checkout du dépôt
- name: Checkout repository
uses: actions/checkout@v4
# 5) Afficher quelques infos utiles
- name: Show current commit and tools
shell: sh
run: |
echo "Current commit:"
git rev-parse HEAD
echo "JAVA_HOME is: $JAVA_HOME"
java -version
mvn -version
# 6) S'assurer que le client Docker + docker-compose sont installés
- name: Ensure Docker CLI is installed
shell: sh
run: |
if command -v docker >/dev/null 2>&1; then
echo "Docker CLI already installed:"
docker version || true
else
echo "Docker CLI not found, installing..."
apk update && apk add --no-cache docker docker-compose
echo "Docker CLI installed:"
docker version || true
fi
# 7) Générer le .env utilisé par docker-compose-prod.yml
- name: Generate .env from Gitea secrets
shell: sh
run: |
cat > .env <<EOF
POSTGRES_DB_FISCAD=${{ secrets.POSTGRES_DB_FISCAD }}
POSTGRES_USER_FISCAD=${{ secrets.POSTGRES_USER_FISCAD }}
POSTGRES_PASSWORD_FISCAD=${{ secrets.POSTGRES_PASSWORD_FISCAD }}
EOF
echo "Generated .env:"
cat .env
# 8) Build Maven pour générer le jar dans target/
- name: Build backend with Maven
shell: sh
run: mvn -B clean package
# 9) Déploiement en prod avec docker-compose-prod.yml
- name: Deploy using docker-compose (prod)
shell: sh
run: |
# IMPORTANT : on fixe le nom du projet compose
export COMPOSE_PROJECT_NAME=fiscad
# Puis on déploie avec un nom de projet fixe
docker-compose -f docker-compose-prod.yml pull || true
docker-compose -f docker-compose-prod.yml down --remove-orphans
docker-compose -f docker-compose-prod.yml up -d --build
# 10) Nettoyage des images non utilisées
- name: Cleanup unused images
shell: sh
run: docker image prune -f || true

View File

@@ -0,0 +1,73 @@
name: CI - Build & Test (develop)
on:
pull_request:
branches:
- develop
jobs:
build-and-test:
runs-on: self-hosted
steps:
# 1) S'assurer que Node.js est installé (utile pour les actions JS comme actions/checkout)
- name: Ensure Node.js is installed
shell: sh
run: |
if command -v node >/dev/null 2>&1; then
echo "Node.js already installed: $(node -v)"
else
echo "Node.js not found, installing..."
apk update && apk add --no-cache nodejs
echo "Node.js installed: $(node -v)"
fi
# 2) S'assurer que Java + Maven sont installés
- name: Ensure Java & Maven are installed
shell: sh
run: |
if command -v java >/dev/null 2>&1; then
echo "Java already installed:"
java -version
else
echo "Java not found, installing OpenJDK 17..."
apk update && apk add --no-cache openjdk17-jdk
echo "Java installed:"
java -version
fi
if command -v mvn >/dev/null 2>&1; then
echo "Maven already installed:"
mvn -version
else
echo "Maven not found, installing Maven..."
apk update && apk add --no-cache maven
echo "Maven installed:"
mvn -version
fi
# 3) Détecter automatiquement JAVA_HOME et le propager au reste du job
- name: Detect JAVA_HOME dynamically
shell: sh
run: |
JAVA_BIN=$(readlink -f "$(command -v java)")
JAVA_HOME=$(dirname "$(dirname "$JAVA_BIN")")
echo "Detected JAVA_HOME=$JAVA_HOME"
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
# 4) Checkout du dépôt (Node est déjà garanti à ce stade)
- name: Checkout repository
uses: actions/checkout@v4
# 5) Vérification des versions (pour les logs)
- name: Show Java & Maven versions
shell: sh
run: |
echo "JAVA_HOME is: $JAVA_HOME"
java -version
mvn -version
# 6) Build Maven
- name: Build with Maven
shell: sh
run: mvn -B clean verify

View File

@@ -1,5 +1,5 @@
# Étape 1 : Build avec Maven et Java 17
FROM openjdk:17-jdk-slim
FROM eclipse-temurin:17-jdk-jammy
WORKDIR /app

16598
dgi_zone_pilote.geojson Normal file

File diff suppressed because it is too large Load Diff

46
docker-compose-prod.yml Normal file
View File

@@ -0,0 +1,46 @@
version: '3.9'
services:
db:
image: postgres:15
container_name: fiscad-db
restart: always
environment:
POSTGRES_DB: ${POSTGRES_DB_FISCAD}
POSTGRES_USER: ${POSTGRES_USER_FISCAD}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD_FISCAD}
ports:
- "5432:5432"
volumes:
- db-data-fiscad:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER_FISCAD}"]
interval: 10s
timeout: 5s
retries: 5
app:
build:
context: .
dockerfile: Dockerfile
container_name: fiscad-app
depends_on:
- db
environment:
SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/${POSTGRES_DB_FISCAD}
SPRING_DATASOURCE_USERNAME: ${POSTGRES_USER_FISCAD}
SPRING_DATASOURCE_PASSWORD: ${POSTGRES_PASSWORD_FISCAD}
SERVER_PORT: 8282
IO_GMSS_FISCAD_PROFILE: abomey
SPRING_PROFILES_ACTIVE: abomey
ports:
- "8282:8282"
volumes:
- /fiscad/uploads:/app/uploads
- /fiscad/jasperReport:/app/jasperReport
- /fiscad/logs:/app/logs
restart: on-failure
volumes:
db-data-fiscad:

View File

@@ -32,8 +32,8 @@ services:
SPRING_DATASOURCE_USERNAME: ${POSTGRES_USER}
SPRING_DATASOURCE_PASSWORD: ${POSTGRES_PASSWORD}
SERVER_PORT: 8282
IO_GMSS_FISCAD_PROFILE: abomey
SPRING_PROFILES_ACTIVE: abomey
IO_GMSS_FISCAD_PROFILE: dgi
SPRING_PROFILES_ACTIVE: dgi
ports:
- "8282:8282"
volumes:

View File

@@ -56,13 +56,21 @@ public class ParcelleGeomController {
}
@GetMapping("/by-quartier/{codeQuartier}")
public ResponseEntity<?> getAllTpeList(@PathVariable String codeQuartier) {
public ResponseEntity<?> getParcellesGeomsByQuartier(@PathVariable String codeQuartier) {
return new ResponseEntity<>(
new ApiResponse<>(true, parcelleGeomService.getParcelleGeomListUnQuatier(codeQuartier), "Liste des parcelle chargée avec succès."),
HttpStatus.OK
);
}
@GetMapping("/by-arrondissement/{codeArrondissement}")
public ResponseEntity<?> getParcellesGeomsByArrondissement(@PathVariable String codeArrondissement) {
return new ResponseEntity<>(
new ApiResponse<>(true, parcelleGeomService.getParcelleGeomListUnArrondissement(codeArrondissement), "Liste des parcelle chargée avec succès."),
HttpStatus.OK
);
}
@GetMapping("/all-paged")
public ResponseEntity<?> getAllTpePaged(@RequestParam int pageNo, @RequestParam int pageSize) {

View File

@@ -50,27 +50,35 @@ public class Enquete extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateEnquete;
private boolean litige;
@JsonIgnore
@ManyToOne
private User user;
private Long mobileDataId;
@JsonIgnore
@OneToMany(mappedBy = "enquete")
private List<ActeurConcerne> acteurConcernes;
@JsonIgnore
@ManyToOne
private Parcelle parcelle;
private Long parcelleExternalKey;
@JsonIgnore
@ManyToOne
private Bloc bloc;
@ManyToOne
private Campagne campagne;
@@ -80,6 +88,7 @@ public class Enquete extends BaseEntity implements Serializable {
@JsonIgnore
@ManyToOne
@JoinColumn(name = "proprietaire_id")
private Personne personne ;
@JsonIgnore
@@ -158,9 +167,11 @@ public class Enquete extends BaseEntity implements Serializable {
private String surface;
private int nbreBatiment;
private int nbrePiscine;
@JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateDebutExcemption;
@JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateFinExcemption;

View File

@@ -5,6 +5,9 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.entities.decoupage.Arrondissement;
import io.gmss.fiscad.entities.decoupage.Commune;
import io.gmss.fiscad.entities.decoupage.Departement;
import io.gmss.fiscad.entities.decoupage.Quartier;
import io.gmss.fiscad.enums.StatutParcelle;
import jakarta.persistence.*;
@@ -26,16 +29,20 @@ import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
@SQLDelete(sql =
"UPDATE parcelle " +
"SET deleted = true " +
"WHERE id = ?")
@Where(clause = " deleted = false")
//@SQLDelete(sql =
// "UPDATE parcelle " +
// "SET deleted = true " +
// "WHERE id = ?")
//@Where(clause = " deleted = false")
public class ParcelleGeom extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String NomDepartement;
private String NomCommune;
private String NomArrondissement;
private String NomVillageQuartier;
private String codeBloc;
private String q;
private String ilot;
private String zone;
@@ -47,60 +54,51 @@ public class ParcelleGeom extends BaseEntity implements Serializable {
private String longitude;
private String latitude;
private String pointsPolygone;
//////////
private String departement;
private String commune;
private String arrondissement;
private String villageQuartier;
private String codeBloc;
//private String codeParcelle;
private String codeEquipe;
private Integer superficie;
private String elNumeroEtatLieux;
private String elLot;
private String elLettreParcelle;
private String rfuQuartierOuZone;
private String rfuIlot;
private String rfuLettreParcelle;
private String dateCollecte;
private String nomLotissement;
private String nomEtPrenoms;
private String sourceCollecte;
private String dateCollecte;
private String sourceDonnees;
private String observations;
@Enumerated(EnumType.STRING)
private StatutParcelle statutParcelle;
// @JsonIgnore
// @ManyToOne
// private Upload upload;
private Long uploadId;
@ManyToOne
private Departement departement;
@ManyToOne
private Commune commune;
@ManyToOne
private Arrondissement arrondissement;
@ManyToOne
private Quartier quartier ;
@ColumnDefault("0")
private int geomSrid;
@JsonSerialize(using = GeometrySerializer.class)
@JsonDeserialize(contentUsing = GeometryDeserializer.class)
@Column(name = "geometry",columnDefinition = "geometry(Polygon,32631)")
private Polygon geometry;
@Column(columnDefinition = "TEXT")
private String geometryString;
private String codeInsae;
private String numeroEtatLieux;
private String numeroTitreFoncier;
private String telephone;
//private String codeParcelle;
//private String codeEquipe;
//private String elLot;
//private String elLettreParcelle;
//private String rfuQuartierOuZone;
//private String rfuIlot;
//private String rfuLettreParcelle;
//private String nomLotissement;
////////////
// @JsonIgnore
// @OneToOne
// private Parcelle parcelle;
@ManyToOne
private Quartier quartier;
@ColumnDefault("0")
private int geomSrid;
// @JsonSerialize(using = GeometrySerializer.class)
// @JsonDeserialize(contentUsing = GeometryDeserializer.class)
// @Column(name = "geom",columnDefinition = "geometry(Polygon,4326)")
// private Polygon geometry ;
@JsonSerialize(using = GeometrySerializer.class)
@JsonDeserialize(contentUsing = GeometryDeserializer.class)
@Column(name = "geometry",columnDefinition = "geometry(Polygon,32631)")
private Polygon geometry;
@Column(columnDefinition = "TEXT")
private String geometryString;
}

View File

@@ -16,7 +16,7 @@ import java.io.Serializable;
@Setter
@Table(
indexes = {
@Index(name = "idx_terminal_external_bat", columnList = "terminalId, externalKey")
@Index(name = "idx_terminal_external_activite", columnList = "terminalId, externalKey")
}
)
public class MobileDataEnqueteActivite extends BaseEntity implements Serializable {

View File

@@ -120,28 +120,28 @@ public class ParcelleGeomServiceImpl implements ParcelleGeomService {
}
parcelleGeom.setUploadId(upload.getId());
parcelleGeom.setDepartement(propertiesNode.get("DEPARTEMENT").textValue());
parcelleGeom.setCommune(propertiesNode.get("COMMUNE").textValue());
parcelleGeom.setArrondissement(propertiesNode.get("ARRONDISSEMENT").textValue());
parcelleGeom.setVillageQuartier(propertiesNode.get("VILLAGE_QUARTIER").textValue());
parcelleGeom.setCodeBloc(propertiesNode.get("CODE_BLOC").textValue());
parcelleGeom.setNupProvisoire(propertiesNode.get("CODE_PARCELLE").textValue());
parcelleGeom.setCodeEquipe(propertiesNode.get("CODE_EQUIPE").textValue());
try {
parcelleGeom.setSuperficie(Integer.parseInt(propertiesNode.get("SUPERFICIE").textValue()));
}catch (Exception e){
}
parcelleGeom.setElNumeroEtatLieux(propertiesNode.get("EL_NUMERO_ETAT_LIEUX").textValue());
parcelleGeom.setElLot(propertiesNode.get("EL_LOT").textValue());
parcelleGeom.setRfuQuartierOuZone(propertiesNode.get("RFU_QUARTIER_OU_ZONE").textValue());
parcelleGeom.setElLettreParcelle(propertiesNode.get("EL_LETTRE_PARCELLE").textValue());
parcelleGeom.setRfuIlot(propertiesNode.get("RFU_ILOT").textValue());
parcelleGeom.setRfuLettreParcelle(propertiesNode.get("RFU_LETTRE_PARCELLE").textValue());
parcelleGeom.setDateCollecte(propertiesNode.get("DATE_COLLECTE").textValue());
parcelleGeom.setNomLotissement(propertiesNode.get("NOM_LOTISSEMENT").textValue());
parcelleGeom.setNomEtPrenoms(propertiesNode.get("NOM_ET_PRENOMS").textValue());
parcelleGeom.setSourceCollecte(propertiesNode.get("SOURCE_COLLECTE").textValue());
parcelleGeom.setObservations(propertiesNode.get("OBSERVATIONS").textValue());
// parcelleGeom.setDepartement(propertiesNode.get("DEPARTEMENT").textValue());
// parcelleGeom.setCommune(propertiesNode.get("COMMUNE").textValue());
// parcelleGeom.setArrondissement(propertiesNode.get("ARRONDISSEMENT").textValue());
// parcelleGeom.setVillageQuartier(propertiesNode.get("VILLAGE_QUARTIER").textValue());
// parcelleGeom.setCodeBloc(propertiesNode.get("CODE_BLOC").textValue());
// parcelleGeom.setNupProvisoire(propertiesNode.get("CODE_PARCELLE").textValue());
// parcelleGeom.setCodeEquipe(propertiesNode.get("CODE_EQUIPE").textValue());
// try {
// parcelleGeom.setSuperficie(Integer.parseInt(propertiesNode.get("SUPERFICIE").textValue()));
// }catch (Exception e){
// }
// parcelleGeom.setElNumeroEtatLieux(propertiesNode.get("EL_NUMERO_ETAT_LIEUX").textValue());
// parcelleGeom.setElLot(propertiesNode.get("EL_LOT").textValue());
// parcelleGeom.setRfuQuartierOuZone(propertiesNode.get("RFU_QUARTIER_OU_ZONE").textValue());
// parcelleGeom.setElLettreParcelle(propertiesNode.get("EL_LETTRE_PARCELLE").textValue());
// parcelleGeom.setRfuIlot(propertiesNode.get("RFU_ILOT").textValue());
// parcelleGeom.setRfuLettreParcelle(propertiesNode.get("RFU_LETTRE_PARCELLE").textValue());
// parcelleGeom.setDateCollecte(propertiesNode.get("DATE_COLLECTE").textValue());
// parcelleGeom.setNomLotissement(propertiesNode.get("NOM_LOTISSEMENT").textValue());
// parcelleGeom.setNomEtPrenoms(propertiesNode.get("NOM_ET_PRENOMS").textValue());
// parcelleGeom.setSourceCollecte(propertiesNode.get("SOURCE_COLLECTE").textValue());
// parcelleGeom.setObservations(propertiesNode.get("OBSERVATIONS").textValue());
parcelleGeom= parcelleGeomRepository.save(parcelleGeom);
try {
setStatutParcelleGeomFromGeoJson(parcelleGeom);
@@ -180,6 +180,11 @@ public class ParcelleGeomServiceImpl implements ParcelleGeomService {
return parcelleGeomRepository.findAllByQuartier_Code(codeQuartier);
}
@Override
public List<ParcelleGeom> getParcelleGeomListUnArrondissement(String codeArrondissement) {
return parcelleGeomRepository.findAllByQuartier_Arrondissement_Code(codeArrondissement);
}
@Override

View File

@@ -21,6 +21,7 @@ public interface ParcelleGeomService {
Page<ParcelleGeom> getParcelleGeomList(Pageable pageable);
List<ParcelleGeom> getParcelleGeomList();
List<ParcelleGeom> getParcelleGeomListUnQuatier(String codeQuartier);
public List<ParcelleGeom> getParcelleGeomListUnArrondissement(String codeArrondissement);
Optional<ParcelleGeom> getParcelleGeomById(Long id);

View File

@@ -24,7 +24,7 @@ public class EnqueteActivitePayload {
private Long idBackend;
private Long externalKey;
private Long terminalId;
private Long ChiffreAffaire;
private Long ChiffreAffaire; // Todo : Revoir le nom de la variable 15/12/2015
private String NumeroRccm;
private boolean synchronise;
private String observation;

View File

@@ -12,6 +12,7 @@ import java.util.Optional;
public interface ParcelleGeomRepository extends JpaRepository<ParcelleGeom, Long> {
List<ParcelleGeom> findAllByQuartier_Code(String code);
List<ParcelleGeom> findAllByQuartier_Arrondissement_Code(String code);
Optional<ParcelleGeom> findFirstByNupProvisoire(String numProvisoir);
@Modifying

View File

@@ -6,6 +6,7 @@ io.gmss.fiscad.profile=dgi
#spring.datasource.username=infocad_user
#spring.datasource.password=W5fwD({9*q53
# LOCAL ENV
spring.datasource.url=jdbc:postgresql://localhost:5432/fiscad_dgi
spring.datasource.username=infocad_user
spring.datasource.password=W5fwD({9*q53

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 489 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 489 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 470 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 470 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 352 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 352 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 317 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 317 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 266 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 266 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 263 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 263 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 392 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 392 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 383 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 383 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 185 KiB

Some files were not shown because too many files have changed in this diff Show More