[ka2] fix connecteur summum: migration du portail — Building Stack (location.summumpm.com) → Eversa (rental.summumpm.com). Au sync de 15:36 le connecteur rapportait found=0 « ok » (dérive détectée, retraits suspendus) : location.summumpm.com redirige désormais TOUT en 302 vers app.buildingstack.com (le portail jumeau edifialocation.com, lui, répond encore — c'est bien Summum qui a migré, lien « rental.summumpm.com/listings/list » sur summumpm.com). Le nouveau portail est une app Eversa (React Router « turbo-stream »), exactement le gabarit de gestion_cem : réécriture sur le patron gestion_cem.py (dont on importe _decode/_num/_unit_type) — /fr/listings/list.data (45 cartes immeuble) puis /fr/listings/<slug>/details.data par immeuble (units[] listed=true, via cache BD detail, clé = prix/dispo/compteur de la carte ; la fiche LÈVE si `listing` absent pour ne jamais empoisonner le cache). external_id = slug-uuid de l'UNITÉ (granularité inchangée, mais ids nécessairement neufs : les ApartmentId Building Stack n'existent plus → 75 ajouts, les 40 anciens partent en miss_count). Nouveautés : secteur (quartier, 56/75), pi² bornés 80-20000 (le portail publie des area=0/1 bidons), images Supabase préfixées BASE. Volume : le nouveau portail publie plus d'inventaire → 75 unités vs ~40 (Montréal 69, Blainville 2, Granby 2, Saint-Calixte 1, Longueuil 1 ; 695-2 589 $, 100 % prix/images, GPS 70/75). robots.txt : Crawl-delay 10 → request_delay = 10 s (patron halfred). Garde-fous : erreur franche si payload sans `listings` ou si cartes présentes mais 0 parsée. sources.json : URLs migrées vers rental.summumpm.com, secteurs mis à jour. Fixture ré-enregistrée (46 requêtes, 75 annonces), pytest summum 2 passed. Testé : fetch() venv → 75 unités, run.py sync summum → found=75 ok (added=75, removed=0, missed=40, 2,4 s) vs médiane 40, pm2 restart lou-ka-sync, site :8095 → 200.
74 changed files +255 −19,713
modified
data/sources.json
+3 −3
@@ -1108,9 +1108,9 @@ | ||
| 1108 | 1108 | { |
| 1109 | 1109 | "id": "summum", |
| 1110 | 1110 | "name": "Gestion immobilière Summum", |
| 1111 | − "url": "https://location.summumpm.com", | |
| 1112 | − "listing_url": "https://location.summumpm.com/Listing/Listings", | |
| 1113 | − "sectors": "Saint-Jérôme, Blainville, Saint-Calixte, Laval, Montréal, Lachine, Longueuil, Granby", | |
| 1111 | + "url": "https://rental.summumpm.com", | |
| 1112 | + "listing_url": "https://rental.summumpm.com/fr/listings/list", | |
| 1113 | + "sectors": "Montréal, Blainville, Saint-Calixte, Longueuil, Granby", | |
| 1114 | 1114 | "connector": "summum", |
| 1115 | 1115 | "status": "actif", |
| 1116 | 1116 | "region": "Laurentides" |
modified
louka/connectors/summum.py
+171 −254
@@ -2,281 +2,198 @@ | ||
| 2 | 2 | # Lou-Ka — Agrégateur de logements à louer (province de Québec) |
| 3 | 3 | # Auteur : Simon-Pierre Boucher — contact@spboucher.ai |
| 4 | 4 | # connectors/summum.py : connecteur Gestion immobilière Summum |
| 5 | −# (location.summumpm.com) — portail hébergé Building Stack (même famille | |
| 6 | −# que le portail edifialocation.com du connecteur edifia.py) : | |
| 7 | −# Saint-Jérôme, Blainville, Montréal, Laval, Longueuil, Granby… | |
| 8 | −# - /Listing/Listings embarque `var units = [...]` : JSON complet des | |
| 9 | −# unités affichées (ApartmentId stable, prix, pi², chambres, salles de | |
| 10 | −# bain, adresse complète avec GPS, contact de location, photo) ; | |
| 11 | −# - les pages immeuble /b/<id> donnent la date de disponibilité par unité | |
| 12 | −# et les commodités de l'immeuble (une requête par immeuble, en cache | |
| 13 | −# via self.detail, plafonnée) ; | |
| 14 | −# - /Listing/ApartmentView?id=<ApartmentId>&lang=fr-CA (fragment AJAX des | |
| 15 | −# onglets) donne la fiche UNITÉ : étage, équipements (électricité/ | |
| 16 | −# chauffage/eau chaude, plancher, wi-fi, réfrigérateur, cuisinière, | |
| 17 | −# balcon…), commentaires (visite virtuelle) et ~10 photos pleine taille | |
| 18 | −# (une requête par unité, en cache via self.detail, plafonnée). | |
| 19 | −# Portail SaaS standard, pas de robots.txt (tout permis). | |
| 5 | +# (rental.summumpm.com) — portail Eversa (React Router « turbo-stream », | |
| 6 | +# même plateforme que gestion_cem.py, dont on réutilise le décodeur). | |
| 7 | +# Historique : jusqu'en octobre 2026 la source était l'ancien portail | |
| 8 | +# Building Stack location.summumpm.com (/Listing/Listings, `var units`) ; | |
| 9 | +# ce domaine redirige désormais TOUT (302) vers app.buildingstack.com — | |
| 10 | +# Summum a migré ses annonces sur rental.summumpm.com. | |
| 11 | +# - /fr/listings/list.data : cartes immeuble (slug, adresse, ville, quartier, | |
| 12 | +# GPS, prix min, dispo, compteur d'unités listées) ; | |
| 13 | +# - /fr/listings/<slug>/details.data : fiche immeuble -> units[] avec | |
| 14 | +# listed=true (slug-uuid stable = external_id, prix, chambres, sdb, | |
| 15 | +# pi², étage, alias d'unité, date de disponibilité, photos). | |
| 16 | +# Les photos sont des chemins /storage/... (Supabase) servis aussi par le | |
| 17 | +# domaine du portail — préfixés par BASE. | |
| 18 | +# robots.txt : Allow /fr + « Crawl-delay: 10 » -> request_delay = 10 s ; | |
| 19 | +# le cache détail (self.detail) évite de re-visiter les fiches inchangées. | |
| 20 | 20 | # ----------------------------------------------------------------------------- |
| 21 | 21 | from __future__ import annotations |
| 22 | 22 | |
| 23 | −import hashlib | |
| 24 | 23 | import json |
| 25 | −import re | |
| 26 | 24 | |
| 27 | −from bs4 import BeautifulSoup | |
| 25 | +import requests | |
| 28 | 26 | |
| 29 | 27 | from ..schema import Listing |
| 30 | 28 | from .base import BaseConnector |
| 29 | +from .gestion_cem import _decode, _num, _unit_type | |
| 31 | 30 | |
| 32 | −BASE = "https://location.summumpm.com" | |
| 31 | +BASE = "https://rental.summumpm.com" | |
| 33 | 32 | |
| 34 | 33 | # graphies sans accent vues dans le JSON du portail -> toponyme officiel |
| 35 | 34 | _CITY_FIX = {"Montreal": "Montréal"} |
| 36 | 35 | |
| 37 | 36 | |
| 38 | −def _extract_json(html: str, marker: str): | |
| 39 | − """Décode la structure JSON qui suit `marker` dans un script inline.""" | |
| 40 | − i = html.find(marker) | |
| 41 | − if i < 0: | |
| 42 | − return None | |
| 43 | − try: | |
| 44 | − data, _ = json.JSONDecoder().raw_decode(html[i + len(marker):].lstrip()) | |
| 45 | − except Exception: | |
| 46 | − return None | |
| 47 | − return data | |
| 48 | − | |
| 49 | − | |
| 50 | −class _CapAtteint(Exception): | |
| 51 | − """Plafond de requêtes détail atteint pour cette synchronisation.""" | |
| 37 | +def _images(items) -> list[str]: | |
| 38 | + out: list[str] = [] | |
| 39 | + for i in items or []: | |
| 40 | + if not isinstance(i, str) or not i: | |
| 41 | + continue | |
| 42 | + url = i if i.startswith("http") else BASE + i | |
| 43 | + if url not in out: | |
| 44 | + out.append(url) | |
| 45 | + return out | |
| 52 | 46 | |
| 53 | 47 | |
| 54 | 48 | class SummumConnector(BaseConnector): |
| 55 | − source_id = "summum" | |
| 56 | − request_delay = 0.7 | |
| 57 | − max_real_details = 45 # pages immeuble par sync (cache exclu) | |
| 58 | − max_unit_details = 120 # fragments ApartmentView par sync (cache exclu) | |
| 59 | − | |
| 60 | − # -- fiche unité (fragment AJAX du portail Building Stack) ----------------- | |
| 61 | − def _apartment_view(self, ext_id: str, key: str) -> dict: | |
| 62 | − """GET /Listing/ApartmentView?id=<ApartmentId>&lang=fr-CA : étage, | |
| 63 | − équipements (électricité/chauffage/eau chaude, plancher, wi-fi…), | |
| 64 | − items simples (réfrigérateur, cuisinière, balcon), commentaires | |
| 65 | − (visite virtuelle) et galerie photo de l'UNITÉ (~10 images pleine | |
| 66 | − taille). Même endpoint que les onglets des pages /b/<id>.""" | |
| 67 | − def _fetch() -> dict: | |
| 68 | − if self._real_units >= self.max_unit_details: | |
| 69 | − raise _CapAtteint() | |
| 70 | − self._real_units += 1 | |
| 71 | − html = self.get(f"{BASE}/Listing/ApartmentView", | |
| 72 | − params={"id": ext_id, "lang": "fr-CA"}, | |
| 73 | − headers={"X-Requested-With": "XMLHttpRequest"}).text | |
| 74 | − soup = BeautifulSoup(html, "html.parser") | |
| 75 | − pairs: list[tuple[str, str]] = [] | |
| 76 | − for li in soup.select("ul.main-items li"): | |
| 77 | − t, v = li.find("p", class_="title"), li.find("h4") | |
| 78 | − if not (t and v): | |
| 79 | − continue | |
| 80 | − label = re.sub(r"\s+", " ", t.get_text(" ", strip=True)).strip() | |
| 81 | − value = re.sub(r"\s+", " ", v.get_text(" ", strip=True)).strip() | |
| 82 | − if (label and value and value not in ("--", "N/C") | |
| 83 | − and (label, value) not in pairs): | |
| 84 | − pairs.append((label, value)) | |
| 85 | − extras = [] # réfrigérateur, cuisinière, balcon… | |
| 86 | − for li in soup.select("ul.amentity-links li"): | |
| 87 | − t = re.sub(r"\s+", " ", li.get_text(" ", strip=True)).strip() | |
| 88 | − if 2 <= len(t) <= 60 and t not in extras: | |
| 89 | − extras.append(t) | |
| 90 | − comments = "" | |
| 91 | − note = soup.select_one(".unit-notes p") | |
| 92 | − if note: | |
| 93 | − comments = re.sub(r"\s+", " ", note.get_text(" ", strip=True)) | |
| 94 | − imgs = list(dict.fromkeys(re.findall( | |
| 95 | − r"https://wfiles\.buildingstack\.com/resources/image/\w+", | |
| 96 | − html))) | |
| 97 | − return {"pairs": dict(pairs), "extras": extras, | |
| 98 | − "comments": comments.strip(), "images": imgs[:15]} | |
| 99 | − | |
| 100 | − try: | |
| 101 | − return self.detail(ext_id, key, _fetch) | |
| 102 | − except Exception: | |
| 103 | − return {} | |
| 104 | − | |
| 105 | − # -- pages immeuble (dates de disponibilité + commodités) ---------------------- | |
| 106 | − def _building_page(self, pub_id: str, key: str) -> dict: | |
| 107 | − """Page /b/<id> : { 'dates': {unité: dispo}, 'amenities': [...] }.""" | |
| 108 | − def _fetch() -> dict: | |
| 109 | − if self._real_details >= self.max_real_details: | |
| 110 | − raise _CapAtteint() | |
| 111 | − self._real_details += 1 | |
| 112 | − html = self.get(f"{BASE}/b/{pub_id}").text | |
| 113 | − soup = BeautifulSoup(html, "html.parser") | |
| 114 | − dates: dict[str, str] = {} | |
| 115 | − for a in soup.select("ul.wpb-tabs-menu a.apartment-view-potential"): | |
| 116 | − spans = [s.get_text(" ", strip=True) for s in a.find_all("span")] | |
| 117 | − if len(spans) >= 6 and spans[0]: | |
| 118 | − dates[spans[0]] = spans[5] # Unité -> Disponible | |
| 119 | − amenities: list[str] = [] | |
| 120 | − for li in soup.select(".facilities ul li label"): | |
| 121 | − t = re.sub(r"\s+", " ", li.get_text(" ", strip=True)) | |
| 122 | − if 3 <= len(t) <= 90 and t not in amenities: | |
| 123 | − amenities.append(t) | |
| 124 | − imgs = [u for u in dict.fromkeys(re.findall( | |
| 125 | − r"https://wfiles\.buildingstack\.com/resources/image/[\w]+", | |
| 126 | − html))] | |
| 127 | − return {"dates": dates, "amenities": amenities[:20], | |
| 128 | − "images": imgs[:10]} | |
| 49 | + """Gestion immobilière Summum via Eversa — annonces à l'unité.""" | |
| 129 | 50 | |
| 130 | − try: | |
| 131 | − return self.detail(pub_id, key, _fetch) | |
| 132 | − except Exception: | |
| 133 | − return {} | |
| 134 | − | |
| 135 | − # -- fetch ---------------------------------------------------------------------- | |
| 51 | + source_id = "summum" | |
| 52 | + request_delay = 10.0 # robots.txt : Crawl-delay: 10 | |
| 53 | + | |
| 54 | + # -- helpers --------------------------------------------------------------- | |
| 55 | + def _route_data(self, path: str): | |
| 56 | + """Décode l'endpoint turbo-stream `<path>.data` du portail.""" | |
| 57 | + resp = self.get(f"{BASE}{path}.data") | |
| 58 | + resp.encoding = "utf-8" # turbo-stream sans charset déclaré | |
| 59 | + return _decode(resp.text) | |
| 60 | + | |
| 61 | + def _detail_listing(self, slug: str) -> dict: | |
| 62 | + data = self._route_data(f"/fr/listings/{slug}/details") | |
| 63 | + page = (data or {}).get("PublicListingDetailPage") or {} | |
| 64 | + if "data" in page: | |
| 65 | + page = page.get("data") or {} | |
| 66 | + listing = page.get("listing") | |
| 67 | + if not isinstance(listing, dict): | |
| 68 | + # structure inattendue : lever plutôt que cacher {} (empoisonnerait | |
| 69 | + # le cache détail jusqu'au prochain changement de la carte liste) | |
| 70 | + raise RuntimeError(f"summum : fiche {slug} sans `listing` " | |
| 71 | + "(gabarit Eversa changé ?)") | |
| 72 | + return listing | |
| 73 | + | |
| 74 | + def _building_fallback(self, b: dict, page_url: str) -> Listing | None: | |
| 75 | + """Carte de la liste -> une annonce « immeuble » (détail indisponible).""" | |
| 76 | + price = _num(b.get("minPricePerMonth") or b.get("price")) | |
| 77 | + bd = b.get("bedrooms") | |
| 78 | + avail = str(b.get("availability") or "")[:10] | |
| 79 | + city = (b.get("city") or "").strip() | |
| 80 | + return Listing( | |
| 81 | + source=self.source_id, | |
| 82 | + external_id=b.get("slug") or b.get("listingId") or "", | |
| 83 | + url=page_url, | |
| 84 | + title=(b.get("title") or b.get("street") or "").strip(), | |
| 85 | + address=(b.get("street") or "").strip(), | |
| 86 | + sector=(b.get("neighborhood") or "").strip(), | |
| 87 | + city=_CITY_FIX.get(city, city), | |
| 88 | + unit_type=_unit_type(bd), | |
| 89 | + bedrooms=_num(bd), | |
| 90 | + bathrooms=_num(b.get("bathrooms")), | |
| 91 | + price=price, | |
| 92 | + price_label=f"{price:.0f} $ /mois" if price else "", | |
| 93 | + availability=f"Disponible le {avail}" if avail else "Disponible", | |
| 94 | + availability_date=avail or None, | |
| 95 | + images=_images(b.get("images") or b.get("buildingImages")), | |
| 96 | + lat=b.get("latitude"), | |
| 97 | + lng=b.get("longitude"), | |
| 98 | + ) | |
| 99 | + | |
| 100 | + # -- contrat --------------------------------------------------------------- | |
| 136 | 101 | def fetch(self) -> list[Listing]: |
| 137 | − self._real_details = 0 | |
| 138 | − self._real_units = 0 | |
| 139 | − html = self.get(f"{BASE}/Listing/Listings").text | |
| 140 | − units = _extract_json(html, "var units =") or [] | |
| 141 | − | |
| 142 | − # une page immeuble par immeuble (clé de cache = contenu des unités) | |
| 143 | − by_building: dict[str, list[dict]] = {} | |
| 144 | − for u in units: | |
| 145 | − pub = str((u.get("Building") or {}) | |
| 146 | − .get("PublicListBuildingName") or "") | |
| 147 | − if pub: | |
| 148 | − by_building.setdefault(pub, []).append(u) | |
| 149 | − bldg_info: dict[str, dict] = {} | |
| 150 | − for pub, us in by_building.items(): | |
| 151 | − key = hashlib.sha1(json.dumps( | |
| 152 | − sorted((str(x.get("ApartmentId")), | |
| 153 | − str((x.get("Apartment") or {}).get("Price"))) | |
| 154 | − for x in us)).encode("utf-8")).hexdigest()[:16] | |
| 155 | − bldg_info[pub] = self._building_page(pub, key) | |
| 156 | − | |
| 157 | − listings: list[Listing] = [] | |
| 158 | − for u in units: | |
| 159 | − apt = u.get("Apartment") or {} | |
| 160 | − adr = u.get("Address") or {} | |
| 161 | − bld = u.get("Building") or {} | |
| 162 | − ext_id = str(u.get("ApartmentId") or "") | |
| 163 | − if not ext_id: | |
| 102 | + data = self._route_data("/fr/listings/list") | |
| 103 | + page = (data or {}).get("PublicListingsLayoutPage") or {} | |
| 104 | + if "data" in page: | |
| 105 | + page = page.get("data") or {} | |
| 106 | + if not isinstance(page, dict) or "listings" not in page: | |
| 107 | + raise RuntimeError("summum : payload /fr/listings/list.data sans " | |
| 108 | + "`listings` (gabarit Eversa changé ?)") | |
| 109 | + buildings = page.get("listings") or [] | |
| 110 | + | |
| 111 | + out: list[Listing] = [] | |
| 112 | + seen: set[str] = set() | |
| 113 | + for b in buildings: | |
| 114 | + if not isinstance(b, dict): | |
| 164 | 115 | continue |
| 165 | − num = str(apt.get("UnitName") or "").strip() | |
| 166 | − building_name = str(u.get("BuildingName") or "").strip() | |
| 167 | − pub = str(bld.get("PublicListBuildingName") or "") | |
| 168 | − info = bldg_info.get(pub) or {} | |
| 169 | − | |
| 170 | − # typologie dérivée des chambres structurées (patron edifia.py) | |
| 171 | − beds = apt.get("NumberOfBedrooms") or 0 | |
| 172 | − baths = apt.get("NumberOfBathrooms") or 0 | |
| 173 | − unit_type = "Studio" if beds == 0 else f"{beds + 2}½" | |
| 174 | − | |
| 175 | − dispo = (info.get("dates") or {}).get(num, "") | |
| 176 | − if not dispo: | |
| 177 | − availability = "" | |
| 178 | − elif re.search(r"\d", dispo): # « déc. 01, 2026 » | |
| 179 | − availability = f"Libre {dispo}" | |
| 180 | − else: # « Disponible dès maintenant! » | |
| 181 | − availability = dispo | |
| 182 | − | |
| 183 | − area = apt.get("Area") | |
| 184 | − try: | |
| 185 | − area = float(area) | |
| 186 | − if not 80 <= area <= 20000: | |
| 187 | − area = None | |
| 188 | − except (TypeError, ValueError): | |
| 189 | − area = None | |
| 190 | − | |
| 191 | − # fiche unité (étage, équipements, visite virtuelle, ~10 photos) — | |
| 192 | − # via cache : re-visitée si prix/superficie/dispo bougent | |
| 193 | − ukey = (f"v1|{apt.get('Price')}|{apt.get('Area')}|" | |
| 194 | − f"{beds}|{baths}|{dispo}") | |
| 195 | − view = self._apartment_view(ext_id, ukey) | |
| 196 | − pairs = view.get("pairs") or {} | |
| 197 | − extras = view.get("extras") or [] | |
| 198 | − if area is None: | |
| 199 | − try: | |
| 200 | − v = float(pairs.get("Superficie (pi.ca)", "")) | |
| 201 | − area = v if 80 <= v <= 20000 else None | |
| 202 | − except ValueError: | |
| 203 | − pass | |
| 204 | − | |
| 205 | − # description dérivée : faits + équipements + commentaires (le | |
| 206 | − # portail n'a pas de texte libre par unité en dehors des | |
| 207 | − # commentaires — souvent un lien de visite virtuelle) | |
| 208 | − phrases: list[str] = [] | |
| 209 | − head = " — ".join(x for x in [ | |
| 210 | − f"{int(area)} pi²" if area else "", | |
| 211 | − f"{beds} chambre(s)" if beds else "", | |
| 212 | − f"{baths} salle(s) de bain" if baths else "", | |
| 213 | − f"étage {pairs['Étage']}" if pairs.get("Étage") else ""] if x) | |
| 214 | − if head: | |
| 215 | − phrases.append(head + ".") | |
| 216 | − for label, value in pairs.items(): | |
| 217 | − if label in ("Superficie (pi.ca)", "Étage", "Ch. à coucher", | |
| 218 | − "Salles de bains", "Unité", "Loyer"): | |
| 219 | − continue | |
| 220 | − if value == "Oui": | |
| 221 | − phrases.append(f"{label}.") | |
| 222 | − elif value != "Non": | |
| 223 | − phrases.append(f"{label} : {value}.") | |
| 224 | − if extras: | |
| 225 | − phrases.append(", ".join(extras) + ".") | |
| 226 | − if view.get("comments"): | |
| 227 | − phrases.append(view["comments"]) | |
| 228 | − desc = " ".join(phrases).strip() | |
| 229 | − | |
| 230 | − details: dict = {"bedrooms": int(beds), "bathrooms": int(baths)} | |
| 231 | − floor = pairs.get("Étage") or "" | |
| 232 | − if str(floor).isdigit(): | |
| 233 | − details["floor"] = int(floor) | |
| 234 | − contacts = bld.get("ListingEmployeesContacts") or [] | |
| 235 | − if contacts: | |
| 236 | − c = contacts[0] | |
| 237 | − contact = {k: v for k, v in [ | |
| 238 | − ("name", c.get("FullName")), | |
| 239 | − ("phone", c.get("FormattedPhoneNumber")), | |
| 240 | − ("email", c.get("Email"))] if v} | |
| 241 | − if contact: | |
| 242 | − details["contact"] = contact | |
| 243 | − | |
| 244 | − # photos de l'unité d'abord, puis aperçu liste et photos immeuble | |
| 245 | − imgs = list(view.get("images") or []) | |
| 246 | − prev = str(u.get("PreviewUrl") or "") | |
| 247 | − if prev.startswith("http") and prev not in imgs: | |
| 248 | − imgs.append(prev) | |
| 249 | − imgs += [x for x in (info.get("images") or []) if x not in imgs] | |
| 116 | + if b.get("isFullyBooked") or b.get("isAllCommercial"): | |
| 117 | + continue | |
| 118 | + if (b.get("spaceType") or "apartment") not in ("apartment", "condo", | |
| 119 | + "house", "loft"): | |
| 120 | + continue # résidentiel au mois seulement | |
| 121 | + slug = b.get("slug") or "" | |
| 122 | + if not slug: | |
| 123 | + continue | |
| 124 | + page_url = f"{BASE}/fr/listings/{slug}/details" | |
| 250 | 125 | |
| 126 | + # détail (cache BD : clé = contenu de la carte liste) | |
| 127 | + key = json.dumps({k: b.get(k) for k in | |
| 128 | + ("price", "availability", "listedUnitCount", | |
| 129 | + "bedrooms", "isFullyBooked")}, | |
| 130 | + sort_keys=True, default=str) | |
| 251 | 131 | try: |
| 252 | − lat, lng = float(adr.get("Latitude")), float(adr.get("Longitude")) | |
| 253 | − except (TypeError, ValueError): | |
| 254 | − lat = lng = None | |
| 132 | + detail = self.detail(slug, key, | |
| 133 | + lambda s=slug: self._detail_listing(s)) | |
| 134 | + except (requests.RequestException, RuntimeError): | |
| 135 | + detail = {} | |
| 136 | + | |
| 137 | + units = [u for u in (detail.get("units") or []) | |
| 138 | + if isinstance(u, dict) and u.get("listed")] | |
| 139 | + if not units: # détail 404/vide -> carte liste | |
| 140 | + lst = self._building_fallback(b, page_url) | |
| 141 | + if lst and lst.external_id and lst.external_id not in seen: | |
| 142 | + seen.add(lst.external_id) | |
| 143 | + out.append(lst) | |
| 144 | + continue | |
| 255 | 145 | |
| 256 | − city = str(adr.get("City") or "").strip() | |
| 146 | + street = (detail.get("street") or b.get("street") or "").strip() | |
| 147 | + city = (detail.get("city") or b.get("city") or "").strip() | |
| 257 | 148 | city = _CITY_FIX.get(city, city) |
| 258 | − | |
| 259 | − listings.append(Listing( | |
| 260 | − source=self.source_id, | |
| 261 | − external_id=ext_id, | |
| 262 | − url=f"{BASE}{u.get('BuildingUrl') or f'/b/{pub}'}", | |
| 263 | − title=(f"{building_name} — Unité {num}" if num | |
| 264 | − else building_name), | |
| 265 | − address=str(adr.get("Full") or ""), | |
| 266 | − sector="", | |
| 267 | − city=city, | |
| 268 | − unit_type=unit_type, | |
| 269 | − price=float(apt.get("Price") or 0) or None, | |
| 270 | − price_label=str(apt.get("PriceFormatted") or ""), | |
| 271 | − availability=availability, | |
| 272 | − area_sqft=area, | |
| 273 | − description=desc[:900], | |
| 274 | − amenities=(list(info.get("amenities") or []) + | |
| 275 | − [x for x in extras | |
| 276 | − if x not in (info.get("amenities") or [])]), | |
| 277 | − details=details, | |
| 278 | − images=imgs[:12], | |
| 279 | − lat=lat, | |
| 280 | − lng=lng, | |
| 281 | − )) | |
| 282 | − return listings | |
| 149 | + sector = (detail.get("neighborhood") or | |
| 150 | + b.get("neighborhood") or "").strip() | |
| 151 | + lat = detail.get("latitude") or b.get("latitude") | |
| 152 | + lng = detail.get("longitude") or b.get("longitude") | |
| 153 | + bldg_imgs = _images((detail.get("images") or []) + | |
| 154 | + (b.get("images") or [])) | |
| 155 | + | |
| 156 | + for u in units: | |
| 157 | + uid = u.get("slug") or "" # uuid stable de l'unité | |
| 158 | + if not uid or uid in seen: | |
| 159 | + continue | |
| 160 | + seen.add(uid) | |
| 161 | + price = _num(u.get("price")) | |
| 162 | + area = _num(u.get("area")) | |
| 163 | + if area is not None and not 80 <= area <= 20000: | |
| 164 | + area = None # pi² bidon (0, 1…) | |
| 165 | + avail = str(u.get("availability") or "")[:10] | |
| 166 | + alias = str(u.get("alias") or "").strip() | |
| 167 | + imgs = _images(u.get("images")) or bldg_imgs | |
| 168 | + details: dict = {} | |
| 169 | + if u.get("floor") is not None: | |
| 170 | + details["floor"] = u["floor"] | |
| 171 | + if alias: | |
| 172 | + details["unit_number"] = alias | |
| 173 | + out.append(Listing( | |
| 174 | + source=self.source_id, | |
| 175 | + external_id=uid, | |
| 176 | + url=page_url, | |
| 177 | + title=f"{street} — app. {alias}" if alias else street, | |
| 178 | + address=street, | |
| 179 | + sector=sector, | |
| 180 | + city=city, | |
| 181 | + unit_type=_unit_type(u.get("bedrooms")), | |
| 182 | + bedrooms=_num(u.get("bedrooms")), | |
| 183 | + bathrooms=_num(u.get("bathrooms")), | |
| 184 | + price=price, | |
| 185 | + price_label=f"{price:.0f} $ /mois" if price else "", | |
| 186 | + availability=(f"Disponible le {avail}" if avail | |
| 187 | + else "Disponible"), | |
| 188 | + availability_date=avail or None, | |
| 189 | + area_sqft=area, | |
| 190 | + details=details, | |
| 191 | + images=imgs[:30], | |
| 192 | + lat=lat, | |
| 193 | + lng=lng, | |
| 194 | + )) | |
| 195 | + | |
| 196 | + if buildings and not out: | |
| 197 | + raise RuntimeError(f"summum : {len(buildings)} carte(s) liste mais " | |
| 198 | + "aucune annonce parsée (structure changée ?)") | |
| 199 | + return out | |
added
tests/fixtures/summum/00a43dce4cd71b2747ee.txt
+2 −0
@@ -0,0 +1,2 @@ | ||
| 1 | +[{"_1":2,"_3":4,"_5":6,"_7":8},"root",{"_9":390},"public-language",{"_9":-5},"PublicListingsLayoutPage",{"_9":157},"PublicListingDetailPage",{"_9":10},"data",{"_11":12,"_13":14,"_15":16,"_17":18,"_19":20,"_21":22,"_23":24,"_25":26},"listing",{"_48":99,"_100":101,"_81":102,"_103":104,"_83":105,"_106":107,"_108":109,"_85":110,"_87":111,"_86":112,"_37":-5,"_113":114,"_115":116,"_117":-5,"_118":-5,"_119":120,"_121":61,"_122":123,"_124":125},"descriptionHtml",{"_98":76,"_22":76},"auth",{"_96":61,"_97":26},"walkScore",["P",18],"tenant",{"_27":28,"_29":30,"_31":32,"_33":34,"_35":36,"_37":38,"_39":-7,"_40":41,"_42":43,"_44":45,"_46":47,"_48":49,"_50":51,"_52":53,"_54":45},"lang","fr","pageUrl","https://rental.summumpm.com/fr/listings/3571-rue-gertrude/details","noindex",false,"address",{"_81":82,"_83":84,"_85":76,"_86":76,"_87":76,"_88":89,"_90":91,"_92":93,"_94":95},"analytics",{"_75":76,"_77":78,"_79":80},"colors",{"_72":73,"_74":73},"contact",{"_66":67,"_68":69,"_70":67,"_71":67},"customDomains",[63],"description","Appartements à louer dans le Grand Montréal.","emptyImage","features",{"_59":26,"_60":61,"_62":26},"icon","https://nykxxjptujeqkwefdxxg.supabase.co/storage/v1/object/public/summum/icon?v=1787531662636","legalName","Gestion Immobilière Summum","privacyPolicyUrl","https://summumpm.com/politique-de-confidentialite/","slug","summum","templateConfig",{"_55":56,"_57":58},"templateId","editorial","title","showcase",{},"listingSortOrder","smart","buildingVisibilityOverride","hasMarketingEnabled",true,"showUnitAvailability",{"_64":65},"domain","rental.summumpm.com","email","location@summumpm.com","phone","(438) 801-1080","broadcastEmail","agentReplyTo","primary","#182642","secondary","facebookPixel","","google","G-CPWFVW6CCX","googleTagManager","GTM-567KN95S","street","6-77 Rue Omer-Deserres","city","Blainville","neighborhood","latitude","longitude","region","Quebec","postcode","J7C 5V6","country","Canada","country_code","CA","loggedIn","isStaff","en","3571-rue-gertrude","area",0,"3571 Rue Gertrude","name","3571 Rue Gertrude, Montréal","Montréal","buildingId","dd538a99-b328-4c55-a0ef-e71e2b0fe009","availabilty",["D",1785542400000],"Verdun",-73.5688769,45.4680745,"images",[156],"automatedApplyMode","direct","buildingAutomatedApplyMode","leadFormConfig","buildingFeatures",[],"listed","units",[140],"cardData",{"_48":99,"_81":102,"_83":105,"_85":110,"_86":112,"_87":111,"_126":127,"_128":129,"_130":131,"_100":132,"_133":134,"_135":136},"unitId","85fb7a59-9104-40b8-b421-6f1172444fae","bedrooms",[139],"bathrooms",[139],[101],"price",[138],"availability",[137],"2026-08-01T00:00:00.000Z",1380,1,{"_48":127,"_100":101,"_141":-5,"_133":138,"_128":139,"_130":139,"_142":143,"_113":144,"_121":61,"_145":146,"_147":148,"_149":150,"_135":151,"_152":-5,"_153":-5,"_154":-5,"_40":155},"floor","alias","3571",[],"listing_type","Unit","pricing_strategy","per_month","space_type","apartment",["D",1785542400000],"floor_plan_name","floor_plan_image_path","promotion",[],"/storage/v1/object/public/summum/buildings/dd538a99-b328-4c55-a0ef-e71e2b0fe009/e932c10f-389e-48fb-852c-ae98de2c74c4.jpg",{"_19":158,"_159":160,"_161":162,"_163":26,"_164":165,"_166":61,"_167":101,"_168":169,"_170":171,"_172":26,"_173":26,"_174":26},{"_27":28,"_29":388,"_31":32,"_33":34,"_35":36,"_37":38,"_39":-7,"_40":389,"_42":43,"_44":45,"_46":47,"_48":49,"_50":51,"_52":53,"_54":45},"listings",[],"listingsByView",{"_383":160,"_384":385,"_386":387},"explodeProjects","initialFilters",{"_133":294,"_295":296,"_297":298,"_100":299,"_141":300,"_301":26,"_130":302,"_128":303,"_304":26,"_305":61,"_306":307,"_308":309},"defaultView","count","filters",{},"configs",{"_175":176,"_177":178,"_179":180,"_181":182,"_183":176,"_184":185},"isEmbed","widgetMissing","hasSubmissions","analysisProducts",[275,277,279,283,290],"analysisProductsPrice",{"_275":276,"_277":278,"_279":280,"_281":282,"_283":284,"_285":286,"_287":288,"_289":288,"_290":139,"_291":286,"_292":293},"notifications",{"_243":244},"form",{"_236":61,"_237":61,"_238":61,"_239":61,"_240":61,"_241":61,"_242":61},"enabledSkus","submissions",{"_186":187,"_188":189,"_190":191,"_192":193,"_31":194,"_195":-5},"all",[222,223,224,225,226,227,228,232,233,234,235],"steps",[222,223,224,225,226,227,228],"badges",[212,213,214,215,216,217],"statuses",[206,196,198,200,202,204,207,208,209,210,211],{"_196":197,"_198":199,"_200":201,"_202":203,"_204":205},"snoozeStep","pending","bg-pink-500","preapproved","bg-sky-500","approved","bg-purple-500","signature","bg-green-500","accepted","bg-amber-500","draft","chosen","rejected","lead","cancelled","soft_rejected",{"_218":196,"_220":197},{"_218":198,"_220":199},{"_218":200,"_220":201},{"_218":202,"_220":203},{"_218":204,"_220":205},{"_218":219,"_220":221},"id","snoozed","color","bg-teal-500",{"_218":206,"_220":-5,"_229":26},{"_218":196,"_220":197,"_229":61,"_230":26,"_231":26},{"_218":198,"_220":199,"_229":61,"_230":26,"_231":26},{"_218":200,"_220":201,"_229":61,"_230":26,"_231":26},{"_218":202,"_220":203,"_229":61,"_230":26,"_231":26},{"_218":204,"_220":205,"_229":61,"_230":26,"_231":26},{"_218":207,"_220":-5,"_229":61},"isActionable","staffActionnable","visitAgentActionnable",{"_218":208,"_220":-5,"_229":26},{"_218":209,"_220":-5,"_229":26},{"_218":210,"_220":-5,"_229":26},{"_218":211,"_220":-5,"_229":26},"tenant_payments_enabled","tenant_refunds_enabled","require_id_proof","require_payment_proof","allow_co_applicants","require_employment_reference","require_landlord_reference","emails",{"_245":246,"_247":248,"_19":249,"_250":251},"agent",[270,271,272,273,274,256,257,260,261,269],"manager",[269],[255,256,257,258,259,260,261,262,263,264,265,266,267,268,269],"admin",[252,253,254],"daily-recap","auth:role-changed","auth:ownership-transferred","invite-tenant","application-confirm","application-rejected","tenant-endorser-rejected","tenant-application-rejected-with-conditions","application-deadline-reminder","application-deadline-expired","submission-status-update","submission-marked-as-accepted","tenant-approved-with-conditions","tenant-approved-without-conditions","selected-as-new-tenant","submission-snoozed-reminder","submission-snoozed-expired","credit-unlock","agent-approved-with-conditions","agent-approved-without-conditions","agent-submission-snoozed-expired","agent-submission-snoozed-reminder","agent-submission-snoozed","ca_citizen_credit_check",1799,"ca_citizen_public_court_files",500,"qc_citizen_criminal_plumitif_check",1049,"qc_citizen_criminal_plumitif_municipal_check",699,"qc_citizen_rental_board_check",1000,"on_citizen_rental_board_check",999,"ca_citizen_workplace_reference_verification",1499,"ca_citizen_landlord_reference_verification","ca_citizen_rent_affordability_analysis","qc_citizen_lease_generation","qc_citizen_rental_board_extended_check",799,[139,382],"pricePerMonth",[139,382],"pricePerSqft",[101,101],[101,139],[101,101],"hasFloor",[101,139],[101,337],"hasCommercial","hasResidential","availableAmenities",[341,342,343,344,345,346,347],"availableNeighborhoods",[310,311,312,313,314,315,316,317,318,319,320,321,322,323],{"_103":340,"_167":331},{"_103":339,"_167":139},{"_103":338,"_167":139},{"_103":336,"_167":337},{"_103":335,"_167":139},{"_103":334,"_167":139},{"_103":333,"_167":139},{"_103":332,"_167":326},{"_103":330,"_167":331},{"_103":328,"_167":329},{"_103":327,"_167":326},{"_103":110,"_167":326},{"_103":325,"_167":326},{"_103":324,"_167":139},"Villeray—Saint-Michel—Parc-Extension","Ville-Marie",2,"Rosemont - La Petite-Patrie","Québec",8,"QC",5,"Mercier - Hochelaga-Maisonneuve","Le Sud-Ouest","Le Plateau-Mont-Royal","Hochelaga-Maisonneuve","Côte-des-Neiges - Notre-Dame-de-Grâce",3,"Côte-des-Neiges","Centre-Sud","Ahuntsic-Cartierville",{"_48":377,"_103":378,"_42":379},{"_48":373,"_103":374,"_42":365},{"_48":368,"_103":369,"_42":370},{"_48":363,"_103":364,"_42":365},{"_48":358,"_103":359,"_42":360},{"_48":353,"_103":354,"_42":355},{"_48":348,"_103":349,"_42":350},"electric-heating",{"_98":351,"_22":352},"lucide:thermometer-sun","Electric Heating","Chauffage Électrique","refrigerator",{"_98":356,"_22":357},"lucide:refrigerator","Refrigerator","Réfrigérateur","cats-allowed",{"_98":361,"_22":362},"lucide:paw-print","Cats Allowed","Chats autorisés","washer",{"_98":366,"_22":367},"lucide:washing-machine","Washer","Laveuse","water",{"_98":371,"_22":372},"lucide:droplet","Water","Eau","dryer",{"_98":375,"_22":376},"Dryer","Sèche-linge","oven",{"_98":380,"_22":381},"lucide:microwave","Oven","Four",2589,"list","map",[],"explode",[],{"_75":76,"_77":78,"_79":80},{"_59":26,"_60":61,"_62":26},{"_391":-5,"_392":-7,"_393":394,"_395":396,"_21":22,"_19":397,"_398":-5,"_399":400,"_170":171,"_401":-5,"_402":-5,"_403":404},"devTools","prefill","impersonate",{},"theme","light",{"_218":422,"_48":49,"_423":424,"_54":45,"_37":38,"_31":32,"_425":426,"_27":28,"_33":34,"_177":427,"_428":429,"_430":-5,"_431":432,"_44":45,"_433":434,"_435":436,"_46":47,"_437":-5,"_438":-5,"_439":-5,"_52":53,"_50":51,"_35":36,"_440":-5,"_441":-5,"_170":171,"_442":443,"_444":445,"_446":447,"_42":43,"_448":449,"_39":-7,"_450":451,"_40":452,"_453":454,"_455":-7,"_456":457,"_29":458,"_175":459,"_460":461,"_462":463},"toast","user",{"_408":26,"_409":-5,"_410":-5,"_411":-5,"_412":-5,"_413":-5,"_414":-5,"_415":-5,"_416":-5,"_417":-5,"_66":-5,"_68":-5,"_418":-5,"_97":26,"_419":26,"_420":-5,"_421":-5},"otpPendingEmail","otpPendingContextEmail","telemetry",{"_405":61,"_399":-5,"_406":407},"recording","group",{"_218":49,"_103":45},"isSignedIn","userId","firstName","lastName","fullName","dateOfBirth","preferredLanguage","orgRole","orgSlug","role","profilePicture","isImpersonated","impersonatorId","ipAddress","rGAcwldRQldzll4TQX9pO","assets",{"_42":555},"social",{"_552":553,"_554":76},{"_275":276,"_277":278,"_279":280,"_281":282,"_283":284,"_285":286,"_287":288,"_289":288,"_290":139,"_291":286,"_292":293},"stripeCustomerId","cus_TSsHw8GIAzdE3E","paymentSetupRequiredAfter","tos",{"_549":-5,"_204":61,"_550":26,"_551":503},"plan",{"_103":528,"_529":76,"_530":531,"_532":533,"_534":535,"_536":537,"_538":539,"_540":541,"_542":337,"_543":544,"_545":546,"_547":548},"metadata",{"_29":458},"consentConditionsText","consentConditionsEn","consentConditionsFr","suspendedAt","archivedAt","billing",{"_520":521,"_428":429,"_522":523,"_44":45,"_524":525,"_526":527},"bucket",{"_517":49,"_518":519},"appUrl","https://rental.summumpm.com","logo",{"_396":514,"_515":516},"tosHistory",[503],{"_471":61,"_472":-7,"_60":61,"_473":26,"_474":61,"_475":61,"_476":26,"_477":26,"_478":-7,"_479":26,"_480":-7,"_481":61,"_482":26,"_483":26,"_484":485,"_486":26,"_487":26,"_488":101,"_489":-7,"_490":26,"_59":26,"_491":61,"_62":26,"_492":493,"_494":61,"_495":26,"_496":26,"_497":139,"_498":26,"_499":26,"_500":26,"_501":26},"disabledModules",[],"rolePermissions","banner",{"_98":469,"_22":470},{"_77":78,"_468":76,"_75":76,"_79":80},[275,277,279,283,290],"payments",{"_464":61,"_465":61,"_466":26,"_467":26},"version","prod-20261027-1707b56","isTenantPayingForCheck","isOrgPaymentSetup","isPrepaid","shouldAskToSetupPayment","googleAds","Contact us at (438) 801-1080 to book your visit!","Contactez-nous au (438) 801-1080 pour planifier votre visite!","tempEquifaxEnabled","whArrayAsObjects","disableAgents","preventInvitation","isBannerEnabled","preventApplyWhenNotListed","hasDynamicLinks","hasAddressVariants","isSinEnforced","isTestMode","hasSubmissionsAssignedEnabled","hasLargeUnitChangeTrigger","hideServiceEstimates","unitChangeThreshold",300,"showAgentPortalButton","hasLegalChecksConfidence","legalChecksConfidenceLevel","automatedPrepayed","hasPerBuildingLeadForm","hasDocumentAiEnabled","partnerOffersEnabled",[502],"showPerMonthPricing","blockOutOfProvinceEndorsers","hasLeaseModificationCheckReuse","leaseModificationCheckReuseMonths","hopemIntegrationEnabled","voltixIntegrationEnabled","leaseGenerationEnabled","hasPerProjectChecks","youset",{"_504":505,"_506":507,"_462":508,"_204":61,"_202":509,"_510":511,"_512":513},"ip","163.123.169.193","url","tos/tos_v1.0.0_1763739934838_H1ii8G.pdf","1.0.0","PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNzU4IDE5MiIgd2lkdGg9Ijc1OCIgaGVpZ2h0PSIxOTIiPjxwYXRoIGQ9Ik0gMjcxLjY4NCw4NC45MTQgQyAyNzAuNDIzLDg3LjIxMCAyNzAuNTQxLDg3LjI2MiAyNjkuMzk4LDg5LjYwOSIgc3Ryb2tlLXdpZHRoPSI1LjM4NSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjY5LjM5OCw4OS42MDkgQyAyNjcuNzU4LDkzLjk3MSAyNjcuNTcxLDkzLjg5MSAyNjUuOTgwLDk4LjI3NyIgc3Ryb2tlLXdpZHRoPSIzLjk1OCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjY1Ljk4MCw5OC4yNzcgQyAyNjMuNjM1LDEwMy4zMzMgMjYzLjg1NywxMDMuNDIxIDI2MS41OTgsMTA4LjUwOCIgc3Ryb2tlLXdpZHRoPSIzLjU1MCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjYxLjU5OCwxMDguNTA4IEMgMjYwLjIxMywxMTIuMjkyIDI2MC4xMjMsMTEyLjI1MyAyNTguOTU3LDExNi4xMTciIHN0cm9rZS13aWR0aD0iMy43MzIiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI1OC45NTcsMTE2LjExNyBDIDI1Ni42MzYsMTIzLjUwNyAyNTcuOTc1LDExOS4xMDggMjU3LjEyMSwxMjIuMTQxIiBzdHJva2Utd2lkdGg9IjQuMzc1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyNTcuMTIxLDEyMi4xNDEgQyAyNTkuMDY5LDExMy43MDIgMjU4LjQzMywxMTguNDQzIDI2Mi41NTEsMTA1Ljk4OCIgc3Ryb2tlLXdpZHRoPSI0LjYyOCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjYyLjU1MSwxMDUuOTg4IEMgMjY1Ljc3NywxMDAuNjMxIDI2NS4xMDUsMTAwLjMzMCAyNjkuMTkxLDk1LjM5OCIgc3Ryb2tlLXdpZHRoPSIzLjQ5MSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjY5LjE5MSw5NS4zOTggQyAyNzAuOTQ1LDkyLjM0MyAyNzEuMDk4LDkyLjQ3NyAyNzMuMTkxLDg5LjY4MCIgc3Ryb2tlLXdpZHRoPSIzLjgyNCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjczLjE5MSw4OS42ODAgQyAyNzkuMTYyLDgyLjQ5MSAyNzkuMTgwLDgyLjU3OSAyODUuNjYwLDc1Ljg3MSIgc3Ryb2tlLXdpZHRoPSIyLjg3NyIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjg1LjY2MCw3NS44NzEgQyAyODcuODgzLDczLjk1NCAyODcuNzA1LDczLjc4OCAyOTAuMjc3LDcyLjI3MyIgc3Ryb2tlLXdpZHRoPSIzLjY4MiIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjkwLjI3Nyw3Mi4yNzMgQyAyOTYuNjQ5LDY3LjU2MCAyOTYuNzM2LDY3Ljc0MSAzMDMuMzY3LDYzLjQ0NSIgc3Ryb2tlLXdpZHRoPSIzLjExMCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzAzLjM2Nyw2My40NDUgQyAzMDYuNjc2LDYxLjU5MyAzMDYuNTgwLDYxLjQ3OCAzMTAuMTQxLDYwLjEwOSIgc3Ryb2tlLXdpZHRoPSIzLjU3NiIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzEwLjE0MSw2MC4xMDkgQyAzMTMuMjg0LDU4Ljc0MyAzMTMuMjY2LDU4Ljc3MSAzMTYuNTQ3LDU3LjgwMSIgc3Ryb2tlLXdpZHRoPSIzLjg3MyIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzE2LjU0Nyw1Ny44MDEgQyAzMTkuNDE4LDU2LjIyMSAzMTkuMTY1LDU3LjA0NCAzMjEuOTAyLDU2LjcxMSIgc3Ryb2tlLXdpZHRoPSI0LjQ5NCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzIxLjkwMiw1Ni43MTEgQyAzMjYuMzYxLDU3LjQ5MyAzMjQuNTE2LDU3LjIyNyAzMjYuNzQyLDU5LjgxMyIgc3Ryb2tlLXdpZHRoPSI0Ljg3MyIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzI2Ljc0Miw1OS44MTMgQyAzMjYuMzM2LDY1LjA4MiAzMjcuNDA0LDYzLjgzMyAzMjMuOTg4LDY5LjM5MSIgc3Ryb2tlLXdpZHRoPSIzLjg2MiIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzIzLjk4OCw2OS4zOTEgQyAzMTkuODE3LDc1Ljk1MyAzMjAuMzU1LDc2LjA1OSAzMTQuNzgxLDgxLjc2NiIgc3Ryb2tlLXdpZHRoPSIzLjEwNSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzE0Ljc4MSw4MS43NjYgQyAzMDkuODU0LDg3LjQ0NSAzMDkuOTE2LDg3LjM4MSAzMDQuMTg4LDkyLjI0NiIgc3Ryb2tlLXdpZHRoPSIzLjAyOSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzA0LjE4OCw5Mi4yNDYgQyAyOTguODA2LDk2LjcwMCAyOTguOTE5LDk2LjcxMCAyOTIuOTEwLDEwMC4yOTciIHN0cm9rZS13aWR0aD0iMy4wMTkiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI5Mi45MTAsMTAwLjI5NyBDIDI4Ny44NTQsMTAzLjQ5MyAyODcuOTA4LDEwMy4zNDggMjgyLjM5MSwxMDUuNTQzIiBzdHJva2Utd2lkdGg9IjMuMjI3IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyODIuMzkxLDEwNS41NDMgQyAyNzguMDg0LDEwNi42NTYgMjc4LjI2MywxMDcuMDkyIDI3My43MjcsMTA3LjQ5NiIgc3Ryb2tlLXdpZHRoPSIzLjU0MSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjczLjcyNywxMDcuNDk2IEMgMjcwLjc4OSwxMDguMDY4IDI3MC44MDEsMTA4LjA2MCAyNjcuODI0LDEwOC4zNTIiIHN0cm9rZS13aWR0aD0iMy45MTMiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI4NS41MjMsOTEuNjQxIEMgMjg1LjAwOSw5OC4wMzYgMjg0LjcyNyw5Ny45ODIgMjgzLjkzMCwxMDQuMzI0IiBzdHJva2Utd2lkdGg9IjUuMjU3IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyODMuOTMwLDEwNC4zMjQgQyAyODIuMjQ0LDExMS4xNTggMjgzLjMxNCwxMDcuOTEzIDI4Mi4xMzMsMTExLjM5NSIgc3Ryb2tlLXdpZHRoPSI0LjI1NyIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjgyLjEzMywxMTEuMzk1IEMgMjgyLjA1MCwxMDcuOTc5IDI4Mi4wMzcsMTExLjYwMCAyODMuNTE2LDEwNS4yMDciIHN0cm9rZS13aWR0aD0iNC44NjgiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI4My41MTYsMTA1LjIwNyBDIDI4OC4zNjYsOTUuOTk4IDI4OC4yNzgsOTYuMjAwIDI5NC41OTAsODcuODM2IiBzdHJva2Utd2lkdGg9IjIuOTY4IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyOTQuNTkwLDg3LjgzNiBDIDMwMS4zMjIsODAuMDM4IDMwMC44MDgsNzkuNjgyIDMwOC4zOTgsNzIuNTc0IiBzdHJva2Utd2lkdGg9IjIuNTkzIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMDguMzk4LDcyLjU3NCBDIDMxMS42MjYsNjguMzM0IDMxMS45NTUsNjguODIzIDMxNS44NTUsNjUuNDA2IiBzdHJva2Utd2lkdGg9IjMuMTY2IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMTUuODU1LDY1LjQwNiBDIDMyNS44MDYsNTguMzc5IDMyNS43MDEsNTguNTkxIDMzNi41NDcsNTMuMDkwIiBzdHJva2Utd2lkdGg9IjIuNTI5IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMzYuNTQ3LDUzLjA5MCBDIDM0Mi44NTEsNTAuNTkyIDM0Mi41NTYsNTAuMTMxIDM0OS4zNTUsNDguOTEwIiBzdHJva2Utd2lkdGg9IjIuOTI2IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNDkuMzU1LDQ4LjkxMCBDIDM1NC4wMTIsNDcuOTM1IDM1My45MzMsNDcuNzI3IDM1OC43MTEsNDcuMzU5IiBzdHJva2Utd2lkdGg9IjMuMzI1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNTguNzExLDQ3LjM1OSBDIDM2My4yOTEsNDUuNzg1IDM2MS4yODgsNDcuMDQ0IDM2My45MDYsNDcuMTI5IiBzdHJva2Utd2lkdGg9IjMuOTU3IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNjMuOTA2LDQ3LjEyOSBDIDM2My45NzIsNTEuMzM5IDM2NC43MjEsNDguOTEwIDM2MS41NzAsNTMuNjA5IiBzdHJva2Utd2lkdGg9IjQuNDM1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNjEuNTcwLDUzLjYwOSBDIDM1NC4xNTgsNTguNzUwIDM1NS4yODUsNTkuNTUwIDM0Ni41MzEsNjMuNTUxIiBzdHJva2Utd2lkdGg9IjMuMDA5IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNDYuNTMxLDYzLjU1MSBDIDMzNy4wMDUsNjkuMzU0IDMzNy4wOTQsNjkuNDkyIDMyNy40NDEsNzUuMDk0IiBzdHJva2Utd2lkdGg9IjIuNTgxIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMjcuNDQxLDc1LjA5NCBDIDMyMi40NDYsNzcuODYzIDMyMi41NTAsNzguMDI5IDMxNy42MjEsODAuOTAyIiBzdHJva2Utd2lkdGg9IjMuMDg1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMTcuNjIxLDgwLjkwMiBDIDMxMi44NTMsODMuNjIzIDMxMy4wMjYsODMuNzk3IDMwOC42MDIsODYuOTYxIiBzdHJva2Utd2lkdGg9IjMuMjY2IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMDguNjAyLDg2Ljk2MSBDIDMwMy4yNzIsOTAuMDkyIDMwNi4zMDAsODguNzY4IDMwNC41MTYsOTEuMTkxIiBzdHJva2Utd2lkdGg9IjQuMTkzIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMDQuNTE2LDkxLjE5MSBDIDMxMC4yNTEsOTIuNjg3IDMwNy4wMTQsOTMuMzk5IDMxNi4wODYsOTMuNTc0IiBzdHJva2Utd2lkdGg9IjMuNTQwIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMTYuMDg2LDkzLjU3NCBDIDMyNS41NzgsOTQuNDYyIDMyNS40OTQsOTUuMDA1IDMzNS4wMDAsOTUuODI4IiBzdHJva2Utd2lkdGg9IjIuODY4IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMzUuMDAwLDk1LjgyOCBDIDM0NC40MDEsOTcuMTg1IDM0NC4zODYsOTcuMTg5IDM1My43MDMsOTkuMDI3IiBzdHJva2Utd2lkdGg9IjIuNjU1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNTMuNzAzLDk5LjAyNyBDIDM1OS45ODIsMTAwLjI1MiAzNTkuOTU2LDEwMC4yNjUgMzY2LjEwOSwxMDEuOTg4IiBzdHJva2Utd2lkdGg9IjMuMDIzIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNjYuMTA5LDEwMS45ODggQyAzNzUuNDEzLDEwMi41ODYgMzcwLjA1MiwxMDMuMTA2IDM3My44NDQsMTA0LjczNCIgc3Ryb2tlLXdpZHRoPSIzLjQ3OCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzczLjg0NCwxMDQuNzM0IEMgMzY0LjczNiwxMTUuMDg2IDM2OC45OTUsMTExLjM3MCAzNTMuMjczLDExOS41NTUiIHN0cm9rZS13aWR0aD0iMy44NTciIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDM1My4yNzMsMTE5LjU1NSBDIDMzOS44MjksMTIyLjExMiAzNDAuOTQxLDEyNC4zNjMgMzI2LjI1NCwxMjMuMjg5IiBzdHJva2Utd2lkdGg9IjIuNDg4IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMjYuMjU0LDEyMy4yODkgQyAzMDcuMDA0LDEyNS45MTUgMzA3LjEzNSwxMjQuOTQ3IDI4Ny44ODcsMTI1LjIyNyIgc3Ryb2tlLXdpZHRoPSIxLjkwMCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjg3Ljg4NywxMjUuMjI3IEMgMjY5Ljk5OSwxMjQuMzM5IDI3MC4zMjcsMTI0LjU5NCAyNTIuODk4LDEyMC42NDgiIHN0cm9rZS13aWR0aD0iMS44NTAiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI1Mi44OTgsMTIwLjY0OCBDIDI0NC43NjgsMTE5LjU4NiAyNDUuOTU2LDExOS4xNTAgMjM5LjgwMSwxMTQuODQ4IiBzdHJva2Utd2lkdGg9IjIuNTU0IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyMzkuODAxLDExNC44NDggQyAyMjYuNjg1LDEwNC41NjMgMjMyLjgwNywxMDguMTc2IDIyOC45NzcsOTcuODI4IiBzdHJva2Utd2lkdGg9IjIuNjIyIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyMjguOTc3LDk3LjgyOCBDIDIzOC41NzAsODkuMzAwIDIzMS43NzksODkuNTkyIDI0OS45ODgsODQuOTA2IiBzdHJva2Utd2lkdGg9IjIuMzg0IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyNDkuOTg4LDg0LjkwNiBDIDI3NC4zNDYsNzUuNDE3IDI3My45MTIsNzUuNzAwIDI5OS42NjAsNzAuNjI5IiBzdHJva2Utd2lkdGg9IjEuNTMzIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyOTkuNjYwLDcwLjYyOSBDIDMzNS43ODYsNjMuNzU5IDMzNS40NjQsNjMuODU3IDM3Mi4yMjMsNjEuNzg1IiBzdHJva2Utd2lkdGg9IjEuMTY5IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNzIuMjIzLDYxLjc4NSBDIDQyMi45MDksNjEuMDI3IDQyMi43NDMsNTkuMDQ4IDQ3My41NzQsNjEuMjA3IiBzdHJva2Utd2lkdGg9IjEuMTI1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PC9zdmc+","acceptedAt","2025-11-21T15:45:35.398Z","acceptedBy","Philippe Brassard (philippe@summumpm.com)","https://nykxxjptujeqkwefdxxg.supabase.co/storage/v1/object/public/summum/logo/light","dark","https://nykxxjptujeqkwefdxxg.supabase.co/storage/v1/object/public/summum/logo/dark","public","private","summum_private","billingEmail","philippe@summumpm.com","lastDigit","6148","paymentType","visa","kind","configured","Pro","notes","planId","pro_2025_06","startDate","2025-11-21","yearlyPrice",2990,"monthlyPrice",89,"supportLevel","standard","freeTrialDays",14,"includedUsers","billingInterval","monthly","additionalUserPrice",49,"planDurationInMonths",12,"current","shouldAccept","lastAccepted","facebook","https://www.facebook.com/summumpm","youtube",{"_556":557},"updated_at","2026-08-24T00:34:22.636Z"] | |
| 2 | +P18:-5 | |
added
tests/fixtures/summum/0134b055eb4f1f1f09ca.txt
+2 −0
@@ -0,0 +1,2 @@ | ||
| 1 | +[{"_1":2,"_3":4,"_5":6,"_7":8},"root",{"_9":389},"public-language",{"_9":-5},"PublicListingsLayoutPage",{"_9":155},"PublicListingDetailPage",{"_9":10},"data",{"_11":12,"_13":14,"_15":16,"_17":18,"_19":20,"_21":22,"_23":24,"_25":26},"listing",{"_48":99,"_100":101,"_81":102,"_103":76,"_83":104,"_105":106,"_107":108,"_85":76,"_87":109,"_86":110,"_37":-5,"_111":112,"_113":114,"_115":-5,"_116":-5,"_117":118,"_119":61,"_120":121,"_122":123},"descriptionHtml",{"_98":76,"_22":76},"auth",{"_96":61,"_97":26},"walkScore",["P",18],"tenant",{"_27":28,"_29":30,"_31":32,"_33":34,"_35":36,"_37":38,"_39":-7,"_40":41,"_42":43,"_44":45,"_46":47,"_48":49,"_50":51,"_52":53,"_54":45},"lang","fr","pageUrl","https://rental.summumpm.com/fr/listings/790-rue-de-liege-e/details","noindex",false,"address",{"_81":82,"_83":84,"_85":76,"_86":76,"_87":76,"_88":89,"_90":91,"_92":93,"_94":95},"analytics",{"_75":76,"_77":78,"_79":80},"colors",{"_72":73,"_74":73},"contact",{"_66":67,"_68":69,"_70":67,"_71":67},"customDomains",[63],"description","Appartements à louer dans le Grand Montréal.","emptyImage","features",{"_59":26,"_60":61,"_62":26},"icon","https://nykxxjptujeqkwefdxxg.supabase.co/storage/v1/object/public/summum/icon?v=1787531662636","legalName","Gestion Immobilière Summum","privacyPolicyUrl","https://summumpm.com/politique-de-confidentialite/","slug","summum","templateConfig",{"_55":56,"_57":58},"templateId","editorial","title","showcase",{},"listingSortOrder","smart","buildingVisibilityOverride","hasMarketingEnabled",true,"showUnitAvailability",{"_64":65},"domain","rental.summumpm.com","email","location@summumpm.com","phone","(438) 801-1080","broadcastEmail","agentReplyTo","primary","#182642","secondary","facebookPixel","","google","G-CPWFVW6CCX","googleTagManager","GTM-567KN95S","street","6-77 Rue Omer-Deserres","city","Blainville","neighborhood","latitude","longitude","region","Quebec","postcode","J7C 5V6","country","Canada","country_code","CA","loggedIn","isStaff","en","790-rue-de-liege-e","area",1,"790 Rue de Liège E","name","Montréal","buildingId","24642ccc-ff71-4534-8d00-d6fb8573af19","availabilty",["D",1801440000000],-73.632677,45.548266,"images",[154],"automatedApplyMode","direct","buildingAutomatedApplyMode","leadFormConfig","buildingFeatures",[],"listed","units",[138],"cardData",{"_48":99,"_81":102,"_83":104,"_85":76,"_86":110,"_87":109,"_124":125,"_126":127,"_128":129,"_100":130,"_131":132,"_133":134},"unitId","7d1645e2-76fd-4342-83f6-f714cf8cb1ff","bedrooms",[137],"bathrooms",[101],[101],"price",[136],"availability",[135],"2027-02-01T00:00:00.000Z",1695,2,{"_48":125,"_100":101,"_139":-5,"_131":136,"_126":137,"_128":101,"_140":141,"_111":142,"_119":61,"_143":144,"_145":146,"_147":148,"_133":149,"_150":-5,"_151":-5,"_152":-5,"_40":153},"floor","alias","1",[],"listing_type","Unit","pricing_strategy","per_month","space_type","apartment",["D",1801440000000],"floor_plan_name","floor_plan_image_path","promotion",[],"/storage/v1/object/public/summum/buildings/24642ccc-ff71-4534-8d00-d6fb8573af19/99bf68dc-8399-42d2-af70-69f61bb8a8f2.jpg",{"_19":156,"_157":158,"_159":160,"_161":26,"_162":163,"_164":61,"_165":166,"_167":168,"_169":170,"_171":26,"_172":26,"_173":26},{"_27":28,"_29":387,"_31":32,"_33":34,"_35":36,"_37":38,"_39":-7,"_40":388,"_42":43,"_44":45,"_46":47,"_48":49,"_50":51,"_52":53,"_54":45},"listings",[],"listingsByView",{"_382":158,"_383":384,"_385":386},"explodeProjects","initialFilters",{"_131":293,"_294":295,"_296":297,"_100":298,"_139":299,"_300":26,"_128":301,"_126":302,"_303":26,"_304":61,"_305":306,"_307":308},"defaultView","count",0,"filters",{},"configs",{"_174":175,"_176":177,"_178":179,"_180":181,"_182":175,"_183":184},"isEmbed","widgetMissing","hasSubmissions","analysisProducts",[274,276,278,282,289],"analysisProductsPrice",{"_274":275,"_276":277,"_278":279,"_280":281,"_282":283,"_284":285,"_286":287,"_288":287,"_289":101,"_290":285,"_291":292},"notifications",{"_242":243},"form",{"_235":61,"_236":61,"_237":61,"_238":61,"_239":61,"_240":61,"_241":61},"enabledSkus","submissions",{"_185":186,"_187":188,"_189":190,"_191":192,"_31":193,"_194":-5},"all",[221,222,223,224,225,226,227,231,232,233,234],"steps",[221,222,223,224,225,226,227],"badges",[211,212,213,214,215,216],"statuses",[205,195,197,199,201,203,206,207,208,209,210],{"_195":196,"_197":198,"_199":200,"_201":202,"_203":204},"snoozeStep","pending","bg-pink-500","preapproved","bg-sky-500","approved","bg-purple-500","signature","bg-green-500","accepted","bg-amber-500","draft","chosen","rejected","lead","cancelled","soft_rejected",{"_217":195,"_219":196},{"_217":197,"_219":198},{"_217":199,"_219":200},{"_217":201,"_219":202},{"_217":203,"_219":204},{"_217":218,"_219":220},"id","snoozed","color","bg-teal-500",{"_217":205,"_219":-5,"_228":26},{"_217":195,"_219":196,"_228":61,"_229":26,"_230":26},{"_217":197,"_219":198,"_228":61,"_229":26,"_230":26},{"_217":199,"_219":200,"_228":61,"_229":26,"_230":26},{"_217":201,"_219":202,"_228":61,"_229":26,"_230":26},{"_217":203,"_219":204,"_228":61,"_229":26,"_230":26},{"_217":206,"_219":-5,"_228":61},"isActionable","staffActionnable","visitAgentActionnable",{"_217":207,"_219":-5,"_228":26},{"_217":208,"_219":-5,"_228":26},{"_217":209,"_219":-5,"_228":26},{"_217":210,"_219":-5,"_228":26},"tenant_payments_enabled","tenant_refunds_enabled","require_id_proof","require_payment_proof","allow_co_applicants","require_employment_reference","require_landlord_reference","emails",{"_244":245,"_246":247,"_19":248,"_249":250},"agent",[269,270,271,272,273,255,256,259,260,268],"manager",[268],[254,255,256,257,258,259,260,261,262,263,264,265,266,267,268],"admin",[251,252,253],"daily-recap","auth:role-changed","auth:ownership-transferred","invite-tenant","application-confirm","application-rejected","tenant-endorser-rejected","tenant-application-rejected-with-conditions","application-deadline-reminder","application-deadline-expired","submission-status-update","submission-marked-as-accepted","tenant-approved-with-conditions","tenant-approved-without-conditions","selected-as-new-tenant","submission-snoozed-reminder","submission-snoozed-expired","credit-unlock","agent-approved-with-conditions","agent-approved-without-conditions","agent-submission-snoozed-expired","agent-submission-snoozed-reminder","agent-submission-snoozed","ca_citizen_credit_check",1799,"ca_citizen_public_court_files",500,"qc_citizen_criminal_plumitif_check",1049,"qc_citizen_criminal_plumitif_municipal_check",699,"qc_citizen_rental_board_check",1000,"on_citizen_rental_board_check",999,"ca_citizen_workplace_reference_verification",1499,"ca_citizen_landlord_reference_verification","ca_citizen_rent_affordability_analysis","qc_citizen_lease_generation","qc_citizen_rental_board_extended_check",799,[101,381],"pricePerMonth",[101,381],"pricePerSqft",[166,166],[166,101],[166,166],"hasFloor",[166,101],[166,336],"hasCommercial","hasResidential","availableAmenities",[340,341,342,343,344,345,346],"availableNeighborhoods",[309,310,311,312,313,314,315,316,317,318,319,320,321,322],{"_103":339,"_165":330},{"_103":338,"_165":101},{"_103":337,"_165":101},{"_103":335,"_165":336},{"_103":334,"_165":101},{"_103":333,"_165":101},{"_103":332,"_165":101},{"_103":331,"_165":137},{"_103":329,"_165":330},{"_103":327,"_165":328},{"_103":326,"_165":137},{"_103":325,"_165":137},{"_103":324,"_165":137},{"_103":323,"_165":101},"Villeray—Saint-Michel—Parc-Extension","Ville-Marie","Verdun","Rosemont - La Petite-Patrie","Québec",8,"QC",5,"Mercier - Hochelaga-Maisonneuve","Le Sud-Ouest","Le Plateau-Mont-Royal","Hochelaga-Maisonneuve","Côte-des-Neiges - Notre-Dame-de-Grâce",3,"Côte-des-Neiges","Centre-Sud","Ahuntsic-Cartierville",{"_48":376,"_103":377,"_42":378},{"_48":372,"_103":373,"_42":364},{"_48":367,"_103":368,"_42":369},{"_48":362,"_103":363,"_42":364},{"_48":357,"_103":358,"_42":359},{"_48":352,"_103":353,"_42":354},{"_48":347,"_103":348,"_42":349},"electric-heating",{"_98":350,"_22":351},"lucide:thermometer-sun","Electric Heating","Chauffage Électrique","refrigerator",{"_98":355,"_22":356},"lucide:refrigerator","Refrigerator","Réfrigérateur","cats-allowed",{"_98":360,"_22":361},"lucide:paw-print","Cats Allowed","Chats autorisés","washer",{"_98":365,"_22":366},"lucide:washing-machine","Washer","Laveuse","water",{"_98":370,"_22":371},"lucide:droplet","Water","Eau","dryer",{"_98":374,"_22":375},"Dryer","Sèche-linge","oven",{"_98":379,"_22":380},"lucide:microwave","Oven","Four",2589,"list","map",[],"explode",[],{"_75":76,"_77":78,"_79":80},{"_59":26,"_60":61,"_62":26},{"_390":-5,"_391":-7,"_392":393,"_394":395,"_21":22,"_19":396,"_397":-5,"_398":399,"_169":170,"_400":-5,"_401":-5,"_402":403},"devTools","prefill","impersonate",{},"theme","light",{"_217":421,"_48":49,"_422":423,"_54":45,"_37":38,"_31":32,"_424":425,"_27":28,"_33":34,"_176":426,"_427":428,"_429":-5,"_430":431,"_44":45,"_432":433,"_434":435,"_46":47,"_436":-5,"_437":-5,"_438":-5,"_52":53,"_50":51,"_35":36,"_439":-5,"_440":-5,"_169":170,"_441":442,"_443":444,"_445":446,"_42":43,"_447":448,"_39":-7,"_449":450,"_40":451,"_452":453,"_454":-7,"_455":456,"_29":457,"_174":458,"_459":460,"_461":462},"toast","user",{"_407":26,"_408":-5,"_409":-5,"_410":-5,"_411":-5,"_412":-5,"_413":-5,"_414":-5,"_415":-5,"_416":-5,"_66":-5,"_68":-5,"_417":-5,"_97":26,"_418":26,"_419":-5,"_420":-5},"otpPendingEmail","otpPendingContextEmail","telemetry",{"_404":61,"_398":-5,"_405":406},"recording","group",{"_217":49,"_103":45},"isSignedIn","userId","firstName","lastName","fullName","dateOfBirth","preferredLanguage","orgRole","orgSlug","role","profilePicture","isImpersonated","impersonatorId","ipAddress","rGAcwldRQldzll4TQX9pO","assets",{"_42":554},"social",{"_551":552,"_553":76},{"_274":275,"_276":277,"_278":279,"_280":281,"_282":283,"_284":285,"_286":287,"_288":287,"_289":101,"_290":285,"_291":292},"stripeCustomerId","cus_TSsHw8GIAzdE3E","paymentSetupRequiredAfter","tos",{"_548":-5,"_203":61,"_549":26,"_550":502},"plan",{"_103":527,"_528":76,"_529":530,"_531":532,"_533":534,"_535":536,"_537":538,"_539":540,"_541":336,"_542":543,"_544":545,"_546":547},"metadata",{"_29":457},"consentConditionsText","consentConditionsEn","consentConditionsFr","suspendedAt","archivedAt","billing",{"_519":520,"_427":428,"_521":522,"_44":45,"_523":524,"_525":526},"bucket",{"_516":49,"_517":518},"appUrl","https://rental.summumpm.com","logo",{"_395":513,"_514":515},"tosHistory",[502],{"_470":61,"_471":-7,"_60":61,"_472":26,"_473":61,"_474":61,"_475":26,"_476":26,"_477":-7,"_478":26,"_479":-7,"_480":61,"_481":26,"_482":26,"_483":484,"_485":26,"_486":26,"_487":166,"_488":-7,"_489":26,"_59":26,"_490":61,"_62":26,"_491":492,"_493":61,"_494":26,"_495":26,"_496":101,"_497":26,"_498":26,"_499":26,"_500":26},"disabledModules",[],"rolePermissions","banner",{"_98":468,"_22":469},{"_77":78,"_467":76,"_75":76,"_79":80},[274,276,278,282,289],"payments",{"_463":61,"_464":61,"_465":26,"_466":26},"version","prod-20261027-1707b56","isTenantPayingForCheck","isOrgPaymentSetup","isPrepaid","shouldAskToSetupPayment","googleAds","Contact us at (438) 801-1080 to book your visit!","Contactez-nous au (438) 801-1080 pour planifier votre visite!","tempEquifaxEnabled","whArrayAsObjects","disableAgents","preventInvitation","isBannerEnabled","preventApplyWhenNotListed","hasDynamicLinks","hasAddressVariants","isSinEnforced","isTestMode","hasSubmissionsAssignedEnabled","hasLargeUnitChangeTrigger","hideServiceEstimates","unitChangeThreshold",300,"showAgentPortalButton","hasLegalChecksConfidence","legalChecksConfidenceLevel","automatedPrepayed","hasPerBuildingLeadForm","hasDocumentAiEnabled","partnerOffersEnabled",[501],"showPerMonthPricing","blockOutOfProvinceEndorsers","hasLeaseModificationCheckReuse","leaseModificationCheckReuseMonths","hopemIntegrationEnabled","voltixIntegrationEnabled","leaseGenerationEnabled","hasPerProjectChecks","youset",{"_503":504,"_505":506,"_461":507,"_203":61,"_201":508,"_509":510,"_511":512},"ip","163.123.169.193","url","tos/tos_v1.0.0_1763739934838_H1ii8G.pdf","1.0.0","PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNzU4IDE5MiIgd2lkdGg9Ijc1OCIgaGVpZ2h0PSIxOTIiPjxwYXRoIGQ9Ik0gMjcxLjY4NCw4NC45MTQgQyAyNzAuNDIzLDg3LjIxMCAyNzAuNTQxLDg3LjI2MiAyNjkuMzk4LDg5LjYwOSIgc3Ryb2tlLXdpZHRoPSI1LjM4NSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjY5LjM5OCw4OS42MDkgQyAyNjcuNzU4LDkzLjk3MSAyNjcuNTcxLDkzLjg5MSAyNjUuOTgwLDk4LjI3NyIgc3Ryb2tlLXdpZHRoPSIzLjk1OCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjY1Ljk4MCw5OC4yNzcgQyAyNjMuNjM1LDEwMy4zMzMgMjYzLjg1NywxMDMuNDIxIDI2MS41OTgsMTA4LjUwOCIgc3Ryb2tlLXdpZHRoPSIzLjU1MCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjYxLjU5OCwxMDguNTA4IEMgMjYwLjIxMywxMTIuMjkyIDI2MC4xMjMsMTEyLjI1MyAyNTguOTU3LDExNi4xMTciIHN0cm9rZS13aWR0aD0iMy43MzIiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI1OC45NTcsMTE2LjExNyBDIDI1Ni42MzYsMTIzLjUwNyAyNTcuOTc1LDExOS4xMDggMjU3LjEyMSwxMjIuMTQxIiBzdHJva2Utd2lkdGg9IjQuMzc1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyNTcuMTIxLDEyMi4xNDEgQyAyNTkuMDY5LDExMy43MDIgMjU4LjQzMywxMTguNDQzIDI2Mi41NTEsMTA1Ljk4OCIgc3Ryb2tlLXdpZHRoPSI0LjYyOCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjYyLjU1MSwxMDUuOTg4IEMgMjY1Ljc3NywxMDAuNjMxIDI2NS4xMDUsMTAwLjMzMCAyNjkuMTkxLDk1LjM5OCIgc3Ryb2tlLXdpZHRoPSIzLjQ5MSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjY5LjE5MSw5NS4zOTggQyAyNzAuOTQ1LDkyLjM0MyAyNzEuMDk4LDkyLjQ3NyAyNzMuMTkxLDg5LjY4MCIgc3Ryb2tlLXdpZHRoPSIzLjgyNCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjczLjE5MSw4OS42ODAgQyAyNzkuMTYyLDgyLjQ5MSAyNzkuMTgwLDgyLjU3OSAyODUuNjYwLDc1Ljg3MSIgc3Ryb2tlLXdpZHRoPSIyLjg3NyIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjg1LjY2MCw3NS44NzEgQyAyODcuODgzLDczLjk1NCAyODcuNzA1LDczLjc4OCAyOTAuMjc3LDcyLjI3MyIgc3Ryb2tlLXdpZHRoPSIzLjY4MiIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjkwLjI3Nyw3Mi4yNzMgQyAyOTYuNjQ5LDY3LjU2MCAyOTYuNzM2LDY3Ljc0MSAzMDMuMzY3LDYzLjQ0NSIgc3Ryb2tlLXdpZHRoPSIzLjExMCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzAzLjM2Nyw2My40NDUgQyAzMDYuNjc2LDYxLjU5MyAzMDYuNTgwLDYxLjQ3OCAzMTAuMTQxLDYwLjEwOSIgc3Ryb2tlLXdpZHRoPSIzLjU3NiIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzEwLjE0MSw2MC4xMDkgQyAzMTMuMjg0LDU4Ljc0MyAzMTMuMjY2LDU4Ljc3MSAzMTYuNTQ3LDU3LjgwMSIgc3Ryb2tlLXdpZHRoPSIzLjg3MyIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzE2LjU0Nyw1Ny44MDEgQyAzMTkuNDE4LDU2LjIyMSAzMTkuMTY1LDU3LjA0NCAzMjEuOTAyLDU2LjcxMSIgc3Ryb2tlLXdpZHRoPSI0LjQ5NCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzIxLjkwMiw1Ni43MTEgQyAzMjYuMzYxLDU3LjQ5MyAzMjQuNTE2LDU3LjIyNyAzMjYuNzQyLDU5LjgxMyIgc3Ryb2tlLXdpZHRoPSI0Ljg3MyIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzI2Ljc0Miw1OS44MTMgQyAzMjYuMzM2LDY1LjA4MiAzMjcuNDA0LDYzLjgzMyAzMjMuOTg4LDY5LjM5MSIgc3Ryb2tlLXdpZHRoPSIzLjg2MiIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzIzLjk4OCw2OS4zOTEgQyAzMTkuODE3LDc1Ljk1MyAzMjAuMzU1LDc2LjA1OSAzMTQuNzgxLDgxLjc2NiIgc3Ryb2tlLXdpZHRoPSIzLjEwNSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzE0Ljc4MSw4MS43NjYgQyAzMDkuODU0LDg3LjQ0NSAzMDkuOTE2LDg3LjM4MSAzMDQuMTg4LDkyLjI0NiIgc3Ryb2tlLXdpZHRoPSIzLjAyOSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzA0LjE4OCw5Mi4yNDYgQyAyOTguODA2LDk2LjcwMCAyOTguOTE5LDk2LjcxMCAyOTIuOTEwLDEwMC4yOTciIHN0cm9rZS13aWR0aD0iMy4wMTkiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI5Mi45MTAsMTAwLjI5NyBDIDI4Ny44NTQsMTAzLjQ5MyAyODcuOTA4LDEwMy4zNDggMjgyLjM5MSwxMDUuNTQzIiBzdHJva2Utd2lkdGg9IjMuMjI3IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyODIuMzkxLDEwNS41NDMgQyAyNzguMDg0LDEwNi42NTYgMjc4LjI2MywxMDcuMDkyIDI3My43MjcsMTA3LjQ5NiIgc3Ryb2tlLXdpZHRoPSIzLjU0MSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjczLjcyNywxMDcuNDk2IEMgMjcwLjc4OSwxMDguMDY4IDI3MC44MDEsMTA4LjA2MCAyNjcuODI0LDEwOC4zNTIiIHN0cm9rZS13aWR0aD0iMy45MTMiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI4NS41MjMsOTEuNjQxIEMgMjg1LjAwOSw5OC4wMzYgMjg0LjcyNyw5Ny45ODIgMjgzLjkzMCwxMDQuMzI0IiBzdHJva2Utd2lkdGg9IjUuMjU3IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyODMuOTMwLDEwNC4zMjQgQyAyODIuMjQ0LDExMS4xNTggMjgzLjMxNCwxMDcuOTEzIDI4Mi4xMzMsMTExLjM5NSIgc3Ryb2tlLXdpZHRoPSI0LjI1NyIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjgyLjEzMywxMTEuMzk1IEMgMjgyLjA1MCwxMDcuOTc5IDI4Mi4wMzcsMTExLjYwMCAyODMuNTE2LDEwNS4yMDciIHN0cm9rZS13aWR0aD0iNC44NjgiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI4My41MTYsMTA1LjIwNyBDIDI4OC4zNjYsOTUuOTk4IDI4OC4yNzgsOTYuMjAwIDI5NC41OTAsODcuODM2IiBzdHJva2Utd2lkdGg9IjIuOTY4IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyOTQuNTkwLDg3LjgzNiBDIDMwMS4zMjIsODAuMDM4IDMwMC44MDgsNzkuNjgyIDMwOC4zOTgsNzIuNTc0IiBzdHJva2Utd2lkdGg9IjIuNTkzIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMDguMzk4LDcyLjU3NCBDIDMxMS42MjYsNjguMzM0IDMxMS45NTUsNjguODIzIDMxNS44NTUsNjUuNDA2IiBzdHJva2Utd2lkdGg9IjMuMTY2IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMTUuODU1LDY1LjQwNiBDIDMyNS44MDYsNTguMzc5IDMyNS43MDEsNTguNTkxIDMzNi41NDcsNTMuMDkwIiBzdHJva2Utd2lkdGg9IjIuNTI5IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMzYuNTQ3LDUzLjA5MCBDIDM0Mi44NTEsNTAuNTkyIDM0Mi41NTYsNTAuMTMxIDM0OS4zNTUsNDguOTEwIiBzdHJva2Utd2lkdGg9IjIuOTI2IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNDkuMzU1LDQ4LjkxMCBDIDM1NC4wMTIsNDcuOTM1IDM1My45MzMsNDcuNzI3IDM1OC43MTEsNDcuMzU5IiBzdHJva2Utd2lkdGg9IjMuMzI1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNTguNzExLDQ3LjM1OSBDIDM2My4yOTEsNDUuNzg1IDM2MS4yODgsNDcuMDQ0IDM2My45MDYsNDcuMTI5IiBzdHJva2Utd2lkdGg9IjMuOTU3IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNjMuOTA2LDQ3LjEyOSBDIDM2My45NzIsNTEuMzM5IDM2NC43MjEsNDguOTEwIDM2MS41NzAsNTMuNjA5IiBzdHJva2Utd2lkdGg9IjQuNDM1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNjEuNTcwLDUzLjYwOSBDIDM1NC4xNTgsNTguNzUwIDM1NS4yODUsNTkuNTUwIDM0Ni41MzEsNjMuNTUxIiBzdHJva2Utd2lkdGg9IjMuMDA5IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNDYuNTMxLDYzLjU1MSBDIDMzNy4wMDUsNjkuMzU0IDMzNy4wOTQsNjkuNDkyIDMyNy40NDEsNzUuMDk0IiBzdHJva2Utd2lkdGg9IjIuNTgxIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMjcuNDQxLDc1LjA5NCBDIDMyMi40NDYsNzcuODYzIDMyMi41NTAsNzguMDI5IDMxNy42MjEsODAuOTAyIiBzdHJva2Utd2lkdGg9IjMuMDg1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMTcuNjIxLDgwLjkwMiBDIDMxMi44NTMsODMuNjIzIDMxMy4wMjYsODMuNzk3IDMwOC42MDIsODYuOTYxIiBzdHJva2Utd2lkdGg9IjMuMjY2IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMDguNjAyLDg2Ljk2MSBDIDMwMy4yNzIsOTAuMDkyIDMwNi4zMDAsODguNzY4IDMwNC41MTYsOTEuMTkxIiBzdHJva2Utd2lkdGg9IjQuMTkzIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMDQuNTE2LDkxLjE5MSBDIDMxMC4yNTEsOTIuNjg3IDMwNy4wMTQsOTMuMzk5IDMxNi4wODYsOTMuNTc0IiBzdHJva2Utd2lkdGg9IjMuNTQwIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMTYuMDg2LDkzLjU3NCBDIDMyNS41NzgsOTQuNDYyIDMyNS40OTQsOTUuMDA1IDMzNS4wMDAsOTUuODI4IiBzdHJva2Utd2lkdGg9IjIuODY4IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMzUuMDAwLDk1LjgyOCBDIDM0NC40MDEsOTcuMTg1IDM0NC4zODYsOTcuMTg5IDM1My43MDMsOTkuMDI3IiBzdHJva2Utd2lkdGg9IjIuNjU1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNTMuNzAzLDk5LjAyNyBDIDM1OS45ODIsMTAwLjI1MiAzNTkuOTU2LDEwMC4yNjUgMzY2LjEwOSwxMDEuOTg4IiBzdHJva2Utd2lkdGg9IjMuMDIzIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNjYuMTA5LDEwMS45ODggQyAzNzUuNDEzLDEwMi41ODYgMzcwLjA1MiwxMDMuMTA2IDM3My44NDQsMTA0LjczNCIgc3Ryb2tlLXdpZHRoPSIzLjQ3OCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzczLjg0NCwxMDQuNzM0IEMgMzY0LjczNiwxMTUuMDg2IDM2OC45OTUsMTExLjM3MCAzNTMuMjczLDExOS41NTUiIHN0cm9rZS13aWR0aD0iMy44NTciIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDM1My4yNzMsMTE5LjU1NSBDIDMzOS44MjksMTIyLjExMiAzNDAuOTQxLDEyNC4zNjMgMzI2LjI1NCwxMjMuMjg5IiBzdHJva2Utd2lkdGg9IjIuNDg4IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMjYuMjU0LDEyMy4yODkgQyAzMDcuMDA0LDEyNS45MTUgMzA3LjEzNSwxMjQuOTQ3IDI4Ny44ODcsMTI1LjIyNyIgc3Ryb2tlLXdpZHRoPSIxLjkwMCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjg3Ljg4NywxMjUuMjI3IEMgMjY5Ljk5OSwxMjQuMzM5IDI3MC4zMjcsMTI0LjU5NCAyNTIuODk4LDEyMC42NDgiIHN0cm9rZS13aWR0aD0iMS44NTAiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI1Mi44OTgsMTIwLjY0OCBDIDI0NC43NjgsMTE5LjU4NiAyNDUuOTU2LDExOS4xNTAgMjM5LjgwMSwxMTQuODQ4IiBzdHJva2Utd2lkdGg9IjIuNTU0IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyMzkuODAxLDExNC44NDggQyAyMjYuNjg1LDEwNC41NjMgMjMyLjgwNywxMDguMTc2IDIyOC45NzcsOTcuODI4IiBzdHJva2Utd2lkdGg9IjIuNjIyIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyMjguOTc3LDk3LjgyOCBDIDIzOC41NzAsODkuMzAwIDIzMS43NzksODkuNTkyIDI0OS45ODgsODQuOTA2IiBzdHJva2Utd2lkdGg9IjIuMzg0IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyNDkuOTg4LDg0LjkwNiBDIDI3NC4zNDYsNzUuNDE3IDI3My45MTIsNzUuNzAwIDI5OS42NjAsNzAuNjI5IiBzdHJva2Utd2lkdGg9IjEuNTMzIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyOTkuNjYwLDcwLjYyOSBDIDMzNS43ODYsNjMuNzU5IDMzNS40NjQsNjMuODU3IDM3Mi4yMjMsNjEuNzg1IiBzdHJva2Utd2lkdGg9IjEuMTY5IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNzIuMjIzLDYxLjc4NSBDIDQyMi45MDksNjEuMDI3IDQyMi43NDMsNTkuMDQ4IDQ3My41NzQsNjEuMjA3IiBzdHJva2Utd2lkdGg9IjEuMTI1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PC9zdmc+","acceptedAt","2025-11-21T15:45:35.398Z","acceptedBy","Philippe Brassard (philippe@summumpm.com)","https://nykxxjptujeqkwefdxxg.supabase.co/storage/v1/object/public/summum/logo/light","dark","https://nykxxjptujeqkwefdxxg.supabase.co/storage/v1/object/public/summum/logo/dark","public","private","summum_private","billingEmail","philippe@summumpm.com","lastDigit","6148","paymentType","visa","kind","configured","Pro","notes","planId","pro_2025_06","startDate","2025-11-21","yearlyPrice",2990,"monthlyPrice",89,"supportLevel","standard","freeTrialDays",14,"includedUsers","billingInterval","monthly","additionalUserPrice",49,"planDurationInMonths",12,"current","shouldAccept","lastAccepted","facebook","https://www.facebook.com/summumpm","youtube",{"_555":556},"updated_at","2026-08-24T00:34:22.636Z"] | |
| 2 | +P18:-5 | |
added
tests/fixtures/summum/077338a58d6366a3b00c.txt
+2 −0
@@ -0,0 +1,2 @@ | ||
| 1 | +[{"_1":2,"_3":4,"_5":6,"_7":8},"root",{"_9":394},"public-language",{"_9":-5},"PublicListingsLayoutPage",{"_9":160},"PublicListingDetailPage",{"_9":10},"data",{"_11":12,"_13":14,"_15":16,"_17":18,"_19":20,"_21":22,"_23":24,"_25":26},"listing",{"_48":101,"_102":103,"_81":104,"_105":104,"_83":106,"_107":108,"_109":110,"_85":76,"_87":111,"_86":112,"_37":113,"_114":115,"_116":117,"_118":-5,"_119":-5,"_120":121,"_122":61,"_123":124,"_125":126},"descriptionHtml",{"_98":99,"_22":100},"auth",{"_96":61,"_97":26},"walkScore",["P",18],"tenant",{"_27":28,"_29":30,"_31":32,"_33":34,"_35":36,"_37":38,"_39":-7,"_40":41,"_42":43,"_44":45,"_46":47,"_48":49,"_50":51,"_52":53,"_54":45},"lang","fr","pageUrl","https://rental.summumpm.com/fr/listings/3143-rue-holt/details","noindex",false,"address",{"_81":82,"_83":84,"_85":76,"_86":76,"_87":76,"_88":89,"_90":91,"_92":93,"_94":95},"analytics",{"_75":76,"_77":78,"_79":80},"colors",{"_72":73,"_74":73},"contact",{"_66":67,"_68":69,"_70":67,"_71":67},"customDomains",[63],"description","Appartements à louer dans le Grand Montréal.","emptyImage","features",{"_59":26,"_60":61,"_62":26},"icon","https://nykxxjptujeqkwefdxxg.supabase.co/storage/v1/object/public/summum/icon?v=1787531662636","legalName","Gestion Immobilière Summum","privacyPolicyUrl","https://summumpm.com/politique-de-confidentialite/","slug","summum","templateConfig",{"_55":56,"_57":58},"templateId","editorial","title","showcase",{},"listingSortOrder","smart","buildingVisibilityOverride","hasMarketingEnabled",true,"showUnitAvailability",{"_64":65},"domain","rental.summumpm.com","email","location@summumpm.com","phone","(438) 801-1080","broadcastEmail","agentReplyTo","primary","#182642","secondary","facebookPixel","","google","G-CPWFVW6CCX","googleTagManager","GTM-567KN95S","street","6-77 Rue Omer-Deserres","city","Blainville","neighborhood","latitude","longitude","region","Quebec","postcode","J7C 5V6","country","Canada","country_code","CA","loggedIn","isStaff","en","<p>Room for rent near Jean Talon metro!</p><p>📍3143, rue Holt, Montreal</p><p>🌳 Rosemont sector, access to St-Michel metro station in less than 15 minutes by bus. Promenade Masson is 500m away (2 blocks), therefore close to all services and amenities (grocery store, pharmacy, cafes, fruit shops, restaurants, convenience store, etc.).</p><p>📐 Room</p><p>Inclusions : All included (electricity, heating, hot water, internet, sink, refrigerator, cooking ring and hood).</p><p>More details :</p><p>* Freshly renovated room.</p><p>* Paid laundry room on site.</p><p>* Freshly renovated room.</p><p>* Access to two shared bathrooms.</p><p>* A janitor takes care of general maintenance.</p><p>* Ideal for students and workers. Easy access to universities and downtown Montreal.</p><p>* No pets allowed.</p><p>* The tenant must provide their own bedding.</p><p>This room with all charges included is ideal for a single person!</p><p>🔎Virtual tour : https://my.matterport.com/show/?m=GX29cA1szL7</p><p>For more information : 📲 438 801-1080 (text or call)</p><p>*********</p>","<p>Chambre à louer près du métro Jean Talon!</p><p>📍3143, rue Holt, Montréal</p><p>🌳 Secteur Rosemont, accès à la station de métro St-Michel en moins de 15 minutes en autobus. La promenade Masson est à 500m (2 blocs), donc près de tous les services et de toutes les commodités (épicerie, pharmacie, cafés, fruiteries, restaurants, dépanneur, etc.).</p><p>📐 Chambre</p><p>Inclusions : Tout inclus (électricité, chauffage, eau chaude, internet, évier, réfrigérateur, rond de cuisson et hotte).</p><p>Plus de détails :</p><p>* Chambre fraîchement rénovée.</p><p>* Buanderie payante sur place.</p><p>* Accès aux deux salles de bain partagées.</p><p>* Un concierge s'occupe de l'entretien général.</p><p>* Idéal pour étudiants et travailleurs. Facile d’accès aux universités et centre-ville de Montréal.</p><p>* Aucun animal autorisé.</p><p>* Le/la locataire doit fournir sa literie.</p><p>Cette chambre toutes charges comprises est idéale pour une personne seule!</p><p>🔎 Visite virtuelle : https://my.matterport.com/show/?m=GX29cA1szL7</p><p>Pour plus de renseignements : 📲 438 801-1080 (texto ou appel)</p>","3143-rue-holt","area",0,"3143 Rue Holt","name","Montréal","buildingId","320a33eb-465f-4bc9-b068-13aaffcc7cda","availabilty",["D",1790899200000],-73.579732,45.551375,{"_98":158,"_22":159},"images",[157],"automatedApplyMode","direct","buildingAutomatedApplyMode","leadFormConfig","buildingFeatures",[],"listed","units",[141],"cardData",{"_48":101,"_81":104,"_83":106,"_85":76,"_86":112,"_87":111,"_127":128,"_129":130,"_131":132,"_102":133,"_134":135,"_136":137},"unitId","9d579032-f64d-443e-a78b-255f5de794eb","bedrooms",[103],"bathrooms",[140],[103],"price",[139],"availability",[138],"2026-10-02T00:00:00.000Z",725,1,{"_48":128,"_102":103,"_142":-5,"_134":139,"_129":103,"_131":140,"_143":144,"_114":145,"_122":61,"_146":147,"_148":149,"_150":151,"_136":152,"_153":-5,"_154":-5,"_155":-5,"_40":156},"floor","alias","3",[],"listing_type","Unit","pricing_strategy","per_month","space_type","apartment",["D",1790899200000],"floor_plan_name","floor_plan_image_path","promotion",[],"/storage/v1/object/public/summum/buildings/320a33eb-465f-4bc9-b068-13aaffcc7cda/930be836-3379-43c1-b2ea-9065787b21e7.jpg","Room for rent near Jean Talon metro!\n\n📍3143, rue Holt, Montreal\n\n🌳 Rosemont sector, access to St-Michel metro station in less than 15 minutes by bus. Promenade Masson is 500m away (2 blocks), therefore close to all services and amenities (grocery store, pharmacy, cafes, fruit shops, restaurants, convenience store, etc.).\n\n📐 Room\n\nInclusions : All included (electricity, heating, hot water, internet, sink, refrigerator, cooking ring and hood).\n\nMore details :\n\n* Freshly renovated room.\n* Paid laundry room on site.\n* Freshly renovated room.\n\n* Access to two shared bathrooms.\n* A janitor takes care of general maintenance.\n* Ideal for students and workers. Easy access to universities and downtown Montreal.\n* No pets allowed.\n* The tenant must provide their own bedding.\n\nThis room with all charges included is ideal for a single person!\n\n🔎Virtual tour : https://my.matterport.com/show/?m=GX29cA1szL7\n\nFor more information : 📲 438 801-1080 (text or call)\n\n*********","Chambre à louer près du métro Jean Talon!\n\n📍3143, rue Holt, Montréal\n\n🌳 Secteur Rosemont, accès à la station de métro St-Michel en moins de 15 minutes en autobus. La promenade Masson est à 500m (2 blocs), donc près de tous les services et de toutes les commodités (épicerie, pharmacie, cafés, fruiteries, restaurants, dépanneur, etc.).\n\n📐 Chambre\n\nInclusions : Tout inclus (électricité, chauffage, eau chaude, internet, évier, réfrigérateur, rond de cuisson et hotte).\n\nPlus de détails :\n\n* Chambre fraîchement rénovée.\n\n* Buanderie payante sur place.\n\n* Accès aux deux salles de bain partagées.\n\n* Un concierge s'occupe de l'entretien général.\n\n* Idéal pour étudiants et travailleurs. Facile d’accès aux universités et centre-ville de Montréal.\n\n* Aucun animal autorisé.\n\n* Le/la locataire doit fournir sa literie.\n\nCette chambre toutes charges comprises est idéale pour une personne seule!\n\n🔎 Visite virtuelle : https://my.matterport.com/show/?m=GX29cA1szL7\n\nPour plus de renseignements : 📲 438 801-1080 (texto ou appel)",{"_19":161,"_162":163,"_164":165,"_166":26,"_167":168,"_169":61,"_170":103,"_171":172,"_173":174,"_175":26,"_176":26,"_177":26},{"_27":28,"_29":392,"_31":32,"_33":34,"_35":36,"_37":38,"_39":-7,"_40":393,"_42":43,"_44":45,"_46":47,"_48":49,"_50":51,"_52":53,"_54":45},"listings",[],"listingsByView",{"_387":163,"_388":389,"_390":391},"explodeProjects","initialFilters",{"_134":297,"_298":299,"_300":301,"_102":302,"_142":303,"_304":26,"_131":305,"_129":306,"_307":26,"_308":61,"_309":310,"_311":312},"defaultView","count","filters",{},"configs",{"_178":179,"_180":181,"_182":183,"_184":185,"_186":179,"_187":188},"isEmbed","widgetMissing","hasSubmissions","analysisProducts",[278,280,282,286,293],"analysisProductsPrice",{"_278":279,"_280":281,"_282":283,"_284":285,"_286":287,"_288":289,"_290":291,"_292":291,"_293":140,"_294":289,"_295":296},"notifications",{"_246":247},"form",{"_239":61,"_240":61,"_241":61,"_242":61,"_243":61,"_244":61,"_245":61},"enabledSkus","submissions",{"_189":190,"_191":192,"_193":194,"_195":196,"_31":197,"_198":-5},"all",[225,226,227,228,229,230,231,235,236,237,238],"steps",[225,226,227,228,229,230,231],"badges",[215,216,217,218,219,220],"statuses",[209,199,201,203,205,207,210,211,212,213,214],{"_199":200,"_201":202,"_203":204,"_205":206,"_207":208},"snoozeStep","pending","bg-pink-500","preapproved","bg-sky-500","approved","bg-purple-500","signature","bg-green-500","accepted","bg-amber-500","draft","chosen","rejected","lead","cancelled","soft_rejected",{"_221":199,"_223":200},{"_221":201,"_223":202},{"_221":203,"_223":204},{"_221":205,"_223":206},{"_221":207,"_223":208},{"_221":222,"_223":224},"id","snoozed","color","bg-teal-500",{"_221":209,"_223":-5,"_232":26},{"_221":199,"_223":200,"_232":61,"_233":26,"_234":26},{"_221":201,"_223":202,"_232":61,"_233":26,"_234":26},{"_221":203,"_223":204,"_232":61,"_233":26,"_234":26},{"_221":205,"_223":206,"_232":61,"_233":26,"_234":26},{"_221":207,"_223":208,"_232":61,"_233":26,"_234":26},{"_221":210,"_223":-5,"_232":61},"isActionable","staffActionnable","visitAgentActionnable",{"_221":211,"_223":-5,"_232":26},{"_221":212,"_223":-5,"_232":26},{"_221":213,"_223":-5,"_232":26},{"_221":214,"_223":-5,"_232":26},"tenant_payments_enabled","tenant_refunds_enabled","require_id_proof","require_payment_proof","allow_co_applicants","require_employment_reference","require_landlord_reference","emails",{"_248":249,"_250":251,"_19":252,"_253":254},"agent",[273,274,275,276,277,259,260,263,264,272],"manager",[272],[258,259,260,261,262,263,264,265,266,267,268,269,270,271,272],"admin",[255,256,257],"daily-recap","auth:role-changed","auth:ownership-transferred","invite-tenant","application-confirm","application-rejected","tenant-endorser-rejected","tenant-application-rejected-with-conditions","application-deadline-reminder","application-deadline-expired","submission-status-update","submission-marked-as-accepted","tenant-approved-with-conditions","tenant-approved-without-conditions","selected-as-new-tenant","submission-snoozed-reminder","submission-snoozed-expired","credit-unlock","agent-approved-with-conditions","agent-approved-without-conditions","agent-submission-snoozed-expired","agent-submission-snoozed-reminder","agent-submission-snoozed","ca_citizen_credit_check",1799,"ca_citizen_public_court_files",500,"qc_citizen_criminal_plumitif_check",1049,"qc_citizen_criminal_plumitif_municipal_check",699,"qc_citizen_rental_board_check",1000,"on_citizen_rental_board_check",999,"ca_citizen_workplace_reference_verification",1499,"ca_citizen_landlord_reference_verification","ca_citizen_rent_affordability_analysis","qc_citizen_lease_generation","qc_citizen_rental_board_extended_check",799,[140,386],"pricePerMonth",[140,386],"pricePerSqft",[103,103],[103,140],[103,103],"hasFloor",[103,140],[103,341],"hasCommercial","hasResidential","availableAmenities",[345,346,347,348,349,350,351],"availableNeighborhoods",[313,314,315,316,317,318,319,320,321,322,323,324,325,326],{"_105":344,"_170":335},{"_105":343,"_170":140},{"_105":342,"_170":140},{"_105":340,"_170":341},{"_105":339,"_170":140},{"_105":338,"_170":140},{"_105":337,"_170":140},{"_105":336,"_170":329},{"_105":334,"_170":335},{"_105":332,"_170":333},{"_105":331,"_170":329},{"_105":330,"_170":329},{"_105":328,"_170":329},{"_105":327,"_170":140},"Villeray—Saint-Michel—Parc-Extension","Ville-Marie",2,"Verdun","Rosemont - La Petite-Patrie","Québec",8,"QC",5,"Mercier - Hochelaga-Maisonneuve","Le Sud-Ouest","Le Plateau-Mont-Royal","Hochelaga-Maisonneuve","Côte-des-Neiges - Notre-Dame-de-Grâce",3,"Côte-des-Neiges","Centre-Sud","Ahuntsic-Cartierville",{"_48":381,"_105":382,"_42":383},{"_48":377,"_105":378,"_42":369},{"_48":372,"_105":373,"_42":374},{"_48":367,"_105":368,"_42":369},{"_48":362,"_105":363,"_42":364},{"_48":357,"_105":358,"_42":359},{"_48":352,"_105":353,"_42":354},"electric-heating",{"_98":355,"_22":356},"lucide:thermometer-sun","Electric Heating","Chauffage Électrique","refrigerator",{"_98":360,"_22":361},"lucide:refrigerator","Refrigerator","Réfrigérateur","cats-allowed",{"_98":365,"_22":366},"lucide:paw-print","Cats Allowed","Chats autorisés","washer",{"_98":370,"_22":371},"lucide:washing-machine","Washer","Laveuse","water",{"_98":375,"_22":376},"lucide:droplet","Water","Eau","dryer",{"_98":379,"_22":380},"Dryer","Sèche-linge","oven",{"_98":384,"_22":385},"lucide:microwave","Oven","Four",2589,"list","map",[],"explode",[],{"_75":76,"_77":78,"_79":80},{"_59":26,"_60":61,"_62":26},{"_395":-5,"_396":-7,"_397":398,"_399":400,"_21":22,"_19":401,"_402":-5,"_403":404,"_173":174,"_405":-5,"_406":-5,"_407":408},"devTools","prefill","impersonate",{},"theme","light",{"_221":426,"_48":49,"_427":428,"_54":45,"_37":38,"_31":32,"_429":430,"_27":28,"_33":34,"_180":431,"_432":433,"_434":-5,"_435":436,"_44":45,"_437":438,"_439":440,"_46":47,"_441":-5,"_442":-5,"_443":-5,"_52":53,"_50":51,"_35":36,"_444":-5,"_445":-5,"_173":174,"_446":447,"_448":449,"_450":451,"_42":43,"_452":453,"_39":-7,"_454":455,"_40":456,"_457":458,"_459":-7,"_460":461,"_29":462,"_178":463,"_464":465,"_466":467},"toast","user",{"_412":26,"_413":-5,"_414":-5,"_415":-5,"_416":-5,"_417":-5,"_418":-5,"_419":-5,"_420":-5,"_421":-5,"_66":-5,"_68":-5,"_422":-5,"_97":26,"_423":26,"_424":-5,"_425":-5},"otpPendingEmail","otpPendingContextEmail","telemetry",{"_409":61,"_403":-5,"_410":411},"recording","group",{"_221":49,"_105":45},"isSignedIn","userId","firstName","lastName","fullName","dateOfBirth","preferredLanguage","orgRole","orgSlug","role","profilePicture","isImpersonated","impersonatorId","ipAddress","rGAcwldRQldzll4TQX9pO","assets",{"_42":559},"social",{"_556":557,"_558":76},{"_278":279,"_280":281,"_282":283,"_284":285,"_286":287,"_288":289,"_290":291,"_292":291,"_293":140,"_294":289,"_295":296},"stripeCustomerId","cus_TSsHw8GIAzdE3E","paymentSetupRequiredAfter","tos",{"_553":-5,"_207":61,"_554":26,"_555":507},"plan",{"_105":532,"_533":76,"_534":535,"_536":537,"_538":539,"_540":541,"_542":543,"_544":545,"_546":341,"_547":548,"_549":550,"_551":552},"metadata",{"_29":462},"consentConditionsText","consentConditionsEn","consentConditionsFr","suspendedAt","archivedAt","billing",{"_524":525,"_432":433,"_526":527,"_44":45,"_528":529,"_530":531},"bucket",{"_521":49,"_522":523},"appUrl","https://rental.summumpm.com","logo",{"_400":518,"_519":520},"tosHistory",[507],{"_475":61,"_476":-7,"_60":61,"_477":26,"_478":61,"_479":61,"_480":26,"_481":26,"_482":-7,"_483":26,"_484":-7,"_485":61,"_486":26,"_487":26,"_488":489,"_490":26,"_491":26,"_492":103,"_493":-7,"_494":26,"_59":26,"_495":61,"_62":26,"_496":497,"_498":61,"_499":26,"_500":26,"_501":140,"_502":26,"_503":26,"_504":26,"_505":26},"disabledModules",[],"rolePermissions","banner",{"_98":473,"_22":474},{"_77":78,"_472":76,"_75":76,"_79":80},[278,280,282,286,293],"payments",{"_468":61,"_469":61,"_470":26,"_471":26},"version","prod-20261027-1707b56","isTenantPayingForCheck","isOrgPaymentSetup","isPrepaid","shouldAskToSetupPayment","googleAds","Contact us at (438) 801-1080 to book your visit!","Contactez-nous au (438) 801-1080 pour planifier votre visite!","tempEquifaxEnabled","whArrayAsObjects","disableAgents","preventInvitation","isBannerEnabled","preventApplyWhenNotListed","hasDynamicLinks","hasAddressVariants","isSinEnforced","isTestMode","hasSubmissionsAssignedEnabled","hasLargeUnitChangeTrigger","hideServiceEstimates","unitChangeThreshold",300,"showAgentPortalButton","hasLegalChecksConfidence","legalChecksConfidenceLevel","automatedPrepayed","hasPerBuildingLeadForm","hasDocumentAiEnabled","partnerOffersEnabled",[506],"showPerMonthPricing","blockOutOfProvinceEndorsers","hasLeaseModificationCheckReuse","leaseModificationCheckReuseMonths","hopemIntegrationEnabled","voltixIntegrationEnabled","leaseGenerationEnabled","hasPerProjectChecks","youset",{"_508":509,"_510":511,"_466":512,"_207":61,"_205":513,"_514":515,"_516":517},"ip","163.123.169.193","url","tos/tos_v1.0.0_1763739934838_H1ii8G.pdf","1.0.0","PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNzU4IDE5MiIgd2lkdGg9Ijc1OCIgaGVpZ2h0PSIxOTIiPjxwYXRoIGQ9Ik0gMjcxLjY4NCw4NC45MTQgQyAyNzAuNDIzLDg3LjIxMCAyNzAuNTQxLDg3LjI2MiAyNjkuMzk4LDg5LjYwOSIgc3Ryb2tlLXdpZHRoPSI1LjM4NSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjY5LjM5OCw4OS42MDkgQyAyNjcuNzU4LDkzLjk3MSAyNjcuNTcxLDkzLjg5MSAyNjUuOTgwLDk4LjI3NyIgc3Ryb2tlLXdpZHRoPSIzLjk1OCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjY1Ljk4MCw5OC4yNzcgQyAyNjMuNjM1LDEwMy4zMzMgMjYzLjg1NywxMDMuNDIxIDI2MS41OTgsMTA4LjUwOCIgc3Ryb2tlLXdpZHRoPSIzLjU1MCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjYxLjU5OCwxMDguNTA4IEMgMjYwLjIxMywxMTIuMjkyIDI2MC4xMjMsMTEyLjI1MyAyNTguOTU3LDExNi4xMTciIHN0cm9rZS13aWR0aD0iMy43MzIiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI1OC45NTcsMTE2LjExNyBDIDI1Ni42MzYsMTIzLjUwNyAyNTcuOTc1LDExOS4xMDggMjU3LjEyMSwxMjIuMTQxIiBzdHJva2Utd2lkdGg9IjQuMzc1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyNTcuMTIxLDEyMi4xNDEgQyAyNTkuMDY5LDExMy43MDIgMjU4LjQzMywxMTguNDQzIDI2Mi41NTEsMTA1Ljk4OCIgc3Ryb2tlLXdpZHRoPSI0LjYyOCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjYyLjU1MSwxMDUuOTg4IEMgMjY1Ljc3NywxMDAuNjMxIDI2NS4xMDUsMTAwLjMzMCAyNjkuMTkxLDk1LjM5OCIgc3Ryb2tlLXdpZHRoPSIzLjQ5MSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjY5LjE5MSw5NS4zOTggQyAyNzAuOTQ1LDkyLjM0MyAyNzEuMDk4LDkyLjQ3NyAyNzMuMTkxLDg5LjY4MCIgc3Ryb2tlLXdpZHRoPSIzLjgyNCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjczLjE5MSw4OS42ODAgQyAyNzkuMTYyLDgyLjQ5MSAyNzkuMTgwLDgyLjU3OSAyODUuNjYwLDc1Ljg3MSIgc3Ryb2tlLXdpZHRoPSIyLjg3NyIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjg1LjY2MCw3NS44NzEgQyAyODcuODgzLDczLjk1NCAyODcuNzA1LDczLjc4OCAyOTAuMjc3LDcyLjI3MyIgc3Ryb2tlLXdpZHRoPSIzLjY4MiIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjkwLjI3Nyw3Mi4yNzMgQyAyOTYuNjQ5LDY3LjU2MCAyOTYuNzM2LDY3Ljc0MSAzMDMuMzY3LDYzLjQ0NSIgc3Ryb2tlLXdpZHRoPSIzLjExMCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzAzLjM2Nyw2My40NDUgQyAzMDYuNjc2LDYxLjU5MyAzMDYuNTgwLDYxLjQ3OCAzMTAuMTQxLDYwLjEwOSIgc3Ryb2tlLXdpZHRoPSIzLjU3NiIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzEwLjE0MSw2MC4xMDkgQyAzMTMuMjg0LDU4Ljc0MyAzMTMuMjY2LDU4Ljc3MSAzMTYuNTQ3LDU3LjgwMSIgc3Ryb2tlLXdpZHRoPSIzLjg3MyIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzE2LjU0Nyw1Ny44MDEgQyAzMTkuNDE4LDU2LjIyMSAzMTkuMTY1LDU3LjA0NCAzMjEuOTAyLDU2LjcxMSIgc3Ryb2tlLXdpZHRoPSI0LjQ5NCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzIxLjkwMiw1Ni43MTEgQyAzMjYuMzYxLDU3LjQ5MyAzMjQuNTE2LDU3LjIyNyAzMjYuNzQyLDU5LjgxMyIgc3Ryb2tlLXdpZHRoPSI0Ljg3MyIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzI2Ljc0Miw1OS44MTMgQyAzMjYuMzM2LDY1LjA4MiAzMjcuNDA0LDYzLjgzMyAzMjMuOTg4LDY5LjM5MSIgc3Ryb2tlLXdpZHRoPSIzLjg2MiIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzIzLjk4OCw2OS4zOTEgQyAzMTkuODE3LDc1Ljk1MyAzMjAuMzU1LDc2LjA1OSAzMTQuNzgxLDgxLjc2NiIgc3Ryb2tlLXdpZHRoPSIzLjEwNSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzE0Ljc4MSw4MS43NjYgQyAzMDkuODU0LDg3LjQ0NSAzMDkuOTE2LDg3LjM4MSAzMDQuMTg4LDkyLjI0NiIgc3Ryb2tlLXdpZHRoPSIzLjAyOSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzA0LjE4OCw5Mi4yNDYgQyAyOTguODA2LDk2LjcwMCAyOTguOTE5LDk2LjcxMCAyOTIuOTEwLDEwMC4yOTciIHN0cm9rZS13aWR0aD0iMy4wMTkiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI5Mi45MTAsMTAwLjI5NyBDIDI4Ny44NTQsMTAzLjQ5MyAyODcuOTA4LDEwMy4zNDggMjgyLjM5MSwxMDUuNTQzIiBzdHJva2Utd2lkdGg9IjMuMjI3IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyODIuMzkxLDEwNS41NDMgQyAyNzguMDg0LDEwNi42NTYgMjc4LjI2MywxMDcuMDkyIDI3My43MjcsMTA3LjQ5NiIgc3Ryb2tlLXdpZHRoPSIzLjU0MSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjczLjcyNywxMDcuNDk2IEMgMjcwLjc4OSwxMDguMDY4IDI3MC44MDEsMTA4LjA2MCAyNjcuODI0LDEwOC4zNTIiIHN0cm9rZS13aWR0aD0iMy45MTMiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI4NS41MjMsOTEuNjQxIEMgMjg1LjAwOSw5OC4wMzYgMjg0LjcyNyw5Ny45ODIgMjgzLjkzMCwxMDQuMzI0IiBzdHJva2Utd2lkdGg9IjUuMjU3IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyODMuOTMwLDEwNC4zMjQgQyAyODIuMjQ0LDExMS4xNTggMjgzLjMxNCwxMDcuOTEzIDI4Mi4xMzMsMTExLjM5NSIgc3Ryb2tlLXdpZHRoPSI0LjI1NyIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjgyLjEzMywxMTEuMzk1IEMgMjgyLjA1MCwxMDcuOTc5IDI4Mi4wMzcsMTExLjYwMCAyODMuNTE2LDEwNS4yMDciIHN0cm9rZS13aWR0aD0iNC44NjgiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI4My41MTYsMTA1LjIwNyBDIDI4OC4zNjYsOTUuOTk4IDI4OC4yNzgsOTYuMjAwIDI5NC41OTAsODcuODM2IiBzdHJva2Utd2lkdGg9IjIuOTY4IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyOTQuNTkwLDg3LjgzNiBDIDMwMS4zMjIsODAuMDM4IDMwMC44MDgsNzkuNjgyIDMwOC4zOTgsNzIuNTc0IiBzdHJva2Utd2lkdGg9IjIuNTkzIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMDguMzk4LDcyLjU3NCBDIDMxMS42MjYsNjguMzM0IDMxMS45NTUsNjguODIzIDMxNS44NTUsNjUuNDA2IiBzdHJva2Utd2lkdGg9IjMuMTY2IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMTUuODU1LDY1LjQwNiBDIDMyNS44MDYsNTguMzc5IDMyNS43MDEsNTguNTkxIDMzNi41NDcsNTMuMDkwIiBzdHJva2Utd2lkdGg9IjIuNTI5IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMzYuNTQ3LDUzLjA5MCBDIDM0Mi44NTEsNTAuNTkyIDM0Mi41NTYsNTAuMTMxIDM0OS4zNTUsNDguOTEwIiBzdHJva2Utd2lkdGg9IjIuOTI2IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNDkuMzU1LDQ4LjkxMCBDIDM1NC4wMTIsNDcuOTM1IDM1My45MzMsNDcuNzI3IDM1OC43MTEsNDcuMzU5IiBzdHJva2Utd2lkdGg9IjMuMzI1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNTguNzExLDQ3LjM1OSBDIDM2My4yOTEsNDUuNzg1IDM2MS4yODgsNDcuMDQ0IDM2My45MDYsNDcuMTI5IiBzdHJva2Utd2lkdGg9IjMuOTU3IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNjMuOTA2LDQ3LjEyOSBDIDM2My45NzIsNTEuMzM5IDM2NC43MjEsNDguOTEwIDM2MS41NzAsNTMuNjA5IiBzdHJva2Utd2lkdGg9IjQuNDM1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNjEuNTcwLDUzLjYwOSBDIDM1NC4xNTgsNTguNzUwIDM1NS4yODUsNTkuNTUwIDM0Ni41MzEsNjMuNTUxIiBzdHJva2Utd2lkdGg9IjMuMDA5IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNDYuNTMxLDYzLjU1MSBDIDMzNy4wMDUsNjkuMzU0IDMzNy4wOTQsNjkuNDkyIDMyNy40NDEsNzUuMDk0IiBzdHJva2Utd2lkdGg9IjIuNTgxIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMjcuNDQxLDc1LjA5NCBDIDMyMi40NDYsNzcuODYzIDMyMi41NTAsNzguMDI5IDMxNy42MjEsODAuOTAyIiBzdHJva2Utd2lkdGg9IjMuMDg1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMTcuNjIxLDgwLjkwMiBDIDMxMi44NTMsODMuNjIzIDMxMy4wMjYsODMuNzk3IDMwOC42MDIsODYuOTYxIiBzdHJva2Utd2lkdGg9IjMuMjY2IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMDguNjAyLDg2Ljk2MSBDIDMwMy4yNzIsOTAuMDkyIDMwNi4zMDAsODguNzY4IDMwNC41MTYsOTEuMTkxIiBzdHJva2Utd2lkdGg9IjQuMTkzIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMDQuNTE2LDkxLjE5MSBDIDMxMC4yNTEsOTIuNjg3IDMwNy4wMTQsOTMuMzk5IDMxNi4wODYsOTMuNTc0IiBzdHJva2Utd2lkdGg9IjMuNTQwIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMTYuMDg2LDkzLjU3NCBDIDMyNS41NzgsOTQuNDYyIDMyNS40OTQsOTUuMDA1IDMzNS4wMDAsOTUuODI4IiBzdHJva2Utd2lkdGg9IjIuODY4IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMzUuMDAwLDk1LjgyOCBDIDM0NC40MDEsOTcuMTg1IDM0NC4zODYsOTcuMTg5IDM1My43MDMsOTkuMDI3IiBzdHJva2Utd2lkdGg9IjIuNjU1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNTMuNzAzLDk5LjAyNyBDIDM1OS45ODIsMTAwLjI1MiAzNTkuOTU2LDEwMC4yNjUgMzY2LjEwOSwxMDEuOTg4IiBzdHJva2Utd2lkdGg9IjMuMDIzIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNjYuMTA5LDEwMS45ODggQyAzNzUuNDEzLDEwMi41ODYgMzcwLjA1MiwxMDMuMTA2IDM3My44NDQsMTA0LjczNCIgc3Ryb2tlLXdpZHRoPSIzLjQ3OCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzczLjg0NCwxMDQuNzM0IEMgMzY0LjczNiwxMTUuMDg2IDM2OC45OTUsMTExLjM3MCAzNTMuMjczLDExOS41NTUiIHN0cm9rZS13aWR0aD0iMy44NTciIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDM1My4yNzMsMTE5LjU1NSBDIDMzOS44MjksMTIyLjExMiAzNDAuOTQxLDEyNC4zNjMgMzI2LjI1NCwxMjMuMjg5IiBzdHJva2Utd2lkdGg9IjIuNDg4IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMjYuMjU0LDEyMy4yODkgQyAzMDcuMDA0LDEyNS45MTUgMzA3LjEzNSwxMjQuOTQ3IDI4Ny44ODcsMTI1LjIyNyIgc3Ryb2tlLXdpZHRoPSIxLjkwMCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjg3Ljg4NywxMjUuMjI3IEMgMjY5Ljk5OSwxMjQuMzM5IDI3MC4zMjcsMTI0LjU5NCAyNTIuODk4LDEyMC42NDgiIHN0cm9rZS13aWR0aD0iMS44NTAiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI1Mi44OTgsMTIwLjY0OCBDIDI0NC43NjgsMTE5LjU4NiAyNDUuOTU2LDExOS4xNTAgMjM5LjgwMSwxMTQuODQ4IiBzdHJva2Utd2lkdGg9IjIuNTU0IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyMzkuODAxLDExNC44NDggQyAyMjYuNjg1LDEwNC41NjMgMjMyLjgwNywxMDguMTc2IDIyOC45NzcsOTcuODI4IiBzdHJva2Utd2lkdGg9IjIuNjIyIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyMjguOTc3LDk3LjgyOCBDIDIzOC41NzAsODkuMzAwIDIzMS43NzksODkuNTkyIDI0OS45ODgsODQuOTA2IiBzdHJva2Utd2lkdGg9IjIuMzg0IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyNDkuOTg4LDg0LjkwNiBDIDI3NC4zNDYsNzUuNDE3IDI3My45MTIsNzUuNzAwIDI5OS42NjAsNzAuNjI5IiBzdHJva2Utd2lkdGg9IjEuNTMzIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyOTkuNjYwLDcwLjYyOSBDIDMzNS43ODYsNjMuNzU5IDMzNS40NjQsNjMuODU3IDM3Mi4yMjMsNjEuNzg1IiBzdHJva2Utd2lkdGg9IjEuMTY5IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNzIuMjIzLDYxLjc4NSBDIDQyMi45MDksNjEuMDI3IDQyMi43NDMsNTkuMDQ4IDQ3My41NzQsNjEuMjA3IiBzdHJva2Utd2lkdGg9IjEuMTI1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PC9zdmc+","acceptedAt","2025-11-21T15:45:35.398Z","acceptedBy","Philippe Brassard (philippe@summumpm.com)","https://nykxxjptujeqkwefdxxg.supabase.co/storage/v1/object/public/summum/logo/light","dark","https://nykxxjptujeqkwefdxxg.supabase.co/storage/v1/object/public/summum/logo/dark","public","private","summum_private","billingEmail","philippe@summumpm.com","lastDigit","6148","paymentType","visa","kind","configured","Pro","notes","planId","pro_2025_06","startDate","2025-11-21","yearlyPrice",2990,"monthlyPrice",89,"supportLevel","standard","freeTrialDays",14,"includedUsers","billingInterval","monthly","additionalUserPrice",49,"planDurationInMonths",12,"current","shouldAccept","lastAccepted","facebook","https://www.facebook.com/summumpm","youtube",{"_560":561},"updated_at","2026-08-24T00:34:22.636Z"] | |
| 2 | +P18:-5 | |
added
tests/fixtures/summum/0f46ab54eb55234268b3.txt
+2 −0
@@ -0,0 +1,2 @@ | ||
| 1 | +[{"_1":2,"_3":4,"_5":6,"_7":8},"root",{"_9":409},"public-language",{"_9":-5},"PublicListingsLayoutPage",{"_9":175},"PublicListingDetailPage",{"_9":10},"data",{"_11":12,"_13":14,"_15":16,"_17":18,"_19":20,"_21":22,"_23":24,"_25":26},"listing",{"_48":101,"_102":103,"_81":104,"_105":104,"_83":106,"_107":108,"_109":110,"_85":76,"_87":111,"_86":112,"_37":113,"_114":115,"_116":117,"_118":-5,"_119":-5,"_120":121,"_122":61,"_123":124,"_125":126},"descriptionHtml",{"_98":99,"_22":100},"auth",{"_96":61,"_97":26},"walkScore",["P",18],"tenant",{"_27":28,"_29":30,"_31":32,"_33":34,"_35":36,"_37":38,"_39":-7,"_40":41,"_42":43,"_44":45,"_46":47,"_48":49,"_50":51,"_52":53,"_54":45},"lang","fr","pageUrl","https://rental.summumpm.com/fr/listings/5960-bd-pie-ix/details","noindex",false,"address",{"_81":82,"_83":84,"_85":76,"_86":76,"_87":76,"_88":89,"_90":91,"_92":93,"_94":95},"analytics",{"_75":76,"_77":78,"_79":80},"colors",{"_72":73,"_74":73},"contact",{"_66":67,"_68":69,"_70":67,"_71":67},"customDomains",[63],"description","Appartements à louer dans le Grand Montréal.","emptyImage","features",{"_59":26,"_60":61,"_62":26},"icon","https://nykxxjptujeqkwefdxxg.supabase.co/storage/v1/object/public/summum/icon?v=1787531662636","legalName","Gestion Immobilière Summum","privacyPolicyUrl","https://summumpm.com/politique-de-confidentialite/","slug","summum","templateConfig",{"_55":56,"_57":58},"templateId","editorial","title","showcase",{},"listingSortOrder","smart","buildingVisibilityOverride","hasMarketingEnabled",true,"showUnitAvailability",{"_64":65},"domain","rental.summumpm.com","email","location@summumpm.com","phone","(438) 801-1080","broadcastEmail","agentReplyTo","primary","#182642","secondary","facebookPixel","","google","G-CPWFVW6CCX","googleTagManager","GTM-567KN95S","street","6-77 Rue Omer-Deserres","city","Blainville","neighborhood","latitude","longitude","region","Quebec","postcode","J7C 5V6","country","Canada","country_code","CA","loggedIn","isStaff","en","<p>Default listing</p>","<p>Annonce par défaut</p>","5960-bd-pie-ix","area",0,"5960 Bd Pie-IX","name","Montréal","buildingId","1dfbd281-3427-4d61-97d5-63ecdc0762e2","availabilty",["D",1791331200000],-73.575301,45.560939,{"_98":173,"_22":174},"images",[172],"automatedApplyMode","direct","buildingAutomatedApplyMode","leadFormConfig","buildingFeatures",[],"listed","units",[142,143,144],"cardData",{"_48":101,"_81":104,"_83":106,"_85":76,"_86":112,"_87":111,"_127":-5,"_128":129,"_130":131,"_102":132,"_133":134,"_135":136},"unitId","bedrooms",[141],"bathrooms",[141],[103],"price",[139,140],"availability",[137,138],"2026-10-07T00:00:00.000Z","2027-01-01T00:00:00.000Z",1100,1300,1,{"_48":167,"_102":103,"_146":-5,"_133":139,"_128":141,"_130":141,"_147":168,"_114":169,"_122":61,"_150":151,"_152":153,"_154":155,"_135":170,"_157":-5,"_158":-5,"_159":-5,"_40":171},{"_48":161,"_102":103,"_146":-5,"_133":162,"_128":141,"_130":141,"_147":163,"_114":164,"_122":61,"_150":151,"_152":153,"_154":155,"_135":165,"_157":-5,"_158":-5,"_159":-5,"_40":166},{"_48":145,"_102":103,"_146":-5,"_133":140,"_128":141,"_130":141,"_147":148,"_114":149,"_122":61,"_150":151,"_152":153,"_154":155,"_135":156,"_157":-5,"_158":-5,"_159":-5,"_40":160},"a63936b5-7a0e-4399-9bc8-38cf8c35e855","floor","alias","22",[],"listing_type","Unit","pricing_strategy","per_month","space_type","apartment",["D",1798761600000],"floor_plan_name","floor_plan_image_path","promotion",[],"8bb3690c-8eb0-4ad7-aad0-87789c95da8d",1275,"15",[],["D",1798761600000],[],"34e40d18-7f99-4a6a-8f6a-4381d92cc72e","7",[],["D",1791331200000],[],"/storage/v1/object/public/summum/buildings/1dfbd281-3427-4d61-97d5-63ecdc0762e2/3571df8a-aa27-4687-955e-f1d448a5caba.jpg","Default listing","Annonce par défaut",{"_19":176,"_177":178,"_179":180,"_181":26,"_182":183,"_184":61,"_185":103,"_186":187,"_188":189,"_190":26,"_191":26,"_192":26},{"_27":28,"_29":407,"_31":32,"_33":34,"_35":36,"_37":38,"_39":-7,"_40":408,"_42":43,"_44":45,"_46":47,"_48":49,"_50":51,"_52":53,"_54":45},"listings",[],"listingsByView",{"_402":178,"_403":404,"_405":406},"explodeProjects","initialFilters",{"_133":312,"_313":314,"_315":316,"_102":317,"_146":318,"_319":26,"_130":320,"_128":321,"_322":26,"_323":61,"_324":325,"_326":327},"defaultView","count","filters",{},"configs",{"_193":194,"_195":196,"_197":198,"_199":200,"_201":194,"_202":203},"isEmbed","widgetMissing","hasSubmissions","analysisProducts",[293,295,297,301,308],"analysisProductsPrice",{"_293":294,"_295":296,"_297":298,"_299":300,"_301":302,"_303":304,"_305":306,"_307":306,"_308":141,"_309":304,"_310":311},"notifications",{"_261":262},"form",{"_254":61,"_255":61,"_256":61,"_257":61,"_258":61,"_259":61,"_260":61},"enabledSkus","submissions",{"_204":205,"_206":207,"_208":209,"_210":211,"_31":212,"_213":-5},"all",[240,241,242,243,244,245,246,250,251,252,253],"steps",[240,241,242,243,244,245,246],"badges",[230,231,232,233,234,235],"statuses",[224,214,216,218,220,222,225,226,227,228,229],{"_214":215,"_216":217,"_218":219,"_220":221,"_222":223},"snoozeStep","pending","bg-pink-500","preapproved","bg-sky-500","approved","bg-purple-500","signature","bg-green-500","accepted","bg-amber-500","draft","chosen","rejected","lead","cancelled","soft_rejected",{"_236":214,"_238":215},{"_236":216,"_238":217},{"_236":218,"_238":219},{"_236":220,"_238":221},{"_236":222,"_238":223},{"_236":237,"_238":239},"id","snoozed","color","bg-teal-500",{"_236":224,"_238":-5,"_247":26},{"_236":214,"_238":215,"_247":61,"_248":26,"_249":26},{"_236":216,"_238":217,"_247":61,"_248":26,"_249":26},{"_236":218,"_238":219,"_247":61,"_248":26,"_249":26},{"_236":220,"_238":221,"_247":61,"_248":26,"_249":26},{"_236":222,"_238":223,"_247":61,"_248":26,"_249":26},{"_236":225,"_238":-5,"_247":61},"isActionable","staffActionnable","visitAgentActionnable",{"_236":226,"_238":-5,"_247":26},{"_236":227,"_238":-5,"_247":26},{"_236":228,"_238":-5,"_247":26},{"_236":229,"_238":-5,"_247":26},"tenant_payments_enabled","tenant_refunds_enabled","require_id_proof","require_payment_proof","allow_co_applicants","require_employment_reference","require_landlord_reference","emails",{"_263":264,"_265":266,"_19":267,"_268":269},"agent",[288,289,290,291,292,274,275,278,279,287],"manager",[287],[273,274,275,276,277,278,279,280,281,282,283,284,285,286,287],"admin",[270,271,272],"daily-recap","auth:role-changed","auth:ownership-transferred","invite-tenant","application-confirm","application-rejected","tenant-endorser-rejected","tenant-application-rejected-with-conditions","application-deadline-reminder","application-deadline-expired","submission-status-update","submission-marked-as-accepted","tenant-approved-with-conditions","tenant-approved-without-conditions","selected-as-new-tenant","submission-snoozed-reminder","submission-snoozed-expired","credit-unlock","agent-approved-with-conditions","agent-approved-without-conditions","agent-submission-snoozed-expired","agent-submission-snoozed-reminder","agent-submission-snoozed","ca_citizen_credit_check",1799,"ca_citizen_public_court_files",500,"qc_citizen_criminal_plumitif_check",1049,"qc_citizen_criminal_plumitif_municipal_check",699,"qc_citizen_rental_board_check",1000,"on_citizen_rental_board_check",999,"ca_citizen_workplace_reference_verification",1499,"ca_citizen_landlord_reference_verification","ca_citizen_rent_affordability_analysis","qc_citizen_lease_generation","qc_citizen_rental_board_extended_check",799,[141,401],"pricePerMonth",[141,401],"pricePerSqft",[103,103],[103,141],[103,103],"hasFloor",[103,141],[103,356],"hasCommercial","hasResidential","availableAmenities",[360,361,362,363,364,365,366],"availableNeighborhoods",[328,329,330,331,332,333,334,335,336,337,338,339,340,341],{"_105":359,"_185":350},{"_105":358,"_185":141},{"_105":357,"_185":141},{"_105":355,"_185":356},{"_105":354,"_185":141},{"_105":353,"_185":141},{"_105":352,"_185":141},{"_105":351,"_185":344},{"_105":349,"_185":350},{"_105":347,"_185":348},{"_105":346,"_185":344},{"_105":345,"_185":344},{"_105":343,"_185":344},{"_105":342,"_185":141},"Villeray—Saint-Michel—Parc-Extension","Ville-Marie",2,"Verdun","Rosemont - La Petite-Patrie","Québec",8,"QC",5,"Mercier - Hochelaga-Maisonneuve","Le Sud-Ouest","Le Plateau-Mont-Royal","Hochelaga-Maisonneuve","Côte-des-Neiges - Notre-Dame-de-Grâce",3,"Côte-des-Neiges","Centre-Sud","Ahuntsic-Cartierville",{"_48":396,"_105":397,"_42":398},{"_48":392,"_105":393,"_42":384},{"_48":387,"_105":388,"_42":389},{"_48":382,"_105":383,"_42":384},{"_48":377,"_105":378,"_42":379},{"_48":372,"_105":373,"_42":374},{"_48":367,"_105":368,"_42":369},"electric-heating",{"_98":370,"_22":371},"lucide:thermometer-sun","Electric Heating","Chauffage Électrique","refrigerator",{"_98":375,"_22":376},"lucide:refrigerator","Refrigerator","Réfrigérateur","cats-allowed",{"_98":380,"_22":381},"lucide:paw-print","Cats Allowed","Chats autorisés","washer",{"_98":385,"_22":386},"lucide:washing-machine","Washer","Laveuse","water",{"_98":390,"_22":391},"lucide:droplet","Water","Eau","dryer",{"_98":394,"_22":395},"Dryer","Sèche-linge","oven",{"_98":399,"_22":400},"lucide:microwave","Oven","Four",2589,"list","map",[],"explode",[],{"_75":76,"_77":78,"_79":80},{"_59":26,"_60":61,"_62":26},{"_410":-5,"_411":-7,"_412":413,"_414":415,"_21":22,"_19":416,"_417":-5,"_418":419,"_188":189,"_420":-5,"_421":-5,"_422":423},"devTools","prefill","impersonate",{},"theme","light",{"_236":441,"_48":49,"_442":443,"_54":45,"_37":38,"_31":32,"_444":445,"_27":28,"_33":34,"_195":446,"_447":448,"_449":-5,"_450":451,"_44":45,"_452":453,"_454":455,"_46":47,"_456":-5,"_457":-5,"_458":-5,"_52":53,"_50":51,"_35":36,"_459":-5,"_460":-5,"_188":189,"_461":462,"_463":464,"_465":466,"_42":43,"_467":468,"_39":-7,"_469":470,"_40":471,"_472":473,"_474":-7,"_475":476,"_29":477,"_193":478,"_479":480,"_481":482},"toast","user",{"_427":26,"_428":-5,"_429":-5,"_430":-5,"_431":-5,"_432":-5,"_433":-5,"_434":-5,"_435":-5,"_436":-5,"_66":-5,"_68":-5,"_437":-5,"_97":26,"_438":26,"_439":-5,"_440":-5},"otpPendingEmail","otpPendingContextEmail","telemetry",{"_424":61,"_418":-5,"_425":426},"recording","group",{"_236":49,"_105":45},"isSignedIn","userId","firstName","lastName","fullName","dateOfBirth","preferredLanguage","orgRole","orgSlug","role","profilePicture","isImpersonated","impersonatorId","ipAddress","rGAcwldRQldzll4TQX9pO","assets",{"_42":574},"social",{"_571":572,"_573":76},{"_293":294,"_295":296,"_297":298,"_299":300,"_301":302,"_303":304,"_305":306,"_307":306,"_308":141,"_309":304,"_310":311},"stripeCustomerId","cus_TSsHw8GIAzdE3E","paymentSetupRequiredAfter","tos",{"_568":-5,"_222":61,"_569":26,"_570":522},"plan",{"_105":547,"_548":76,"_549":550,"_551":552,"_553":554,"_555":556,"_557":558,"_559":560,"_561":356,"_562":563,"_564":565,"_566":567},"metadata",{"_29":477},"consentConditionsText","consentConditionsEn","consentConditionsFr","suspendedAt","archivedAt","billing",{"_539":540,"_447":448,"_541":542,"_44":45,"_543":544,"_545":546},"bucket",{"_536":49,"_537":538},"appUrl","https://rental.summumpm.com","logo",{"_415":533,"_534":535},"tosHistory",[522],{"_490":61,"_491":-7,"_60":61,"_492":26,"_493":61,"_494":61,"_495":26,"_496":26,"_497":-7,"_498":26,"_499":-7,"_500":61,"_501":26,"_502":26,"_503":504,"_505":26,"_506":26,"_507":103,"_508":-7,"_509":26,"_59":26,"_510":61,"_62":26,"_511":512,"_513":61,"_514":26,"_515":26,"_516":141,"_517":26,"_518":26,"_519":26,"_520":26},"disabledModules",[],"rolePermissions","banner",{"_98":488,"_22":489},{"_77":78,"_487":76,"_75":76,"_79":80},[293,295,297,301,308],"payments",{"_483":61,"_484":61,"_485":26,"_486":26},"version","prod-20261027-1707b56","isTenantPayingForCheck","isOrgPaymentSetup","isPrepaid","shouldAskToSetupPayment","googleAds","Contact us at (438) 801-1080 to book your visit!","Contactez-nous au (438) 801-1080 pour planifier votre visite!","tempEquifaxEnabled","whArrayAsObjects","disableAgents","preventInvitation","isBannerEnabled","preventApplyWhenNotListed","hasDynamicLinks","hasAddressVariants","isSinEnforced","isTestMode","hasSubmissionsAssignedEnabled","hasLargeUnitChangeTrigger","hideServiceEstimates","unitChangeThreshold",300,"showAgentPortalButton","hasLegalChecksConfidence","legalChecksConfidenceLevel","automatedPrepayed","hasPerBuildingLeadForm","hasDocumentAiEnabled","partnerOffersEnabled",[521],"showPerMonthPricing","blockOutOfProvinceEndorsers","hasLeaseModificationCheckReuse","leaseModificationCheckReuseMonths","hopemIntegrationEnabled","voltixIntegrationEnabled","leaseGenerationEnabled","hasPerProjectChecks","youset",{"_523":524,"_525":526,"_481":527,"_222":61,"_220":528,"_529":530,"_531":532},"ip","163.123.169.193","url","tos/tos_v1.0.0_1763739934838_H1ii8G.pdf","1.0.0","PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNzU4IDE5MiIgd2lkdGg9Ijc1OCIgaGVpZ2h0PSIxOTIiPjxwYXRoIGQ9Ik0gMjcxLjY4NCw4NC45MTQgQyAyNzAuNDIzLDg3LjIxMCAyNzAuNTQxLDg3LjI2MiAyNjkuMzk4LDg5LjYwOSIgc3Ryb2tlLXdpZHRoPSI1LjM4NSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjY5LjM5OCw4OS42MDkgQyAyNjcuNzU4LDkzLjk3MSAyNjcuNTcxLDkzLjg5MSAyNjUuOTgwLDk4LjI3NyIgc3Ryb2tlLXdpZHRoPSIzLjk1OCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjY1Ljk4MCw5OC4yNzcgQyAyNjMuNjM1LDEwMy4zMzMgMjYzLjg1NywxMDMuNDIxIDI2MS41OTgsMTA4LjUwOCIgc3Ryb2tlLXdpZHRoPSIzLjU1MCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjYxLjU5OCwxMDguNTA4IEMgMjYwLjIxMywxMTIuMjkyIDI2MC4xMjMsMTEyLjI1MyAyNTguOTU3LDExNi4xMTciIHN0cm9rZS13aWR0aD0iMy43MzIiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI1OC45NTcsMTE2LjExNyBDIDI1Ni42MzYsMTIzLjUwNyAyNTcuOTc1LDExOS4xMDggMjU3LjEyMSwxMjIuMTQxIiBzdHJva2Utd2lkdGg9IjQuMzc1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyNTcuMTIxLDEyMi4xNDEgQyAyNTkuMDY5LDExMy43MDIgMjU4LjQzMywxMTguNDQzIDI2Mi41NTEsMTA1Ljk4OCIgc3Ryb2tlLXdpZHRoPSI0LjYyOCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjYyLjU1MSwxMDUuOTg4IEMgMjY1Ljc3NywxMDAuNjMxIDI2NS4xMDUsMTAwLjMzMCAyNjkuMTkxLDk1LjM5OCIgc3Ryb2tlLXdpZHRoPSIzLjQ5MSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjY5LjE5MSw5NS4zOTggQyAyNzAuOTQ1LDkyLjM0MyAyNzEuMDk4LDkyLjQ3NyAyNzMuMTkxLDg5LjY4MCIgc3Ryb2tlLXdpZHRoPSIzLjgyNCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjczLjE5MSw4OS42ODAgQyAyNzkuMTYyLDgyLjQ5MSAyNzkuMTgwLDgyLjU3OSAyODUuNjYwLDc1Ljg3MSIgc3Ryb2tlLXdpZHRoPSIyLjg3NyIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjg1LjY2MCw3NS44NzEgQyAyODcuODgzLDczLjk1NCAyODcuNzA1LDczLjc4OCAyOTAuMjc3LDcyLjI3MyIgc3Ryb2tlLXdpZHRoPSIzLjY4MiIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjkwLjI3Nyw3Mi4yNzMgQyAyOTYuNjQ5LDY3LjU2MCAyOTYuNzM2LDY3Ljc0MSAzMDMuMzY3LDYzLjQ0NSIgc3Ryb2tlLXdpZHRoPSIzLjExMCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzAzLjM2Nyw2My40NDUgQyAzMDYuNjc2LDYxLjU5MyAzMDYuNTgwLDYxLjQ3OCAzMTAuMTQxLDYwLjEwOSIgc3Ryb2tlLXdpZHRoPSIzLjU3NiIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzEwLjE0MSw2MC4xMDkgQyAzMTMuMjg0LDU4Ljc0MyAzMTMuMjY2LDU4Ljc3MSAzMTYuNTQ3LDU3LjgwMSIgc3Ryb2tlLXdpZHRoPSIzLjg3MyIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzE2LjU0Nyw1Ny44MDEgQyAzMTkuNDE4LDU2LjIyMSAzMTkuMTY1LDU3LjA0NCAzMjEuOTAyLDU2LjcxMSIgc3Ryb2tlLXdpZHRoPSI0LjQ5NCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzIxLjkwMiw1Ni43MTEgQyAzMjYuMzYxLDU3LjQ5MyAzMjQuNTE2LDU3LjIyNyAzMjYuNzQyLDU5LjgxMyIgc3Ryb2tlLXdpZHRoPSI0Ljg3MyIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzI2Ljc0Miw1OS44MTMgQyAzMjYuMzM2LDY1LjA4MiAzMjcuNDA0LDYzLjgzMyAzMjMuOTg4LDY5LjM5MSIgc3Ryb2tlLXdpZHRoPSIzLjg2MiIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzIzLjk4OCw2OS4zOTEgQyAzMTkuODE3LDc1Ljk1MyAzMjAuMzU1LDc2LjA1OSAzMTQuNzgxLDgxLjc2NiIgc3Ryb2tlLXdpZHRoPSIzLjEwNSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzE0Ljc4MSw4MS43NjYgQyAzMDkuODU0LDg3LjQ0NSAzMDkuOTE2LDg3LjM4MSAzMDQuMTg4LDkyLjI0NiIgc3Ryb2tlLXdpZHRoPSIzLjAyOSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzA0LjE4OCw5Mi4yNDYgQyAyOTguODA2LDk2LjcwMCAyOTguOTE5LDk2LjcxMCAyOTIuOTEwLDEwMC4yOTciIHN0cm9rZS13aWR0aD0iMy4wMTkiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI5Mi45MTAsMTAwLjI5NyBDIDI4Ny44NTQsMTAzLjQ5MyAyODcuOTA4LDEwMy4zNDggMjgyLjM5MSwxMDUuNTQzIiBzdHJva2Utd2lkdGg9IjMuMjI3IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyODIuMzkxLDEwNS41NDMgQyAyNzguMDg0LDEwNi42NTYgMjc4LjI2MywxMDcuMDkyIDI3My43MjcsMTA3LjQ5NiIgc3Ryb2tlLXdpZHRoPSIzLjU0MSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjczLjcyNywxMDcuNDk2IEMgMjcwLjc4OSwxMDguMDY4IDI3MC44MDEsMTA4LjA2MCAyNjcuODI0LDEwOC4zNTIiIHN0cm9rZS13aWR0aD0iMy45MTMiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI4NS41MjMsOTEuNjQxIEMgMjg1LjAwOSw5OC4wMzYgMjg0LjcyNyw5Ny45ODIgMjgzLjkzMCwxMDQuMzI0IiBzdHJva2Utd2lkdGg9IjUuMjU3IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyODMuOTMwLDEwNC4zMjQgQyAyODIuMjQ0LDExMS4xNTggMjgzLjMxNCwxMDcuOTEzIDI4Mi4xMzMsMTExLjM5NSIgc3Ryb2tlLXdpZHRoPSI0LjI1NyIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjgyLjEzMywxMTEuMzk1IEMgMjgyLjA1MCwxMDcuOTc5IDI4Mi4wMzcsMTExLjYwMCAyODMuNTE2LDEwNS4yMDciIHN0cm9rZS13aWR0aD0iNC44NjgiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI4My41MTYsMTA1LjIwNyBDIDI4OC4zNjYsOTUuOTk4IDI4OC4yNzgsOTYuMjAwIDI5NC41OTAsODcuODM2IiBzdHJva2Utd2lkdGg9IjIuOTY4IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyOTQuNTkwLDg3LjgzNiBDIDMwMS4zMjIsODAuMDM4IDMwMC44MDgsNzkuNjgyIDMwOC4zOTgsNzIuNTc0IiBzdHJva2Utd2lkdGg9IjIuNTkzIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMDguMzk4LDcyLjU3NCBDIDMxMS42MjYsNjguMzM0IDMxMS45NTUsNjguODIzIDMxNS44NTUsNjUuNDA2IiBzdHJva2Utd2lkdGg9IjMuMTY2IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMTUuODU1LDY1LjQwNiBDIDMyNS44MDYsNTguMzc5IDMyNS43MDEsNTguNTkxIDMzNi41NDcsNTMuMDkwIiBzdHJva2Utd2lkdGg9IjIuNTI5IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMzYuNTQ3LDUzLjA5MCBDIDM0Mi44NTEsNTAuNTkyIDM0Mi41NTYsNTAuMTMxIDM0OS4zNTUsNDguOTEwIiBzdHJva2Utd2lkdGg9IjIuOTI2IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNDkuMzU1LDQ4LjkxMCBDIDM1NC4wMTIsNDcuOTM1IDM1My45MzMsNDcuNzI3IDM1OC43MTEsNDcuMzU5IiBzdHJva2Utd2lkdGg9IjMuMzI1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNTguNzExLDQ3LjM1OSBDIDM2My4yOTEsNDUuNzg1IDM2MS4yODgsNDcuMDQ0IDM2My45MDYsNDcuMTI5IiBzdHJva2Utd2lkdGg9IjMuOTU3IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNjMuOTA2LDQ3LjEyOSBDIDM2My45NzIsNTEuMzM5IDM2NC43MjEsNDguOTEwIDM2MS41NzAsNTMuNjA5IiBzdHJva2Utd2lkdGg9IjQuNDM1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNjEuNTcwLDUzLjYwOSBDIDM1NC4xNTgsNTguNzUwIDM1NS4yODUsNTkuNTUwIDM0Ni41MzEsNjMuNTUxIiBzdHJva2Utd2lkdGg9IjMuMDA5IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNDYuNTMxLDYzLjU1MSBDIDMzNy4wMDUsNjkuMzU0IDMzNy4wOTQsNjkuNDkyIDMyNy40NDEsNzUuMDk0IiBzdHJva2Utd2lkdGg9IjIuNTgxIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMjcuNDQxLDc1LjA5NCBDIDMyMi40NDYsNzcuODYzIDMyMi41NTAsNzguMDI5IDMxNy42MjEsODAuOTAyIiBzdHJva2Utd2lkdGg9IjMuMDg1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMTcuNjIxLDgwLjkwMiBDIDMxMi44NTMsODMuNjIzIDMxMy4wMjYsODMuNzk3IDMwOC42MDIsODYuOTYxIiBzdHJva2Utd2lkdGg9IjMuMjY2IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMDguNjAyLDg2Ljk2MSBDIDMwMy4yNzIsOTAuMDkyIDMwNi4zMDAsODguNzY4IDMwNC41MTYsOTEuMTkxIiBzdHJva2Utd2lkdGg9IjQuMTkzIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMDQuNTE2LDkxLjE5MSBDIDMxMC4yNTEsOTIuNjg3IDMwNy4wMTQsOTMuMzk5IDMxNi4wODYsOTMuNTc0IiBzdHJva2Utd2lkdGg9IjMuNTQwIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMTYuMDg2LDkzLjU3NCBDIDMyNS41NzgsOTQuNDYyIDMyNS40OTQsOTUuMDA1IDMzNS4wMDAsOTUuODI4IiBzdHJva2Utd2lkdGg9IjIuODY4IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMzUuMDAwLDk1LjgyOCBDIDM0NC40MDEsOTcuMTg1IDM0NC4zODYsOTcuMTg5IDM1My43MDMsOTkuMDI3IiBzdHJva2Utd2lkdGg9IjIuNjU1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNTMuNzAzLDk5LjAyNyBDIDM1OS45ODIsMTAwLjI1MiAzNTkuOTU2LDEwMC4yNjUgMzY2LjEwOSwxMDEuOTg4IiBzdHJva2Utd2lkdGg9IjMuMDIzIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNjYuMTA5LDEwMS45ODggQyAzNzUuNDEzLDEwMi41ODYgMzcwLjA1MiwxMDMuMTA2IDM3My44NDQsMTA0LjczNCIgc3Ryb2tlLXdpZHRoPSIzLjQ3OCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzczLjg0NCwxMDQuNzM0IEMgMzY0LjczNiwxMTUuMDg2IDM2OC45OTUsMTExLjM3MCAzNTMuMjczLDExOS41NTUiIHN0cm9rZS13aWR0aD0iMy44NTciIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDM1My4yNzMsMTE5LjU1NSBDIDMzOS44MjksMTIyLjExMiAzNDAuOTQxLDEyNC4zNjMgMzI2LjI1NCwxMjMuMjg5IiBzdHJva2Utd2lkdGg9IjIuNDg4IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMjYuMjU0LDEyMy4yODkgQyAzMDcuMDA0LDEyNS45MTUgMzA3LjEzNSwxMjQuOTQ3IDI4Ny44ODcsMTI1LjIyNyIgc3Ryb2tlLXdpZHRoPSIxLjkwMCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjg3Ljg4NywxMjUuMjI3IEMgMjY5Ljk5OSwxMjQuMzM5IDI3MC4zMjcsMTI0LjU5NCAyNTIuODk4LDEyMC42NDgiIHN0cm9rZS13aWR0aD0iMS44NTAiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI1Mi44OTgsMTIwLjY0OCBDIDI0NC43NjgsMTE5LjU4NiAyNDUuOTU2LDExOS4xNTAgMjM5LjgwMSwxMTQuODQ4IiBzdHJva2Utd2lkdGg9IjIuNTU0IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyMzkuODAxLDExNC44NDggQyAyMjYuNjg1LDEwNC41NjMgMjMyLjgwNywxMDguMTc2IDIyOC45NzcsOTcuODI4IiBzdHJva2Utd2lkdGg9IjIuNjIyIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyMjguOTc3LDk3LjgyOCBDIDIzOC41NzAsODkuMzAwIDIzMS43NzksODkuNTkyIDI0OS45ODgsODQuOTA2IiBzdHJva2Utd2lkdGg9IjIuMzg0IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyNDkuOTg4LDg0LjkwNiBDIDI3NC4zNDYsNzUuNDE3IDI3My45MTIsNzUuNzAwIDI5OS42NjAsNzAuNjI5IiBzdHJva2Utd2lkdGg9IjEuNTMzIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyOTkuNjYwLDcwLjYyOSBDIDMzNS43ODYsNjMuNzU5IDMzNS40NjQsNjMuODU3IDM3Mi4yMjMsNjEuNzg1IiBzdHJva2Utd2lkdGg9IjEuMTY5IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNzIuMjIzLDYxLjc4NSBDIDQyMi45MDksNjEuMDI3IDQyMi43NDMsNTkuMDQ4IDQ3My41NzQsNjEuMjA3IiBzdHJva2Utd2lkdGg9IjEuMTI1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PC9zdmc+","acceptedAt","2025-11-21T15:45:35.398Z","acceptedBy","Philippe Brassard (philippe@summumpm.com)","https://nykxxjptujeqkwefdxxg.supabase.co/storage/v1/object/public/summum/logo/light","dark","https://nykxxjptujeqkwefdxxg.supabase.co/storage/v1/object/public/summum/logo/dark","public","private","summum_private","billingEmail","philippe@summumpm.com","lastDigit","6148","paymentType","visa","kind","configured","Pro","notes","planId","pro_2025_06","startDate","2025-11-21","yearlyPrice",2990,"monthlyPrice",89,"supportLevel","standard","freeTrialDays",14,"includedUsers","billingInterval","monthly","additionalUserPrice",49,"planDurationInMonths",12,"current","shouldAccept","lastAccepted","facebook","https://www.facebook.com/summumpm","youtube",{"_575":576},"updated_at","2026-08-24T00:34:22.636Z"] | |
| 2 | +P18:-5 | |
deleted
tests/fixtures/summum/0f5df5b8dff32338ddce.html
+0 −620
@@ -1,620 +0,0 @@ | ||
| 1 | − | |
| 2 | − | |
| 3 | − | |
| 4 | −<!doctype html> | |
| 5 | −<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang=""> <![endif]--> | |
| 6 | −<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang=""> <![endif]--> | |
| 7 | −<!--[if IE 8]> <html class="no-js lt-ie9" lang=""> <![endif]--> | |
| 8 | −<!--[if gt IE 8]><!--> | |
| 9 | −<html class="no-js" lang="fr"> | |
| 10 | −<!--<![endif]--> | |
| 11 | −<head> | |
| 12 | − <meta charset="utf-8"> | |
| 13 | − <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> | |
| 14 | − <title>Gestion Immobilière Summum</title> | |
| 15 | − <meta name="viewport" content="width=device-width, initial-scale=1"> | |
| 16 | − <meta name="description" content="Logements à louer à Montréal"> | |
| 17 | − <meta name="keywords" content="Logement, Location, Montréal, Tenant, Appartement, Building Stack"> | |
| 18 | − <link rel="apple-touch-icon" href="apple-touch-icon.png"> | |
| 19 | − <!-- Chrome, Firefox OS, Opera and Vivaldi --> | |
| 20 | − <meta name="theme-color" content="rgba(24,38,66,1)"> | |
| 21 | − <!-- Windows Phone --> | |
| 22 | − <meta name="msapplication-navbutton-color" content="rgba(24,38,66,1)"> | |
| 23 | − <!-- iOS Safari --> | |
| 24 | − <meta name="apple-mobile-web-app-status-bar-style" content="rgba(24,38,66,1)"> | |
| 25 | − | |
| 26 | − <link rel="stylesheet" href="/Content/Stylesheets/listings/normalize.min.css"> | |
| 27 | − | |
| 28 | − | |
| 29 | − | |
| 30 | − <script type="text/javascript" class="optanon-category-C0001"> | |
| 31 | − var iniframe = false | |
| 32 | − try { | |
| 33 | − iniframe = window.self !== window.top | |
| 34 | − } catch (e) { | |
| 35 | − iniframe = true | |
| 36 | − } | |
| 37 | − | |
| 38 | − if (!iniframe && cookieManagerKey) { | |
| 39 | − const scriptTag = document.createElement("script") | |
| 40 | − | |
| 41 | − scriptTag.type = "text/javascript" | |
| 42 | − scriptTag.src = | |
| 43 | − `https://cdn.cookielaw.org/consent/${cookieManagerKey}/OtAutoBlock.js` | |
| 44 | − | |
| 45 | − const stubTag = document.createElement("script") | |
| 46 | − stubTag.type = "text/javascript" | |
| 47 | − stubTag.src = "https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" | |
| 48 | − stubTag.charset = "UTF-8" | |
| 49 | − stubTag.setAttribute("data-domain-script", cookieManagerKey) | |
| 50 | − | |
| 51 | − const wrapperTag = document.createElement("script") | |
| 52 | − wrapperTag.type = "text/javascript" | |
| 53 | − wrapperTag.innerHTML = "function OptanonWrapper() { }" | |
| 54 | − | |
| 55 | − document.head.appendChild(scriptTag) | |
| 56 | − document.head.appendChild(stubTag) | |
| 57 | − document.head.appendChild(wrapperTag) | |
| 58 | − } | |
| 59 | − </script> | |
| 60 | − | |
| 61 | − <link rel="stylesheet" href="/Content/Stylesheets/listings/main.css"> | |
| 62 | − | |
| 63 | − | |
| 64 | − <link href="https://wfiles.buildingstack.com/resources/image/RtTBPamrT6jrGoyRcgiiDZYyMTLP7Syd5" rel="shortcut icon" type="image/x-icon" /> | |
| 65 | − <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,600,700,300,800' rel='stylesheet' type='text/css'> | |
| 66 | − | |
| 67 | − <link rel="stylesheet" href="/Content/LightGallery/css/lightgallery.min.css" /> | |
| 68 | − <link rel="stylesheet" href="/Content/LightGallery/css/lightslider.min.css" /> | |
| 69 | − | |
| 70 | − <script src="/bundles/jquery?v=v8thH4gSPX5DyN6JlBJ_z2ldPWoOUIuUmdnIz2JydG41"></script> | |
| 71 | − | |
| 72 | − <script src="/bundles/lightgallery?v=aDiV7xUmHD3FR903cMsQIwmP1dy6MT_AvRlLi2mG_X41"></script> | |
| 73 | − | |
| 74 | − <script src="/bundles/listings?v=ACN7ICBuogrPYEmNE-Ty2sea_3KGwQ0r8MDOqXNc3vk1"></script> | |
| 75 | − | |
| 76 | − | |
| 77 | − | |
| 78 | − | |
| 79 | − <script type="text/javascript" id="listingfullstory"> | |
| 80 | − window['_fs_debug'] = false; | |
| 81 | − window['_fs_host'] = 'www.fullstory.com'; | |
| 82 | − window['_fs_org'] = '1yVu'; | |
| 83 | − window['_fs_namespace'] = 'FS'; | |
| 84 | − (function (m, n, e, t, l, o, g, y) { | |
| 85 | − if (e in m && m.console && m.console.log) { m.console.log('FullStory namespace conflict. Please set window["_fs_namespace"].'); return; } | |
| 86 | − g = m[e] = function (a, b) { g.q ? g.q.push([a, b]) : g._api(a, b); }; g.q = []; | |
| 87 | − o = n.createElement(t); o.async = 1; o.src = 'https://' + _fs_host + '/s/fs.js'; | |
| 88 | − y = n.getElementsByTagName(t)[0]; y.parentNode.insertBefore(o, y); | |
| 89 | − g.identify = function (i, v) { g(l, { uid: i }); if (v) g(l, v) }; g.setUserVars = function (v) { g(l, v) }; | |
| 90 | − g.identifyAccount = function (i, v) { o = 'account'; v = v || {}; v.acctId = i; g(o, v) }; | |
| 91 | − g.clearUserCookie = function (c, d, i) { | |
| 92 | − if (!c || document.cookie.match('fs_uid=[`;`]*`[`;`]*`[`;`]*`')) { | |
| 93 | − d = n.domain; while (1) { | |
| 94 | − n.cookie = 'fs_uid=;domain=' + d + | |
| 95 | − ';path=/;expires=' + new Date(0).toUTCString(); i = d.indexOf('.'); if (i < 0) break; d = d.slice(i + 1) | |
| 96 | − } | |
| 97 | − } | |
| 98 | − }; | |
| 99 | − })(window, document, window['_fs_namespace'], 'script', 'user'); | |
| 100 | − </script> | |
| 101 | − | |
| 102 | − | |
| 103 | − | |
| 104 | − | |
| 105 | − | |
| 106 | − <link href="/Content/WaitMe/waitMe.css" rel="stylesheet" /> | |
| 107 | − | |
| 108 | − <script src="/Scripts/WaitMe/waitMe.js"></script> | |
| 109 | − | |
| 110 | − <script src="/Scripts/JQuery.InputMask/min/jquery.inputmask.bundle.min.js"></script> | |
| 111 | − <script src="/Scripts/JQuery.InputMask/min/inputmask/phone-codes/phone.min.js"></script> | |
| 112 | − <script src="/Scripts/GothamCommon/PhoneMaskedEditor.js"></script> | |
| 113 | − | |
| 114 | − <script type="text/javascript"> | |
| 115 | − $(function () { | |
| 116 | − Gotham.LoadingIndicator.initGlobal('/Content/Images/loading.gif'); | |
| 117 | − Gotham.PhoneMaskedEditor.initialize(); | |
| 118 | − if (window.OneTrust) { | |
| 119 | − window.OneTrust.changeLanguage('fr'); | |
| 120 | − } | |
| 121 | − }); | |
| 122 | − </script> | |
| 123 | − | |
| 124 | − | |
| 125 | − | |
| 126 | − | |
| 127 | − <!-- Global site tag (gtag.js) - Google Analytics --> | |
| 128 | − <script async src="https://www.googletagmanager.com/gtag/js?id=UA-49572274-1"></script> | |
| 129 | − <script> | |
| 130 | − window.dataLayer = window.dataLayer || []; | |
| 131 | − function gtag() { dataLayer.push(arguments); } | |
| 132 | − gtag('js', new Date()); | |
| 133 | − | |
| 134 | − gtag('config', 'UA-49572274-1'); | |
| 135 | − | |
| 136 | − gtag('config', '<!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-176051114-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-176051114-1'); </script>'); | |
| 137 | − </script> | |
| 138 | − | |
| 139 | −</head> | |
| 140 | −<body class="fr listing-page building-detail-firstpage"> | |
| 141 | − <div class="page-wrapper"> | |
| 142 | − <!--[if lt IE 8]> | |
| 143 | − <p class="browserupgrade">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p> | |
| 144 | − <![endif]--> | |
| 145 | − | |
| 146 | − | |
| 147 | − | |
| 148 | − | |
| 149 | −<script src="https://maps.googleapis.com/maps/api/js?key=AIza_CLE_CAVIARDEE_LOUKA_000000000000000&language=fr"></script> | |
| 150 | − | |
| 151 | −<!-- HEADER --> | |
| 152 | −<link href="/Customize/Css" rel="stylesheet" type="text/css" /> | |
| 153 | − | |
| 154 | − <div class="header wrapper apply"> | |
| 155 | − <div class="page-content clearfix"> | |
| 156 | − <div class="logo"> | |
| 157 | − <div class="app-logo-with-title"> | |
| 158 | − <a href="/"> | |
| 159 | − <div class="app-image-logo"> | |
| 160 | − <div id="image-logo"> | |
| 161 | − <img src="https://wfiles.buildingstack.com/resources/image/K6yPiAIheR4xbxUahA2Zf3OSegCsCvwU1" class="app-logo" /> | |
| 162 | − </div> | |
| 163 | − </div> | |
| 164 | − </a> | |
| 165 | − <div class="app-title-name"> | |
| 166 | − <h1 id="type-user" class="app-title">Gestion Immobilière Summum</h1> | |
| 167 | − </div> | |
| 168 | − </div> | |
| 169 | − </div> | |
| 170 | − <div class="apply-now"> | |
| 171 | − <a href="https://app.buildingstack.com/application/start?company=summumpm" target="_blank" class="apply-now-button apply-now-button-backgroundColor">Envoyer une demande</a> | |
| 172 | − </div> | |
| 173 | − <div class="login"> | |
| 174 | − <a href="https://app.buildingstack.com/" target="_parent" class="login-button login-button-backgroundColor">Se connecter</a> | |
| 175 | − </div> | |
| 176 | − | |
| 177 | − | |
| 178 | − <div id="dd5" class="wrapper-dropdown-3 lang-selector" tabindex="1"> | |
| 179 | − <input data-val="true" data-val-required="The [[ListingModel_Language]] field is required." id="Language" name="Language" type="hidden" value="French" /> | |
| 180 | − <span>Anglais</span> | |
| 181 | − <ul class="dropdown"> | |
| 182 | − <li data-val="English"> | |
| 183 | − <a href="/Header/SetLanguage?lang=English">English</a> | |
| 184 | − </li> | |
| 185 | − <li data-val="French"> | |
| 186 | − <a href="/Header/SetLanguage?lang=French">Français</a> | |
| 187 | − </li> | |
| 188 | − </ul> | |
| 189 | − </div> | |
| 190 | − <script type="text/javascript"> | |
| 191 | − // LANGUAGE-SELECTOR DROPDOWN | |
| 192 | − $(function () { | |
| 193 | − var dd = new GmListing.DropDown($('#dd5'), { | |
| 194 | − navigateOnClick: true | |
| 195 | − }); | |
| 196 | − }); | |
| 197 | − </script> | |
| 198 | − </div> | |
| 199 | − </div> | |
| 200 | − <div class="navigation wrapper"> | |
| 201 | − <div class="page-content clearfix"> | |
| 202 | − | |
| 203 | − <div class="menu-icon"> | |
| 204 | − <div class="one"></div> | |
| 205 | − <div class="two"></div> | |
| 206 | − <div class="three"></div> | |
| 207 | − </div> | |
| 208 | − <div class="nav"> | |
| 209 | − <ul class="menu"> | |
| 210 | − | |
| 211 | − <li class=""><a href="/">ACCUEIL</a></li> | |
| 212 | − <li class="active accent_color_1_border"><a href="/Listing/Listings">ANNONCES</a></li> | |
| 213 | − <li class=""><a href="/ContactUs">CONTACT</a></li> | |
| 214 | − </ul> | |
| 215 | − | |
| 216 | − <a href="tel:+15148191529" class="contact"> | |
| 217 | − (514) 819-1529 | |
| 218 | − </a> | |
| 219 | − </div> | |
| 220 | − </div> | |
| 221 | − </div> | |
| 222 | −<!-- END HEADER --> | |
| 223 | −<script type="text/javascript"> | |
| 224 | − $(function () { | |
| 225 | − $(document).click(function () { | |
| 226 | − // all dropdowns | |
| 227 | − $('.wrapper-dropdown-3').removeClass('active'); | |
| 228 | − }); | |
| 229 | − }); | |
| 230 | −</script> | |
| 231 | − | |
| 232 | − | |
| 233 | − | |
| 234 | − | |
| 235 | − | |
| 236 | −<script src="https://cdn.jsdelivr.net/picturefill/2.3.1/picturefill.min.js"></script> | |
| 237 | −<script src="/Scripts/Clipboard/clipboard.js"></script> | |
| 238 | − | |
| 239 | −<link href="http://vjs.zencdn.net/4.12/video-js.css" rel="stylesheet"> | |
| 240 | −<script src="http://vjs.zencdn.net/4.12/video.js"></script> | |
| 241 | − | |
| 242 | −<script type="text/javascript"> | |
| 243 | − var hasTouch; | |
| 244 | − window.addEventListener('touchstart', function setHasTouch() { | |
| 245 | − hasTouch = true; | |
| 246 | − // Remove event listener once fired, otherwise it'll kill scrolling | |
| 247 | − // performance | |
| 248 | − window.removeEventListener('touchstart', setHasTouch); | |
| 249 | − }, false); | |
| 250 | − var params = new URLSearchParams(window.location.search); | |
| 251 | − params.delete("lang"); | |
| 252 | −</script> | |
| 253 | −<div class="p-content"> | |
| 254 | − <div class="banner wrapper"> | |
| 255 | − <div id="googleMap" class="banner-map"> | |
| 256 | − </div> | |
| 257 | − </div> | |
| 258 | − <script type="text/javascript"> | |
| 259 | − $(document).ready(function () { | |
| 260 | − var pin = '/Customize/Svg?name=map-pin&accentColor=2&ver=rgba%2824%2C38%2C66%2C1%29'; | |
| 261 | − Gotham.GoogleMaps.setBuildingLocation(document.getElementById("googleMap"), "5912 Québec 335, Saint-Calixte, QC J0K 1Z0, Canada", '45.9468354', '-73.8484319', pin); | |
| 262 | − | |
| 263 | − //TOGGLE STREET VIEW BY CLICKING THE YELLOW STREET VIEW BUTTON | |
| 264 | − $(".street-view-button").click(function () { Gotham.GoogleMaps.togglePanorama("5912 Québec 335, Saint-Calixte, QC J0K 1Z0, Canada", 'Vue de la Rue', 'Retour à la Carte'); }); | |
| 265 | − }); | |
| 266 | − </script> | |
| 267 | − <!-- END BANNER --> | |
| 268 | − <!-- PROFILE-BAR --> | |
| 269 | − <div class="profile-bar wrapper"> | |
| 270 | − <div class="page-content"> | |
| 271 | − <div class="profile-image"> | |
| 272 | − <img src="https://wfiles.buildingstack.com/resources/image/S5TLPZPdEKL9RcL4LLDpUb1BLoj7Tpqy1/preview" width="170" height="170"> | |
| 273 | − </div> | |
| 274 | − <div class="profile-name"> | |
| 275 | − <h3 class="accent_color_2">5912 à 5922 RTE 335</h3> | |
| 276 | − | |
| 277 | − <ul> | |
| 278 | − <li class="residential-icon1"></li> | |
| 279 | − </ul> | |
| 280 | − <p> | |
| 281 | − | |
| 282 | −5912 Québec 335, Saint-Calixte, QC J0K 1Z0, Canada</p> | |
| 283 | − </div> | |
| 284 | − <ul class="pull-right"> | |
| 285 | − <li> | |
| 286 | − | |
| 287 | − <a class="share-button">Partager</a> | |
| 288 | − <div class="tooltip share-tooltip"> | |
| 289 | − <a class="close-tooltip"><img src="/Content/Images/listings/close.png" alt=""></a> | |
| 290 | − <h3 class="accent_color_2">Partager</h3> | |
| 291 | − <form action="#"> | |
| 292 | − <input id="share-url" class="share search-input" type="search" placeholder="https://location.summumpm.com/b/202429086504007591619"> | |
| 293 | − <input id="share-copy-button" class="copy-url" type="button" name="button" value="COPIER LE LIEN"> | |
| 294 | − </form> | |
| 295 | − <ul class="share-social-icons"> | |
| 296 | − <li class="fb"><a target="_parent" href="https://www.facebook.com/sharer/sharer.php?u=https://location.summumpm.com/b/202429086504007591619"></a></li> | |
| 297 | − <li class="tw"><a target="_parent" href="https://twitter.com/home?status=https://location.summumpm.com/b/202429086504007591619"></a></li> | |
| 298 | − <li class="gp"><a target="_parent" href="https://plus.google.com/share?url=https://location.summumpm.com/b/202429086504007591619"></a></li> | |
| 299 | − <li class="in"><a target="_parent" href="https://www.linkedin.com/shareArticle?mini=true&url=https://location.summumpm.com/b/202429086504007591619&title=5912 à 5922 RTE 335&summary=&source="></a></li> | |
| 300 | − <li class="sms"><a target="_parent" href="mailto:?subject=Regardez cet unité!&body=https://location.summumpm.com/b/202429086504007591619"></a></li> | |
| 301 | − </ul> | |
| 302 | − <span class="tooltip-arrow"></span> | |
| 303 | − </div> | |
| 304 | − </li> | |
| 305 | − <li><a class="street-view-button upper-case accent_color_1_background" href="#">Vue de la Rue</a></li> | |
| 306 | − </ul> | |
| 307 | − </div> | |
| 308 | − </div> | |
| 309 | − <!-- END PROFILE-BAR --> | |
| 310 | − <!-- SERVICES-BAR --> | |
| 311 | − <div class="services wrapper"> | |
| 312 | − <div class="page-content"> | |
| 313 | − <ul class="services-item"> | |
| 314 | − <li class="parking-service"> | |
| 315 | − <h6>Stationnement</h6> | |
| 316 | − <h4>Disponible</h4> | |
| 317 | − </li> | |
| 318 | − <li class="online-pay-service"> | |
| 319 | − <h6>Paiement en ligne</h6> | |
| 320 | − <h4>Disponible</h4> | |
| 321 | − </li> | |
| 322 | − <li class="rent-range-service"> | |
| 323 | − <h6>Gamme de prix</h6> | |
| 324 | − <h4 id="price_range-current">$ --</h4> | |
| 325 | − </li> | |
| 326 | − </ul> | |
| 327 | − | |
| 328 | − <div class="contact-numbers"> | |
| 329 | − <div class="vertical-middle"> | |
| 330 | − <ul> | |
| 331 | − <li> | |
| 332 | − <a href="tel:(438) 801-1080">(438) 801-1080</a> | |
| 333 | − </li> | |
| 334 | − | |
| 335 | − </ul> | |
| 336 | − </div> | |
| 337 | − </div> | |
| 338 | − </div> | |
| 339 | − </div> | |
| 340 | − <!-- END SERVICES --> | |
| 341 | − <!-- CONTENT --> | |
| 342 | − <div class="content wrapper clearfix"> | |
| 343 | − <div class="page-content"> | |
| 344 | − | |
| 345 | − | |
| 346 | − | |
| 347 | − <script type="text/javascript"> | |
| 348 | − function updateGridTitlePosition(scrollTop, topBound) { | |
| 349 | − if (!this.titleHieght) { | |
| 350 | − this.titleHieght = $('.tab-title').height(); | |
| 351 | − } | |
| 352 | − | |
| 353 | − // fixed state | |
| 354 | − if (!this.gridTitlePinned && (scrollTop > topBound && scrollTop <= $('.tab-pagination').offset().top)) { | |
| 355 | − this.gridTitlePinned = true; | |
| 356 | − var contentWidth = $('#wpb-tab-container').outerWidth() / 2; | |
| 357 | − $(".tab-title").addClass("tab-title-fixed").width(contentWidth); | |
| 358 | − return; | |
| 359 | − } | |
| 360 | − | |
| 361 | − // initial state | |
| 362 | − if (this.gridTitlePinned && scrollTop <= topBound) { | |
| 363 | − this.gridTitlePinned = false; | |
| 364 | − $('.tab-title').removeClass("tab-title-fixed").attr('style', ''); | |
| 365 | − | |
| 366 | − return; | |
| 367 | − } | |
| 368 | − | |
| 369 | − if (this.isMedia768) { | |
| 370 | − // hidden state | |
| 371 | − if (scrollTop > ($('.tab-pagination').offset().top - this.titleHieght)) { | |
| 372 | − $(".tab-title").hide(); | |
| 373 | − } | |
| 374 | − else { | |
| 375 | − $(".tab-title").show(); | |
| 376 | − } | |
| 377 | − } | |
| 378 | − else { | |
| 379 | − $(".tab-title").show(); | |
| 380 | − } | |
| 381 | − }; | |
| 382 | − | |
| 383 | − function updateApartmentDetailsPosition(scrollTop, topBound, leftTabHeigh, rightTabHeigh) { | |
| 384 | − // means aparment details haven't been loaded yet | |
| 385 | − if (rightTabHeigh == 0 || $('.contact-button').length == 0) { | |
| 386 | − return; | |
| 387 | − } | |
| 388 | − | |
| 389 | − var canBeFixedState = rightTabHeigh < leftTabHeigh; | |
| 390 | − var detailsTopOffset = $('.contact-button').offset().top + $('.contact-button').height(); | |
| 391 | − var scrollValueToBottomPin = topBound + (leftTabHeigh - rightTabHeigh); | |
| 392 | − | |
| 393 | − if (!this.toBottom && canBeFixedState && scrollTop > scrollValueToBottomPin) { | |
| 394 | − $('.wpb-tab-wrapper').removeClass('wpb-tab-fixed').css({ top: leftTabHeigh - rightTabHeigh, width: '' }); | |
| 395 | − this.apartmentPinned = false; | |
| 396 | − this.toBottom = true; | |
| 397 | − | |
| 398 | − return; | |
| 399 | − } | |
| 400 | − | |
| 401 | − // fixed state | |
| 402 | − if ((!this.apartmentPinned && canBeFixedState && scrollTop > topBound) && (scrollTop <= scrollValueToBottomPin)) { | |
| 403 | − var widthTab = $('.wpb-tab').outerWidth(true) + 20; | |
| 404 | − $('.wpb-tab-wrapper').addClass('wpb-tab-fixed').css({ 'top': '', width: widthTab }); | |
| 405 | − | |
| 406 | − this.apartmentPinned = true; | |
| 407 | − this.toBottom = false; | |
| 408 | − return; | |
| 409 | − } | |
| 410 | − | |
| 411 | − // initial state | |
| 412 | − if ((this.apartmentPinned && scrollTop <= topBound) || !canBeFixedState) { | |
| 413 | − $('.wpb-tab-wrapper').removeClass('wpb-tab-fixed').attr('style', ''); | |
| 414 | − this.apartmentPinned = false; | |
| 415 | − | |
| 416 | − return; | |
| 417 | − } | |
| 418 | − }; | |
| 419 | − | |
| 420 | − function updateUnitsLayout(listingApartmentType) { | |
| 421 | − var scrollTop = $(window).scrollTop(); | |
| 422 | − var leftTabHeigh = $('.tab-left-bar.' + listingApartmentType).outerHeight(true); | |
| 423 | − var rightTabHeigh = $('.' + listingApartmentType + ' .wpb-tab-wrapper').outerHeight(true); | |
| 424 | − | |
| 425 | − if (!this.topBound) { | |
| 426 | − this.topBound = $('.tab-left-bar.' + listingApartmentType).offset().top - 20; // find out with magic number 20 | |
| 427 | − this.bottonBound = $('#wpb-tab-container').offset().top + $('#wpb-tab-container').height(); | |
| 428 | − //this.contentWidth = $('#wpb-tab-container').outerWidth() / 2; | |
| 429 | − } | |
| 430 | − | |
| 431 | − this.updateGridTitlePosition(scrollTop, this.topBound); | |
| 432 | − | |
| 433 | − if (this.isMedia768) { | |
| 434 | − this.updateApartmentDetailsPosition(scrollTop, this.topBound, leftTabHeigh, rightTabHeigh); | |
| 435 | − } | |
| 436 | − } | |
| 437 | − | |
| 438 | − function updateCurrentLayoutMedia() { | |
| 439 | − if (window.matchMedia('(min-width: 768px)').matches) { | |
| 440 | − this.isMedia768 = true; | |
| 441 | − } | |
| 442 | − else { | |
| 443 | − this.isMedia768 = false; | |
| 444 | − } | |
| 445 | − } | |
| 446 | − | |
| 447 | − $(document).ready(function () { | |
| 448 | − $('#share-copy-button').click(function () { | |
| 449 | − var url = $('#share-url').attr('placeholder'); | |
| 450 | − clipboard.copy(url); | |
| 451 | − }); | |
| 452 | − | |
| 453 | − var urls = { | |
| 454 | − viewPotentialUrl: '/Listing/ApartmentView', | |
| 455 | − }; | |
| 456 | − | |
| 457 | − Gotham.Listings.initialize(urls); | |
| 458 | − | |
| 459 | − var $cs = $(".content-slider"); | |
| 460 | − $cs.lightGallery({ | |
| 461 | − zoom: false, | |
| 462 | − download: false | |
| 463 | − }); | |
| 464 | − | |
| 465 | − $("#main-content-slider").lightSlider({ | |
| 466 | − loop: false, | |
| 467 | − keyPress: false, | |
| 468 | − autoWidth: true, | |
| 469 | − enableTouch: true | |
| 470 | − }); | |
| 471 | − $(".content-slider").css("opacity", "1"); | |
| 472 | − | |
| 473 | − var unitId = ""; | |
| 474 | − if (unitId != "") { | |
| 475 | − var tab_id = $(".tab2-content .wpb-mobileHide").find("li a[data-unitId=" + unitId + "]").parent().parent().parent().parent().attr('id'); | |
| 476 | − if (tab_id) { | |
| 477 | − $('ul.tabs2').find("li[data-tab=" + tab_id + "]").trigger("click"); | |
| 478 | − $(".tab2-content .wpb-mobileHide").find("li a[data-unitId=" + unitId + "]").trigger("click"); | |
| 479 | − return; | |
| 480 | − } | |
| 481 | − } | |
| 482 | − | |
| 483 | − $('ul.tabs2').find("li:first-child").trigger("click"); | |
| 484 | − | |
| 485 | − }); | |
| 486 | − </script> | |
| 487 | − | |
| 488 | − <div id="wpb-tab-container"> | |
| 489 | − <h1 class="content-item">Unités disponibles</h1> | |
| 490 | − <ul class="tabs2"> | |
| 491 | − <li class="tab2 residential-tab" data-tab="tab-9" data-price-range="$1 300"> | |
| 492 | − <span class="tab2-icon"></span> | |
| 493 | − Résidentiel | |
| 494 | − </li> | |
| 495 | − </ul> | |
| 496 | − <div class="tab2-content current" id="tab-9"> | |
| 497 | − | |
| 498 | − | |
| 499 | − | |
| 500 | −<script type="text/javascript"> | |
| 501 | − $(document).ready(function () { | |
| 502 | − var existUnitsToRender = $('#wpb-tab-container .tab2-content').length > 0; | |
| 503 | − | |
| 504 | − if (existUnitsToRender) { | |
| 505 | − updateCurrentLayoutMedia(); | |
| 506 | − | |
| 507 | − $(window).on('scroll.wpbtabscroll', function () { | |
| 508 | − updateUnitsLayout('residential'); | |
| 509 | − }); | |
| 510 | − | |
| 511 | − $(window).on('resize.wpbtabscroll', function () { | |
| 512 | − updateUnitsLayout('residential'); | |
| 513 | − }); | |
| 514 | − | |
| 515 | − $('.wpb-tab.residential').on('change.wpbtabscroll', function () { | |
| 516 | − updateUnitsLayout('residential'); | |
| 517 | − }); | |
| 518 | − | |
| 519 | − $(window).resize(function () { | |
| 520 | − updateCurrentLayoutMedia(); | |
| 521 | − | |
| 522 | − if (this.isMedia768) { | |
| 523 | − var containerWidth = $('#wpb-tab-container').outerWidth(); | |
| 524 | − var contentWidth = containerWidth / 2; | |
| 525 | − $('.residential .tab-title-fixed').css("width", contentWidth + "px"); | |
| 526 | − } | |
| 527 | − }); | |
| 528 | − } | |
| 529 | − | |
| 530 | − $(".residential .tab-next").click(function () { | |
| 531 | − $(".residential .wpb-mobileHide .wpb-current").parent().next("li").find("a").trigger("click"); | |
| 532 | − }); | |
| 533 | − | |
| 534 | − $(".residential .tab-previous").click(function () { | |
| 535 | − $(".residential .wpb-mobileHide .wpb-current").parent().prev("li").find("a").trigger("click"); | |
| 536 | − }); | |
| 537 | − }); | |
| 538 | −</script> | |
| 539 | −<div class="tab-left-bar residential"> | |
| 540 | − <div class="tab-title accent_color_2_background"> | |
| 541 | − <div class="tab-heading"> | |
| 542 | − <span>Unité</span> | |
| 543 | − <span>Loyer</span> | |
| 544 | − <span>PI.CA</span> | |
| 545 | − <span>CH.</span> | |
| 546 | − <span>SDB</span> | |
| 547 | − <span>Disponible</span> | |
| 548 | − </div> | |
| 549 | − </div> | |
| 550 | − <ul class="wpb-tabs-menu wpb-mobileHide"> | |
| 551 | − <li> | |
| 552 | − <a href="#residential-wpb-tab-1" data-unitId="656713" data-lang="fr-CA" class="apartment-view-potential"> | |
| 553 | − <span>5920</span> | |
| 554 | − <span>$1 300</span> | |
| 555 | − <span>--</span> | |
| 556 | − <span>2</span> | |
| 557 | − <span>1</span> | |
| 558 | − <span>Disponible dès maintenant!</span> | |
| 559 | − </a> | |
| 560 | − </li> | |
| 561 | − | |
| 562 | − </ul> | |
| 563 | − <div class="tab-pagination"> | |
| 564 | − <div class="tab-previous" href="#">Précédent</div> | |
| 565 | − <div class="tab-next" href="#">Suivant</div> | |
| 566 | − </div> | |
| 567 | − <p><span class="bold">Note:</span> Les prix indiqués peuvent changer sans préavis.</p> | |
| 568 | −</div> | |
| 569 | −<div class="wpb-tab residential"> | |
| 570 | − <div class="wpb-tab-wrapper"> | |
| 571 | − <div id="residential-wpb-tab-1" data-unitid="656713" data-lang="fr-CA" class="wpb-tab-content"> | |
| 572 | − | |
| 573 | − </div> | |
| 574 | − | |
| 575 | − </div> | |
| 576 | −</div> | |
| 577 | − </div> | |
| 578 | − </div> | |
| 579 | − <div class="last-content"> | |
| 580 | − </div> | |
| 581 | − </div> | |
| 582 | − </div> | |
| 583 | −</div> | |
| 584 | − | |
| 585 | − | |
| 586 | −<!-- FOOTER --> | |
| 587 | − | |
| 588 | − <div class="footer wrapper accent_color_3_background"> | |
| 589 | − <div class="page-content section_2 clearfix"> | |
| 590 | − <div class="company-info "> | |
| 591 | − <div class="company-title barFontColor"> | |
| 592 | − <img src="https://wfiles.buildingstack.com/resources/image/K6yPiAIheR4xbxUahA2Zf3OSegCsCvwU1" alt="" height="30" />Gestion Immobilière Summum | |
| 593 | − </div> | |
| 594 | − <div class="powered-by barFontColor"> | |
| 595 | − Réalisé par | |
| 596 | − <a href="https://www.buildingstack.com/"> | |
| 597 | − <img src="/Content/Images/listings/footer-logo-bstk-white.svg" alt="" /> | |
| 598 | − </a> | |
| 599 | − </div> | |
| 600 | − <p class="copyrights barFontColor">©2026 BuildingStack™. Tous droits réservés.</p> | |
| 601 | − <ul class="links"> | |
| 602 | − <li><a href="/legal/terms" target="_blank">Conditions D'utilisation</a></li> | |
| 603 | − <li><a href="/legal/privacy" target="_blank">Politique de Confidentialité</a></li> | |
| 604 | − | |
| 605 | − </ul> | |
| 606 | − </div> | |
| 607 | − <div class="contact"> | |
| 608 | − <h3 class="upper-case accent_color_1">SIÈGE SOCIAL</h3> | |
| 609 | − <p class="address barFontColor"> | |
| 610 | − | |
| 611 | −77 Rue Omer Deserres, 6, Blainville, QC J7C5N3, Canada</p> | |
| 612 | − <p class="phone barFontColor">(514) 819-1529</p> | |
| 613 | − </div> | |
| 614 | − </div> | |
| 615 | − </div> | |
| 616 | −<!-- END FOOTER --> | |
| 617 | − </div> | |
| 618 | − | |
| 619 | −</body> | |
| 620 | −</html> | |
added
tests/fixtures/summum/0fc7664573215aa899e3.txt
+2 −0
@@ -0,0 +1,2 @@ | ||
| 1 | +[{"_1":2,"_3":4,"_5":6,"_7":8},"root",{"_9":399},"public-language",{"_9":-5},"PublicListingsLayoutPage",{"_9":166},"PublicListingDetailPage",{"_9":10},"data",{"_11":12,"_13":14,"_15":16,"_17":18,"_19":20,"_21":22,"_23":24,"_25":26},"listing",{"_48":99,"_100":101,"_81":102,"_103":76,"_83":104,"_105":106,"_107":108,"_85":109,"_87":110,"_86":111,"_37":-5,"_112":113,"_114":115,"_116":-5,"_117":-5,"_118":119,"_120":61,"_121":122,"_123":124},"descriptionHtml",{"_98":76,"_22":76},"auth",{"_96":61,"_97":26},"walkScore",["P",18],"tenant",{"_27":28,"_29":30,"_31":32,"_33":34,"_35":36,"_37":38,"_39":-7,"_40":41,"_42":43,"_44":45,"_46":47,"_48":49,"_50":51,"_52":53,"_54":45},"lang","fr","pageUrl","https://rental.summumpm.com/fr/listings/2560-rue-rachel-e/details","noindex",false,"address",{"_81":82,"_83":84,"_85":76,"_86":76,"_87":76,"_88":89,"_90":91,"_92":93,"_94":95},"analytics",{"_75":76,"_77":78,"_79":80},"colors",{"_72":73,"_74":73},"contact",{"_66":67,"_68":69,"_70":67,"_71":67},"customDomains",[63],"description","Appartements à louer dans le Grand Montréal.","emptyImage","features",{"_59":26,"_60":61,"_62":26},"icon","https://nykxxjptujeqkwefdxxg.supabase.co/storage/v1/object/public/summum/icon?v=1787531662636","legalName","Gestion Immobilière Summum","privacyPolicyUrl","https://summumpm.com/politique-de-confidentialite/","slug","summum","templateConfig",{"_55":56,"_57":58},"templateId","editorial","title","showcase",{},"listingSortOrder","smart","buildingVisibilityOverride","hasMarketingEnabled",true,"showUnitAvailability",{"_64":65},"domain","rental.summumpm.com","email","location@summumpm.com","phone","(438) 801-1080","broadcastEmail","agentReplyTo","primary","#182642","secondary","facebookPixel","","google","G-CPWFVW6CCX","googleTagManager","GTM-567KN95S","street","6-77 Rue Omer-Deserres","city","Blainville","neighborhood","latitude","longitude","region","Quebec","postcode","J7C 5V6","country","Canada","country_code","CA","loggedIn","isStaff","en","2560-rue-rachel-e","area",0,"2560 Rue Rachel E","name","Montréal","buildingId","1843712e-8e8e-45b2-974d-6065c69ffd2f","availabilty",["D",1798761600000],"Québec",-73.562592,45.537496,"images",[165],"automatedApplyMode","direct","buildingAutomatedApplyMode","leadFormConfig","buildingFeatures",[],"listed","units",[139,140],"cardData",{"_48":99,"_81":102,"_83":104,"_85":109,"_86":111,"_87":110,"_125":-5,"_126":127,"_128":129,"_100":130,"_131":132,"_133":134},"unitId","bedrooms",[101],"bathrooms",[138],[101],"price",[137],"availability",[135,136],"2026-07-01T00:00:00.000Z","2027-01-01T00:00:00.000Z",970,1,{"_48":160,"_100":101,"_142":-5,"_131":137,"_126":101,"_128":138,"_143":161,"_112":162,"_120":61,"_146":147,"_148":149,"_150":151,"_133":163,"_153":-5,"_154":-5,"_155":-5,"_40":164},{"_48":141,"_100":101,"_142":-5,"_131":137,"_126":101,"_128":138,"_143":144,"_112":145,"_120":61,"_146":147,"_148":149,"_150":151,"_133":152,"_153":-5,"_154":-5,"_155":-5,"_40":156},"9773c76e-c420-4014-809b-0c27a10cc941","floor","alias","2",[157,158,159],"listing_type","Unit","pricing_strategy","per_month","space_type","apartment",["D",1782864000000],"floor_plan_name","floor_plan_image_path","promotion",[],"/storage/v1/object/public/summum/units/9773c76e-c420-4014-809b-0c27a10cc941/afcc5a59-e9dd-408d-bda8-01c14581b636.jpg","/storage/v1/object/public/summum/units/9773c76e-c420-4014-809b-0c27a10cc941/29b2f0af-be29-4972-b673-dc2d8e07c7a4.jpg","/storage/v1/object/public/summum/units/9773c76e-c420-4014-809b-0c27a10cc941/86f83af2-acad-4644-8df0-f0233955d1f0.jpg","11009910-e4d7-483a-a7fa-a6b4b9ab2f84","8",[],["D",1798761600000],[],"/storage/v1/object/public/summum/buildings/1843712e-8e8e-45b2-974d-6065c69ffd2f/6b90b4b4-4864-4f9b-abbd-0e6eb0e3c309.jpg",{"_19":167,"_168":169,"_170":171,"_172":26,"_173":174,"_175":61,"_176":101,"_177":178,"_179":180,"_181":26,"_182":26,"_183":26},{"_27":28,"_29":397,"_31":32,"_33":34,"_35":36,"_37":38,"_39":-7,"_40":398,"_42":43,"_44":45,"_46":47,"_48":49,"_50":51,"_52":53,"_54":45},"listings",[],"listingsByView",{"_392":169,"_393":394,"_395":396},"explodeProjects","initialFilters",{"_131":303,"_304":305,"_306":307,"_100":308,"_142":309,"_310":26,"_128":311,"_126":312,"_313":26,"_314":61,"_315":316,"_317":318},"defaultView","count","filters",{},"configs",{"_184":185,"_186":187,"_188":189,"_190":191,"_192":185,"_193":194},"isEmbed","widgetMissing","hasSubmissions","analysisProducts",[284,286,288,292,299],"analysisProductsPrice",{"_284":285,"_286":287,"_288":289,"_290":291,"_292":293,"_294":295,"_296":297,"_298":297,"_299":138,"_300":295,"_301":302},"notifications",{"_252":253},"form",{"_245":61,"_246":61,"_247":61,"_248":61,"_249":61,"_250":61,"_251":61},"enabledSkus","submissions",{"_195":196,"_197":198,"_199":200,"_201":202,"_31":203,"_204":-5},"all",[231,232,233,234,235,236,237,241,242,243,244],"steps",[231,232,233,234,235,236,237],"badges",[221,222,223,224,225,226],"statuses",[215,205,207,209,211,213,216,217,218,219,220],{"_205":206,"_207":208,"_209":210,"_211":212,"_213":214},"snoozeStep","pending","bg-pink-500","preapproved","bg-sky-500","approved","bg-purple-500","signature","bg-green-500","accepted","bg-amber-500","draft","chosen","rejected","lead","cancelled","soft_rejected",{"_227":205,"_229":206},{"_227":207,"_229":208},{"_227":209,"_229":210},{"_227":211,"_229":212},{"_227":213,"_229":214},{"_227":228,"_229":230},"id","snoozed","color","bg-teal-500",{"_227":215,"_229":-5,"_238":26},{"_227":205,"_229":206,"_238":61,"_239":26,"_240":26},{"_227":207,"_229":208,"_238":61,"_239":26,"_240":26},{"_227":209,"_229":210,"_238":61,"_239":26,"_240":26},{"_227":211,"_229":212,"_238":61,"_239":26,"_240":26},{"_227":213,"_229":214,"_238":61,"_239":26,"_240":26},{"_227":216,"_229":-5,"_238":61},"isActionable","staffActionnable","visitAgentActionnable",{"_227":217,"_229":-5,"_238":26},{"_227":218,"_229":-5,"_238":26},{"_227":219,"_229":-5,"_238":26},{"_227":220,"_229":-5,"_238":26},"tenant_payments_enabled","tenant_refunds_enabled","require_id_proof","require_payment_proof","allow_co_applicants","require_employment_reference","require_landlord_reference","emails",{"_254":255,"_256":257,"_19":258,"_259":260},"agent",[279,280,281,282,283,265,266,269,270,278],"manager",[278],[264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],"admin",[261,262,263],"daily-recap","auth:role-changed","auth:ownership-transferred","invite-tenant","application-confirm","application-rejected","tenant-endorser-rejected","tenant-application-rejected-with-conditions","application-deadline-reminder","application-deadline-expired","submission-status-update","submission-marked-as-accepted","tenant-approved-with-conditions","tenant-approved-without-conditions","selected-as-new-tenant","submission-snoozed-reminder","submission-snoozed-expired","credit-unlock","agent-approved-with-conditions","agent-approved-without-conditions","agent-submission-snoozed-expired","agent-submission-snoozed-reminder","agent-submission-snoozed","ca_citizen_credit_check",1799,"ca_citizen_public_court_files",500,"qc_citizen_criminal_plumitif_check",1049,"qc_citizen_criminal_plumitif_municipal_check",699,"qc_citizen_rental_board_check",1000,"on_citizen_rental_board_check",999,"ca_citizen_workplace_reference_verification",1499,"ca_citizen_landlord_reference_verification","ca_citizen_rent_affordability_analysis","qc_citizen_lease_generation","qc_citizen_rental_board_extended_check",799,[138,391],"pricePerMonth",[138,391],"pricePerSqft",[101,101],[101,138],[101,101],"hasFloor",[101,138],[101,346],"hasCommercial","hasResidential","availableAmenities",[350,351,352,353,354,355,356],"availableNeighborhoods",[319,320,321,322,323,324,325,326,327,328,329,330,331,332],{"_103":349,"_176":340},{"_103":348,"_176":138},{"_103":347,"_176":138},{"_103":345,"_176":346},{"_103":344,"_176":138},{"_103":343,"_176":138},{"_103":342,"_176":138},{"_103":341,"_176":335},{"_103":339,"_176":340},{"_103":109,"_176":338},{"_103":337,"_176":335},{"_103":336,"_176":335},{"_103":334,"_176":335},{"_103":333,"_176":138},"Villeray—Saint-Michel—Parc-Extension","Ville-Marie",2,"Verdun","Rosemont - La Petite-Patrie",8,"QC",5,"Mercier - Hochelaga-Maisonneuve","Le Sud-Ouest","Le Plateau-Mont-Royal","Hochelaga-Maisonneuve","Côte-des-Neiges - Notre-Dame-de-Grâce",3,"Côte-des-Neiges","Centre-Sud","Ahuntsic-Cartierville",{"_48":386,"_103":387,"_42":388},{"_48":382,"_103":383,"_42":374},{"_48":377,"_103":378,"_42":379},{"_48":372,"_103":373,"_42":374},{"_48":367,"_103":368,"_42":369},{"_48":362,"_103":363,"_42":364},{"_48":357,"_103":358,"_42":359},"electric-heating",{"_98":360,"_22":361},"lucide:thermometer-sun","Electric Heating","Chauffage Électrique","refrigerator",{"_98":365,"_22":366},"lucide:refrigerator","Refrigerator","Réfrigérateur","cats-allowed",{"_98":370,"_22":371},"lucide:paw-print","Cats Allowed","Chats autorisés","washer",{"_98":375,"_22":376},"lucide:washing-machine","Washer","Laveuse","water",{"_98":380,"_22":381},"lucide:droplet","Water","Eau","dryer",{"_98":384,"_22":385},"Dryer","Sèche-linge","oven",{"_98":389,"_22":390},"lucide:microwave","Oven","Four",2589,"list","map",[],"explode",[],{"_75":76,"_77":78,"_79":80},{"_59":26,"_60":61,"_62":26},{"_400":-5,"_401":-7,"_402":403,"_404":405,"_21":22,"_19":406,"_407":-5,"_408":409,"_179":180,"_410":-5,"_411":-5,"_412":413},"devTools","prefill","impersonate",{},"theme","light",{"_227":431,"_48":49,"_432":433,"_54":45,"_37":38,"_31":32,"_434":435,"_27":28,"_33":34,"_186":436,"_437":438,"_439":-5,"_440":441,"_44":45,"_442":443,"_444":445,"_46":47,"_446":-5,"_447":-5,"_448":-5,"_52":53,"_50":51,"_35":36,"_449":-5,"_450":-5,"_179":180,"_451":452,"_453":454,"_455":456,"_42":43,"_457":458,"_39":-7,"_459":460,"_40":461,"_462":463,"_464":-7,"_465":466,"_29":467,"_184":468,"_469":470,"_471":472},"toast","user",{"_417":26,"_418":-5,"_419":-5,"_420":-5,"_421":-5,"_422":-5,"_423":-5,"_424":-5,"_425":-5,"_426":-5,"_66":-5,"_68":-5,"_427":-5,"_97":26,"_428":26,"_429":-5,"_430":-5},"otpPendingEmail","otpPendingContextEmail","telemetry",{"_414":61,"_408":-5,"_415":416},"recording","group",{"_227":49,"_103":45},"isSignedIn","userId","firstName","lastName","fullName","dateOfBirth","preferredLanguage","orgRole","orgSlug","role","profilePicture","isImpersonated","impersonatorId","ipAddress","rGAcwldRQldzll4TQX9pO","assets",{"_42":564},"social",{"_561":562,"_563":76},{"_284":285,"_286":287,"_288":289,"_290":291,"_292":293,"_294":295,"_296":297,"_298":297,"_299":138,"_300":295,"_301":302},"stripeCustomerId","cus_TSsHw8GIAzdE3E","paymentSetupRequiredAfter","tos",{"_558":-5,"_213":61,"_559":26,"_560":512},"plan",{"_103":537,"_538":76,"_539":540,"_541":542,"_543":544,"_545":546,"_547":548,"_549":550,"_551":346,"_552":553,"_554":555,"_556":557},"metadata",{"_29":467},"consentConditionsText","consentConditionsEn","consentConditionsFr","suspendedAt","archivedAt","billing",{"_529":530,"_437":438,"_531":532,"_44":45,"_533":534,"_535":536},"bucket",{"_526":49,"_527":528},"appUrl","https://rental.summumpm.com","logo",{"_405":523,"_524":525},"tosHistory",[512],{"_480":61,"_481":-7,"_60":61,"_482":26,"_483":61,"_484":61,"_485":26,"_486":26,"_487":-7,"_488":26,"_489":-7,"_490":61,"_491":26,"_492":26,"_493":494,"_495":26,"_496":26,"_497":101,"_498":-7,"_499":26,"_59":26,"_500":61,"_62":26,"_501":502,"_503":61,"_504":26,"_505":26,"_506":138,"_507":26,"_508":26,"_509":26,"_510":26},"disabledModules",[],"rolePermissions","banner",{"_98":478,"_22":479},{"_77":78,"_477":76,"_75":76,"_79":80},[284,286,288,292,299],"payments",{"_473":61,"_474":61,"_475":26,"_476":26},"version","prod-20261027-1707b56","isTenantPayingForCheck","isOrgPaymentSetup","isPrepaid","shouldAskToSetupPayment","googleAds","Contact us at (438) 801-1080 to book your visit!","Contactez-nous au (438) 801-1080 pour planifier votre visite!","tempEquifaxEnabled","whArrayAsObjects","disableAgents","preventInvitation","isBannerEnabled","preventApplyWhenNotListed","hasDynamicLinks","hasAddressVariants","isSinEnforced","isTestMode","hasSubmissionsAssignedEnabled","hasLargeUnitChangeTrigger","hideServiceEstimates","unitChangeThreshold",300,"showAgentPortalButton","hasLegalChecksConfidence","legalChecksConfidenceLevel","automatedPrepayed","hasPerBuildingLeadForm","hasDocumentAiEnabled","partnerOffersEnabled",[511],"showPerMonthPricing","blockOutOfProvinceEndorsers","hasLeaseModificationCheckReuse","leaseModificationCheckReuseMonths","hopemIntegrationEnabled","voltixIntegrationEnabled","leaseGenerationEnabled","hasPerProjectChecks","youset",{"_513":514,"_515":516,"_471":517,"_213":61,"_211":518,"_519":520,"_521":522},"ip","163.123.169.193","url","tos/tos_v1.0.0_1763739934838_H1ii8G.pdf","1.0.0","PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNzU4IDE5MiIgd2lkdGg9Ijc1OCIgaGVpZ2h0PSIxOTIiPjxwYXRoIGQ9Ik0gMjcxLjY4NCw4NC45MTQgQyAyNzAuNDIzLDg3LjIxMCAyNzAuNTQxLDg3LjI2MiAyNjkuMzk4LDg5LjYwOSIgc3Ryb2tlLXdpZHRoPSI1LjM4NSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjY5LjM5OCw4OS42MDkgQyAyNjcuNzU4LDkzLjk3MSAyNjcuNTcxLDkzLjg5MSAyNjUuOTgwLDk4LjI3NyIgc3Ryb2tlLXdpZHRoPSIzLjk1OCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjY1Ljk4MCw5OC4yNzcgQyAyNjMuNjM1LDEwMy4zMzMgMjYzLjg1NywxMDMuNDIxIDI2MS41OTgsMTA4LjUwOCIgc3Ryb2tlLXdpZHRoPSIzLjU1MCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjYxLjU5OCwxMDguNTA4IEMgMjYwLjIxMywxMTIuMjkyIDI2MC4xMjMsMTEyLjI1MyAyNTguOTU3LDExNi4xMTciIHN0cm9rZS13aWR0aD0iMy43MzIiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI1OC45NTcsMTE2LjExNyBDIDI1Ni42MzYsMTIzLjUwNyAyNTcuOTc1LDExOS4xMDggMjU3LjEyMSwxMjIuMTQxIiBzdHJva2Utd2lkdGg9IjQuMzc1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyNTcuMTIxLDEyMi4xNDEgQyAyNTkuMDY5LDExMy43MDIgMjU4LjQzMywxMTguNDQzIDI2Mi41NTEsMTA1Ljk4OCIgc3Ryb2tlLXdpZHRoPSI0LjYyOCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjYyLjU1MSwxMDUuOTg4IEMgMjY1Ljc3NywxMDAuNjMxIDI2NS4xMDUsMTAwLjMzMCAyNjkuMTkxLDk1LjM5OCIgc3Ryb2tlLXdpZHRoPSIzLjQ5MSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjY5LjE5MSw5NS4zOTggQyAyNzAuOTQ1LDkyLjM0MyAyNzEuMDk4LDkyLjQ3NyAyNzMuMTkxLDg5LjY4MCIgc3Ryb2tlLXdpZHRoPSIzLjgyNCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjczLjE5MSw4OS42ODAgQyAyNzkuMTYyLDgyLjQ5MSAyNzkuMTgwLDgyLjU3OSAyODUuNjYwLDc1Ljg3MSIgc3Ryb2tlLXdpZHRoPSIyLjg3NyIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjg1LjY2MCw3NS44NzEgQyAyODcuODgzLDczLjk1NCAyODcuNzA1LDczLjc4OCAyOTAuMjc3LDcyLjI3MyIgc3Ryb2tlLXdpZHRoPSIzLjY4MiIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjkwLjI3Nyw3Mi4yNzMgQyAyOTYuNjQ5LDY3LjU2MCAyOTYuNzM2LDY3Ljc0MSAzMDMuMzY3LDYzLjQ0NSIgc3Ryb2tlLXdpZHRoPSIzLjExMCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzAzLjM2Nyw2My40NDUgQyAzMDYuNjc2LDYxLjU5MyAzMDYuNTgwLDYxLjQ3OCAzMTAuMTQxLDYwLjEwOSIgc3Ryb2tlLXdpZHRoPSIzLjU3NiIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzEwLjE0MSw2MC4xMDkgQyAzMTMuMjg0LDU4Ljc0MyAzMTMuMjY2LDU4Ljc3MSAzMTYuNTQ3LDU3LjgwMSIgc3Ryb2tlLXdpZHRoPSIzLjg3MyIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzE2LjU0Nyw1Ny44MDEgQyAzMTkuNDE4LDU2LjIyMSAzMTkuMTY1LDU3LjA0NCAzMjEuOTAyLDU2LjcxMSIgc3Ryb2tlLXdpZHRoPSI0LjQ5NCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzIxLjkwMiw1Ni43MTEgQyAzMjYuMzYxLDU3LjQ5MyAzMjQuNTE2LDU3LjIyNyAzMjYuNzQyLDU5LjgxMyIgc3Ryb2tlLXdpZHRoPSI0Ljg3MyIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzI2Ljc0Miw1OS44MTMgQyAzMjYuMzM2LDY1LjA4MiAzMjcuNDA0LDYzLjgzMyAzMjMuOTg4LDY5LjM5MSIgc3Ryb2tlLXdpZHRoPSIzLjg2MiIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzIzLjk4OCw2OS4zOTEgQyAzMTkuODE3LDc1Ljk1MyAzMjAuMzU1LDc2LjA1OSAzMTQuNzgxLDgxLjc2NiIgc3Ryb2tlLXdpZHRoPSIzLjEwNSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzE0Ljc4MSw4MS43NjYgQyAzMDkuODU0LDg3LjQ0NSAzMDkuOTE2LDg3LjM4MSAzMDQuMTg4LDkyLjI0NiIgc3Ryb2tlLXdpZHRoPSIzLjAyOSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzA0LjE4OCw5Mi4yNDYgQyAyOTguODA2LDk2LjcwMCAyOTguOTE5LDk2LjcxMCAyOTIuOTEwLDEwMC4yOTciIHN0cm9rZS13aWR0aD0iMy4wMTkiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI5Mi45MTAsMTAwLjI5NyBDIDI4Ny44NTQsMTAzLjQ5MyAyODcuOTA4LDEwMy4zNDggMjgyLjM5MSwxMDUuNTQzIiBzdHJva2Utd2lkdGg9IjMuMjI3IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyODIuMzkxLDEwNS41NDMgQyAyNzguMDg0LDEwNi42NTYgMjc4LjI2MywxMDcuMDkyIDI3My43MjcsMTA3LjQ5NiIgc3Ryb2tlLXdpZHRoPSIzLjU0MSIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjczLjcyNywxMDcuNDk2IEMgMjcwLjc4OSwxMDguMDY4IDI3MC44MDEsMTA4LjA2MCAyNjcuODI0LDEwOC4zNTIiIHN0cm9rZS13aWR0aD0iMy45MTMiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI4NS41MjMsOTEuNjQxIEMgMjg1LjAwOSw5OC4wMzYgMjg0LjcyNyw5Ny45ODIgMjgzLjkzMCwxMDQuMzI0IiBzdHJva2Utd2lkdGg9IjUuMjU3IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyODMuOTMwLDEwNC4zMjQgQyAyODIuMjQ0LDExMS4xNTggMjgzLjMxNCwxMDcuOTEzIDI4Mi4xMzMsMTExLjM5NSIgc3Ryb2tlLXdpZHRoPSI0LjI1NyIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjgyLjEzMywxMTEuMzk1IEMgMjgyLjA1MCwxMDcuOTc5IDI4Mi4wMzcsMTExLjYwMCAyODMuNTE2LDEwNS4yMDciIHN0cm9rZS13aWR0aD0iNC44NjgiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI4My41MTYsMTA1LjIwNyBDIDI4OC4zNjYsOTUuOTk4IDI4OC4yNzgsOTYuMjAwIDI5NC41OTAsODcuODM2IiBzdHJva2Utd2lkdGg9IjIuOTY4IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyOTQuNTkwLDg3LjgzNiBDIDMwMS4zMjIsODAuMDM4IDMwMC44MDgsNzkuNjgyIDMwOC4zOTgsNzIuNTc0IiBzdHJva2Utd2lkdGg9IjIuNTkzIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMDguMzk4LDcyLjU3NCBDIDMxMS42MjYsNjguMzM0IDMxMS45NTUsNjguODIzIDMxNS44NTUsNjUuNDA2IiBzdHJva2Utd2lkdGg9IjMuMTY2IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMTUuODU1LDY1LjQwNiBDIDMyNS44MDYsNTguMzc5IDMyNS43MDEsNTguNTkxIDMzNi41NDcsNTMuMDkwIiBzdHJva2Utd2lkdGg9IjIuNTI5IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMzYuNTQ3LDUzLjA5MCBDIDM0Mi44NTEsNTAuNTkyIDM0Mi41NTYsNTAuMTMxIDM0OS4zNTUsNDguOTEwIiBzdHJva2Utd2lkdGg9IjIuOTI2IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNDkuMzU1LDQ4LjkxMCBDIDM1NC4wMTIsNDcuOTM1IDM1My45MzMsNDcuNzI3IDM1OC43MTEsNDcuMzU5IiBzdHJva2Utd2lkdGg9IjMuMzI1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNTguNzExLDQ3LjM1OSBDIDM2My4yOTEsNDUuNzg1IDM2MS4yODgsNDcuMDQ0IDM2My45MDYsNDcuMTI5IiBzdHJva2Utd2lkdGg9IjMuOTU3IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNjMuOTA2LDQ3LjEyOSBDIDM2My45NzIsNTEuMzM5IDM2NC43MjEsNDguOTEwIDM2MS41NzAsNTMuNjA5IiBzdHJva2Utd2lkdGg9IjQuNDM1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNjEuNTcwLDUzLjYwOSBDIDM1NC4xNTgsNTguNzUwIDM1NS4yODUsNTkuNTUwIDM0Ni41MzEsNjMuNTUxIiBzdHJva2Utd2lkdGg9IjMuMDA5IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNDYuNTMxLDYzLjU1MSBDIDMzNy4wMDUsNjkuMzU0IDMzNy4wOTQsNjkuNDkyIDMyNy40NDEsNzUuMDk0IiBzdHJva2Utd2lkdGg9IjIuNTgxIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMjcuNDQxLDc1LjA5NCBDIDMyMi40NDYsNzcuODYzIDMyMi41NTAsNzguMDI5IDMxNy42MjEsODAuOTAyIiBzdHJva2Utd2lkdGg9IjMuMDg1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMTcuNjIxLDgwLjkwMiBDIDMxMi44NTMsODMuNjIzIDMxMy4wMjYsODMuNzk3IDMwOC42MDIsODYuOTYxIiBzdHJva2Utd2lkdGg9IjMuMjY2IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMDguNjAyLDg2Ljk2MSBDIDMwMy4yNzIsOTAuMDkyIDMwNi4zMDAsODguNzY4IDMwNC41MTYsOTEuMTkxIiBzdHJva2Utd2lkdGg9IjQuMTkzIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMDQuNTE2LDkxLjE5MSBDIDMxMC4yNTEsOTIuNjg3IDMwNy4wMTQsOTMuMzk5IDMxNi4wODYsOTMuNTc0IiBzdHJva2Utd2lkdGg9IjMuNTQwIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMTYuMDg2LDkzLjU3NCBDIDMyNS41NzgsOTQuNDYyIDMyNS40OTQsOTUuMDA1IDMzNS4wMDAsOTUuODI4IiBzdHJva2Utd2lkdGg9IjIuODY4IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMzUuMDAwLDk1LjgyOCBDIDM0NC40MDEsOTcuMTg1IDM0NC4zODYsOTcuMTg5IDM1My43MDMsOTkuMDI3IiBzdHJva2Utd2lkdGg9IjIuNjU1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNTMuNzAzLDk5LjAyNyBDIDM1OS45ODIsMTAwLjI1MiAzNTkuOTU2LDEwMC4yNjUgMzY2LjEwOSwxMDEuOTg4IiBzdHJva2Utd2lkdGg9IjMuMDIzIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNjYuMTA5LDEwMS45ODggQyAzNzUuNDEzLDEwMi41ODYgMzcwLjA1MiwxMDMuMTA2IDM3My44NDQsMTA0LjczNCIgc3Ryb2tlLXdpZHRoPSIzLjQ3OCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMzczLjg0NCwxMDQuNzM0IEMgMzY0LjczNiwxMTUuMDg2IDM2OC45OTUsMTExLjM3MCAzNTMuMjczLDExOS41NTUiIHN0cm9rZS13aWR0aD0iMy44NTciIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDM1My4yNzMsMTE5LjU1NSBDIDMzOS44MjksMTIyLjExMiAzNDAuOTQxLDEyNC4zNjMgMzI2LjI1NCwxMjMuMjg5IiBzdHJva2Utd2lkdGg9IjIuNDg4IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzMjYuMjU0LDEyMy4yODkgQyAzMDcuMDA0LDEyNS45MTUgMzA3LjEzNSwxMjQuOTQ3IDI4Ny44ODcsMTI1LjIyNyIgc3Ryb2tlLXdpZHRoPSIxLjkwMCIgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAsIDAuOCkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPjxwYXRoIGQ9Ik0gMjg3Ljg4NywxMjUuMjI3IEMgMjY5Ljk5OSwxMjQuMzM5IDI3MC4zMjcsMTI0LjU5NCAyNTIuODk4LDEyMC42NDgiIHN0cm9rZS13aWR0aD0iMS44NTAiIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjgpIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD48cGF0aCBkPSJNIDI1Mi44OTgsMTIwLjY0OCBDIDI0NC43NjgsMTE5LjU4NiAyNDUuOTU2LDExOS4xNTAgMjM5LjgwMSwxMTQuODQ4IiBzdHJva2Utd2lkdGg9IjIuNTU0IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyMzkuODAxLDExNC44NDggQyAyMjYuNjg1LDEwNC41NjMgMjMyLjgwNywxMDguMTc2IDIyOC45NzcsOTcuODI4IiBzdHJva2Utd2lkdGg9IjIuNjIyIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyMjguOTc3LDk3LjgyOCBDIDIzOC41NzAsODkuMzAwIDIzMS43NzksODkuNTkyIDI0OS45ODgsODQuOTA2IiBzdHJva2Utd2lkdGg9IjIuMzg0IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyNDkuOTg4LDg0LjkwNiBDIDI3NC4zNDYsNzUuNDE3IDI3My45MTIsNzUuNzAwIDI5OS42NjAsNzAuNjI5IiBzdHJva2Utd2lkdGg9IjEuNTMzIiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAyOTkuNjYwLDcwLjYyOSBDIDMzNS43ODYsNjMuNzU5IDMzNS40NjQsNjMuODU3IDM3Mi4yMjMsNjEuNzg1IiBzdHJva2Utd2lkdGg9IjEuMTY5IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PHBhdGggZD0iTSAzNzIuMjIzLDYxLjc4NSBDIDQyMi45MDksNjEuMDI3IDQyMi43NDMsNTkuMDQ4IDQ3My41NzQsNjEuMjA3IiBzdHJva2Utd2lkdGg9IjEuMTI1IiBzdHJva2U9InJnYmEoMCwgMCwgMCwgMC44KSIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PC9zdmc+","acceptedAt","2025-11-21T15:45:35.398Z","acceptedBy","Philippe Brassard (philippe@summumpm.com)","https://nykxxjptujeqkwefdxxg.supabase.co/storage/v1/object/public/summum/logo/light","dark","https://nykxxjptujeqkwefdxxg.supabase.co/storage/v1/object/public/summum/logo/dark","public","private","summum_private","billingEmail","philippe@summumpm.com","lastDigit","6148","paymentType","visa","kind","configured","Pro","notes","planId","pro_2025_06","startDate","2025-11-21","yearlyPrice",2990,"monthlyPrice",89,"supportLevel","standard","freeTrialDays",14,"includedUsers","billingInterval","monthly","additionalUserPrice",49,"planDurationInMonths",12,"current","shouldAccept","lastAccepted","facebook","https://www.facebook.com/summumpm","youtube",{"_565":566},"updated_at","2026-08-24T00:34:22.636Z"] | |
| 2 | +P18:-5 | |
deleted
tests/fixtures/summum/102e074d21e3d0a0f0c8.html
+0 −618
@@ -1,618 +0,0 @@ | ||
| 1 | − | |
| 2 | − | |
| 3 | − | |
| 4 | −<!doctype html> | |
| 5 | −<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang=""> <![endif]--> | |
| 6 | −<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang=""> <![endif]--> | |
| 7 | −<!--[if IE 8]> <html class="no-js lt-ie9" lang=""> <![endif]--> | |
| 8 | −<!--[if gt IE 8]><!--> | |
| 9 | −<html class="no-js" lang="fr"> | |
| 10 | −<!--<![endif]--> | |
| 11 | −<head> | |
| 12 | − <meta charset="utf-8"> | |
| 13 | − <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> | |
| 14 | − <title>Affichages</title> | |
| 15 | − <meta name="viewport" content="width=device-width, initial-scale=1"> | |
| 16 | − <meta name="description" content="Logements à louer à Montréal"> | |
| 17 | − <meta name="keywords" content="Logement, Location, Montréal, Tenant, Appartement, Building Stack"> | |
| 18 | − <link rel="apple-touch-icon" href="apple-touch-icon.png"> | |
| 19 | − <!-- Chrome, Firefox OS, Opera and Vivaldi --> | |
| 20 | − <meta name="theme-color" content="rgba(24,38,66,1)"> | |
| 21 | − <!-- Windows Phone --> | |
| 22 | − <meta name="msapplication-navbutton-color" content="rgba(24,38,66,1)"> | |
| 23 | − <!-- iOS Safari --> | |
| 24 | − <meta name="apple-mobile-web-app-status-bar-style" content="rgba(24,38,66,1)"> | |
| 25 | − | |
| 26 | − <link rel="stylesheet" href="/Content/Stylesheets/listings/normalize.min.css"> | |
| 27 | − | |
| 28 | − | |
| 29 | − | |
| 30 | − <script type="text/javascript" class="optanon-category-C0001"> | |
| 31 | − var iniframe = false | |
| 32 | − try { | |
| 33 | − iniframe = window.self !== window.top | |
| 34 | − } catch (e) { | |
| 35 | − iniframe = true | |
| 36 | − } | |
| 37 | − | |
| 38 | − if (!iniframe && cookieManagerKey) { | |
| 39 | − const scriptTag = document.createElement("script") | |
| 40 | − | |
| 41 | − scriptTag.type = "text/javascript" | |
| 42 | − scriptTag.src = | |
| 43 | − `https://cdn.cookielaw.org/consent/${cookieManagerKey}/OtAutoBlock.js` | |
| 44 | − | |
| 45 | − const stubTag = document.createElement("script") | |
| 46 | − stubTag.type = "text/javascript" | |
| 47 | − stubTag.src = "https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" | |
| 48 | − stubTag.charset = "UTF-8" | |
| 49 | − stubTag.setAttribute("data-domain-script", cookieManagerKey) | |
| 50 | − | |
| 51 | − const wrapperTag = document.createElement("script") | |
| 52 | − wrapperTag.type = "text/javascript" | |
| 53 | − wrapperTag.innerHTML = "function OptanonWrapper() { }" | |
| 54 | − | |
| 55 | − document.head.appendChild(scriptTag) | |
| 56 | − document.head.appendChild(stubTag) | |
| 57 | − document.head.appendChild(wrapperTag) | |
| 58 | − } | |
| 59 | − </script> | |
| 60 | − | |
| 61 | − <link rel="stylesheet" href="/Content/Stylesheets/listings/main.css"> | |
| 62 | − | |
| 63 | − | |
| 64 | − <link href="https://wfiles.buildingstack.com/resources/image/RtTBPamrT6jrGoyRcgiiDZYyMTLP7Syd5" rel="shortcut icon" type="image/x-icon" /> | |
| 65 | − <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,600,700,300,800' rel='stylesheet' type='text/css'> | |
| 66 | − | |
| 67 | − <link rel="stylesheet" href="/Content/LightGallery/css/lightgallery.min.css" /> | |
| 68 | − <link rel="stylesheet" href="/Content/LightGallery/css/lightslider.min.css" /> | |
| 69 | − | |
| 70 | − <script src="/bundles/jquery?v=v8thH4gSPX5DyN6JlBJ_z2ldPWoOUIuUmdnIz2JydG41"></script> | |
| 71 | − | |
| 72 | − <script src="/bundles/lightgallery?v=aDiV7xUmHD3FR903cMsQIwmP1dy6MT_AvRlLi2mG_X41"></script> | |
| 73 | − | |
| 74 | − <script src="/bundles/listings?v=ACN7ICBuogrPYEmNE-Ty2sea_3KGwQ0r8MDOqXNc3vk1"></script> | |
| 75 | − | |
| 76 | − | |
| 77 | − | |
| 78 | − | |
| 79 | − <script type="text/javascript" id="listingfullstory"> | |
| 80 | − window['_fs_debug'] = false; | |
| 81 | − window['_fs_host'] = 'www.fullstory.com'; | |
| 82 | − window['_fs_org'] = '1yVu'; | |
| 83 | − window['_fs_namespace'] = 'FS'; | |
| 84 | − (function (m, n, e, t, l, o, g, y) { | |
| 85 | − if (e in m && m.console && m.console.log) { m.console.log('FullStory namespace conflict. Please set window["_fs_namespace"].'); return; } | |
| 86 | − g = m[e] = function (a, b) { g.q ? g.q.push([a, b]) : g._api(a, b); }; g.q = []; | |
| 87 | − o = n.createElement(t); o.async = 1; o.src = 'https://' + _fs_host + '/s/fs.js'; | |
| 88 | − y = n.getElementsByTagName(t)[0]; y.parentNode.insertBefore(o, y); | |
| 89 | − g.identify = function (i, v) { g(l, { uid: i }); if (v) g(l, v) }; g.setUserVars = function (v) { g(l, v) }; | |
| 90 | − g.identifyAccount = function (i, v) { o = 'account'; v = v || {}; v.acctId = i; g(o, v) }; | |
| 91 | − g.clearUserCookie = function (c, d, i) { | |
| 92 | − if (!c || document.cookie.match('fs_uid=[`;`]*`[`;`]*`[`;`]*`')) { | |
| 93 | − d = n.domain; while (1) { | |
| 94 | − n.cookie = 'fs_uid=;domain=' + d + | |
| 95 | − ';path=/;expires=' + new Date(0).toUTCString(); i = d.indexOf('.'); if (i < 0) break; d = d.slice(i + 1) | |
| 96 | − } | |
| 97 | − } | |
| 98 | − }; | |
| 99 | − })(window, document, window['_fs_namespace'], 'script', 'user'); | |
| 100 | − </script> | |
| 101 | − | |
| 102 | − | |
| 103 | − | |
| 104 | − | |
| 105 | − | |
| 106 | − <link href="/Content/WaitMe/waitMe.css" rel="stylesheet" /> | |
| 107 | − | |
| 108 | − <script src="/Scripts/WaitMe/waitMe.js"></script> | |
| 109 | − | |
| 110 | − <script src="/Scripts/JQuery.InputMask/min/jquery.inputmask.bundle.min.js"></script> | |
| 111 | − <script src="/Scripts/JQuery.InputMask/min/inputmask/phone-codes/phone.min.js"></script> | |
| 112 | − <script src="/Scripts/GothamCommon/PhoneMaskedEditor.js"></script> | |
| 113 | − | |
| 114 | − <script type="text/javascript"> | |
| 115 | − $(function () { | |
| 116 | − Gotham.LoadingIndicator.initGlobal('/Content/Images/loading.gif'); | |
| 117 | − Gotham.PhoneMaskedEditor.initialize(); | |
| 118 | − if (window.OneTrust) { | |
| 119 | − window.OneTrust.changeLanguage('fr'); | |
| 120 | − } | |
| 121 | − }); | |
| 122 | − </script> | |
| 123 | − | |
| 124 | − | |
| 125 | − | |
| 126 | − | |
| 127 | − <!-- Global site tag (gtag.js) - Google Analytics --> | |
| 128 | − <script async src="https://www.googletagmanager.com/gtag/js?id=UA-49572274-1"></script> | |
| 129 | − <script> | |
| 130 | − window.dataLayer = window.dataLayer || []; | |
| 131 | − function gtag() { dataLayer.push(arguments); } | |
| 132 | − gtag('js', new Date()); | |
| 133 | − | |
| 134 | − gtag('config', 'UA-49572274-1'); | |
| 135 | − | |
| 136 | − gtag('config', '<!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-176051114-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-176051114-1'); </script>'); | |
| 137 | − </script> | |
| 138 | − | |
| 139 | −</head> | |
| 140 | −<body class="fr search-page"> | |
| 141 | − <div class="page-wrapper"> | |
| 142 | − <!--[if lt IE 8]> | |
| 143 | − <p class="browserupgrade">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p> | |
| 144 | − <![endif]--> | |
| 145 | − | |
| 146 | − | |
| 147 | − | |
| 148 | − | |
| 149 | −<script src="https://maps.googleapis.com/maps/api/js?key=AIza_CLE_CAVIARDEE_LOUKA_000000000000000&language=fr"></script> | |
| 150 | − | |
| 151 | −<!-- HEADER --> | |
| 152 | −<link href="/Customize/Css" rel="stylesheet" type="text/css" /> | |
| 153 | − | |
| 154 | − <div class="header wrapper apply"> | |
| 155 | − <div class="page-content clearfix"> | |
| 156 | − <div class="logo"> | |
| 157 | − <div class="app-logo-with-title"> | |
| 158 | − <a href="/"> | |
| 159 | − <div class="app-image-logo"> | |
| 160 | − <div id="image-logo"> | |
| 161 | − <img src="https://wfiles.buildingstack.com/resources/image/K6yPiAIheR4xbxUahA2Zf3OSegCsCvwU1" class="app-logo" /> | |
| 162 | − </div> | |
| 163 | − </div> | |
| 164 | − </a> | |
| 165 | − <div class="app-title-name"> | |
| 166 | − <h1 id="type-user" class="app-title">Gestion Immobilière Summum</h1> | |
| 167 | − </div> | |
| 168 | − </div> | |
| 169 | − </div> | |
| 170 | − <div class="apply-now"> | |
| 171 | − <a href="https://app.buildingstack.com/application/start?company=summumpm" target="_blank" class="apply-now-button apply-now-button-backgroundColor">Envoyer une demande</a> | |
| 172 | − </div> | |
| 173 | − <div class="login"> | |
| 174 | − <a href="https://app.buildingstack.com/" target="_parent" class="login-button login-button-backgroundColor">Se connecter</a> | |
| 175 | − </div> | |
| 176 | − | |
| 177 | − | |
| 178 | − <div id="dd5" class="wrapper-dropdown-3 lang-selector" tabindex="1"> | |
| 179 | − <input data-val="true" data-val-required="The [[ListingModel_Language]] field is required." id="Language" name="Language" type="hidden" value="French" /> | |
| 180 | − <span>Anglais</span> | |
| 181 | − <ul class="dropdown"> | |
| 182 | − <li data-val="English"> | |
| 183 | − <a href="/Header/SetLanguage?lang=English">English</a> | |
| 184 | − </li> | |
| 185 | − <li data-val="French"> | |
| 186 | − <a href="/Header/SetLanguage?lang=French">Français</a> | |
| 187 | − </li> | |
| 188 | − </ul> | |
| 189 | − </div> | |
| 190 | − <script type="text/javascript"> | |
| 191 | − // LANGUAGE-SELECTOR DROPDOWN | |
| 192 | − $(function () { | |
| 193 | − var dd = new GmListing.DropDown($('#dd5'), { | |
| 194 | − navigateOnClick: true | |
| 195 | − }); | |
| 196 | − }); | |
| 197 | − </script> | |
| 198 | − </div> | |
| 199 | − </div> | |
| 200 | − <div class="navigation wrapper"> | |
| 201 | − <div class="page-content clearfix"> | |
| 202 | − | |
| 203 | − <div class="menu-icon"> | |
| 204 | − <div class="one"></div> | |
| 205 | − <div class="two"></div> | |
| 206 | − <div class="three"></div> | |
| 207 | − </div> | |
| 208 | − <div class="nav"> | |
| 209 | − <ul class="menu"> | |
| 210 | − | |
| 211 | − <li class=""><a href="/">ACCUEIL</a></li> | |
| 212 | − <li class="active accent_color_1_border"><a href="/Listing/Listings">ANNONCES</a></li> | |
| 213 | − <li class=""><a href="/ContactUs">CONTACT</a></li> | |
| 214 | − </ul> | |
| 215 | − | |
| 216 | − <a href="tel:+15148191529" class="contact"> | |
| 217 | − (514) 819-1529 | |
| 218 | − </a> | |
| 219 | − </div> | |
| 220 | − </div> | |
| 221 | − </div> | |
| 222 | −<!-- END HEADER --> | |
| 223 | −<script type="text/javascript"> | |
| 224 | − $(function () { | |
| 225 | − $(document).click(function () { | |
| 226 | − // all dropdowns | |
| 227 | − $('.wrapper-dropdown-3').removeClass('active'); | |
| 228 | − }); | |
| 229 | − }); | |
| 230 | −</script> | |
| 231 | − | |
| 232 | − | |
| 233 | − | |
| 234 | − | |
| 235 | −<script src="https://cdn.jsdelivr.net/picturefill/2.3.1/picturefill.min.js"></script> | |
| 236 | − | |
| 237 | −<!-- SEARCH-BAR --> | |
| 238 | −<div class="searchbar-tab wrapper"> | |
| 239 | − <div class="page-content clearfix"> | |
| 240 | − | |
| 241 | − | |
| 242 | − | |
| 243 | − | |
| 244 | − <input class="tab-input" type="radio" name="nav" id="one" checked='checked' autocomplete="off" /> | |
| 245 | − <label class="tab-trigger-btn residential-label" for="one" data-tab="0">Résidentiel <span class="residential-icon"></span></label> | |
| 246 | −<article class="searchbar-tab-content one search-bar clearfix"> | |
| 247 | −<form action="/Listing/Listings" data-filters="True" data-name="Listings" method="post"><input id="ConcreteTypeAssemblyQualifiedName" name="ConcreteTypeAssemblyQualifiedName" type="hidden" value="Gotham.Service.Model.ResidentialListingFilter, Gotham.Service, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> <div id="dd" class="wrapper-dropdown-3 selector location" tabindex="1"> | |
| 248 | − <input autocomplete="off" id="City" name="City" type="hidden" value="" /> | |
| 249 | − <span>N'importe quelle ville</span> | |
| 250 | − <ul class="dropdown"> | |
| 251 | − <li><a href="#">N'importe quelle ville</a></li> | |
| 252 | − <li data-val="Blainville"><a href="#">Blainville</a></li> | |
| 253 | − <li data-val="Brossard"><a href="#">Brossard</a></li> | |
| 254 | − <li data-val="Dollard-des-Ormeaux"><a href="#">Dollard-des-Ormeaux</a></li> | |
| 255 | − <li data-val="Granby"><a href="#">Granby</a></li> | |
| 256 | − <li data-val="La Prairie"><a href="#">La Prairie</a></li> | |
| 257 | − <li data-val="Lachine"><a href="#">Lachine</a></li> | |
| 258 | − <li data-val="Laval"><a href="#">Laval</a></li> | |
| 259 | − <li data-val="Longueuil"><a href="#">Longueuil</a></li> | |
| 260 | − <li data-val="Mascouche"><a href="#">Mascouche</a></li> | |
| 261 | − <li data-val="Mirabel"><a href="#">Mirabel</a></li> | |
| 262 | − <li data-val="Montréal"><a href="#">Montréal</a></li> | |
| 263 | − <li data-val="Mont-Royal"><a href="#">Mont-Royal</a></li> | |
| 264 | − <li data-val="Saint-Calixte"><a href="#">Saint-Calixte</a></li> | |
| 265 | − <li data-val="Sainte-Thérèse"><a href="#">Sainte-Thérèse</a></li> | |
| 266 | − <li data-val="Saint-Eustache"><a href="#">Saint-Eustache</a></li> | |
| 267 | − <li data-val="Saint-Hippolyte"><a href="#">Saint-Hippolyte</a></li> | |
| 268 | − <li data-val="Saint-Jérôme"><a href="#">Saint-Jérôme</a></li> | |
| 269 | − <li data-val="Saint-Lin-Laurentides"><a href="#">Saint-Lin-Laurentides</a></li> | |
| 270 | − <li data-val="Saint-Sauveur"><a href="#">Saint-Sauveur</a></li> | |
| 271 | − <li data-val="Terrebonne"><a href="#">Terrebonne</a></li> | |
| 272 | − <li data-val="Westmount"><a href="#">Westmount</a></li> | |
| 273 | − | |
| 274 | − </ul> | |
| 275 | − </div> | |
| 276 | − <div id="dd2" class="wrapper-dropdown-3 selector size" tabindex="2"> | |
| 277 | − <input autocomplete="off" id="AreaRangeFilterId" name="AreaRangeFilterId" type="hidden" value="" /> | |
| 278 | − <span>N'importe quelle taille</span> | |
| 279 | − <ul class="dropdown"> | |
| 280 | − <li data-val="Any"><a href="#">N'importe quelle taille</a></li> | |
| 281 | − <li class="separator" data-separator="true">Chambres à coucher</li> | |
| 282 | − <li data-val="Bedrooms_Studio"><a href="#">Studio / Bachelor</a></li> | |
| 283 | − <li data-val="Bedroom1"><a href="#">1 Chambre à Coucher</a></li> | |
| 284 | − <li data-val="Bedroom2"><a href="#">2 Chambres à Coucher</a></li> | |
| 285 | − <li data-val="Bedroom3"><a href="#">3 Chambres à Coucher</a></li> | |
| 286 | − <li data-val="Bedroom4"><a href="#">4 Chambres à Coucher</a></li> | |
| 287 | − <li data-val="Bedroom5_more"><a href="#">5 Chambres à Coucher ou plus</a></li> | |
| 288 | − | |
| 289 | − <li class="separator" data-separator="true">Grandeur</li> | |
| 290 | − <li data-val="Area_0_500"><a href="#">0 - 500 Pi. Ca.</a></li> | |
| 291 | − <li data-val="Area_501_750"><a href="#">501 - 750 Pi. Ca. </a></li> | |
| 292 | − <li data-val="Area_751_1000"><a href="#">751 - 1000 Pi. Ca.</a></li> | |
| 293 | − <li data-val="Area_1001_1500"><a href="#">1001 - 1500 Pi. Ca.</a></li> | |
| 294 | − <li data-val="Area_1501_2000"><a href="#">1501 - 2000 Pi. Ca.</a></li> | |
| 295 | − <li data-val="Area_2001_more"><a href="#">2001 Pi. Ca. ou plus</a></li> | |
| 296 | − | |
| 297 | − </ul> | |
| 298 | − </div> | |
| 299 | − <div id="dd3" class="wrapper-dropdown-3 selector price-range" tabindex="3"> | |
| 300 | − <input autocomplete="off" id="PriceRangeFilterId" name="PriceRangeFilterId" type="hidden" value="" /> | |
| 301 | − <span>N'importe quel prix</span> | |
| 302 | − <ul class="dropdown"> | |
| 303 | − <li data-val="Any"><a href="#">N'importe quel prix</a></li> | |
| 304 | − <li data-val="Price_0_500"><a href="#">$500 ou moins</a></li> | |
| 305 | − <li data-val="Price_501_800"><a href="#">$501 à $800</a></li> | |
| 306 | − <li data-val="Price_801_1000"><a href="#">$801 à $1000</a></li> | |
| 307 | − <li data-val="Price_1001_1200"><a href="#">$1001 à $1200</a></li> | |
| 308 | − <li data-val="Price_1201_1500"><a href="#">$1201 à $1500</a></li> | |
| 309 | − <li data-val="Price_1501_1800"><a href="#">$1501 à $1800</a></li> | |
| 310 | − <li data-val="Price_1801_2200"><a href="#">$1801 à $2200</a></li> | |
| 311 | − <li data-val="Price_2201_2500"><a href="#">$2201 à $2500</a></li> | |
| 312 | − <li data-val="Price_2501_more"><a href="#">$2501 ou plus</a></li> | |
| 313 | − | |
| 314 | − </ul> | |
| 315 | − </div> | |
| 316 | − <div id="dd4" class="wrapper-dropdown-4 selector options"> | |
| 317 | − <span>Options</span> | |
| 318 | − <ul class="dropdown"> | |
| 319 | − <li data-val="PetAllowed"> | |
| 320 | − | |
| 321 | − <input type="checkbox" id="el-PetAllowed" name="Options" autocomplete="off" value="PetAllowed" ><label for="el-PetAllowed" title="Animaux Acceptés">Animaux Acceptés</label> | |
| 322 | − </li> | |
| 323 | − <li data-val="Furnished"> | |
| 324 | − | |
| 325 | − <input type="checkbox" id="el-Furnished" name="Options" autocomplete="off" value="Furnished" ><label for="el-Furnished" title="Meublé">Meublé</label> | |
| 326 | − </li> | |
| 327 | − | |
| 328 | − </ul> | |
| 329 | − </div> | |
| 330 | − <a class="search-button accent_color_1_background_color" href="#"></a> | |
| 331 | −</form></article> | |
| 332 | − | |
| 333 | − | |
| 334 | −<script type="text/javascript"> | |
| 335 | − // LOCATION DROPDOWN | |
| 336 | − | |
| 337 | − $(function () { | |
| 338 | − //residential | |
| 339 | − var dd = new GmListing.DropDown($('#dd')); | |
| 340 | − var dd = new GmListing.DropDown($('#dd2')); | |
| 341 | − var dd = new GmListing.DropDown($('#dd3')); | |
| 342 | − //senior | |
| 343 | − var dd = new GmListing.DropDown($('#dd14')); | |
| 344 | − var dd = new GmListing.DropDown($('#dd16')); | |
| 345 | − var dd = new GmListing.DropDown($('#dd17')); | |
| 346 | − //commercial | |
| 347 | − var dd = new GmListing.DropDown($('#dd6')); | |
| 348 | − var dd = new GmListing.DropDown($('#dd7')); | |
| 349 | − var dd = new GmListing.DropDown($('#dd8')); | |
| 350 | − var dd = new GmListing.DropDown($('#dd9')); | |
| 351 | − //industrial | |
| 352 | − var dd = new GmListing.DropDown($('#dd10')); | |
| 353 | − var dd = new GmListing.DropDown($('#dd12')); | |
| 354 | − var dd = new GmListing.DropDown($('#dd13')); | |
| 355 | − | |
| 356 | − $(document).click(function () { | |
| 357 | − // all dropdowns | |
| 358 | − $('.wrapper-dropdown-3').removeClass('active'); | |
| 359 | − }); | |
| 360 | − | |
| 361 | − }); | |
| 362 | − | |
| 363 | −</script> | |
| 364 | − </div> | |
| 365 | −</div> | |
| 366 | −<!-- END SEARCHBAR --> | |
| 367 | − | |
| 368 | −<div id="listing-content" class="content wrapper"> | |
| 369 | − <div id="googleMap" class="map-area"></div> | |
| 370 | − <div class="tab-slider-2"> | |
| 371 | − <div class="result-show"></div> | |
| 372 | − <div class="tab-wrapper clearfix"> | |
| 373 | − <div class="tab-trigger"> | |
| 374 | − <div class="item" id="citySlider"> | |
| 375 | − <ul id="tab-slide" class="content-slider"></ul> | |
| 376 | − <div id="slider-controls"> | |
| 377 | − </div> | |
| 378 | − </div> | |
| 379 | − </div> | |
| 380 | − <div id="buildings-placeholder" class="main"> | |
| 381 | − </div> | |
| 382 | − </div> | |
| 383 | − </div> | |
| 384 | − | |
| 385 | − <script> | |
| 386 | − $(document).ready(function () { | |
| 387 | − createOrRefreshSlider(); | |
| 388 | − | |
| 389 | − var units = [{"ApartmentId":287081,"City":"Montréal","ParkingsIsAvailable":true,"StoragesIsAvailable":false,"NumberOfAvailableUnits":2,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":45356,"PublicListBuildingName":"202029066007004535622","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":9312,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"2","Price":970.00,"PriceFormatted":"$970","Area":200,"NumberOfBathrooms":1,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.537562","Longitude":"-73.562675","AddressLocation":"2560 Rue Rachel Est, Montréal, QC, Canada","AddressLine1":"2560 Rue Rachel Est","AddressLine2":null,"City":"Montréal","ZipCode":"H2H 1S4","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"2560 Rue Rachel Est, Montréal, QC H2H 1S4, Canada"},"BuildingUrl":"/b/202029066007004535622/287081","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/Lq9HKcvJEIyqj38QhBecAYYY9YixivwU1/medium","BuildingPreviewUrl":"/Content/Images/building_holder.svg","BuildingName":"2560 Rachel","PriceAndDetailsVisible":true},{"ApartmentId":287094,"City":"Montréal","ParkingsIsAvailable":true,"StoragesIsAvailable":false,"NumberOfAvailableUnits":2,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":45356,"PublicListBuildingName":"202029066007004535622","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":9312,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"17","Price":970.00,"PriceFormatted":"$970","Area":200,"NumberOfBathrooms":1,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.537562","Longitude":"-73.562675","AddressLocation":"2560 Rue Rachel Est, Montréal, QC, Canada","AddressLine1":"2560 Rue Rachel Est","AddressLine2":null,"City":"Montréal","ZipCode":"H2H 1S4","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"2560 Rue Rachel Est, Montréal, QC H2H 1S4, Canada"},"BuildingUrl":"/b/202029066007004535622/287094","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/KcfjJ7LIPaX9P6bvJYjoEKvIQ3X9Ppqy1/medium","BuildingPreviewUrl":"/Content/Images/building_holder.svg","BuildingName":"2560 Rachel","PriceAndDetailsVisible":true},{"ApartmentId":298455,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":1,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":46361,"PublicListBuildingName":"202029086509004636115","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":7998,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"10","Price":725.00,"PriceFormatted":"$725","Area":180,"NumberOfBathrooms":0,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.55140249999999","Longitude":"-73.57978829999999","AddressLocation":"3143 Rue Holt, Montréal, QC, Canada","AddressLine1":"3143 Rue Holt","AddressLine2":null,"City":"Montréal","ZipCode":"H1Y 1R4","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"3143 Rue Holt, Montréal, QC H1Y 1R4, Canada"},"BuildingUrl":"/b/202029086509004636115/298455","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/OpHaCbGsOaKqR4uoIMvPJ71ABtHaPpqy1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/CMDMM69vRb9qLMfhQNXECqHtJajePpqy1/medium","BuildingName":"3143 Holt","PriceAndDetailsVisible":true},{"ApartmentId":410468,"City":"Montréal","ParkingsIsAvailable":true,"StoragesIsAvailable":false,"NumberOfAvailableUnits":9,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":56174,"PublicListBuildingName":"202229086501005617429","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":9874,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"206","Price":1000.00,"PriceFormatted":"$1 000","Area":298,"NumberOfBathrooms":1,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.541286","Longitude":"-73.60775009999999","AddressLocation":"1150 Rue Bélanger, Montréal, QC, Canada","AddressLine1":"1150 Rue Bélanger","AddressLine2":"","City":"Montréal","ZipCode":"H2S 1H5","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"1150 Rue Bélanger, Montréal, QC H2S 1H5, Canada"},"BuildingUrl":"/b/202229086501005617429/410468","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/CtXqGLXNMJDbJ5PGGKHPRL5PMNLpPpqy1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/BsffC4LcIb13E6yudAESiPiQ6QAyMSyd5/medium","BuildingName":"1150 Bélanger - Tour Andrea","PriceAndDetailsVisible":true},{"ApartmentId":410469,"City":"Montréal","ParkingsIsAvailable":true,"StoragesIsAvailable":false,"NumberOfAvailableUnits":9,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":56174,"PublicListBuildingName":"202229086501005617429","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":9874,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"207","Price":1325.00,"PriceFormatted":"$1 325","Area":437,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.541286","Longitude":"-73.60775009999999","AddressLocation":"1150 Rue Bélanger, Montréal, QC, Canada","AddressLine1":"1150 Rue Bélanger","AddressLine2":"","City":"Montréal","ZipCode":"H2S 1H5","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"1150 Rue Bélanger, Montréal, QC H2S 1H5, Canada"},"BuildingUrl":"/b/202229086501005617429/410469","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/BsffC4LcIb13E6yudAESiPiQ6QAyMSyd5/medium","BuildingName":"1150 Bélanger - Tour Andrea","PriceAndDetailsVisible":true},{"ApartmentId":410484,"City":"Montréal","ParkingsIsAvailable":true,"StoragesIsAvailable":false,"NumberOfAvailableUnits":9,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":56174,"PublicListBuildingName":"202229086501005617429","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":9874,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"402","Price":1575.00,"PriceFormatted":"$1 575","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.541286","Longitude":"-73.60775009999999","AddressLocation":"1150 Rue Bélanger, Montréal, QC, Canada","AddressLine1":"1150 Rue Bélanger","AddressLine2":"","City":"Montréal","ZipCode":"H2S 1H5","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"1150 Rue Bélanger, Montréal, QC H2S 1H5, Canada"},"BuildingUrl":"/b/202229086501005617429/410484","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/BsffC4LcIb13E6yudAESiPiQ6QAyMSyd5/medium","BuildingName":"1150 Bélanger - Tour Andrea","PriceAndDetailsVisible":true},{"ApartmentId":410492,"City":"Montréal","ParkingsIsAvailable":true,"StoragesIsAvailable":false,"NumberOfAvailableUnits":9,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":56174,"PublicListBuildingName":"202229086501005617429","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":9874,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"410","Price":1575.00,"PriceFormatted":"$1 575","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.541286","Longitude":"-73.60775009999999","AddressLocation":"1150 Rue Bélanger, Montréal, QC, Canada","AddressLine1":"1150 Rue Bélanger","AddressLine2":"","City":"Montréal","ZipCode":"H2S 1H5","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"1150 Rue Bélanger, Montréal, QC H2S 1H5, Canada"},"BuildingUrl":"/b/202229086501005617429/410492","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/KcqvLMXlPsfcQKWnOK9OP38rIabFPpqy1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/BsffC4LcIb13E6yudAESiPiQ6QAyMSyd5/medium","BuildingName":"1150 Bélanger - Tour Andrea","PriceAndDetailsVisible":true},{"ApartmentId":410504,"City":"Montréal","ParkingsIsAvailable":true,"StoragesIsAvailable":false,"NumberOfAvailableUnits":9,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":56174,"PublicListBuildingName":"202229086501005617429","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":9874,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"602","Price":1695.00,"PriceFormatted":"$1 695","Area":650,"NumberOfBathrooms":1,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.541286","Longitude":"-73.60775009999999","AddressLocation":"1150 Rue Bélanger, Montréal, QC, Canada","AddressLine1":"1150 Rue Bélanger","AddressLine2":"","City":"Montréal","ZipCode":"H2S 1H5","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"1150 Rue Bélanger, Montréal, QC H2S 1H5, Canada"},"BuildingUrl":"/b/202229086501005617429/410504","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/E7DeHdD5HsfGS3SnPdPFUc5PUZbiTpqy1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/BsffC4LcIb13E6yudAESiPiQ6QAyMSyd5/medium","BuildingName":"1150 Bélanger - Tour Andrea","PriceAndDetailsVisible":true},{"ApartmentId":410506,"City":"Montréal","ParkingsIsAvailable":true,"StoragesIsAvailable":false,"NumberOfAvailableUnits":9,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":56174,"PublicListBuildingName":"202229086501005617429","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":9874,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"604","Price":1425.00,"PriceFormatted":"$1 425","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.541286","Longitude":"-73.60775009999999","AddressLocation":"1150 Rue Bélanger, Montréal, QC, Canada","AddressLine1":"1150 Rue Bélanger","AddressLine2":"","City":"Montréal","ZipCode":"H2S 1H5","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"1150 Rue Bélanger, Montréal, QC H2S 1H5, Canada"},"BuildingUrl":"/b/202229086501005617429/410506","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/SLToTa9bR6GsJLGnLsPnLNfZHbbhPpqy1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/BsffC4LcIb13E6yudAESiPiQ6QAyMSyd5/medium","BuildingName":"1150 Bélanger - Tour Andrea","PriceAndDetailsVisible":true},{"ApartmentId":410507,"City":"Montréal","ParkingsIsAvailable":true,"StoragesIsAvailable":false,"NumberOfAvailableUnits":9,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":56174,"PublicListBuildingName":"202229086501005617429","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":9874,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"605","Price":1050.00,"PriceFormatted":"$1 050","Area":298,"NumberOfBathrooms":1,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.541286","Longitude":"-73.60775009999999","AddressLocation":"1150 Rue Bélanger, Montréal, QC, Canada","AddressLine1":"1150 Rue Bélanger","AddressLine2":"","City":"Montréal","ZipCode":"H2S 1H5","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"1150 Rue Bélanger, Montréal, QC H2S 1H5, Canada"},"BuildingUrl":"/b/202229086501005617429/410507","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/BsffC4LcIb13E6yudAESiPiQ6QAyMSyd5/medium","BuildingName":"1150 Bélanger - Tour Andrea","PriceAndDetailsVisible":true},{"ApartmentId":410509,"City":"Montréal","ParkingsIsAvailable":true,"StoragesIsAvailable":false,"NumberOfAvailableUnits":9,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":56174,"PublicListBuildingName":"202229086501005617429","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":9874,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"607","Price":1425.00,"PriceFormatted":"$1 425","Area":437,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.541286","Longitude":"-73.60775009999999","AddressLocation":"1150 Rue Bélanger, Montréal, QC, Canada","AddressLine1":"1150 Rue Bélanger","AddressLine2":"","City":"Montréal","ZipCode":"H2S 1H5","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"1150 Rue Bélanger, Montréal, QC H2S 1H5, Canada"},"BuildingUrl":"/b/202229086501005617429/410509","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/BsffC4LcIb13E6yudAESiPiQ6QAyMSyd5/medium","BuildingName":"1150 Bélanger - Tour Andrea","PriceAndDetailsVisible":true},{"ApartmentId":465598,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":8,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":60037,"PublicListBuildingName":"202250434210006003704","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":10854,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"1","Price":1195.00,"PriceFormatted":"$1 195","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.52495099999999","Longitude":"-73.5835781","AddressLocation":"4550 Rue Rivard, Montréal, QC, Canada","AddressLine1":"4550 Rue Rivard","AddressLine2":null,"City":"Montréal","ZipCode":"H2J 2N3","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"4550 Rue Rivard, Montréal, QC H2J 2N3, Canada"},"BuildingUrl":"/b/202250434210006003704/465598","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/CNfCKb5IBqr6HZTwM6rZJ4jJKIilTpqy1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/QtLYT3HOC59AQKPwK6nuC3DESq4sGJqy1/medium","BuildingName":"4550 Rivard","PriceAndDetailsVisible":true},{"ApartmentId":465601,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":8,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":60037,"PublicListBuildingName":"202250434210006003704","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":10854,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"4","Price":1195.00,"PriceFormatted":"$1 195","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.52495099999999","Longitude":"-73.5835781","AddressLocation":"4550 Rue Rivard, Montréal, QC, Canada","AddressLine1":"4550 Rue Rivard","AddressLine2":null,"City":"Montréal","ZipCode":"H2J 2N3","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"4550 Rue Rivard, Montréal, QC H2J 2N3, Canada"},"BuildingUrl":"/b/202250434210006003704/465601","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/QtLYT3HOC59AQKPwK6nuC3DESq4sGJqy1/medium","BuildingName":"4550 Rivard","PriceAndDetailsVisible":true},{"ApartmentId":465611,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":8,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":60037,"PublicListBuildingName":"202250434210006003704","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":10854,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"111","Price":1245.00,"PriceFormatted":"$1 245","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.52495099999999","Longitude":"-73.5835781","AddressLocation":"4550 Rue Rivard, Montréal, QC, Canada","AddressLine1":"4550 Rue Rivard","AddressLine2":null,"City":"Montréal","ZipCode":"H2J 2N3","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"4550 Rue Rivard, Montréal, QC H2J 2N3, Canada"},"BuildingUrl":"/b/202250434210006003704/465611","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/PN9OUMvAE6nwStHPDtbiT6utHJbOGJqy1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/QtLYT3HOC59AQKPwK6nuC3DESq4sGJqy1/medium","BuildingName":"4550 Rivard","PriceAndDetailsVisible":true},{"ApartmentId":465614,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":8,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":60037,"PublicListBuildingName":"202250434210006003704","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":10854,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"202","Price":1275.00,"PriceFormatted":"$1 275","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.52495099999999","Longitude":"-73.5835781","AddressLocation":"4550 Rue Rivard, Montréal, QC, Canada","AddressLine1":"4550 Rue Rivard","AddressLine2":null,"City":"Montréal","ZipCode":"H2J 2N3","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"4550 Rue Rivard, Montréal, QC H2J 2N3, Canada"},"BuildingUrl":"/b/202250434210006003704/465614","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/QtLYT3HOC59AQKPwK6nuC3DESq4sGJqy1/medium","BuildingName":"4550 Rivard","PriceAndDetailsVisible":true},{"ApartmentId":465619,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":8,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":60037,"PublicListBuildingName":"202250434210006003704","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":10854,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"207","Price":1265.00,"PriceFormatted":"$1 265","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.52495099999999","Longitude":"-73.5835781","AddressLocation":"4550 Rue Rivard, Montréal, QC, Canada","AddressLine1":"4550 Rue Rivard","AddressLine2":null,"City":"Montréal","ZipCode":"H2J 2N3","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"4550 Rue Rivard, Montréal, QC H2J 2N3, Canada"},"BuildingUrl":"/b/202250434210006003704/465619","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/OMepK6PKC74qCYj6CqXpK6LaPZXvTpqy1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/QtLYT3HOC59AQKPwK6nuC3DESq4sGJqy1/medium","BuildingName":"4550 Rivard","PriceAndDetailsVisible":true},{"ApartmentId":465632,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":8,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":60037,"PublicListBuildingName":"202250434210006003704","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":10854,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"308","Price":1265.00,"PriceFormatted":"$1 265","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.52495099999999","Longitude":"-73.5835781","AddressLocation":"4550 Rue Rivard, Montréal, QC, Canada","AddressLine1":"4550 Rue Rivard","AddressLine2":null,"City":"Montréal","ZipCode":"H2J 2N3","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"4550 Rue Rivard, Montréal, QC H2J 2N3, Canada"},"BuildingUrl":"/b/202250434210006003704/465632","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/QtLYT3HOC59AQKPwK6nuC3DESq4sGJqy1/medium","BuildingName":"4550 Rivard","PriceAndDetailsVisible":true},{"ApartmentId":465634,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":8,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":60037,"PublicListBuildingName":"202250434210006003704","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":10854,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"310","Price":1095.00,"PriceFormatted":"$1 095","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.52495099999999","Longitude":"-73.5835781","AddressLocation":"4550 Rue Rivard, Montréal, QC, Canada","AddressLine1":"4550 Rue Rivard","AddressLine2":null,"City":"Montréal","ZipCode":"H2J 2N3","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"4550 Rue Rivard, Montréal, QC H2J 2N3, Canada"},"BuildingUrl":"/b/202250434210006003704/465634","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/SZ1aT6mhMcCnSpDgKt4nJqfiLaDpGJqy1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/QtLYT3HOC59AQKPwK6nuC3DESq4sGJqy1/medium","BuildingName":"4550 Rivard","PriceAndDetailsVisible":true},{"ApartmentId":465640,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":8,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":60037,"PublicListBuildingName":"202250434210006003704","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":10854,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"404","Price":1285.00,"PriceFormatted":"$1 285","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.52495099999999","Longitude":"-73.5835781","AddressLocation":"4550 Rue Rivard, Montréal, QC, Canada","AddressLine1":"4550 Rue Rivard","AddressLine2":null,"City":"Montréal","ZipCode":"H2J 2N3","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"4550 Rue Rivard, Montréal, QC H2J 2N3, Canada"},"BuildingUrl":"/b/202250434210006003704/465640","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/GJTuRtPGJ4n6QaDsUZHdLJL9MMD8Tpqy1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/QtLYT3HOC59AQKPwK6nuC3DESq4sGJqy1/medium","BuildingName":"4550 Rivard","PriceAndDetailsVisible":true},{"ApartmentId":534089,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":3,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":63837,"PublicListBuildingName":"202329086505006383724","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":11641,"Title":"Agemt de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"5727R02","Price":900.00,"PriceFormatted":"$900","Area":0,"NumberOfBathrooms":0,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.50528610000001","Longitude":"-73.6226861","AddressLocation":"5727 Avenue Northmount, Montréal, QC, Canada","AddressLine1":"5727 Avenue Northmount","AddressLine2":null,"City":"Montréal","ZipCode":"H3S 2H4","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"5727 Avenue Northmount, Montréal, QC H3S 2H4, Canada"},"BuildingUrl":"/b/202329086505006383724/534089","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/HJ9iDs5OTJ12P6yuFBijFBkv8Q6oCvwU1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/ONH9DZ9lQ7XpGqTBUZ1aKLWsI3LkTpqy1/medium","BuildingName":"5727-5729 Avenue Northmount","PriceAndDetailsVisible":true},{"ApartmentId":534090,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":3,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":63837,"PublicListBuildingName":"202329086505006383724","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":11641,"Title":"Agemt de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"5727R03","Price":900.00,"PriceFormatted":"$900","Area":0,"NumberOfBathrooms":0,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.50528610000001","Longitude":"-73.6226861","AddressLocation":"5727 Avenue Northmount, Montréal, QC, Canada","AddressLine1":"5727 Avenue Northmount","AddressLine2":null,"City":"Montréal","ZipCode":"H3S 2H4","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"5727 Avenue Northmount, Montréal, QC H3S 2H4, Canada"},"BuildingUrl":"/b/202329086505006383724/534090","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/OJOmC4X3GojOQ5LnK4bFPs5qOcyYkvwU1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/ONH9DZ9lQ7XpGqTBUZ1aKLWsI3LkTpqy1/medium","BuildingName":"5727-5729 Avenue Northmount","PriceAndDetailsVisible":true},{"ApartmentId":534093,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":3,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":63837,"PublicListBuildingName":"202329086505006383724","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":11641,"Title":"Agemt de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"5729R07","Price":900.00,"PriceFormatted":"$900","Area":0,"NumberOfBathrooms":0,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.50528610000001","Longitude":"-73.6226861","AddressLocation":"5727 Avenue Northmount, Montréal, QC, Canada","AddressLine1":"5727 Avenue Northmount","AddressLine2":null,"City":"Montréal","ZipCode":"H3S 2H4","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"5727 Avenue Northmount, Montréal, QC H3S 2H4, Canada"},"BuildingUrl":"/b/202329086505006383724/534093","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/Rb1aMbfaOt9pGtWtRbbwGdDQH6rCKJqy1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/ONH9DZ9lQ7XpGqTBUZ1aKLWsI3LkTpqy1/medium","BuildingName":"5727-5729 Avenue Northmount","PriceAndDetailsVisible":true},{"ApartmentId":556711,"City":"Laval","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":1,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":65604,"PublicListBuildingName":"202359579409006560414","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":11966,"Title":"Agent de location","FullName":"Pierre-Olivier Guindon","FirstName":"Pierre-Olivier","LastName":"Guindon","Email":"pierre-olivier@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"304","Price":1745.00,"PriceFormatted":"$1 745","Area":1400,"NumberOfBathrooms":2,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.56715250000001","Longitude":"-73.7466729","AddressLocation":"2910 Rue Édouard-Montpetit, Laval, QC, Canada","AddressLine1":"2910 Rue Édouard-Montpetit","AddressLine2":null,"City":"Laval","ZipCode":"H7T 2T5","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"2910 Rue Édouard-Montpetit, Laval, QC H7T 2T5, Canada"},"BuildingUrl":"/b/202359579409006560414/556711","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/CcPBC6CuIZbIR2ywgPicgoUc6xIikvwU1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/QtasMZ1iDrbqOM53OajXRMLLQKv2Ppqy1/medium","BuildingName":"2910 Edouard Montpetit","PriceAndDetailsVisible":true},{"ApartmentId":581897,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":1,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":67401,"PublicListBuildingName":"202340221812006740112","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":14515,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"2","Price":1600.00,"PriceFormatted":"$1 600","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.54282660000001","Longitude":"-73.5954299","AddressLocation":"6365 Avenue Papineau, Montréal, QC, Canada","AddressLine1":"6365 Avenue Papineau","AddressLine2":null,"City":"Montréal","ZipCode":"H2G 2X1","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"6365 Avenue Papineau, Montréal, QC H2G 2X1, Canada"},"BuildingUrl":"/b/202340221812006740112/581897","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/U3DdE4jJHbboTM9lI3arTcXeQL1eTpqy1/medium","BuildingName":"6365 Papineau","PriceAndDetailsVisible":true},{"ApartmentId":625387,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":1,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":74831,"PublicListBuildingName":"202440221801007483125","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":12825,"Title":"Agent de location","FullName":"Kanvaly Diomande","FirstName":"Kanvaly","LastName":"Diomande","Email":"location@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"5","Price":1200.00,"PriceFormatted":"$1 200","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.55881120000001","Longitude":"-73.5689795","AddressLocation":"4033 Rue Masson, Montréal, QC, Canada","AddressLine1":"4033 Rue Masson","AddressLine2":null,"City":"Montréal","ZipCode":"H1X 1T7","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"4033 Rue Masson, Montréal, QC H1X 1T7, Canada"},"BuildingUrl":"/b/202440221801007483125/625387","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/HrKpRtSlHsKtU4LwPt9sJcOpP59CPpqy1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/OrH2HcfIJd0nDKruT6GhAp98QZHdKJqy1/medium","BuildingName":"4033 Masson","PriceAndDetailsVisible":true},{"ApartmentId":642433,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":1,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":75610,"PublicListBuildingName":"202429086503007561028","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":14086,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"305","Price":1495.00,"PriceFormatted":"$1 495","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5022257","Longitude":"-73.6610074","AddressLocation":"5105 Rue Sax, Montréal, QC, Canada","AddressLine1":"5105 Rue Sax","AddressLine2":null,"City":"Montréal","ZipCode":"H4P 1C7","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"5105 Rue Sax, Montréal, QC H4P 1C7, Canada"},"BuildingUrl":"/b/202429086503007561028/642433","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/RsfoTYybD2qvkZQRCp6PBImcE2cfA9wU1/medium","BuildingName":"5105 Rue Sax","PriceAndDetailsVisible":true},{"ApartmentId":653034,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":1,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":75618,"PublicListBuildingName":"202429086503007561828","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":14095,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary ","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"4","Price":900.00,"PriceFormatted":"$900","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5252093","Longitude":"-73.6238706","AddressLocation":"7000 Av. Wiseman, Montréal, QC, Canada","AddressLine1":"7000 Avenue Wiseman","AddressLine2":null,"City":"Montréal","ZipCode":"H3N 2N2","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"7000 Avenue Wiseman, Montréal, QC H3N 2N2, Canada"},"BuildingUrl":"/b/202429086503007561828/653034","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/RN8qLMrLIaXwGKHfTKn9UM5CUcvhKJqy1/medium","BuildingName":"7000 Av. Wiseman","PriceAndDetailsVisible":true},{"ApartmentId":653278,"City":"Montréal","ParkingsIsAvailable":true,"StoragesIsAvailable":true,"NumberOfAvailableUnits":1,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":75724,"PublicListBuildingName":"202440221804007572410","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":14431,"Title":"Agent de Location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"210","Price":2295.00,"PriceFormatted":"$2 295","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.534312","Longitude":"-73.62127989999999","AddressLocation":"75 Rue de Castelnau Ouest, Montréal, QC, Canada","AddressLine1":"75 Rue de Castelnau Ouest","AddressLine2":null,"City":"Montréal","ZipCode":"H2R 0B9","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"75 Rue de Castelnau Ouest, Montréal, QC H2R 0B9, Canada"},"BuildingUrl":"/b/202440221804007572410/653278","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/JqT9Kqn4IKarRpTDDpGlCoyqEJ4SivwU1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/T6PACsSnU6WsGJDwS71mTIyvepoRA9wU1/medium","BuildingName":"75 Castelnau","PriceAndDetailsVisible":true},{"ApartmentId":653281,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":1,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":75725,"PublicListBuildingName":"202440221804007572510","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":15214,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"313","Price":1750.00,"PriceFormatted":"$1 750","Area":0,"NumberOfBathrooms":0,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.51251870000001","Longitude":"-73.5561792","AddressLocation":"440 Rue de la Gauchetière Est, Montréal, QC, Canada","AddressLine1":"440 Rue de la Gauchetière Est","AddressLine2":null,"City":"Montréal","ZipCode":"H2L 2M5","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"440 Rue de la Gauchetière Est, Montréal, QC H2L 2M5, Canada"},"BuildingUrl":"/b/202440221804007572510/653281","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/QtXOKaXuDJ4mCZHELcWmR4fKT7fkPpqy1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/PJXmGdfEIdPKQ6nuTt5iU75GD3bYGJqy1/medium","BuildingName":"440 Gauchetière","PriceAndDetailsVisible":true},{"ApartmentId":666612,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":1,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":75726,"PublicListBuildingName":"202440221804007572610","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"1","Price":1295.00,"PriceFormatted":"$1 295","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.54371039999999","Longitude":"-73.5889029","AddressLocation":"2149 Boulevard Rosemont, Montréal, QC, Canada","AddressLine1":"2149 Boulevard Rosemont","AddressLine2":null,"City":"Montréal","ZipCode":"H2G 1T3","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"2149 Boulevard Rosemont, Montréal, QC H2G 1T3, Canada"},"BuildingUrl":"/b/202440221804007572610/666612","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/S65BGbHGD6HbHKHfC5bGD2yokpaie9wU1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/P6PqJdTMRZPnCbKhJdXEQ3DDGKutTpqy1/medium","BuildingName":"2149 Rosemont","PriceAndDetailsVisible":true},{"ApartmentId":656713,"City":"Saint-Calixte","ParkingsIsAvailable":true,"StoragesIsAvailable":false,"NumberOfAvailableUnits":1,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":75916,"PublicListBuildingName":"202429086504007591619","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":12730,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"5920","Price":1300.00,"PriceFormatted":"$1 300","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.9468354","Longitude":"-73.8484319","AddressLocation":"5912 Route 335, Saint-Calixte, QC, Canada","AddressLine1":"5912 Québec 335","AddressLine2":null,"City":"Saint-Calixte","ZipCode":"J0K 1Z0","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"5912 Québec 335, Saint-Calixte, QC J0K 1Z0, Canada"},"BuildingUrl":"/b/202429086504007591619/656713","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/S5TLPZPdEKL9RcL4LLDpUb1BLoj7Tpqy1/medium","BuildingName":"5912 à 5922 RTE 335","PriceAndDetailsVisible":true},{"ApartmentId":658939,"City":"Montréal","ParkingsIsAvailable":true,"StoragesIsAvailable":true,"NumberOfAvailableUnits":2,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":76006,"PublicListBuildingName":"202429086505007600602","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":12795,"Title":"Agent de location","FullName":"Kanvaly Diomande","FirstName":"Kanvaly","LastName":"Diomande","Email":"location@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"2","Price":1295.00,"PriceFormatted":"$1 295","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5588511","Longitude":"-73.54664679999999","AddressLocation":"2615 Avenue Aird, Montréal, QC, Canada","AddressLine1":"2615 Avenue Aird","AddressLine2":null,"City":"Montréal","ZipCode":"H1V 2W8","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"2615 Avenue Aird, Montréal, QC H1V 2W8, Canada"},"BuildingUrl":"/b/202429086505007600602/658939","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/LtPICKnNR71KHaj9R597E7DGKKbYTpqy1/medium","BuildingName":"2615 Av Aird","PriceAndDetailsVisible":true},{"ApartmentId":658955,"City":"Montréal","ParkingsIsAvailable":true,"StoragesIsAvailable":true,"NumberOfAvailableUnits":2,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":76006,"PublicListBuildingName":"202429086505007600602","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":12795,"Title":"Agent de location","FullName":"Kanvaly Diomande","FirstName":"Kanvaly","LastName":"Diomande","Email":"location@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"19","Price":1495.00,"PriceFormatted":"$1 495","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5588511","Longitude":"-73.54664679999999","AddressLocation":"2615 Avenue Aird, Montréal, QC, Canada","AddressLine1":"2615 Avenue Aird","AddressLine2":null,"City":"Montréal","ZipCode":"H1V 2W8","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"2615 Avenue Aird, Montréal, QC H1V 2W8, Canada"},"BuildingUrl":"/b/202429086505007600602/658955","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/LtPICKnNR71KHaj9R597E7DGKKbYTpqy1/medium","BuildingName":"2615 Av Aird","PriceAndDetailsVisible":true},{"ApartmentId":667174,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":1,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":76207,"PublicListBuildingName":"202429086505007620724","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"2","Price":1150.00,"PriceFormatted":"$1 150","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5438479","Longitude":"-73.5891329","AddressLocation":"5910 Avenue des Érables, Montréal, QC, Canada","AddressLine1":"5910 Avenue des Érables","AddressLine2":null,"City":"Montréal","ZipCode":"H2G 2M5","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"5910 Avenue des Érables, Montréal, QC H2G 2M5, Canada"},"BuildingUrl":"/b/202429086505007620724/667174","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/R6HFJKCnLKmpBsXnLtXjD6LpIabZKJqy1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/HrbLQ3WoELXvOs4mCIjMJdfvJ3HOKJqy1/medium","BuildingName":"5910 des Érables","PriceAndDetailsVisible":true},{"ApartmentId":680780,"City":"Blainville","ParkingsIsAvailable":true,"StoragesIsAvailable":false,"NumberOfAvailableUnits":2,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":76772,"PublicListBuildingName":"202440221807007677211","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"2","Price":1200.00,"PriceFormatted":"$1 200","Area":0,"NumberOfBathrooms":0,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.6745184","Longitude":"-73.88718779999999","AddressLocation":"Blainville, QC J7C 3E8, Canada","AddressLine1":"13 Royale","AddressLine2":null,"City":"Blainville","ZipCode":"J7C 3E8","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"13 Royale, Blainville, QC J7C 3E8, Canada"},"BuildingUrl":"/b/202440221807007677211/680780","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/CJPZQaTCOt0rEMPFHqyrDogriRWgEvwU1/medium","BuildingName":"13 Royale","PriceAndDetailsVisible":true},{"ApartmentId":680785,"City":"Blainville","ParkingsIsAvailable":true,"StoragesIsAvailable":false,"NumberOfAvailableUnits":2,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":76772,"PublicListBuildingName":"202440221807007677211","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"7","Price":1600.00,"PriceFormatted":"$1 600","Area":0,"NumberOfBathrooms":0,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.6745184","Longitude":"-73.88718779999999","AddressLocation":"Blainville, QC J7C 3E8, Canada","AddressLine1":"13 Royale","AddressLine2":null,"City":"Blainville","ZipCode":"J7C 3E8","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"13 Royale, Blainville, QC J7C 3E8, Canada"},"BuildingUrl":"/b/202440221807007677211/680785","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/CJPZQaTCOt0rEMPFHqyrDogriRWgEvwU1/medium","BuildingName":"13 Royale","PriceAndDetailsVisible":true},{"ApartmentId":687631,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":1,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":77045,"PublicListBuildingName":"202429086508007704505","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":12969,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"212","Price":1375.00,"PriceFormatted":"$1 375","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5534762","Longitude":"-73.5715673","AddressLocation":"3530 Rue Masson, Montréal, QC, Canada","AddressLine1":"3530 Rue Masson","AddressLine2":null,"City":"Montréal","ZipCode":"H1X 1R9","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"3530 Rue Masson, Montréal, QC H1X 1R9, Canada"},"BuildingUrl":"/b/202429086508007704505/687631","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/M5CtINLLL5HNGN17HqTPHpTEPqfHKJqy1/medium","BuildingName":"3530 Masson","PriceAndDetailsVisible":true},{"ApartmentId":725121,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":1,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":79330,"PublicListBuildingName":"202440221812007933017","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"3","Price":1875.00,"PriceFormatted":"$1 875","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5297978","Longitude":"-73.6107164","AddressLocation":"6535 Rue Saint-Urbain, Montréal, QC, Canada","AddressLine1":"6535 Rue Saint-Urbain","AddressLine2":null,"City":"Montréal","ZipCode":"H2S 3G6","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"6535 Rue Saint-Urbain, Montréal, QC H2S 3G6, Canada"},"BuildingUrl":"/b/202440221812007933017/725121","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/QKvIQqSqTZPnMKTbMaHFGrHPJtWqKJqy1/medium","BuildingName":"6535 Saint-Urbain","PriceAndDetailsVisible":true},{"ApartmentId":749213,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":1,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":80889,"PublicListBuildingName":"202529086503008088913","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":14576,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"location@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"594","Price":1400.00,"PriceFormatted":"$1 400","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5865771","Longitude":"-73.50952199999999","AddressLocation":"588 Rue Lepailleur, Montréal, QC, Canada","AddressLine1":"588 Rue Lepailleur","AddressLine2":null,"City":"Montréal","ZipCode":"H1L 6C6","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"588 Rue Lepailleur, Montréal, QC H1L 6C6, Canada"},"BuildingUrl":"/b/202529086503008088913/749213","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/KNLlD7fEQ3D2TaCvLaaqMNXDTMLBPpqy1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/CrfsPKDNKt5eKqr8HsvkQbLfAsHXGJqy1/medium","BuildingName":"588-594 Lepailleur","PriceAndDetailsVisible":true},{"ApartmentId":749226,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":2,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":80891,"PublicListBuildingName":"202529086503008089113","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":15021,"Title":"agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"16","Price":995.00,"PriceFormatted":"$995","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.528533","Longitude":"-73.5908226","AddressLocation":"5255 Rivard Street, Montréal, QC, Canada","AddressLine1":"5255 Rue Rivard","AddressLine2":null,"City":"Montréal","ZipCode":"H2J 2P5","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"5255 Rue Rivard, Montréal, QC H2J 2P5, Canada"},"BuildingUrl":"/b/202529086503008089113/749226","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/T7PhK5H5Ob9sQZ1OHtLkM4PlKsDAGJqy1/medium","BuildingName":"5255 Rivard","PriceAndDetailsVisible":true},{"ApartmentId":749230,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":2,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":80891,"PublicListBuildingName":"202529086503008089113","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":15021,"Title":"agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"22","Price":1250.00,"PriceFormatted":"$1 250","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.528533","Longitude":"-73.5908226","AddressLocation":"5255 Rivard Street, Montréal, QC, Canada","AddressLine1":"5255 Rue Rivard","AddressLine2":null,"City":"Montréal","ZipCode":"H2J 2P5","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"5255 Rue Rivard, Montréal, QC H2J 2P5, Canada"},"BuildingUrl":"/b/202529086503008089113/749230","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/T7PhK5H5Ob9sQZ1OHtLkM4PlKsDAGJqy1/medium","BuildingName":"5255 Rivard","PriceAndDetailsVisible":true},{"ApartmentId":749245,"City":"Lachine","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":1,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":80892,"PublicListBuildingName":"202529086503008089213","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"1","Price":1362.00,"PriceFormatted":"$1 362","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":3,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.4487422","Longitude":"-73.6504823","AddressLocation":"180 Avenue de Mount Vernon, Montrã©Al, QC, Canada","AddressLine1":"180 Avenue de Mount Vernon","AddressLine2":null,"City":"Lachine","ZipCode":"H8R 1K1","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"180 Avenue de Mount Vernon, Lachine, QC H8R 1K1, Canada"},"BuildingUrl":"/b/202529086503008089213/749245","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/KqfNDMrCQMioSMPLGaThTMnjHcKuGJqy1/medium","BuildingName":"180 Mount Vernon","PriceAndDetailsVisible":true},{"ApartmentId":774376,"City":"Blainville","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":1,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":81798,"PublicListBuildingName":"202529086504008179814","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"23-2","Price":1200.00,"PriceFormatted":"$1 200","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.683121","Longitude":"-73.885643","AddressLocation":"19 Rue de l'Herboriste, Blainville, QC, Canada","AddressLine1":"19 Rue de l'Herboriste","AddressLine2":null,"City":"Blainville","ZipCode":"J7C 4G7","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"19 Rue de l'Herboriste, Blainville, QC J7C 4G7, Canada"},"BuildingUrl":"/b/202529086504008179814/774376","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/RNLfDsyxA28pjhqd6Hii8YcmeYQOA9wU1/medium","BuildingName":"19 de l'Herboriste","PriceAndDetailsVisible":true},{"ApartmentId":805640,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":3,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":82690,"PublicListBuildingName":"202529086507008269019","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"16","Price":1000.00,"PriceFormatted":"$1 000","Area":0,"NumberOfBathrooms":0,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5049854","Longitude":"-73.63337159999999","AddressLocation":"3260 Avenue Barclay, Montreal, QC, Canada","AddressLine1":"3260 Avenue Barclay","AddressLine2":null,"City":"Montréal","ZipCode":"H3S 1K1","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"3260 Avenue Barclay, Montréal, QC H3S 1K1, Canada"},"BuildingUrl":"/b/202529086507008269019/805640","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/KMyuFAKjDxIu92Msc1WpineaeQKpEvwU1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/HIj8QMPKIMbJJKPpU3XmK6DjKqmvPpqy1/medium","BuildingName":"3260 Avenue Barclay","PriceAndDetailsVisible":true},{"ApartmentId":805641,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":3,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":82690,"PublicListBuildingName":"202529086507008269019","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"1","Price":1115.00,"PriceFormatted":"$1 115","Area":0,"NumberOfBathrooms":0,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5049854","Longitude":"-73.63337159999999","AddressLocation":"3260 Avenue Barclay, Montreal, QC, Canada","AddressLine1":"3260 Avenue Barclay","AddressLine2":null,"City":"Montréal","ZipCode":"H3S 1K1","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"3260 Avenue Barclay, Montréal, QC H3S 1K1, Canada"},"BuildingUrl":"/b/202529086507008269019/805641","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/HIj8QMPKIMbJJKPpU3XmK6DjKqmvPpqy1/medium","BuildingName":"3260 Avenue Barclay","PriceAndDetailsVisible":true},{"ApartmentId":805642,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":3,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":82690,"PublicListBuildingName":"202529086507008269019","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"12","Price":1600.00,"PriceFormatted":"$1 600","Area":0,"NumberOfBathrooms":0,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5049854","Longitude":"-73.63337159999999","AddressLocation":"3260 Avenue Barclay, Montreal, QC, Canada","AddressLine1":"3260 Avenue Barclay","AddressLine2":null,"City":"Montréal","ZipCode":"H3S 1K1","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"3260 Avenue Barclay, Montréal, QC H3S 1K1, Canada"},"BuildingUrl":"/b/202529086507008269019/805642","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/OsLKDKSvHMbXMaX3PLHCC311I697Tpqy1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/HIj8QMPKIMbJJKPpU3XmK6DjKqmvPpqy1/medium","BuildingName":"3260 Avenue Barclay","PriceAndDetailsVisible":true},{"ApartmentId":805585,"City":"Granby","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":3,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":82693,"PublicListBuildingName":"202529086507008269319","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":15215,"Title":"agent de location","FullName":"zachary pilon","FirstName":"zachary","LastName":"pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"15","Price":925.00,"PriceFormatted":"$925","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.4038655","Longitude":"-72.7625758","AddressLocation":"332 Rue Massé, Granby, QC J2J 1V7, Canada","AddressLine1":"332 Rue Massé","AddressLine2":null,"City":"Granby","ZipCode":"J2J 1V7","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"332 Rue Massé, Granby, QC J2J 1V7, Canada"},"BuildingUrl":"/b/202529086507008269319/805585","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/OsTeRbLBJr9CTd5EGpXXKJ8qCayy6Syd5/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/Kc5mQsntRtClMNDEH7GsRIytjIex89wU1/medium","BuildingName":"332 Rue Massé","PriceAndDetailsVisible":true},{"ApartmentId":805590,"City":"Granby","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":3,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":82693,"PublicListBuildingName":"202529086507008269319","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":15215,"Title":"agent de location","FullName":"zachary pilon","FirstName":"zachary","LastName":"pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"18","Price":1025.00,"PriceFormatted":"$1 025","Area":0,"NumberOfBathrooms":2,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.4038655","Longitude":"-72.7625758","AddressLocation":"332 Rue Massé, Granby, QC J2J 1V7, Canada","AddressLine1":"332 Rue Massé","AddressLine2":null,"City":"Granby","ZipCode":"J2J 1V7","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"332 Rue Massé, Granby, QC J2J 1V7, Canada"},"BuildingUrl":"/b/202529086507008269319/805590","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/DsTKJZ9rHcfJIcr3PZXJLr17RNboGJqy1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/Kc5mQsntRtClMNDEH7GsRIytjIex89wU1/medium","BuildingName":"332 Rue Massé","PriceAndDetailsVisible":true},{"ApartmentId":805593,"City":"Granby","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":3,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":82693,"PublicListBuildingName":"202529086507008269319","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":15215,"Title":"agent de location","FullName":"zachary pilon","FirstName":"zachary","LastName":"pilon","Email":"zachary@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"1","Price":995.00,"PriceFormatted":"$995","Area":0,"NumberOfBathrooms":2,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.4038655","Longitude":"-72.7625758","AddressLocation":"332 Rue Massé, Granby, QC J2J 1V7, Canada","AddressLine1":"332 Rue Massé","AddressLine2":null,"City":"Granby","ZipCode":"J2J 1V7","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"332 Rue Massé, Granby, QC J2J 1V7, Canada"},"BuildingUrl":"/b/202529086507008269319/805593","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/Kc5mQsntRtClMNDEH7GsRIytjIex89wU1/medium","BuildingName":"332 Rue Massé","PriceAndDetailsVisible":true},{"ApartmentId":805682,"City":"Longueuil","ParkingsIsAvailable":true,"StoragesIsAvailable":false,"NumberOfAvailableUnits":3,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":82694,"PublicListBuildingName":"202529086507008269419","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"10","Price":790.00,"PriceFormatted":"$790","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5146665","Longitude":"-73.4952504","AddressLocation":"1227 Rue Front, Longueuil, QC J4K 2B4, Canada","AddressLine1":"1227 Rue Front","AddressLine2":null,"City":"Longueuil","ZipCode":"J4K 2B4","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"1227 Rue Front, Longueuil, QC J4K 2B4, Canada"},"BuildingUrl":"/b/202529086507008269419/805682","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/QNXfT3XHArfNHayslJoyavrSd94PMSyd5/medium","BuildingName":"1227 Rue Front","PriceAndDetailsVisible":true},{"ApartmentId":805683,"City":"Longueuil","ParkingsIsAvailable":true,"StoragesIsAvailable":false,"NumberOfAvailableUnits":3,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":82694,"PublicListBuildingName":"202529086507008269419","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"6","Price":1325.00,"PriceFormatted":"$1 325","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5146665","Longitude":"-73.4952504","AddressLocation":"1227 Rue Front, Longueuil, QC J4K 2B4, Canada","AddressLine1":"1227 Rue Front","AddressLine2":null,"City":"Longueuil","ZipCode":"J4K 2B4","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"1227 Rue Front, Longueuil, QC J4K 2B4, Canada"},"BuildingUrl":"/b/202529086507008269419/805683","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/QNXfT3XHArfNHayslJoyavrSd94PMSyd5/medium","BuildingName":"1227 Rue Front","PriceAndDetailsVisible":true},{"ApartmentId":805684,"City":"Longueuil","ParkingsIsAvailable":true,"StoragesIsAvailable":false,"NumberOfAvailableUnits":3,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":82694,"PublicListBuildingName":"202529086507008269419","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"3","Price":1250.00,"PriceFormatted":"$1 250","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5146665","Longitude":"-73.4952504","AddressLocation":"1227 Rue Front, Longueuil, QC J4K 2B4, Canada","AddressLine1":"1227 Rue Front","AddressLine2":null,"City":"Longueuil","ZipCode":"J4K 2B4","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"1227 Rue Front, Longueuil, QC J4K 2B4, Canada"},"BuildingUrl":"/b/202529086507008269419/805684","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/EJDaCMLOHNbQGbPwJb9bCKH1C6PCTpqy1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/QNXfT3XHArfNHayslJoyavrSd94PMSyd5/medium","BuildingName":"1227 Rue Front","PriceAndDetailsVisible":true},{"ApartmentId":805850,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":1,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":82710,"PublicListBuildingName":"202529086507008271019","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"1","Price":3160.00,"PriceFormatted":"$3 160","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5130469","Longitude":"-73.57398049999999","AddressLocation":"3615 Rue Saint-Urbain, Montréal, QC H2X 2N9, Canada","AddressLine1":"3615 Rue Saint-Urbain","AddressLine2":null,"City":"Montréal","ZipCode":"H2X 2N9","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"3615 Rue Saint-Urbain, Montréal, QC H2X 2N9, Canada"},"BuildingUrl":"/b/202529086507008271019/805850","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/MaPBRargJt5ACN9HR5T1DamoQdTCGJqy1/medium","BuildingName":"3615 Rue Saint-Urbain","PriceAndDetailsVisible":true},{"ApartmentId":805851,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":1,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":82712,"PublicListBuildingName":"202529086507008271219","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"3800","Price":1775.00,"PriceFormatted":"$1 775","Area":0,"NumberOfBathrooms":0,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5512576","Longitude":"-73.5568274","AddressLocation":"3800 Rue Rachel E, Montreal, QC, Canada","AddressLine1":"3800 Rue Rachel Est","AddressLine2":null,"City":"Montréal","ZipCode":"H1X 1Y9","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"3800 Rue Rachel Est, Montréal, QC H1X 1Y9, Canada"},"BuildingUrl":"/b/202529086507008271219/805851","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/Ctb4DKrBJ2yQ89on8hkyZalOcXaEK4yd5/medium","BuildingName":"3800 Rue Rachel East","PriceAndDetailsVisible":true},{"ApartmentId":805819,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":1,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":82728,"PublicListBuildingName":"202529086507008272819","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"2422","Price":1950.00,"PriceFormatted":"$1 950","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":3,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5359522","Longitude":"-73.56136","AddressLocation":"Rue D'Iberville, Montréal, QC H2K 3E3, Canada","AddressLine1":"- Rue D'Iberville","AddressLine2":null,"City":"Montréal","ZipCode":"H2K 3E3","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"- Rue D'Iberville, Montréal, QC H2K 3E3, Canada"},"BuildingUrl":"/b/202529086507008272819/805819","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/Ma9kSKXLL4veJpDlEM5aT51cGKHmKJqy1/medium","BuildingName":"2422-2426 Rue Iberville","PriceAndDetailsVisible":true},{"ApartmentId":805809,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":4,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":82729,"PublicListBuildingName":"202529086507008272919","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"2434","Price":1085.00,"PriceFormatted":"$1 085","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.4773371","Longitude":"-73.5621896","AddressLocation":"Coleraine Street, Montréal, QC H3K 1S4, Canada","AddressLine1":"- Coleraine Street","AddressLine2":null,"City":"Montreal","ZipCode":"H3K 1S4","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"- Coleraine Street, Montreal, QC H3K 1S4, Canada"},"BuildingUrl":"/b/202529086507008272919/805809","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/DojuELD6QdSoP71tHcfYTbetMcXgKJqy1/medium","BuildingName":"2430-2436 Coleraine Street","PriceAndDetailsVisible":true},{"ApartmentId":805810,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":4,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":82729,"PublicListBuildingName":"202529086507008272919","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"2436","Price":1130.00,"PriceFormatted":"$1 130","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.4773371","Longitude":"-73.5621896","AddressLocation":"Coleraine Street, Montréal, QC H3K 1S4, Canada","AddressLine1":"- Coleraine Street","AddressLine2":null,"City":"Montreal","ZipCode":"H3K 1S4","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"- Coleraine Street, Montreal, QC H3K 1S4, Canada"},"BuildingUrl":"/b/202529086507008272919/805810","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/DojuELD6QdSoP71tHcfYTbetMcXgKJqy1/medium","BuildingName":"2430-2436 Coleraine Street","PriceAndDetailsVisible":true},{"ApartmentId":805811,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":4,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":82729,"PublicListBuildingName":"202529086507008272919","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"2432","Price":1145.00,"PriceFormatted":"$1 145","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.4773371","Longitude":"-73.5621896","AddressLocation":"Coleraine Street, Montréal, QC H3K 1S4, Canada","AddressLine1":"- Coleraine Street","AddressLine2":null,"City":"Montreal","ZipCode":"H3K 1S4","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"- Coleraine Street, Montreal, QC H3K 1S4, Canada"},"BuildingUrl":"/b/202529086507008272919/805811","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/DojuELD6QdSoP71tHcfYTbetMcXgKJqy1/medium","BuildingName":"2430-2436 Coleraine Street","PriceAndDetailsVisible":true},{"ApartmentId":805812,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":4,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":82729,"PublicListBuildingName":"202529086507008272919","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"2430","Price":1550.00,"PriceFormatted":"$1 550","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.4773371","Longitude":"-73.5621896","AddressLocation":"Coleraine Street, Montréal, QC H3K 1S4, Canada","AddressLine1":"- Coleraine Street","AddressLine2":null,"City":"Montreal","ZipCode":"H3K 1S4","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"- Coleraine Street, Montreal, QC H3K 1S4, Canada"},"BuildingUrl":"/b/202529086507008272919/805812","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/DojuELD6QdSoP71tHcfYTbetMcXgKJqy1/medium","BuildingName":"2430-2436 Coleraine Street","PriceAndDetailsVisible":true},{"ApartmentId":818329,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":1,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":82804,"PublicListBuildingName":"202529086507008280429","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"6","Price":1500.00,"PriceFormatted":"$1 500","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5407422","Longitude":"-73.66798709999999","AddressLocation":"10180 Rue Meilleur, Montréal, QC, Canada","AddressLine1":"10180 Rue Meilleur","AddressLine2":null,"City":"Montréal","ZipCode":"H3L 3J8","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"10180 Rue Meilleur, Montréal, QC H3L 3J8, Canada"},"BuildingUrl":"/b/202529086507008280429/818329","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/J6LPCa5QRsLYKsbwHbX4R5f5K78rPpqy1/medium","BuildingName":"10180 Rue Meilleur","PriceAndDetailsVisible":true},{"ApartmentId":814011,"City":"Saint-Jérôme","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":4,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":82849,"PublicListBuildingName":"202582385208008284905","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":14723,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"location@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"1","Price":1000.00,"PriceFormatted":"$1 000","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.7806799","Longitude":"-74.0065446","AddressLocation":"459 Rue Laviolette, Saint-Jérôme, QC, Canada","AddressLine1":"459 Rue Laviolette","AddressLine2":"","City":"Saint-Jérôme","ZipCode":"J7Y 2T8","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"459 Rue Laviolette, Saint-Jérôme, QC J7Y 2T8, Canada"},"BuildingUrl":"/b/202582385208008284905/814011","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/Q4XdEK5XTcfiE6D4LtLBJayofx2qe9wU1/medium","BuildingName":"459 Laviolette","PriceAndDetailsVisible":true},{"ApartmentId":814012,"City":"Saint-Jérôme","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":4,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":82849,"PublicListBuildingName":"202582385208008284905","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":14723,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"location@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"2","Price":1000.00,"PriceFormatted":"$1 000","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.7806799","Longitude":"-74.0065446","AddressLocation":"459 Rue Laviolette, Saint-Jérôme, QC, Canada","AddressLine1":"459 Rue Laviolette","AddressLine2":"","City":"Saint-Jérôme","ZipCode":"J7Y 2T8","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"459 Rue Laviolette, Saint-Jérôme, QC J7Y 2T8, Canada"},"BuildingUrl":"/b/202582385208008284905/814012","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/Q4XdEK5XTcfiE6D4LtLBJayofx2qe9wU1/medium","BuildingName":"459 Laviolette","PriceAndDetailsVisible":true},{"ApartmentId":814013,"City":"Saint-Jérôme","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":4,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":82849,"PublicListBuildingName":"202582385208008284905","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":14723,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"location@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"3","Price":1000.00,"PriceFormatted":"$1 000","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.7806799","Longitude":"-74.0065446","AddressLocation":"459 Rue Laviolette, Saint-Jérôme, QC, Canada","AddressLine1":"459 Rue Laviolette","AddressLine2":"","City":"Saint-Jérôme","ZipCode":"J7Y 2T8","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"459 Rue Laviolette, Saint-Jérôme, QC J7Y 2T8, Canada"},"BuildingUrl":"/b/202582385208008284905/814013","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/Q4XdEK5XTcfiE6D4LtLBJayofx2qe9wU1/medium","BuildingName":"459 Laviolette","PriceAndDetailsVisible":true},{"ApartmentId":814016,"City":"Saint-Jérôme","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":4,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":82849,"PublicListBuildingName":"202582385208008284905","Phone":"+14388011080","ListingEmployeesContacts":[{"ListingEmployeesContactId":14723,"Title":"Agent de location","FullName":"Zachary Pilon","FirstName":"Zachary","LastName":"Pilon","Email":"location@summumpm.com","PhoneNumber":"+14388011080","PhoneNumberExtension":"","FormattedPhoneNumber":"(438) 801-1080","Language":1,"AgentType":0}]},"Apartment":{"UnitName":"463","Price":1300.00,"PriceFormatted":"$1 300","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":3,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.7806799","Longitude":"-74.0065446","AddressLocation":"459 Rue Laviolette, Saint-Jérôme, QC, Canada","AddressLine1":"459 Rue Laviolette","AddressLine2":"","City":"Saint-Jérôme","ZipCode":"J7Y 2T8","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"459 Rue Laviolette, Saint-Jérôme, QC J7Y 2T8, Canada"},"BuildingUrl":"/b/202582385208008284905/814016","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/Q4XdEK5XTcfiE6D4LtLBJayofx2qe9wU1/medium","BuildingName":"459 Laviolette","PriceAndDetailsVisible":true},{"ApartmentId":819838,"City":"Montréal","ParkingsIsAvailable":true,"StoragesIsAvailable":false,"NumberOfAvailableUnits":1,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":83067,"PublicListBuildingName":"202529086508008306727","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"15","Price":1200.00,"PriceFormatted":"$1 200","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5442368","Longitude":"-73.5791704","AddressLocation":"5554 Place Basile Patenaude, Montréal, QC, Canada","AddressLine1":"5554 Place Basile Patenaude","AddressLine2":null,"City":"Montréal","ZipCode":"H1Y 3E4","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"5554 Place Basile Patenaude, Montréal, QC H1Y 3E4, Canada"},"BuildingUrl":"/b/202529086508008306727/819838","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/QJ9bE7X7Bp9PIaHhLpHhP31EDKPOKJqy1/medium","BuildingName":"5554 Basile Patenaude","PriceAndDetailsVisible":true},{"ApartmentId":819854,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":3,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":83071,"PublicListBuildingName":"202529086508008307127","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"2","Price":975.00,"PriceFormatted":"$975","Area":413,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5610132","Longitude":"-73.5752445","AddressLocation":"5960 Boulevard Pie-IX, Montréal, QC, Canada","AddressLine1":"5960 Boulevard Pie-IX","AddressLine2":null,"City":"Montréal","ZipCode":"H1X 2C2","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"5960 Boulevard Pie-IX, Montréal, QC H1X 2C2, Canada"},"BuildingUrl":"/b/202529086508008307127/819854","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/DsTkJ3SqJ3XkKt5OHpTLJbbMIsyS89wU1/medium","BuildingName":"5960 Pie IX","PriceAndDetailsVisible":true},{"ApartmentId":819859,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":3,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":83071,"PublicListBuildingName":"202529086508008307127","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"7","Price":1100.00,"PriceFormatted":"$1 100","Area":479,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5610132","Longitude":"-73.5752445","AddressLocation":"5960 Boulevard Pie-IX, Montréal, QC, Canada","AddressLine1":"5960 Boulevard Pie-IX","AddressLine2":null,"City":"Montréal","ZipCode":"H1X 2C2","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"5960 Boulevard Pie-IX, Montréal, QC H1X 2C2, Canada"},"BuildingUrl":"/b/202529086508008307127/819859","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/DsTkJ3SqJ3XkKt5OHpTLJbbMIsyS89wU1/medium","BuildingName":"5960 Pie IX","PriceAndDetailsVisible":true},{"ApartmentId":819866,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":3,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":83071,"PublicListBuildingName":"202529086508008307127","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"17","Price":1190.00,"PriceFormatted":"$1 190","Area":487,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5610132","Longitude":"-73.5752445","AddressLocation":"5960 Boulevard Pie-IX, Montréal, QC, Canada","AddressLine1":"5960 Boulevard Pie-IX","AddressLine2":null,"City":"Montréal","ZipCode":"H1X 2C2","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"5960 Boulevard Pie-IX, Montréal, QC H1X 2C2, Canada"},"BuildingUrl":"/b/202529086508008307127/819866","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/DsTkJ3SqJ3XkKt5OHpTLJbbMIsyS89wU1/medium","BuildingName":"5960 Pie IX","PriceAndDetailsVisible":true},{"ApartmentId":920538,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":7,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":86496,"PublicListBuildingName":"202629086502008649625","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"1","Price":932.00,"PriceFormatted":"$932","Area":0,"NumberOfBathrooms":0,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5462996","Longitude":"-73.6048045","AddressLocation":"6995 Rue Marquette, Montreal, QC, Canada","AddressLine1":"6995 Rue Marquette","AddressLine2":null,"City":"Montréal","ZipCode":"H2E 2C6","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"6995 Rue Marquette, Montréal, QC H2E 2C6, Canada"},"BuildingUrl":"/b/202629086502008649625/920538","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/P70vM2jMHr57PMjMAqHPQ5HtMK4vGJqy1/medium","BuildingName":"6995 Marquette","PriceAndDetailsVisible":true},{"ApartmentId":920539,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":7,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":86496,"PublicListBuildingName":"202629086502008649625","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"6","Price":1045.00,"PriceFormatted":"$1 045","Area":0,"NumberOfBathrooms":0,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5462996","Longitude":"-73.6048045","AddressLocation":"6995 Rue Marquette, Montreal, QC, Canada","AddressLine1":"6995 Rue Marquette","AddressLine2":null,"City":"Montréal","ZipCode":"H2E 2C6","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"6995 Rue Marquette, Montréal, QC H2E 2C6, Canada"},"BuildingUrl":"/b/202629086502008649625/920539","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/P70vM2jMHr57PMjMAqHPQ5HtMK4vGJqy1/medium","BuildingName":"6995 Marquette","PriceAndDetailsVisible":true},{"ApartmentId":920540,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":7,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":86496,"PublicListBuildingName":"202629086502008649625","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"5","Price":947.00,"PriceFormatted":"$947","Area":0,"NumberOfBathrooms":0,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5462996","Longitude":"-73.6048045","AddressLocation":"6995 Rue Marquette, Montreal, QC, Canada","AddressLine1":"6995 Rue Marquette","AddressLine2":null,"City":"Montréal","ZipCode":"H2E 2C6","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"6995 Rue Marquette, Montréal, QC H2E 2C6, Canada"},"BuildingUrl":"/b/202629086502008649625/920540","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/P70vM2jMHr57PMjMAqHPQ5HtMK4vGJqy1/medium","BuildingName":"6995 Marquette","PriceAndDetailsVisible":true},{"ApartmentId":920541,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":7,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":86496,"PublicListBuildingName":"202629086502008649625","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"4","Price":1287.00,"PriceFormatted":"$1 287","Area":0,"NumberOfBathrooms":0,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5462996","Longitude":"-73.6048045","AddressLocation":"6995 Rue Marquette, Montreal, QC, Canada","AddressLine1":"6995 Rue Marquette","AddressLine2":null,"City":"Montréal","ZipCode":"H2E 2C6","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"6995 Rue Marquette, Montréal, QC H2E 2C6, Canada"},"BuildingUrl":"/b/202629086502008649625/920541","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/P70vM2jMHr57PMjMAqHPQ5HtMK4vGJqy1/medium","BuildingName":"6995 Marquette","PriceAndDetailsVisible":true},{"ApartmentId":920542,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":7,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":86496,"PublicListBuildingName":"202629086502008649625","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"3","Price":1545.00,"PriceFormatted":"$1 545","Area":0,"NumberOfBathrooms":0,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5462996","Longitude":"-73.6048045","AddressLocation":"6995 Rue Marquette, Montreal, QC, Canada","AddressLine1":"6995 Rue Marquette","AddressLine2":null,"City":"Montréal","ZipCode":"H2E 2C6","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"6995 Rue Marquette, Montréal, QC H2E 2C6, Canada"},"BuildingUrl":"/b/202629086502008649625/920542","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/P70vM2jMHr57PMjMAqHPQ5HtMK4vGJqy1/medium","BuildingName":"6995 Marquette","PriceAndDetailsVisible":true},{"ApartmentId":920543,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":7,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":86496,"PublicListBuildingName":"202629086502008649625","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"2","Price":1323.00,"PriceFormatted":"$1 323","Area":0,"NumberOfBathrooms":0,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5462996","Longitude":"-73.6048045","AddressLocation":"6995 Rue Marquette, Montreal, QC, Canada","AddressLine1":"6995 Rue Marquette","AddressLine2":null,"City":"Montréal","ZipCode":"H2E 2C6","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"6995 Rue Marquette, Montréal, QC H2E 2C6, Canada"},"BuildingUrl":"/b/202629086502008649625/920543","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/P70vM2jMHr57PMjMAqHPQ5HtMK4vGJqy1/medium","BuildingName":"6995 Marquette","PriceAndDetailsVisible":true},{"ApartmentId":920544,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":7,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":86496,"PublicListBuildingName":"202629086502008649625","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"7","Price":1595.00,"PriceFormatted":"$1 595","Area":0,"NumberOfBathrooms":0,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5462996","Longitude":"-73.6048045","AddressLocation":"6995 Rue Marquette, Montreal, QC, Canada","AddressLine1":"6995 Rue Marquette","AddressLine2":null,"City":"Montréal","ZipCode":"H2E 2C6","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"6995 Rue Marquette, Montréal, QC H2E 2C6, Canada"},"BuildingUrl":"/b/202629086502008649625/920544","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/P70vM2jMHr57PMjMAqHPQ5HtMK4vGJqy1/medium","BuildingName":"6995 Marquette","PriceAndDetailsVisible":true},{"ApartmentId":937651,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":4,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":87411,"PublicListBuildingName":"202629086504008741117","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"7740","Price":1995.00,"PriceFormatted":"$1 995","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5867942","Longitude":"-73.5094077","AddressLocation":"7740 Rue Lecourt, Montreal, QC, Canada","AddressLine1":"7740 Rue Lecourt","AddressLine2":null,"City":"Montréal","ZipCode":"H1L 3J6","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"7740 Rue Lecourt, Montréal, QC H1L 3J6, Canada"},"BuildingUrl":"/b/202629086504008741117/937651","PreviewUrl":"https://wfiles.buildingstack.com/resources/image/H7DITqDAKMj2SLDJQ6jtJqrEHNf8KJqy1/medium","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/E3LKBsXgIaOsEMTwApOnILDYScWlGJqy1/medium","BuildingName":"7740 Lecourt","PriceAndDetailsVisible":true},{"ApartmentId":937652,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":4,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":87411,"PublicListBuildingName":"202629086504008741117","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"7742","Price":1995.00,"PriceFormatted":"$1 995","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5867942","Longitude":"-73.5094077","AddressLocation":"7740 Rue Lecourt, Montreal, QC, Canada","AddressLine1":"7740 Rue Lecourt","AddressLine2":null,"City":"Montréal","ZipCode":"H1L 3J6","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"7740 Rue Lecourt, Montréal, QC H1L 3J6, Canada"},"BuildingUrl":"/b/202629086504008741117/937652","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/E3LKBsXgIaOsEMTwApOnILDYScWlGJqy1/medium","BuildingName":"7740 Lecourt","PriceAndDetailsVisible":true},{"ApartmentId":937653,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":4,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":87411,"PublicListBuildingName":"202629086504008741117","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"7744","Price":2295.00,"PriceFormatted":"$2 295","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":3,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5867942","Longitude":"-73.5094077","AddressLocation":"7740 Rue Lecourt, Montreal, QC, Canada","AddressLine1":"7740 Rue Lecourt","AddressLine2":null,"City":"Montréal","ZipCode":"H1L 3J6","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"7740 Rue Lecourt, Montréal, QC H1L 3J6, Canada"},"BuildingUrl":"/b/202629086504008741117/937653","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/E3LKBsXgIaOsEMTwApOnILDYScWlGJqy1/medium","BuildingName":"7740 Lecourt","PriceAndDetailsVisible":true},{"ApartmentId":937654,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":4,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":87411,"PublicListBuildingName":"202629086504008741117","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"7746","Price":2295.00,"PriceFormatted":"$2 295","Area":0,"NumberOfBathrooms":0,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5867942","Longitude":"-73.5094077","AddressLocation":"7740 Rue Lecourt, Montreal, QC, Canada","AddressLine1":"7740 Rue Lecourt","AddressLine2":null,"City":"Montréal","ZipCode":"H1L 3J6","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"7740 Rue Lecourt, Montréal, QC H1L 3J6, Canada"},"BuildingUrl":"/b/202629086504008741117/937654","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/E3LKBsXgIaOsEMTwApOnILDYScWlGJqy1/medium","BuildingName":"7740 Lecourt","PriceAndDetailsVisible":true},{"ApartmentId":939903,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":1,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":87421,"PublicListBuildingName":"202629086504008742120","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"3","Price":1395.00,"PriceFormatted":"$1 395","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":2,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5773001","Longitude":"-73.6523559","AddressLocation":"10640 Rue D'Iberville, Montreal, QC, Canada","AddressLine1":"10640 Rue D'Iberville","AddressLine2":null,"City":"Montréal","ZipCode":"H2B 2V1","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"10640 Rue D'Iberville, Montréal, QC H2B 2V1, Canada"},"BuildingUrl":"/b/202629086504008742120/939903","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/AsL7TLb2IdXODqynCYgsAYQggfaf89wU1/medium","BuildingName":"10640 Rue D'iberville","PriceAndDetailsVisible":true},{"ApartmentId":951663,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":9,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":87861,"PublicListBuildingName":"202629086506008786101","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"21","Price":1425.00,"PriceFormatted":"$1 425","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5397911","Longitude":"-73.579943","AddressLocation":"5285 Av. des Érables, Montreal, QC, Canada","AddressLine1":"5285 Avenue des Érables","AddressLine2":null,"City":"Montréal","ZipCode":"H2H 2E6","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"5285 Avenue des Érables, Montréal, QC H2H 2E6, Canada"},"BuildingUrl":"/b/202629086506008786101/951663","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/PcivM3SvI6fCPL4rOZXXPcuoMdLdTpqy1/medium","BuildingName":"5285 Des Érables","PriceAndDetailsVisible":true},{"ApartmentId":951664,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":9,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":87861,"PublicListBuildingName":"202629086506008786101","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"22","Price":1450.00,"PriceFormatted":"$1 450","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5397911","Longitude":"-73.579943","AddressLocation":"5285 Av. des Érables, Montreal, QC, Canada","AddressLine1":"5285 Avenue des Érables","AddressLine2":null,"City":"Montréal","ZipCode":"H2H 2E6","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"5285 Avenue des Érables, Montréal, QC H2H 2E6, Canada"},"BuildingUrl":"/b/202629086506008786101/951664","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/PcivM3SvI6fCPL4rOZXXPcuoMdLdTpqy1/medium","BuildingName":"5285 Des Érables","PriceAndDetailsVisible":true},{"ApartmentId":951666,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":9,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":87861,"PublicListBuildingName":"202629086506008786101","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"24","Price":1415.00,"PriceFormatted":"$1 415","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5397911","Longitude":"-73.579943","AddressLocation":"5285 Av. des Érables, Montreal, QC, Canada","AddressLine1":"5285 Avenue des Érables","AddressLine2":null,"City":"Montréal","ZipCode":"H2H 2E6","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"5285 Avenue des Érables, Montréal, QC H2H 2E6, Canada"},"BuildingUrl":"/b/202629086506008786101/951666","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/PcivM3SvI6fCPL4rOZXXPcuoMdLdTpqy1/medium","BuildingName":"5285 Des Érables","PriceAndDetailsVisible":true},{"ApartmentId":951667,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":9,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":87861,"PublicListBuildingName":"202629086506008786101","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"25","Price":1300.00,"PriceFormatted":"$1 300","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5397911","Longitude":"-73.579943","AddressLocation":"5285 Av. des Érables, Montreal, QC, Canada","AddressLine1":"5285 Avenue des Érables","AddressLine2":null,"City":"Montréal","ZipCode":"H2H 2E6","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"5285 Avenue des Érables, Montréal, QC H2H 2E6, Canada"},"BuildingUrl":"/b/202629086506008786101/951667","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/PcivM3SvI6fCPL4rOZXXPcuoMdLdTpqy1/medium","BuildingName":"5285 Des Érables","PriceAndDetailsVisible":true},{"ApartmentId":951668,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":9,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":87861,"PublicListBuildingName":"202629086506008786101","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"30","Price":1300.00,"PriceFormatted":"$1 300","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5397911","Longitude":"-73.579943","AddressLocation":"5285 Av. des Érables, Montreal, QC, Canada","AddressLine1":"5285 Avenue des Érables","AddressLine2":null,"City":"Montréal","ZipCode":"H2H 2E6","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"5285 Avenue des Érables, Montréal, QC H2H 2E6, Canada"},"BuildingUrl":"/b/202629086506008786101/951668","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/PcivM3SvI6fCPL4rOZXXPcuoMdLdTpqy1/medium","BuildingName":"5285 Des Érables","PriceAndDetailsVisible":true},{"ApartmentId":951670,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":9,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":87861,"PublicListBuildingName":"202629086506008786101","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"32","Price":1300.00,"PriceFormatted":"$1 300","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5397911","Longitude":"-73.579943","AddressLocation":"5285 Av. des Érables, Montreal, QC, Canada","AddressLine1":"5285 Avenue des Érables","AddressLine2":null,"City":"Montréal","ZipCode":"H2H 2E6","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"5285 Avenue des Érables, Montréal, QC H2H 2E6, Canada"},"BuildingUrl":"/b/202629086506008786101/951670","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/PcivM3SvI6fCPL4rOZXXPcuoMdLdTpqy1/medium","BuildingName":"5285 Des Érables","PriceAndDetailsVisible":true},{"ApartmentId":951671,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":9,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":87861,"PublicListBuildingName":"202629086506008786101","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"33","Price":1150.00,"PriceFormatted":"$1 150","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5397911","Longitude":"-73.579943","AddressLocation":"5285 Av. des Érables, Montreal, QC, Canada","AddressLine1":"5285 Avenue des Érables","AddressLine2":null,"City":"Montréal","ZipCode":"H2H 2E6","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"5285 Avenue des Érables, Montréal, QC H2H 2E6, Canada"},"BuildingUrl":"/b/202629086506008786101/951671","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/PcivM3SvI6fCPL4rOZXXPcuoMdLdTpqy1/medium","BuildingName":"5285 Des Érables","PriceAndDetailsVisible":true},{"ApartmentId":951672,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":9,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":87861,"PublicListBuildingName":"202629086506008786101","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"34","Price":1300.00,"PriceFormatted":"$1 300","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5397911","Longitude":"-73.579943","AddressLocation":"5285 Av. des Érables, Montreal, QC, Canada","AddressLine1":"5285 Avenue des Érables","AddressLine2":null,"City":"Montréal","ZipCode":"H2H 2E6","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"5285 Avenue des Érables, Montréal, QC H2H 2E6, Canada"},"BuildingUrl":"/b/202629086506008786101/951672","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/PcivM3SvI6fCPL4rOZXXPcuoMdLdTpqy1/medium","BuildingName":"5285 Des Érables","PriceAndDetailsVisible":true},{"ApartmentId":951797,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":5,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":87981,"PublicListBuildingName":"202629086506008798111","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"1","Price":1000.00,"PriceFormatted":"$1 000","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5266078","Longitude":"-73.5764487","AddressLocation":"4310 Av. Christophe-Colomb, Montréal, QC, Canada","AddressLine1":"4310 Avenue Christophe-Colomb","AddressLine2":null,"City":"Montréal","ZipCode":"H2J 3G3","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"4310 Avenue Christophe-Colomb, Montréal, QC H2J 3G3, Canada"},"BuildingUrl":"/b/202629086506008798111/951797","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/QbbJI357DJ5NI4LFL5H4Sr1EE5PIPpqy1/medium","BuildingName":"4310 Christophe-Colomb","PriceAndDetailsVisible":true},{"ApartmentId":951801,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":5,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":87981,"PublicListBuildingName":"202629086506008798111","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"5","Price":1100.00,"PriceFormatted":"$1 100","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5266078","Longitude":"-73.5764487","AddressLocation":"4310 Av. Christophe-Colomb, Montréal, QC, Canada","AddressLine1":"4310 Avenue Christophe-Colomb","AddressLine2":null,"City":"Montréal","ZipCode":"H2J 3G3","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"4310 Avenue Christophe-Colomb, Montréal, QC H2J 3G3, Canada"},"BuildingUrl":"/b/202629086506008798111/951801","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/QbbJI357DJ5NI4LFL5H4Sr1EE5PIPpqy1/medium","BuildingName":"4310 Christophe-Colomb","PriceAndDetailsVisible":true},{"ApartmentId":951804,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":5,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":87981,"PublicListBuildingName":"202629086506008798111","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"8","Price":1100.00,"PriceFormatted":"$1 100","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":0,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5266078","Longitude":"-73.5764487","AddressLocation":"4310 Av. Christophe-Colomb, Montréal, QC, Canada","AddressLine1":"4310 Avenue Christophe-Colomb","AddressLine2":null,"City":"Montréal","ZipCode":"H2J 3G3","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"4310 Avenue Christophe-Colomb, Montréal, QC H2J 3G3, Canada"},"BuildingUrl":"/b/202629086506008798111/951804","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/QbbJI357DJ5NI4LFL5H4Sr1EE5PIPpqy1/medium","BuildingName":"4310 Christophe-Colomb","PriceAndDetailsVisible":true},{"ApartmentId":952138,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":5,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":87981,"PublicListBuildingName":"202629086506008798111","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"12","Price":1425.00,"PriceFormatted":"$1 425","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5266078","Longitude":"-73.5764487","AddressLocation":"4310 Av. Christophe-Colomb, Montréal, QC, Canada","AddressLine1":"4310 Avenue Christophe-Colomb","AddressLine2":null,"City":"Montréal","ZipCode":"H2J 3G3","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"4310 Avenue Christophe-Colomb, Montréal, QC H2J 3G3, Canada"},"BuildingUrl":"/b/202629086506008798111/952138","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/QbbJI357DJ5NI4LFL5H4Sr1EE5PIPpqy1/medium","BuildingName":"4310 Christophe-Colomb","PriceAndDetailsVisible":true},{"ApartmentId":952143,"City":"Montréal","ParkingsIsAvailable":false,"StoragesIsAvailable":false,"NumberOfAvailableUnits":5,"OnlinePaymentsIsAvailable":true,"Building":{"BuildingId":87981,"PublicListBuildingName":"202629086506008798111","Phone":"","ListingEmployeesContacts":[]},"Apartment":{"UnitName":"17","Price":1350.00,"PriceFormatted":"$1 350","Area":0,"NumberOfBathrooms":1,"NumberOfBedrooms":1,"ListingApartmentType":0,"ListingApartmentTypeString":"residential","ApartmentType":0,"PriceDisclosure":0,"IsResidential":true},"Address":{"Latitude":"45.5266078","Longitude":"-73.5764487","AddressLocation":"4310 Av. Christophe-Colomb, Montréal, QC, Canada","AddressLine1":"4310 Avenue Christophe-Colomb","AddressLine2":null,"City":"Montréal","ZipCode":"H2J 3G3","Country":{"CountryName":"Canada"},"Province":{"ProvinceCode":"QC"},"Full":"4310 Avenue Christophe-Colomb, Montréal, QC H2J 3G3, Canada"},"BuildingUrl":"/b/202629086506008798111/952143","PreviewUrl":"/Content/Images/apartmenttypes/residential.svg","BuildingPreviewUrl":"https://wfiles.buildingstack.com/resources/image/QbbJI357DJ5NI4LFL5H4Sr1EE5PIPpqy1/medium","BuildingName":"4310 Christophe-Colomb","PriceAndDetailsVisible":true}]; | |
| 390 | − | |
| 391 | − refreshListingContent(units, ''); | |
| 392 | − updateFoundUnitsCount('95'); | |
| 393 | − | |
| 394 | − function groupUnitsByBuilding(units) { | |
| 395 | − return _.groupBy(units, function (u) { return u.Building.BuildingId }); | |
| 396 | − }; | |
| 397 | − | |
| 398 | − function initColorMarkers(units) { | |
| 399 | − var byBuilding = groupUnitsByBuilding(units); | |
| 400 | − | |
| 401 | − | |
| 402 | − var count = _.keys(byBuilding).length; | |
| 403 | − | |
| 404 | − var markersInfo = createBuildingMarkerInfo(count); | |
| 405 | − var index = 0; | |
| 406 | − _.each(byBuilding, function (units) { | |
| 407 | − var mInfo = markersInfo[index]; | |
| 408 | − _.each(units, function (u) { | |
| 409 | − u.markerInfo = mInfo; | |
| 410 | − }); | |
| 411 | − index++; | |
| 412 | − }); | |
| 413 | − }; | |
| 414 | − | |
| 415 | − function createBuildingMarkerInfo(count) { | |
| 416 | − var unitPinUrlTemplate = '/Customize/UnitMapPin'; | |
| 417 | − var colors = randomColor({ count: count }); | |
| 418 | − | |
| 419 | − var result = []; | |
| 420 | − _.each(colors, function (c) { | |
| 421 | − result.push({ | |
| 422 | − color: c, | |
| 423 | − pinIconUrl: unitPinUrlTemplate + "\?color=" + encodeURIComponent(c) | |
| 424 | − }); | |
| 425 | − }); | |
| 426 | − | |
| 427 | − return result; | |
| 428 | − } | |
| 429 | − | |
| 430 | − | |
| 431 | − function renderUnits(city) { | |
| 432 | − var unitsToRender = !city ? units : _.filter(units, function (u) { return u.City == city }); | |
| 433 | − | |
| 434 | − var tmpl = $('#un-buildings-list').html(); | |
| 435 | − | |
| 436 | − var compiled = _.template(tmpl, { variable: 'data' })(unitsToRender); | |
| 437 | − | |
| 438 | − $('#buildings-placeholder').html(compiled); | |
| 439 | − | |
| 440 | − setTimeout(function () { updateLocationOntheMap(unitsToRender) }, 100); | |
| 441 | − }; | |
| 442 | − | |
| 443 | − $(".search-button").click(function () { | |
| 444 | − var data = $(this).closest('form').serialize(); | |
| 445 | − updateUnits(data); | |
| 446 | − }); | |
| 447 | − | |
| 448 | − $('.tab-trigger-btn').click(function () { | |
| 449 | − var tab_number = $(this).attr('for'); | |
| 450 | − var data = $('.searchbar-tab-content' + '.' + tab_number).children('form').serialize(); | |
| 451 | − updateUnits(data); | |
| 452 | − }); | |
| 453 | − | |
| 454 | − function updateCities(units, filterCity) { | |
| 455 | − var uniqueCityUnits = _.uniq(units, function (item) { | |
| 456 | − return item.City; | |
| 457 | − }); | |
| 458 | − | |
| 459 | − var uniqueCities = _.map(uniqueCityUnits, function(item) { | |
| 460 | − return item.City; | |
| 461 | − }); | |
| 462 | − | |
| 463 | − var sortedCities = _.sortBy(uniqueCities); | |
| 464 | − | |
| 465 | − $('#tab-slide').empty(); | |
| 466 | − | |
| 467 | − if (!filterCity) { | |
| 468 | − $('#tab-slide').append('<li><label class="tab active">Tout</label></li>'); | |
| 469 | − } | |
| 470 | − | |
| 471 | − _.each(sortedCities, function (city) { | |
| 472 | − var activeClass = city == filterCity ? "active" : ""; | |
| 473 | − $('#tab-slide').append('<li><label for="' + city + '" class="tab ' + activeClass + '">' + city + '</label></li>'); | |
| 474 | − }); | |
| 475 | − | |
| 476 | − createOrRefreshSlider(); | |
| 477 | − } | |
| 478 | − | |
| 479 | − function createOrRefreshSlider() { | |
| 480 | − // if need update slider items, should recreate slider instead refresh(), because had some troubles with refresh | |
| 481 | − var slider = $('#tab-slide').lightSlider(); | |
| 482 | − if (slider) { | |
| 483 | − slider.destroy(); | |
| 484 | − } | |
| 485 | − | |
| 486 | − $("#tab-slide").lightSlider({ | |
| 487 | − item: 4, | |
| 488 | − autoWidth: true, | |
| 489 | − slideMove: 1, // slidemove will be 1 if loop is true | |
| 490 | − slideMargin: 40, | |
| 491 | − appendControlsTo: '#slider-controls', | |
| 492 | − enableDrag: false | |
| 493 | − }); | |
| 494 | − } | |
| 495 | − | |
| 496 | − function updateUnits(data) { | |
| 497 | − var triggerElement = $('#listing-content'); | |
| 498 | − Gotham.LoadingIndicator.showOverlayIndicator(triggerElement); | |
| 499 | − | |
| 500 | − $.post('/Listing/ListingUnits', data, function (model) { | |
| 501 | − units = model.units; | |
| 502 | − refreshListingContent(units, model.city); | |
| 503 | − updateFoundUnitsCount(model.NumberOfAvailableUnits) | |
| 504 | − Gotham.LoadingIndicator.hideOverlayIndicator(triggerElement); | |
| 505 | − }); | |
| 506 | − } | |
| 507 | − | |
| 508 | − function updateFoundUnitsCount(number) { | |
| 509 | − $('.result-show').html(number + ' ' + 'Unité(s) trouvé(s)'); | |
| 510 | − } | |
| 511 | − | |
| 512 | − function refreshListingContent(units, city) { | |
| 513 | − updateCities(units, city); | |
| 514 | − initColorMarkers(units); | |
| 515 | − renderUnits(city); | |
| 516 | − } | |
| 517 | − | |
| 518 | − $('.tab-trigger').on('click', 'label.tab', function() { | |
| 519 | − $(this).parent().parent().parent().find("label.tab").removeClass('active'); | |
| 520 | − $(this).addClass('active'); | |
| 521 | − | |
| 522 | − var city = $(this).attr('for'); | |
| 523 | − | |
| 524 | − renderUnits(city); | |
| 525 | − }); | |
| 526 | − | |
| 527 | − function updateLocationOntheMap(units) { | |
| 528 | − var byBuilding = groupUnitsByBuilding(units); | |
| 529 | − if (units.length > 0) { | |
| 530 | − Gotham.GoogleMaps.setListingLocations(document.getElementById("googleMap"), byBuilding); | |
| 531 | − } else { | |
| 532 | − Gotham.GoogleMaps.setCompanyLocation(document.getElementById("googleMap"), "77 Rue Omer Deserres, 6, Blainville, QC J7C5N3, Canada", '45.6729456', '-73.85032819999999'); | |
| 533 | − } | |
| 534 | − }; | |
| 535 | − }); | |
| 536 | − </script> | |
| 537 | − | |
| 538 | − <script type="text/template" id="un-buildings-list"> | |
| 539 | − <div class="maincontent"> | |
| 540 | − <% _.each(data, function(unit) { %> | |
| 541 | − <div class="item-list-1" style="border-left-color: <%= unit.markerInfo.color %>" buildingId="<%= unit.Building.BuildingId %>"> | |
| 542 | − <a href="<%= unit.BuildingUrl %>?lang=fr-CA"> | |
| 543 | − <div class="unit-image"> | |
| 544 | − <img class="<% if (unit.PreviewUrl.indexOf(" .svg")> -1) {%>default-img<% }%>" src="<%= unit.PreviewUrl %>" alt="#" width="115" height="115"> | |
| 545 | − </div> | |
| 546 | − <div class="item-content"> | |
| 547 | − <h3 class="accent_color_2"><%= unit.Apartment.UnitName %></h3> | |
| 548 | − <span class="<%= unit.Apartment.ListingApartmentTypeString%>-unit"></span> | |
| 549 | − <div class="building-add"><%= unit.Address.Full %></div> | |
| 550 | − <ul class='building-main-info <%= !unit.Apartment.IsResidential?" commercial":"" %>'> | |
| 551 | − <li class="price"><%= unit.Apartment.PriceFormatted %></li> | |
| 552 | − <li class="area-size"><%= unit.Apartment.Area == 0 ? "--" : unit.Apartment.Area %> (Pi.Ca.)</li> | |
| 553 | − <% if (unit.Apartment.IsResidential) { %> | |
| 554 | − <li class="bathrooms"><%= unit.Apartment.NumberOfBathrooms %></li> | |
| 555 | − <li class="total-bedrooms"><%= unit.Apartment.NumberOfBedrooms %></li> | |
| 556 | − <% } %> | |
| 557 | − <li class="icons"> | |
| 558 | − <% if(unit.ParkingsIsAvailable) { %> | |
| 559 | − <img src="/Customize/Svg?name=parking&accentColor=2&ver=rgba%2824%2C38%2C66%2C1%29" alt="#"> | |
| 560 | − <% } %> | |
| 561 | − | |
| 562 | − <% if(unit.StoragesIsAvailable) { %> | |
| 563 | − <img src="/Customize/Svg?name=storage&accentColor=2&ver=rgba%2824%2C38%2C66%2C1%29" alt="#"> | |
| 564 | − <% } %> | |
| 565 | − | |
| 566 | − <% if(unit.OnlinePaymentsIsAvailable) { %> | |
| 567 | − <img src="/Customize/Svg?name=online-payment&accentColor=2&ver=rgba%2824%2C38%2C66%2C1%29" alt="#"> | |
| 568 | − <% } %> | |
| 569 | − </li> | |
| 570 | − <% if (unit.Building.Phone!=""){%> | |
| 571 | − <li class="phone-num"><%= unit.Building.Phone %></li> | |
| 572 | − <% } %> | |
| 573 | − </ul> | |
| 574 | − </div> | |
| 575 | − </a> | |
| 576 | − </div> | |
| 577 | − <% }); %> | |
| 578 | − </div> | |
| 579 | − </script> | |
| 580 | −</div> | |
| 581 | − | |
| 582 | − | |
| 583 | − | |
| 584 | −<!-- FOOTER --> | |
| 585 | − | |
| 586 | − <div class="footer wrapper accent_color_3_background"> | |
| 587 | − <div class="page-content section_2 clearfix"> | |
| 588 | − <div class="company-info "> | |
| 589 | − <div class="company-title barFontColor"> | |
| 590 | − <img src="https://wfiles.buildingstack.com/resources/image/K6yPiAIheR4xbxUahA2Zf3OSegCsCvwU1" alt="" height="30" />Gestion Immobilière Summum | |
| 591 | − </div> | |
| 592 | − <div class="powered-by barFontColor"> | |
| 593 | − Réalisé par | |
| 594 | − <a href="https://www.buildingstack.com/"> | |
| 595 | − <img src="/Content/Images/listings/footer-logo-bstk-white.svg" alt="" /> | |
| 596 | − </a> | |
| 597 | − </div> | |
| 598 | − <p class="copyrights barFontColor">©2026 BuildingStack™. Tous droits réservés.</p> | |
| 599 | − <ul class="links"> | |
| 600 | − <li><a href="/legal/terms" target="_blank">Conditions D'utilisation</a></li> | |
| 601 | − <li><a href="/legal/privacy" target="_blank">Politique de Confidentialité</a></li> | |
| 602 | − | |
| 603 | − </ul> | |
| 604 | − </div> | |
| 605 | − <div class="contact"> | |
| 606 | − <h3 class="upper-case accent_color_1">SIÈGE SOCIAL</h3> | |
| 607 | − <p class="address barFontColor"> | |
| 608 | − | |
| 609 | −77 Rue Omer Deserres, 6, Blainville, QC J7C5N3, Canada</p> | |
| 610 | − <p class="phone barFontColor">(514) 819-1529</p> | |
| 611 | − </div> | |
| 612 | − </div> | |
| 613 | − </div> | |
| 614 | −<!-- END FOOTER --> | |
| 615 | − </div> | |
| 616 | − | |
| 617 | −</body> | |
| 618 | −</html> | |
added
tests/fixtures/summum/1433a8d8e39596e7e3b7.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/14556e118f3eb75d34bf.html
+0 −642
Large diff (642 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/16fb861fab879a468f61.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/194c1244c0dea72a2a27.html
+0 −659
Large diff (659 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/1aabffebe2d44dcedf3b.html
+0 −610
Large diff (610 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/1adad595bd17cdf20735.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/1b02085d9e18a0ae6886.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/1b65ab786c1aa66c926a.html
+0 −610
Large diff (610 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/1d2f6484d4d85e8278f1.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/1d5728551d72b5a60009.html
+0 −642
Large diff (642 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/1dd762898562cd404ae2.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/1f9cdd264bdc7c0b31bd.html
+0 −610
Large diff (610 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/217249feae19a592ba11.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/222662c6416a91487d6b.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/242ffd870f5c5dcca663.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/248355eba865a10e58d3.html
+0 −623
Large diff (623 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/248b1ee8e86428c0b7b7.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/294d914e3b6c9bed1f24.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/2cdfd1647f71a46fa676.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/2d0160ec30d92f48b3b3.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/302db748a328aa3b9fc1.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/34f60fed10119ea0b0d1.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/36440c5e1bab4cfab50e.txt
+1 −0
Large diff (1 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/38e25183dc3bf523d05e.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/3da5b0e4b4422114c0da.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/3f708e9db8cc1de5e4cd.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/4175697172fb3c488f99.html
+0 −616
Large diff (616 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/4243a2daa535fe6207d1.html
+0 −645
Large diff (645 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/427e6286ce6e20e7323e.html
+0 −614
Large diff (614 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/45a015dc8d8a1b83c373.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/4adc86b238c5a76ca2c1.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/51b762132397ec536427.html
+0 −606
Large diff (606 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/5487101d65f36b471b72.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/5ae2467747d48daed3a6.html
+0 −616
Large diff (616 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/5b06691bb5d482f38c9d.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/5b3f7f1cc948b866e860.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/5c6413be0c3721c4cf29.html
+0 −616
Large diff (616 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/5f78109a024c2c0b2378.html
+0 −636
Large diff (636 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/613c5ae8afd10bcfb2f4.html
+0 −637
Large diff (637 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/672727c279d29b942295.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/67a0aa20a6b2c0abf30d.html
+0 −643
Large diff (643 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/6973749e6cd8b70f7f18.html
+0 −688
Large diff (688 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/69f7abc4a563a5705ec5.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/6f6eb9a09f3dd8235e8b.html
+0 −606
Large diff (606 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/71a840dc29739af27356.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/74f4978a4485f2f9618c.html
+0 −616
Large diff (616 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/7cf4afdfda7cd5f49d1f.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/7d635be101f0c90263a1.html
+0 −748
Large diff (748 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/7e15c65b5441924ab189.html
+0 −662
Large diff (662 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/80374e236984d2527f2d.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/83f9c384056e1f388f3a.html
+0 −649
Large diff (649 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/874329f4a42d8df8b755.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/8af1e95da99a240f7011.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/8d47663185fd5058c905.html
+0 −616
Large diff (616 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/909d8e63872925fdae92.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/956ce353fae5762a17d1.html
+0 −714
Large diff (714 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/964aaa85763324be2009.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/aac2f3005bb658b94971.html
+0 −636
Large diff (636 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/afe46e13bcad7451d6b9.html
+0 −606
Large diff (606 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/b8f09a68f2de1a013457.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/c052294f6d8f9b46447d.html
+0 −616
Large diff (616 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/cb1375be9bda64290da6.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/cc950d1f08911436668f.html
+0 −636
Large diff (636 lines) is not loaded by default to keep the page fast.Load diff
added
tests/fixtures/summum/cd081a0f1559a71416aa.txt
+2 −0
Large diff (2 lines) is not loaded by default to keep the page fast.Load diff
deleted
tests/fixtures/summum/cd591af79de9ca45bde8.html
+0 −400
Large diff (400 lines) is not loaded by default to keep the page fast.Load diff
Diff truncated — file too large.