(!window||null===(t=document)||void 0===t||!t.documentElement)&&window.getComputedStyle(document.documentElement).getPropertyValue(e)}},o.application={parseQueryString:function(e){for(var t,r,a=/(?:\?|\&)([^(\=|\&)]+)(?

//# sourceMappingURL=https://assets.homesnap.com/app/js_min/modules/ErrorLogging.js.map?hash=126a653e58b4dd7877bf5939344a6c4c "PM":"AM",n=0;n<12;n++)for(var o=0;o<60;o+=15){var i=r?n+12:n;e.push({label:"".concat(n||12,":").concat(t(o)," ").concat(a),value:"".concat(t(i),":").concat(t(o),":00"),minutes:60*i+o})}return e}},o.user={getFileID:function(e){return e.toString().split("").reverse().join("")},getProfileImage:function(e,t,r){var a=e>0? {raw:e,string:e.toLocaleString()}:null},getLotSize:function(e){return e?

[e]:Array.isArray(e)?e:[e];null!==(n=window.Homesnap.mlsVersionNumber)&&void 0!==n||window.Homesnap.versionNumber;i.forEach(function(e){var n,i=window.Homesnap.versionNumber;if(-1==e.indexOf("https://")&&0!=e.indexOf("//")){var s=e.toLowerCase();e=t.cssAppHashes&&!t.cssAppHashes["".concat(s)]?



//# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/Property/PropertyAddressItem.js.map?hash=b4e49c80340edf07a06955bd4be906e6 define("controllers/generic",["require","ControllerObjects","Objects","controllers/Variable","Application"],function(e){return function(t){function r(e){b.call("bubble",e)}function o(e){p.update(e),n()}function n(){C?a():p.$dom&&m.content.get({$dom:p.$dom,data:{}})}function a(e){e&&e.$dom&&(C=e.$dom),p.updateController("header",{$dom:C.divHeader,data:p&&p.controllers&&p.controllers.header?p.controllers.header.data:{}}),p.updateController("footer",{$dom:C.divFooter,data:p&&p.controllers&&p.controllers.footer?p.controllers.footer.data:{}}),p.updateController("content",p.get("name"),{$dom:C.divContent,data:p&&p.controllers&&p.controllers.content?p.controllers.content.data:{}}),h.done(function(){v&&v.registrationStatus&&v.registrationStatus.registered&&C.divFooter.addClass("user-logged-in"),v&&v.brand&&C.divFooter.addClass("user-has-brand")}),C.skipNav.off().on("click keyup",l)}function l(e){return("click"===e.type||"keyup"===e.type&&"Enter"===e.key)&&($("html,body").animate({scrollTop:C.divContent.offset().top},350),C.divContent.attr("tabindex","0").trigger("focus"),C.divContent.removeAttr("tabindex")),!1}function i(){g.uninit()}function d(e,t){g.event(e,t)}var c=e("ControllerObjects"),s=(e("Objects"),e("controllers/Variable")),u=e("Application"),f=new c.Unique(t),b=new c.Callbacks,g=new c.ChildControllerManager,p=new c.StateManager(g);g.add("header",new c.ChildController({type:"controllers/Header",namespace:f.get(),register:{bubble:r}})),g.add("footer",new c.ChildController({type:"controllers/Footer",namespace:f.get(),register:{bubble:r}})),g.add("content",new c.ChildController({type:s,namespace:f.get(),register:{bubble:r}}));var C,v,m={content:new c.Getter({namespace:f.get(),template:{url:"controllers/generic.html",dom:["divHeader","divContent","divFooter","skipNav"]},success:function(e){try{a(e)}catch(e){throw p&&console.info(p),e}},failure:function(){console.log("addGetter failure")}})},h=function(){var e=$.Deferred();return u.getCurrentUser(function(t){v=t.user,e.resolve()}),e}();return{update:o,restore:function(e){p.restore(e,n)},uninit:i,getState:p.getState.bind(p),register:b.register.bind(b),event:d}}}); "For Rent":"For Sale";return u},getMonthlyPayment:function(e,t,r){return 0==r?e/t:e*r*Math.pow(1+r,t)/(Math.pow(1+r,t)-1)},getAffordabilityHomePrice:function(e){if(!e||"Object"==typeof e)return null;var t=+e.interestRate.toFixed(10),r=e.loanTerm,a=e.income/12*e.debtToIncome-e.monthlyDebts;a=a.toFixed(10);var n=+(e.annualPropertyTax/12).toFixed(10)+ +(e.annualHomeownersInsurance/12).toFixed(10)+ +(e.annualMortgageInsurance/12).toFixed(10)+e.hoaFees;n=parseInt(n,10);var o=Math.pow(1+t,r);o=+o.toFixed(10);var i=(o-1)/(t*o)||0;return i=+i.toFixed(10),e.downPayment+(a-n)*i},isOpenHouseNow:function(e){var t,r,a,n;if(!e||"object"!=typeof e)return!1;var o=(null===(t=e.startDateUtc)||void 0===t?void 0:t.raw)||e.startDate.raw,i=(null===(r=e.endDateUtc)||void 0===r?void 0:r.raw)||e.endDate.raw,s=new Date,l=s.getTime();null!==(a=e.startDateUtc)&&void 0!==a&&a.raw&&null!==(n=e.endDateUtc)&&void 0!==n&&n.raw&&(l+=6e4*s.getTimezoneOffset());var c=new Date(o).getTime(),u=new Date(i).getTime();return l>=c&&l<=u}},o.themes={_current:null,get current(){var e;return null!==(e=this._current)&&void 0!==e?e:this.preset},key:"data-theme",preset:"hswa",mapping:{none:"hswa",nyc:"empire"},set:function(e){var t,r=null!==(t=Object.keys(e).filter(function(t){return!0===e[t]})[0])&&void 0!==t?t:"none",a=this.mapping[r];2===window.Homesnap.coStarBrand&&a===this.mapping.nyc||(this.load(a),this._current=a)},load:function(e){$("html").attr("data-theme",e),e===this.preset||$("link[".concat(this.key,"='").concat(e,"']")).length||o.handlebars.loadCSS("themes/".concat(e,".css"),null,{key:this.key,value:e})},unload:function(e){$("html").attr("data-theme")===e&&($("html").attr("data-theme",this.preset),this._current=this.preset,$("link[".concat(this.key,"='").concat(e,"']")).remove())},paint:{load:function(e){o.handlebars.loadCSS(e?

(t.dataStatusBadge="red",t.spanTextColor="bs4--text-google-red",t.spanIcon="cancel",t.pText="Declined"):e.status.none&&(t.dataStatusBadge="gray",t.spanTextColor="bs4--text-gray-300",t.spanIcon="watch_later",t.pText="No Status");return t}},o.coStarBrand={_current:window.Homesnap&&window.Homesnap.coStarBrand,_internalDictionary:function(){switch((arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").toLowerCase()){case"citysnap":return 4;case"homesnap":default:return 2}},is:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if(e){var t=this._internalDictionary(e);return t&&this._current===t}},getCurrent:function(e){var t=e?this._internalDictionary(e):this._current;switch(t){case 4:return{name:"Citysnap",supportEmail:"support@citysnap.com",listingService:"RLS",raw:t,appleApp:"https://apps.apple.com/us/app/citysnap-nyc-rentals-homes/id1603890256",googlePlay:"https://play.google.com/store/apps/details?id=com.homesnap.citysnap",includedMLSIds:[511e3]};default:return{name:"Homesnap",supportEmail:"support@homesnap.com",listingService:"MLS",raw:t,appleApp:"https://apps.apple.com/us/app/homesnap-real-estate-rentals/id506563991",googlePlay:"https://play.google.com/store/apps/details?id=com.homesnap",includedMLSIds:[]}}}},o}),String.prototype.endsWith||(String.prototype.endsWith=function(e,t){return(void 0===t||t>this.length)&&(t=this.length),this.substring(t-e.length,t)===e}),Object.assign&&"function"==typeof Object.assign||Object.defineProperty(Object,"assign",{value:function(e,t){"use strict";if(null===e)throw new TypeError("Cannot convert undefined or null to object");for(var r=Object(e),a=1;a>16),s((65280&n)>>8),s(255&n);return 2==o?s(255&(n=c(e.charAt(t))<<2|c(e.charAt(t+1))>>4)):1==o&&(s((n=c(e.charAt(t))<<10|c(e.charAt(t+1))<<4|c(e.charAt(t+2))>>2)>>8&255),s(255&n)),i},e.fromByteArray=function(e){var t,n,r,o,i=e.length%3,u="";function a(e){return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e)}for(t=0,r=e.length-i;t>18&63)+a(o>>12&63)+a(o>>6&63)+a(63&o);switch(i){case 1:u+=a((n=e[e.length-1])>>2),u+=a(n<<4&63),u+="==";break;case 2:u+=a((n=(e[e.length-2]<<8)+e[e.length-1])>>10),u+=a(n>>4&63),u+=a(n<<2&63),u+="="}return u}}(void 0===f?this.base64js={}:f)}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/base64-js/lib/b64.js","/node_modules/gulp-browserify/node_modules/base64-js/lib")},{buffer:3,lYpoI2:10}],3:[function(O,e,H){(function(e,t,g,n,r,o,i,u,a){var s=O("base64-js"),f=O("ieee754");function g(e,t,n){if(!

(\d{2}),\d+(\)\(\d{2},\d+)*/i,r=e.match(n);return"26"!==(null===r||void 0===r?void 0:r[1])||r[2]?e.indexOf("/cp_")>-1?a.polygonType=2:e.indexOf("/ct_")>-1?a.polygonType=1:"21"!==(null===r||void 0===r?void 0:r[1])||r[2]||(a.polygonType=4):a.polygonType=3,e.indexOf("hm_")>-1&&(a.heatmapOption=e.match(/.*\/hm_(\w*)_\d*\/.

").toLowerCase()}},o.brokerage={originateUrl:function(e){var t,r;if(null!==e&&void 0!==e&&null!==(t=e.url)&&void 0!==t&&t.input&&(r={url:"".concat(e.url.input),withBrokerageID:!1},e.queryString)){if(e.queryString.brokerageid)return r.withBrokerageID=!0,r;Object.keys(e.queryString).length&&(r.url="".concat(r.url,"? :\=([^&]+))?/g;t=a.exec(e);)r=r||{},"string"==typeof t[2]?r[decodeURIComponent(t[1].toLowerCase())]=decodeURIComponent(t[2]):"="!==e.charAt(e.indexOf(t[1])+t[1].length)&&(r[decodeURIComponent(t[1].toLowerCase())]=!0);return r},parseUrl:function(e){if(!e||"string"!=typeof e)return null;var t=/^(http:|https:)?(?:\/\/)?(([^\/\:]+)?(?:(?:\:)([\d]+))?)?(\/[^\s\?]*)(\?[^\#\s]+)? Homesnap.templates["controllers/DownloadMobileAppForm.html"] = '{{#with data}}

US mobile numbers only. ".concat(t))})})}if(r.data&&r.data.statusBar&&(n.divSecondaryStatusBar.length>0||n.divLikelihoodStatusBar.length>0)){var C=n.divStatusBar.width(),P=0,x=0,A=n.divStatusBar.length>0?1:0;n.divSecondaryStatusBar.length>0&&(P=n.divSecondaryStatusBar.width(),A+=1),n.divLikelihoodStatusBar.length>0&&(x=n.divLikelihoodStatusBar.width(),A+=1);var T=Math.max(C,P,x);n.divStatusBar.css("width",T).attr("data-status-bar-count",A),P&&n.divSecondaryStatusBar.css("width",T).attr("data-status-bar-count",A),x&&n.divLikelihoodStatusBar.css("width",T).attr("data-status-bar-count",A),C=P.bottom+G,n=t.left>=P.right+G;s||a||i||n?A||l():o()}else l()}function m(){var e;null!==(e=b)&&void 0!==e&&e.id&&a({type:"listing.hover.show",data:{pa:b}})}function v(e,t){U.add("propertyFavorite",new F.ChildController({type:"controllers/Property/PropertyFavorite",namespace:H.get(),register:{bubble:a}}),!0),E.updateController("propertyFavorite",{$dom:e.spanFavorite,data:{propertyAddressItem:t.item,showText:!1}})}function y(e){var t,r,s,a=(null===(t=b)||void 0===t?void 0:null===(r=t.listing)||void 0===r?void 0:r.id)===(null===e||void 0===e?void 0:null===(s=e.ids)||void 0===s?void 0:s.listingID),i=b&&!b.listing&&(null===e||void 0===e?void 0:e.ids)&&!e.ids.listingID&&b.propertyID===e.ids.propertyID,o=b&&!b.listing&&(null===e||void 0===e?void 0:e.ids)&&!e.ids.listingID&&!b.propertyID&&!e.ids.propertyID&&b.id===e.ids.propertyAddressID;(a||i||o)&&(!0===(null===e||void 0===e?void 0:e.favoriteStatus)?



{{else if autocompleteStatus.notCombinable}}
Area not combinable.

");return t.slice(t.length-2).join(".

(t.facebook=!0,t.name="Facebook",t.color={text:"#3b5998",background:"#4b6dad",rgb:"75,109,173",gradient:"radial-gradient(at bottom right, #87BAFF 0%, #005EA8 100%)"},t.icon={color:o.path.getImageUrl("/listing-promos/fb-colored-256px.png"),colorSM:o.path.getImageUrl("/listing-promos/fb-colored-70px-2x.png"),white:o.path.getImageUrl("/listing-promos/fb-white-70px-2x.png"),grey:o.path.getImageUrl("/listing-promos/fb-grey-70px-2x.png")}):2===e? //# sourceMappingURL=https://assets.homesnap.com/app/js_min/modules/ErrorLogging.js.map?hash=126a653e58b4dd7877bf5939344a6c4c Close 'star_half':"",s=0;sstar';for(var l=0;lstar_outline';return"".concat(r).concat(i).concat(a)}},o.brand={getImage:function(e,t,r){var a="//s3.amazonaws.com/homesnap.brands/"+o.string.reverse(e.toString())+"_";return{aspectRatio:t,url:{default:a+"aspect.png",light:a+"light_aspect.png",dark:r?a+"dark_aspect.png":null}}}},o.conversation={getDate:function(t){if(t){var r=new Date,a=o.date.getDateInfo(t),n=new Date(t);if(r.getFullYear()===n.getFullYear()&&r.getMonth()===n.getMonth()&&r.getDate()===n.getDate())return a.conversationLong=a.formattedTime,a.conversationShort=a.formattedTime,a;if(r.setDate(r.getDate()-1),r.getFullYear()===n.getFullYear()&&r.getMonth()===n.getMonth()&&r.getDate()===n.getDate())return a.conversationLong="Yesterday ".concat(a.formattedTime),a.conversationShort="Yesterday",a;return n>new Date(r.getFullYear(),r.getMonth(),r.getDate()-6)?





!.

[^A-Z]*)/g).slice(0,-1).join(" "),r.name?

(\#\S+)?$/i,r=e.match(t);return r? Previous

define("modules/ErrorLogging",["require"],function(n){function e(n){var e=[n.userID?n.userID.toString():"",n.entityID?n.entityID.toString():"",n.entityType?n.entityType.toString():""],r={userId:e.join(" | ")};"undefined"!=typeof TrackJS?TrackJS.configure(r):(window.TrackJS&&(r.token=window.TrackJS.token),window.TrackJS=r)}return{errorLogConfig:e}}); //# sourceMappingURL=https://assets.homesnap.com/app/js_min/controllers/Property/PropertyAddressItem.js.map?hash=b4e49c80340edf07a06955bd4be906e6

Homesnap.templates["controllers/Property/PropertyAddressItem.html"] = '{{#with data}}
{{#and item.latitude item.longitude}} {{/and}}{{#if item.primaryImage }}{{item.address.fullStreetAddress}} {{item.address.city}},{{item.address.state}} {{item.address.zip}}{{/if}}
  • {{#if gradient}}
    {{/if}} {{#if corner}}
    {{/if}} {{#unless paging}} {{#or price buildingUnit}}
    {{#if price}}
    {{item.price.short}}
    {{/if}} {{#if buildingUnit}}
    {{buildingUnit}}
    {{/if}}
    {{/or}} {{/unless}} {{#if address}}
    {{item.address.fullStreetAddress}}
    {{~#if item.address.city}}{{item.address.city}}, {{/if~}} {{~#if item.address.state}}{{item.address.state}} {{/if~}} {{~#if item.address.zip}}{{item.address.zip}}{{/if~}}
    {{/if}}
  • {{#if paging}} {{#each item.secondaryImages}}
  • {{/each}} {{/if}} {{#and (or paging buildingSummary)(compare placardVersion "!=" 2)}}
  • {{#or units.total buildingSummary}} {{units.total}} Total Units {{else}} {{~#if item.price}}{{item.price.dollars}}{{/if}}
    {{~#if item.propertyStatus}}{{{item.propertyStatus.text}}}{{/if}}
    {{/or}}
    {{#unless buildingSummary}} {{~item.address.fullStreetAddress}} • {{item.address.cityStateZip}}
    {{~#if item.beds}}{{item.beds.string}} {{item.beds.label}}{{/if~}} {{~#if item.baths}} {{~#if item.beds}} • {{/if~}} {{{item.baths.string}}} {{item.baths.label}} {{~/if~}} {{~#if item.sqFt}} {{~#or item.beds item.baths}} • {{/or~}} {{item.sqFt.string}} sq ft {{~/if~}} {{~#if item.yearBuilt}} {{~#or item.beds item.baths item.sqFt}} • {{/or~}} Built {{item.yearBuilt}} {{~/if~}} {{~#if item.lotSize}}{{#and item.beds item.baths item.sqFt item.yearBuilt}}{{else}} {{~#or item.beds item.baths item.sqFt item.yearBuilt}} • {{/or~}} {{item.lotSize.string}} {{item.lotSize.label}} {{/and}} {{/if~}} {{/unless}}
    {{#if detailsButton}}
    Learn More
    {{/if}}
  • {{/and}}
{{#or paging buildingSummary}} {{/or}}
{{#and (compare placardVersion "==" 2) item.price }}
{{item.price.dollars}}
{{/and}} {{#if statusBar}}
{{~{item.propertyStatus.text}~}} {{~#and item.listing.sListingStatus.contract item.listing.contractDate}} {{item.listing.contractDate.shortMonth}} {{item.listing.contractDate.day}} {{~else and item.listing.sListingStatus.sold item.listing.closeDate}} {{item.listing.closeDate.shortMonth}} {{item.listing.closeDate.day}} {{else}} {{~#or item.attributes.mlsStatus.expired item.attributes.mlsStatus.canceled item.attributes.mlsStatus.withdrawn item.attributes.mlsStatus.hold}} {{#if item.attributes.offMarketDate}} {{item.attributes.offMarketDate.shortMonth}} {{item.attributes.offMarketDate.day}} {{/if}} {{/or~}} {{/and~}}
{{~#or item.listing.specialFeatures.contingent item.listing.specialFeatures.auction item.listing.specialFeatures.shortSale item.listing.specialFeatures.foreclosure ~}} {{!-- item.listing.specialFeatures.newHome --}} {{#with item.listing.specialFeatures ~}}
{{~#if contingent~}} Contingent {{~else if shortSale~}} Short Sale {{~else if auction~}} Auction {{~else if foreclosure~}} Foreclosure {{~else if newHome~}} New Construction {{~/if~}}
{{~/with}} {{/or}} {{#or likelihoodStatus secondaryBanner ~}}
{{likelihoodStatus.title}}
{{/or}}
{{/if}} {{#if paging}}
{{#if gradient}}
{{/if}}
{{#and item.price (compare placardVersion "!==" 2)}}
{{item.price.short}}
{{/and}}
{{item.address.fullStreetAddress}}
{{~#if item.address.city}}{{item.address.city}}, {{/if~}} {{~#if item.address.state}}{{item.address.state}} {{/if~}} {{~#if item.address.zip}}{{item.address.zip}}{{/if~}}
{{#if units.total}}{{units.total}} Units{{/if}}
{{#each keyStats}}
{{{this.value}}} {{#compare @root/data/placardVersion "!==" 2}}
{{/compare}} {{this.label}} {{~#unless @last~}} {{~#compare @root/data/placardVersion "==" 2}} • {{/compare~}} {{~/unless~}}
{{/each}}
{{/if}} {{#if buildingSummary}}
{{#if gradient}}
{{/if}}
{{#if units.listings}} {{units.listings}} Listings {{/if}}
{{#if units.total}}{{item.address.fullStreetAddressWithoutUnit}}{{else}}{{item.address.fullStreetAddress}}{{/if}}
{{~#if item.address.city}}{{item.address.city}}, {{/if~}} {{~#if item.address.state}}{{item.address.state}} {{/if~}} {{~#if item.address.zip}}{{item.address.zip}}{{/if~}}
{{#if units.total}}{{units.total}} Units{{/if}}
{{/if}} {{#if showFavoriteIcon}}
{{/if}}
{{#if singleFamilyResidence}} <script type="application/ld+json"> {{#if item.listing.openHouse}}[{{/if}} { "@context":"http://schema.org", "@type":"SingleFamilyResidence", "address": { "@type": "PostalAddress", "@context":"http://schema.org", "streetAddress": "{{item.address.fullStreetAddress}}", "addressLocality": "{{item.address.city}}", "addressRegion": "{{item.address.state}}", "addressCountry": "USA", "postalCode": "{{item.address.zip}}" }, {{#if item.primaryImage}} "photo": { "@type": "ImageObject", "url": "https:{{item.primaryImage.large}}" }, {{/if}} "geo": { "@type": "GeoCoordinates", "latitude": "{{item.longitude}}", "longitude": "{{item.longitude}}" }, "description": "{{item.remarks}}", "name": "{{item.address.fullStreetAddress}}, {{item.address.cityStateZip}}", "url": "{{@root/data/siteRootUrl}}{{item.url}}" } {{#if item.listing.openHouse}} ,{ "@context": "http://schema.org", "@type": "Event", "name": "Open House {{item.listing.openHouse.times}}", "description": "{{item.remarks}}", "url": "{{@root/data/siteRootUrl}}{{item.url}}", {{#if item.primaryImage}} "image": [ {{#if item.primaryImage.large}}"https:{{item.primaryImage.large}}"{{/if}} {{#each item.secondaryImages}} ,"https:{{listing}}" {{/each}} ], {{/if}} "startDate": "{{item.listing.openHouse.startDateString}}", {{#if item.price}} "offers": { "@type": "Offer", "@id": "{{@root/data/siteRootUrl}}{{item.url}}", "image": [ {{#if item.primaryImage.large}}"https:{{ item.primaryImage.large}}"{{/if}} {{#each item.secondaryImages}} ,"https:{{listing}}" {{/each}} ], "url": "{{@root/data/siteRootUrl}}{{item.url}}", "description": "{{item.remarks}}", "price": "{{item.price.raw}}", "priceCurrency": "USD", "BusinessFunction": "http://purl.org/goodrelations/v1#{{#if item.transactionType.forSale}}Sell{{else if item.transactionType.forRent}}LeaseOut{{/if}}" }, {{/if}} {{#with item.address}} "location": { "@type": "Place", "name": "{{fullStreetAddress}}", "address": { "@type": "PostalAddress", "addressCountry": "USA", "addressLocality": "{{city}}", "addressRegion": "{{state}}", "postalCode": "{{zip}}", "streetAddress": "{{fullStreetAddress}}" } } {{/with}} } {{/if}} {{#if item.listing.openHouse}}]{{/if}} </script>{{/if}}
{{/with}}';

Sitemap 26