<!DOCTYPE html>
<html lang="en-us">
	<head>
	<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Albert+Sans:ital,wght@0,100..900;1,100..900&family=Open+Sans:ital,wght@0,300..800;1,300..800&display=fallback" rel="stylesheet"><script>
                document.addEventListener("DOMContentLoaded", function(event) {
                    function usmPageRenderUtil(){var e=this;e.pageCategory="",e.heroElements=[],e.fpTime=null,e.fmpTime=null,e.fmpToTti=null,e.ttiTime=null,e.checker=null,e.waitTime=5e3,e.debug=!1,e.run=function(t){var n=t.heroElementIdentifiers||[".page-hero-element"];return e.pageCategory=t.pageCategory,e.debug=t.debug||!1,new Promise(function(t,r){e.observePaint().then(function(){e.observeHeroElements(n).then(function(){e.observeLongTasks().then(function(){e.fmpToTti=e.ttiTime-e.fmpTime,e.debug&&(console.log("FP: "+e.fpTime),console.log("FMP: "+e.fmpTime),console.log("FMP to TTI: "+e.fmpToTti),console.log("TTI: "+e.ttiTime)),t(e)})})})})},e.observePaint=function(){return new Promise(function(t,n){if(PerformanceObserver===null||PerformanceObserver===undefined)return n(),!1;var r=new PerformanceObserver(function(n){var r=n.getEntries();for(var i in r){var s=r[i],o=s.name;e.fpTime=performance.now();if("first-paint"===s.name){e.debug&&(console.log(s),console.log("metricName"),console.log(o)),t();return}}});r.observe({entryTypes:["paint"]})})},e.observeHeroElements=function(t){return new Promise(function(n,r){t=t.join(),e.debug&&console.log("Hero elements: "+t),e.heroElements=[].slice.call(document.querySelectorAll(t)),e.debug&&console.log("Hero elements count: ["+e.heroElements.length+"]");var i=new MutationObserver(function(t){for(var r=0;r<e.heroElements.length;r++){var s=e.heroElements[r];document.contains(s)&&e.heroElements.splice(r,1)}e.heroElements.length<=0&&(i.disconnect(),e.fmpTime=performance.now(),e.debug&&console.log("Hero observer disconnected. ["+e.getCurrentTime(!0)+"] Unix: ["+e.getCurrentTime()+"]"),n()),e.debug&&console.log("Hero elements not displayed. ["+e.heroElements.length+"].")});i.observe(document,{attributes:!0,childList:!0,characterData:!1,subtree:!0})})},e.observeLongTasks=function(){return new Promise(function(t,n){if(PerformanceObserver===null||PerformanceObserver===undefined)return n(),!1;var r=new PerformanceObserver(function(n){var i=n.getEntries();for(var s in i){var o=i[s];o instanceof PerformanceLongTaskTiming&&(e.debug&&console.log(o),e.scheduleCheck(r,t))}});r.observe({entryTypes:["longtask"]})})},this.scheduleCheck=function(e,t){var n=this,r=performance.now();clearTimeout(this.checker),this.checker=setTimeout(function(){n.ttiTime=r,e.disconnect(),t(),n.debug&&console.log("Performance observer disconnected. ["+n.getCurrentTime(!0)+"] Unix: ["+n.getCurrentTime()+"]")},n.waitTime)},e.getCurrentTime=function(e){return e===!0?(new Date).toUTCString():(new Date).getTime()},e.getPayload=function(){return{"Time to Interactive":e.formatTime(e.ttiTime),"First Paint":e.formatTime(e.fpTime),"First Meaningful Paint":e.formatTime(e.fmpTime),"FMP to TTI":e.formatTime(e.fmpToTti),"Page Category":e.pageCategory}},e.formatTime=function(e){e/=1e3;var t=Math.pow(10,1);return Math.round(e*t)/t}};
                    var renderUtil = new usmPageRenderUtil();
                    var debug = false;
                    renderUtil.run({heroElementIdentifiers: [".share-this",".blogsidebar",".comment-form"], pageCategory: "Blog", debug: debug}).then(function (renderUtil) {
                        if (debug) {
                            console.log(renderUtil.getPayload());
                        }
                    });
                });
            </script><script>
dataLayer = [{"hasNoSEO":"UA-73987-40","hasGlobalRE":"UA-73987-25","hasPremium":"UA-73987-27","hasCompassV2":"UA-73987-51","NumberOfAgents":13,"NumberOfAgentWebsites":0,"MLS":["MA_MLSPIN","MLSPIN"],"CallTracking":false,"MapSearchV2":true,"OffMarketProperty":false,"VendorsPage":false,"Blog":true,"LuxuryBuildings":false,"TownPages":false,"MarketReportTool":false,"AVMTool":false,"LeadRouter":true}];
</script>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-NR38L3C');</script>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-NDDJ9NB');</script>
<!-- End Google Tag Manager -->
<title>Ipswich MA Real Estate | Windhill Realty</title>
	<meta name="description" content="Browse real estate for sale in Ipswich, MA with Windhill Realty. Contact Windhill Realty to find your Ipswich home." />
	<meta name="author" content="Windhill Realty" />
	<link rel="canonical" href="https://www.windhillrealty.com/blog/feed/"/>
	<link rel="copyright" href="https://d.usmre.com/UnionStreetMediaTermsofUse.pdf"/><meta property="og:title" content="Ipswich MA Real Estate | Windhill Realty" />
	<meta property="og:description" content="Browse real estate for sale in Ipswich, MA with Windhill Realty. Contact Windhill Realty to find your Ipswich home." />
	<meta property="og:url" content="https://www.windhillrealty.com/blog/feed/" />
	<meta property="og:type" content="website" />
	<meta property="og:site_name" content="Windhill Realty" />
	<meta name="twitter:card" content="summary" />
	<meta name="twitter:title" content="Ipswich MA Real Estate | Windhill Realty" />
	<meta name="twitter:description" content="Browse real estate for sale in Ipswich, MA with Windhill Realty. Contact Windhill Realty to find your Ipswich home." />
	<meta name="msvalidate.01" content="7AFB407F61E561ABD1320A24E73E1F9A" />
	<link rel="shortcut icon" href="https://s3.amazonaws.com/files.usmre.com/8989/i/favicon.png?t=1718130368" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="https://d1nn5t56all1qd.cloudfront.net/8989/styles.min.css?version=1768584856" media="screen" /><link rel="stylesheet" type="text/css" href="https://d1nn5t56all1qd.cloudfront.net/layouts/46/print.css?version=1740650949" media="print" /><script src="https://kit.fontawesome.com/c7bcd66c3f.js" crossorigin="anonymous"></script><script>/** vim: et:ts=4:sw=4:sts=4
 * @license RequireJS 2.3.3 Copyright jQuery Foundation and other contributors.
 * Released under MIT license, https://github.com/requirejs/requirejs/blob/master/LICENSE
 */
var requirejs,require,define;!function(global,setTimeout){function commentReplace(e,t){return t||""}function isFunction(e){return"[object Function]"===ostring.call(e)}function isArray(e){return"[object Array]"===ostring.call(e)}function each(e,t){if(e){var i;for(i=0;i<e.length&&(!e[i]||!t(e[i],i,e));i+=1);}}function eachReverse(e,t){if(e){var i;for(i=e.length-1;i>-1&&(!e[i]||!t(e[i],i,e));i-=1);}}function hasProp(e,t){return hasOwn.call(e,t)}function getOwn(e,t){return hasProp(e,t)&&e[t]}function eachProp(e,t){var i;for(i in e)if(hasProp(e,i)&&t(e[i],i))break}function mixin(e,t,i,r){return t&&eachProp(t,function(t,n){!i&&hasProp(e,n)||(!r||"object"!=typeof t||!t||isArray(t)||isFunction(t)||t instanceof RegExp?e[n]=t:(e[n]||(e[n]={}),mixin(e[n],t,i,r)))}),e}function bind(e,t){return function(){return t.apply(e,arguments)}}function scripts(){return document.getElementsByTagName("script")}function defaultOnError(e){throw e}function getGlobal(e){if(!e)return e;var t=global;return each(e.split("."),function(e){t=t[e]}),t}function makeError(e,t,i,r){var n=new Error(t+"\nhttp://requirejs.org/docs/errors.html#"+e);return n.requireType=e,n.requireModules=r,i&&(n.originalError=i),n}function newContext(e){function t(e){var t,i;for(t=0;t<e.length;t++)if(i=e[t],"."===i)e.splice(t,1),t-=1;else if(".."===i){if(0===t||1===t&&".."===e[2]||".."===e[t-1])continue;t>0&&(e.splice(t-1,2),t-=2)}}function i(e,i,r){var n,o,a,s,u,c,d,p,f,l,h,m,g=i&&i.split("/"),v=y.map,x=v&&v["*"];if(e&&(e=e.split("/"),d=e.length-1,y.nodeIdCompat&&jsSuffixRegExp.test(e[d])&&(e[d]=e[d].replace(jsSuffixRegExp,"")),"."===e[0].charAt(0)&&g&&(m=g.slice(0,g.length-1),e=m.concat(e)),t(e),e=e.join("/")),r&&v&&(g||x)){a=e.split("/");e:for(s=a.length;s>0;s-=1){if(c=a.slice(0,s).join("/"),g)for(u=g.length;u>0;u-=1)if(o=getOwn(v,g.slice(0,u).join("/")),o&&(o=getOwn(o,c))){p=o,f=s;break e}!l&&x&&getOwn(x,c)&&(l=getOwn(x,c),h=s)}!p&&l&&(p=l,f=h),p&&(a.splice(0,f,p),e=a.join("/"))}return n=getOwn(y.pkgs,e),n?n:e}function r(e){isBrowser&&each(scripts(),function(t){if(t.getAttribute("data-requiremodule")===e&&t.getAttribute("data-requirecontext")===q.contextName)return t.parentNode.removeChild(t),!0})}function n(e){var t=getOwn(y.paths,e);if(t&&isArray(t)&&t.length>1)return t.shift(),q.require.undef(e),q.makeRequire(null,{skipMap:!0})([e]),!0}function o(e){var t,i=e?e.indexOf("!"):-1;return i>-1&&(t=e.substring(0,i),e=e.substring(i+1,e.length)),[t,e]}function a(e,t,r,n){var a,s,u,c,d=null,p=t?t.name:null,f=e,l=!0,h="";return e||(l=!1,e="_@r"+(T+=1)),c=o(e),d=c[0],e=c[1],d&&(d=i(d,p,n),s=getOwn(j,d)),e&&(d?h=r?e:s&&s.normalize?s.normalize(e,function(e){return i(e,p,n)}):e.indexOf("!")===-1?i(e,p,n):e:(h=i(e,p,n),c=o(h),d=c[0],h=c[1],r=!0,a=q.nameToUrl(h))),u=!d||s||r?"":"_unnormalized"+(A+=1),{prefix:d,name:h,parentMap:t,unnormalized:!!u,url:a,originalName:f,isDefine:l,id:(d?d+"!"+h:h)+u}}function s(e){var t=e.id,i=getOwn(S,t);return i||(i=S[t]=new q.Module(e)),i}function u(e,t,i){var r=e.id,n=getOwn(S,r);!hasProp(j,r)||n&&!n.defineEmitComplete?(n=s(e),n.error&&"error"===t?i(n.error):n.on(t,i)):"defined"===t&&i(j[r])}function c(e,t){var i=e.requireModules,r=!1;t?t(e):(each(i,function(t){var i=getOwn(S,t);i&&(i.error=e,i.events.error&&(r=!0,i.emit("error",e)))}),r||req.onError(e))}function d(){globalDefQueue.length&&(each(globalDefQueue,function(e){var t=e[0];"string"==typeof t&&(q.defQueueMap[t]=!0),O.push(e)}),globalDefQueue=[])}function p(e){delete S[e],delete k[e]}function f(e,t,i){var r=e.map.id;e.error?e.emit("error",e.error):(t[r]=!0,each(e.depMaps,function(r,n){var o=r.id,a=getOwn(S,o);!a||e.depMatched[n]||i[o]||(getOwn(t,o)?(e.defineDep(n,j[o]),e.check()):f(a,t,i))}),i[r]=!0)}function l(){var e,t,i=1e3*y.waitSeconds,o=i&&q.startTime+i<(new Date).getTime(),a=[],s=[],u=!1,d=!0;if(!x){if(x=!0,eachProp(k,function(e){var i=e.map,c=i.id;if(e.enabled&&(i.isDefine||s.push(e),!e.error))if(!e.inited&&o)n(c)?(t=!0,u=!0):(a.push(c),r(c));else if(!e.inited&&e.fetched&&i.isDefine&&(u=!0,!i.prefix))return d=!1}),o&&a.length)return e=makeError("timeout","Load timeout for modules: "+a,null,a),e.contextName=q.contextName,c(e);d&&each(s,function(e){f(e,{},{})}),o&&!t||!u||!isBrowser&&!isWebWorker||w||(w=setTimeout(function(){w=0,l()},50)),x=!1}}function h(e){hasProp(j,e[0])||s(a(e[0],null,!0)).init(e[1],e[2])}function m(e,t,i,r){e.detachEvent&&!isOpera?r&&e.detachEvent(r,t):e.removeEventListener(i,t,!1)}function g(e){var t=e.currentTarget||e.srcElement;return m(t,q.onScriptLoad,"load","onreadystatechange"),m(t,q.onScriptError,"error"),{node:t,id:t&&t.getAttribute("data-requiremodule")}}function v(){var e;for(d();O.length;){if(e=O.shift(),null===e[0])return c(makeError("mismatch","Mismatched anonymous define() module: "+e[e.length-1]));h(e)}q.defQueueMap={}}var x,b,q,E,w,y={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},S={},k={},M={},O=[],j={},P={},R={},T=1,A=1;return E={require:function(e){return e.require?e.require:e.require=q.makeRequire(e.map)},exports:function(e){if(e.usingExports=!0,e.map.isDefine)return e.exports?j[e.map.id]=e.exports:e.exports=j[e.map.id]={}},module:function(e){return e.module?e.module:e.module={id:e.map.id,uri:e.map.url,config:function(){return getOwn(y.config,e.map.id)||{}},exports:e.exports||(e.exports={})}}},b=function(e){this.events=getOwn(M,e.id)||{},this.map=e,this.shim=getOwn(y.shim,e.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},b.prototype={init:function(e,t,i,r){r=r||{},this.inited||(this.factory=t,i?this.on("error",i):this.events.error&&(i=bind(this,function(e){this.emit("error",e)})),this.depMaps=e&&e.slice(0),this.errback=i,this.inited=!0,this.ignore=r.ignore,r.enabled||this.enabled?this.enable():this.check())},defineDep:function(e,t){this.depMatched[e]||(this.depMatched[e]=!0,this.depCount-=1,this.depExports[e]=t)},fetch:function(){if(!this.fetched){this.fetched=!0,q.startTime=(new Date).getTime();var e=this.map;return this.shim?void q.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return e.prefix?this.callPlugin():this.load()})):e.prefix?this.callPlugin():this.load()}},load:function(){var e=this.map.url;P[e]||(P[e]=!0,q.load(this.map.id,e))},check:function(){if(this.enabled&&!this.enabling){var e,t,i=this.map.id,r=this.depExports,n=this.exports,o=this.factory;if(this.inited){if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(o)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{n=q.execCb(i,o,r,n)}catch(t){e=t}else n=q.execCb(i,o,r,n);if(this.map.isDefine&&void 0===n&&(t=this.module,t?n=t.exports:this.usingExports&&(n=this.exports)),e)return e.requireMap=this.map,e.requireModules=this.map.isDefine?[this.map.id]:null,e.requireType=this.map.isDefine?"define":"require",c(this.error=e)}else n=o;if(this.exports=n,this.map.isDefine&&!this.ignore&&(j[i]=n,req.onResourceLoad)){var a=[];each(this.depMaps,function(e){a.push(e.normalizedMap||e)}),req.onResourceLoad(q,this.map,a)}p(i),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else hasProp(q.defQueueMap,i)||this.fetch()}},callPlugin:function(){var e=this.map,t=e.id,r=a(e.prefix);this.depMaps.push(r),u(r,"defined",bind(this,function(r){var n,o,d,f=getOwn(R,this.map.id),l=this.map.name,h=this.map.parentMap?this.map.parentMap.name:null,m=q.makeRequire(e.parentMap,{enableBuildCallback:!0});return this.map.unnormalized?(r.normalize&&(l=r.normalize(l,function(e){return i(e,h,!0)})||""),o=a(e.prefix+"!"+l,this.map.parentMap,!0),u(o,"defined",bind(this,function(e){this.map.normalizedMap=o,this.init([],function(){return e},null,{enabled:!0,ignore:!0})})),d=getOwn(S,o.id),void(d&&(this.depMaps.push(o),this.events.error&&d.on("error",bind(this,function(e){this.emit("error",e)})),d.enable()))):f?(this.map.url=q.nameToUrl(f),void this.load()):(n=bind(this,function(e){this.init([],function(){return e},null,{enabled:!0})}),n.error=bind(this,function(e){this.inited=!0,this.error=e,e.requireModules=[t],eachProp(S,function(e){0===e.map.id.indexOf(t+"_unnormalized")&&p(e.map.id)}),c(e)}),n.fromText=bind(this,function(i,r){var o=e.name,u=a(o),d=useInteractive;r&&(i=r),d&&(useInteractive=!1),s(u),hasProp(y.config,t)&&(y.config[o]=y.config[t]);try{req.exec(i)}catch(e){return c(makeError("fromtexteval","fromText eval for "+t+" failed: "+e,e,[t]))}d&&(useInteractive=!0),this.depMaps.push(u),q.completeLoad(o),m([o],n)}),void r.load(e.name,m,n,y))})),q.enable(r,this),this.pluginMaps[r.id]=r},enable:function(){k[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(e,t){var i,r,n;if("string"==typeof e){if(e=a(e,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[t]=e,n=getOwn(E,e.id))return void(this.depExports[t]=n(this));this.depCount+=1,u(e,"defined",bind(this,function(e){this.undefed||(this.defineDep(t,e),this.check())})),this.errback?u(e,"error",bind(this,this.errback)):this.events.error&&u(e,"error",bind(this,function(e){this.emit("error",e)}))}i=e.id,r=S[i],hasProp(E,i)||!r||r.enabled||q.enable(e,this)})),eachProp(this.pluginMaps,bind(this,function(e){var t=getOwn(S,e.id);t&&!t.enabled&&q.enable(e,this)})),this.enabling=!1,this.check()},on:function(e,t){var i=this.events[e];i||(i=this.events[e]=[]),i.push(t)},emit:function(e,t){each(this.events[e],function(e){e(t)}),"error"===e&&delete this.events[e]}},q={config:y,contextName:e,registry:S,defined:j,urlFetched:P,defQueue:O,defQueueMap:{},Module:b,makeModuleMap:a,nextTick:req.nextTick,onError:c,configure:function(e){if(e.baseUrl&&"/"!==e.baseUrl.charAt(e.baseUrl.length-1)&&(e.baseUrl+="/"),"string"==typeof e.urlArgs){var t=e.urlArgs;e.urlArgs=function(e,i){return(i.indexOf("?")===-1?"?":"&")+t}}var i=y.shim,r={paths:!0,bundles:!0,config:!0,map:!0};eachProp(e,function(e,t){r[t]?(y[t]||(y[t]={}),mixin(y[t],e,!0,!0)):y[t]=e}),e.bundles&&eachProp(e.bundles,function(e,t){each(e,function(e){e!==t&&(R[e]=t)})}),e.shim&&(eachProp(e.shim,function(e,t){isArray(e)&&(e={deps:e}),!e.exports&&!e.init||e.exportsFn||(e.exportsFn=q.makeShimExports(e)),i[t]=e}),y.shim=i),e.packages&&each(e.packages,function(e){var t,i;e="string"==typeof e?{name:e}:e,i=e.name,t=e.location,t&&(y.paths[i]=e.location),y.pkgs[i]=e.name+"/"+(e.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(S,function(e,t){e.inited||e.map.unnormalized||(e.map=a(t,null,!0))}),(e.deps||e.callback)&&q.require(e.deps||[],e.callback)},makeShimExports:function(e){function t(){var t;return e.init&&(t=e.init.apply(global,arguments)),t||e.exports&&getGlobal(e.exports)}return t},makeRequire:function(t,n){function o(i,r,u){var d,p,f;return n.enableBuildCallback&&r&&isFunction(r)&&(r.__requireJsBuild=!0),"string"==typeof i?isFunction(r)?c(makeError("requireargs","Invalid require call"),u):t&&hasProp(E,i)?E[i](S[t.id]):req.get?req.get(q,i,t,o):(p=a(i,t,!1,!0),d=p.id,hasProp(j,d)?j[d]:c(makeError("notloaded",'Module name "'+d+'" has not been loaded yet for context: '+e+(t?"":". Use require([])")))):(v(),q.nextTick(function(){v(),f=s(a(null,t)),f.skipMap=n.skipMap,f.init(i,r,u,{enabled:!0}),l()}),o)}return n=n||{},mixin(o,{isBrowser:isBrowser,toUrl:function(e){var r,n=e.lastIndexOf("."),o=e.split("/")[0],a="."===o||".."===o;return n!==-1&&(!a||n>1)&&(r=e.substring(n,e.length),e=e.substring(0,n)),q.nameToUrl(i(e,t&&t.id,!0),r,!0)},defined:function(e){return hasProp(j,a(e,t,!1,!0).id)},specified:function(e){return e=a(e,t,!1,!0).id,hasProp(j,e)||hasProp(S,e)}}),t||(o.undef=function(e){d();var i=a(e,t,!0),n=getOwn(S,e);n.undefed=!0,r(e),delete j[e],delete P[i.url],delete M[e],eachReverse(O,function(t,i){t[0]===e&&O.splice(i,1)}),delete q.defQueueMap[e],n&&(n.events.defined&&(M[e]=n.events),p(e))}),o},enable:function(e){var t=getOwn(S,e.id);t&&s(e).enable()},completeLoad:function(e){var t,i,r,o=getOwn(y.shim,e)||{},a=o.exports;for(d();O.length;){if(i=O.shift(),null===i[0]){if(i[0]=e,t)break;t=!0}else i[0]===e&&(t=!0);h(i)}if(q.defQueueMap={},r=getOwn(S,e),!t&&!hasProp(j,e)&&r&&!r.inited){if(!(!y.enforceDefine||a&&getGlobal(a)))return n(e)?void 0:c(makeError("nodefine","No define call for "+e,null,[e]));h([e,o.deps||[],o.exportsFn])}l()},nameToUrl:function(e,t,i){var r,n,o,a,s,u,c,d=getOwn(y.pkgs,e);if(d&&(e=d),c=getOwn(R,e))return q.nameToUrl(c,t,i);if(req.jsExtRegExp.test(e))s=e+(t||"");else{for(r=y.paths,n=e.split("/"),o=n.length;o>0;o-=1)if(a=n.slice(0,o).join("/"),u=getOwn(r,a)){isArray(u)&&(u=u[0]),n.splice(0,o,u);break}s=n.join("/"),s+=t||(/^data\:|^blob\:|\?/.test(s)||i?"":".js"),s=("/"===s.charAt(0)||s.match(/^[\w\+\.\-]+:/)?"":y.baseUrl)+s}return y.urlArgs&&!/^blob\:/.test(s)?s+y.urlArgs(e,s):s},load:function(e,t){req.load(q,e,t)},execCb:function(e,t,i,r){return t.apply(r,i)},onScriptLoad:function(e){if("load"===e.type||readyRegExp.test((e.currentTarget||e.srcElement).readyState)){interactiveScript=null;var t=g(e);q.completeLoad(t.id)}},onScriptError:function(e){var t=g(e);if(!n(t.id)){var i=[];return eachProp(S,function(e,r){0!==r.indexOf("_@r")&&each(e.depMaps,function(e){if(e.id===t.id)return i.push(r),!0})}),c(makeError("scripterror",'Script error for "'+t.id+(i.length?'", needed by: '+i.join(", "):'"'),e,[t.id]))}}},q.require=q.makeRequire(),q}function getInteractiveScript(){return interactiveScript&&"interactive"===interactiveScript.readyState?interactiveScript:(eachReverse(scripts(),function(e){if("interactive"===e.readyState)return interactiveScript=e}),interactiveScript)}var req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version="2.3.3",commentRegExp=/\/\*[\s\S]*?\*\/|([^:"'=]|^)\/\/.*$/gm,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,isBrowser=!("undefined"==typeof window||"undefined"==typeof navigator||!window.document),isWebWorker=!isBrowser&&"undefined"!=typeof importScripts,readyRegExp=isBrowser&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),contexts={},cfg={},globalDefQueue=[],useInteractive=!1;if("undefined"==typeof define){if("undefined"!=typeof requirejs){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}"undefined"==typeof require||isFunction(require)||(cfg=require,require=void 0),req=requirejs=function(e,t,i,r){var n,o,a=defContextName;return isArray(e)||"string"==typeof e||(o=e,isArray(t)?(e=t,t=i,i=r):e=[]),o&&o.context&&(a=o.context),n=getOwn(contexts,a),n||(n=contexts[a]=req.s.newContext(a)),o&&n.configure(o),n.require(e,t,i)},req.config=function(e){return req(e)},req.nextTick="undefined"!=typeof setTimeout?function(e){setTimeout(e,4)}:function(e){e()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts:contexts,newContext:newContext},req({}),each(["toUrl","undef","defined","specified"],function(e){req[e]=function(){var t=contexts[defContextName];return t.require[e].apply(t,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],baseElement=document.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(e,t,i){var r=e.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return r.type=e.scriptType||"text/javascript",r.charset="utf-8",r.async=!0,r},req.load=function(e,t,i){var r,n=e&&e.config||{};if(isBrowser)return r=req.createNode(n,t,i),r.setAttribute("data-requirecontext",e.contextName),r.setAttribute("data-requiremodule",t),!r.attachEvent||r.attachEvent.toString&&r.attachEvent.toString().indexOf("[native code")<0||isOpera?(r.addEventListener("load",e.onScriptLoad,!1),r.addEventListener("error",e.onScriptError,!1)):(useInteractive=!0,r.attachEvent("onreadystatechange",e.onScriptLoad)),r.src=i,n.onNodeCreated&&n.onNodeCreated(r,n,t,i),currentlyAddingScript=r,baseElement?head.insertBefore(r,baseElement):head.appendChild(r),currentlyAddingScript=null,r;if(isWebWorker)try{setTimeout(function(){},0),importScripts(i),e.completeLoad(t)}catch(r){e.onError(makeError("importscripts","importScripts failed for "+t+" at "+i,r,[t]))}},isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(e){if(head||(head=e.parentNode),dataMain=e.getAttribute("data-main"))return mainScript=dataMain,cfg.baseUrl||mainScript.indexOf("!")!==-1||(src=mainScript.split("/"),mainScript=src.pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0}),define=function(e,t,i){var r,n;"string"!=typeof e&&(i=t,t=e,e=null),isArray(t)||(i=t,t=null),!t&&isFunction(i)&&(t=[],i.length&&(i.toString().replace(commentRegExp,commentReplace).replace(cjsRequireRegExp,function(e,i){t.push(i)}),t=(1===i.length?["require"]:["require","exports","module"]).concat(t))),useInteractive&&(r=currentlyAddingScript||getInteractiveScript(),r&&(e||(e=r.getAttribute("data-requiremodule")),n=contexts[r.getAttribute("data-requirecontext")])),n?(n.defQueue.push([e,t,i]),n.defQueueMap[e]=!0):globalDefQueue.push([e,t,i])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg)}}(this,"undefined"==typeof setTimeout?void 0:setTimeout);</script><script type="text/javascript">
            var requireConfig = {"waitSeconds":20,"baseUrl":"https:\/\/d1mlo4htassgww.cloudfront.net\/shipyard\/build\/","paths":{"async":"profiles\/default","bootstrap":"profiles\/default","goog":"profiles\/default","jquery":"profiles\/default","jquery.browser":"profiles\/default","jquery.deparam":"profiles\/default","jquery.dropdownchecklist":"profiles\/default","jquery.form":"profiles\/default","jquery.history":"profiles\/default","jquery.html5-placeholder-shim":"profiles\/default","jquery.inview":"profiles\/default","jquery.usmNlsShipyard":"profiles\/default","jquery.pageitems":"profiles\/default","jquery.usmajaxtogglebutton":"profiles\/default","jquery.usmmortgageestimate":"profiles\/default","jquery.usmtruncate":"profiles\/default","jquery.validation":"profiles\/default","jquery.validation-extensions-usm":"profiles\/default","jqueryui":"profiles\/default","knockout":"knockout-2.3.0","owlcarousel":"profiles\/default","picturefill.min":"profiles\/default","propertyParser":"profiles\/default","shim.polyfills":"profiles\/default","captcha":"profiles\/default","shipyard":"profiles\/default","static-map-search":"profiles\/default","usm":"profiles\/default","usm.analytics":"profiles\/default","usm.cookie":"profiles\/default","usm.url":"profiles\/default","usm.user":"profiles\/default","usm.favorite":"profiles\/default","usm.savesearch":"profiles\/default","usm.modalform":"profiles\/default","usm.dynamicsearch":"profiles\/default","LLSDKsJS":"https:\/\/sdk.locallogic.co\/sdks-js\/1.19.30\/index.umd","webfontloader":"\/\/ajax.googleapis.com\/ajax\/libs\/webfont\/1\/webfont","Leaflet":"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/leaflet\/1.0.1\/leaflet","mapboxgl":"https:\/\/api.tiles.mapbox.com\/mapbox-gl-js\/v0.42.0\/mapbox-gl","plunk":"plunkComponents.min","emblaCarousel":"https:\/\/unpkg.com\/embla-carousel@8.6.0\/embla-carousel.umd","emblaCarouselAutoplay":"https:\/\/unpkg.com\/embla-carousel-autoplay@8.0.2\/embla-carousel-autoplay.umd","emblaCarouselClassNames":"https:\/\/unpkg.com\/embla-carousel-class-names@8.0.4\/embla-carousel-class-names.umd","emblaCarouselFade":"https:\/\/unpkg.com\/embla-carousel-fade@8.5.2\/embla-carousel-fade.umd","emblaCarouselPlugins":"emblaCarouselPlugins","map.regions":"\/realestate\/regions\/?json","jquery.validationextensionsusm":"\/data\/shipyard\/js\/jquery.validation-extensions-usm"}};
            requireConfig.urlArgs = function(id, url) {
                var args = "";
                if (url.indexOf("d1nn5t56all1qd") <= 0 && url.indexOf("dy0meowegjlo2") <= 0) {
                    args = "version=1774534571";
                    return (url.indexOf("?") === -1 ? "?" : "&") + args;
                }

                return "";
            };

            require.config(requireConfig);
            </script>
            <script type="text/javascript">require(["profiles/default", "usm", "usm.calltracking", "usm.goscript"], function    (listing, usm) {
                if (usm.touchSupport) { require(["profiles/touch"]); }
            });</script><script async src="https://www.google.com/recaptcha/enterprise.js?render=6LdgBJEpAAAAAE4zkloHpz1oWigxlJZW7dd5Y6K1"></script>
            <link rel="preconnect" href="https://www.google.com">
            <link rel="preconnect" href="https://www.gstatic.com" crossorigin>
</head>
<body class="feed array1-blog array1-feed spring" data-site-type="shipyard" data-re-captcha-site-key="6LdgBJEpAAAAAE4zkloHpz1oWigxlJZW7dd5Y6K1">
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-NR38L3C" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-NDDJ9NB" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<header class="utilBarWrap">
    <div id="sidebar3"><div id="image-204094" class="widget image container"><a href="/" target="_self" class="header-logo"><img src="https://d3w216np43fnr4.cloudfront.net/8989/204094/7.jpg?version=1716318633" alt="Windhill Logo - View Home" width="3300" height="743"/></a></div><div id="menuwidget-204230" class="widget menu menuwidget default-nav container"><h3 class="widget-title">Desktop Menu</h3><div class="widget-inner"><div class="desktop-nav"><div class="navbar-wrapper"><nav class="navbar navbar-default" role="navigation"><div id="navbar-204230"><ul class="nav navbar-nav site-nav" role="menubar"><li role="presentation" class="has-children menu-item-142517"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="sub-menu-142517" class="dropdown-toggle" role="menuitem">Property Search<span class="caret"></span></a><ul class="dropdown-menu" id="sub-menu-142517" role="menu"><li role="presentation" class=" menu-item-142462"><a href="/our-listings/" target="_self" role="menuitem">Our Listings</a></li><li role="presentation" class=" menu-item-142463"><a href="/listings/" target="_self" role="menuitem">Advanced Property Search</a></li><li role="presentation" class=" menu-item-142464"><a href="/popular-searches/open-houses/" target="_self" role="menuitem">Open Houses</a></li><li role="presentation" class=" menu-item-142465"><a href="/our-sold-listings/" target="_self" role="menuitem">Sold Properties</a></li><li role="presentation" class=" menu-item-142466"><a href="/lifestyle/waterfront/" target="_self" role="menuitem">Waterfront Homes</a></li><li role="presentation" class=" menu-item-142467"><a href="/lifestyle/historic/" target="_self" role="menuitem">Historic Homes</a></li><li role="presentation" class=" menu-item-142468"><a href="/coming-soon/" target="_self" role="menuitem">Coming Soon</a></li></ul></li><li role="presentation" class="has-children menu-item-142518"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="sub-menu-142518" class="dropdown-toggle" role="menuitem">Communities<span class="caret"></span></a><ul class="dropdown-menu" id="sub-menu-142518" role="menu"><li role="presentation" class=" menu-item-142469"><a href="/communities/ipswich/" target="_self" role="menuitem">Life in Ipswich</a></li><li role="presentation" class=" menu-item-142472"><a href="/communities/newburyport/" target="_self" role="menuitem">Life in Newburyport</a></li><li role="presentation" class=" menu-item-142471"><a href="/communities/gloucester/" target="_self" role="menuitem">Life in Gloucester</a></li><li role="presentation" class=" menu-item-142473"><a href="/communities/marblehead/" target="_self" role="menuitem">Life in Marblehead</a></li><li role="presentation" class=" menu-item-142474"><a href="/communities/manchester-by-the-sea/" target="_self" role="menuitem">Life in Manchester by the Sea</a></li><li role="presentation" class=" menu-item-142470"><a href="/communities/peabody/" target="_self" role="menuitem">Life in Peabody</a></li><li role="presentation" class=" menu-item-142475"><a href="/communities/rowley/" target="_self" role="menuitem">Life in Rowley</a></li><li role="presentation" class=" menu-item-142476"><a href="/communities/" target="_self" role="menuitem">View All</a></li></ul></li><li role="presentation" class="has-children menu-item-142519"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="sub-menu-142519" class="dropdown-toggle" role="menuitem">About Us<span class="caret"></span></a><ul class="dropdown-menu" id="sub-menu-142519" role="menu"><li role="presentation" class=" menu-item-142457"><a href="/our-agents/" target="_self" role="menuitem">Our Agents</a></li><li role="presentation" class=" menu-item-142458"><a href="/about-windhill-realty/our-story/" target="_self" role="menuitem">Our Story</a></li><li role="presentation" class=" menu-item-142459"><a href="/about-windhill-realty/office-location/" target="_self" role="menuitem">Office Location</a></li><li role="presentation" class=" menu-item-142460"><a href="/blog/" target="_self" role="menuitem">Blog</a></li><li role="presentation" class=" menu-item-142461"><a href="/home/make-the-move-that-takes-your-real-estate-career-to-the-next-level/" target="_self" role="menuitem">Careers</a></li></ul></li></ul></div></nav></div></div><div class="mobile-nav"><button type="button" class="navbar-toggle" data-target="#navbar-mobile-204230" aria-label="Toggle navigation"><span>Menu</span><span class="fa fa-bar"></span><span class="fa fa-bar"></span><span class="fa fa-bar"></span></button><div class="navbar-wrapper"><nav class="navbar navbar-default" role="navigation"><div id="navbar-mobile-204230"><a href="#" class="menu-close"><i class="fa fa-times-circle-o"></i><span class="sr-only">Close Button</span></a><div class="menu-sign-on"><a class="usm-btn nav-login" href="/user/login/" rel="nofollow">Log In</a><a class="usm-btn nav-register" href="/user/register/" rel="nofollow">Sign Up</a><a class="usm-btn nav-account" href="/user/" rel="nofollow">My Account</a></div><ul class="nav navbar-nav site-nav" role="menubar"><li role="presentation" class="has-children menu-item-142517"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="mobile-sub-menu-142517" class="dropdown-toggle" role="menuitem">Property Search<span class="caret"></span></a><ul class="dropdown-menu" id="mobile-sub-menu-142517" role="menu"><li role="presentation" class=" menu-item-142462"><a href="/our-listings/" target="_self" role="menuitem">Our Listings</a></li><li role="presentation" class=" menu-item-142463"><a href="/listings/" target="_self" role="menuitem">Advanced Property Search</a></li><li role="presentation" class=" menu-item-142464"><a href="/popular-searches/open-houses/" target="_self" role="menuitem">Open Houses</a></li><li role="presentation" class=" menu-item-142465"><a href="/our-sold-listings/" target="_self" role="menuitem">Sold Properties</a></li><li role="presentation" class=" menu-item-142466"><a href="/lifestyle/waterfront/" target="_self" role="menuitem">Waterfront Homes</a></li><li role="presentation" class=" menu-item-142467"><a href="/lifestyle/historic/" target="_self" role="menuitem">Historic Homes</a></li><li role="presentation" class=" menu-item-142468"><a href="/coming-soon/" target="_self" role="menuitem">Coming Soon</a></li></ul></li><li role="presentation" class="has-children menu-item-142518"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="mobile-sub-menu-142518" class="dropdown-toggle" role="menuitem">Communities<span class="caret"></span></a><ul class="dropdown-menu" id="mobile-sub-menu-142518" role="menu"><li role="presentation" class=" menu-item-142469"><a href="/communities/ipswich/" target="_self" role="menuitem">Life in Ipswich</a></li><li role="presentation" class=" menu-item-142472"><a href="/communities/newburyport/" target="_self" role="menuitem">Life in Newburyport</a></li><li role="presentation" class=" menu-item-142471"><a href="/communities/gloucester/" target="_self" role="menuitem">Life in Gloucester</a></li><li role="presentation" class=" menu-item-142473"><a href="/communities/marblehead/" target="_self" role="menuitem">Life in Marblehead</a></li><li role="presentation" class=" menu-item-142474"><a href="/communities/manchester-by-the-sea/" target="_self" role="menuitem">Life in Manchester by the Sea</a></li><li role="presentation" class=" menu-item-142470"><a href="/communities/peabody/" target="_self" role="menuitem">Life in Peabody</a></li><li role="presentation" class=" menu-item-142475"><a href="/communities/rowley/" target="_self" role="menuitem">Life in Rowley</a></li><li role="presentation" class=" menu-item-142476"><a href="/communities/" target="_self" role="menuitem">View All</a></li></ul></li><li role="presentation" class="has-children menu-item-142519"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="mobile-sub-menu-142519" class="dropdown-toggle" role="menuitem">About Us<span class="caret"></span></a><ul class="dropdown-menu" id="mobile-sub-menu-142519" role="menu"><li role="presentation" class=" menu-item-142457"><a href="/our-agents/" target="_self" role="menuitem">Our Agents</a></li><li role="presentation" class=" menu-item-142458"><a href="/about-windhill-realty/our-story/" target="_self" role="menuitem">Our Story</a></li><li role="presentation" class=" menu-item-142459"><a href="/about-windhill-realty/office-location/" target="_self" role="menuitem">Office Location</a></li><li role="presentation" class=" menu-item-142460"><a href="/blog/" target="_self" role="menuitem">Blog</a></li><li role="presentation" class=" menu-item-142461"><a href="/home/make-the-move-that-takes-your-real-estate-career-to-the-next-level/" target="_self" role="menuitem">Careers</a></li></ul></li></ul><ul class="nav navbar-nav user-nav"><li class="menu-item-saved-search" role="presentation"><a href="/realestate/searches/" rel="nofollow">Saved Searches</a></li><li class="menu-item-favorites" role="presentation"><a href="/realestate/favorites/view/" rel="nofollow">Favorites</a></li></ul></div></nav></div></div></div></div><div id="menuwidget-204229" class="widget menu menuwidget default-nav container"><h3 class="widget-title">Mobile Menu</h3><div class="widget-inner"><div class="desktop-nav"><div class="navbar-wrapper"><nav class="navbar navbar-default" role="navigation"><div id="navbar-204229"><ul class="nav navbar-nav site-nav" role="menubar"><li role="presentation" class="has-children menu-item-142445"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="sub-menu-142445" class="dropdown-toggle" role="menuitem">Property Search<span class="caret"></span></a><ul class="dropdown-menu" id="sub-menu-142445" role="menu"><li role="presentation" class=" menu-item-142462"><a href="/our-listings/" target="_self" role="menuitem">Our Listings</a></li><li role="presentation" class=" menu-item-142463"><a href="/listings/" target="_self" role="menuitem">Advanced Property Search</a></li><li role="presentation" class=" menu-item-142464"><a href="/popular-searches/open-houses/" target="_self" role="menuitem">Open Houses</a></li><li role="presentation" class=" menu-item-142465"><a href="/our-sold-listings/" target="_self" role="menuitem">Sold Properties</a></li><li role="presentation" class=" menu-item-142466"><a href="/lifestyle/waterfront/" target="_self" role="menuitem">Waterfront Homes</a></li><li role="presentation" class=" menu-item-142467"><a href="/lifestyle/historic/" target="_self" role="menuitem">Historic Homes</a></li><li role="presentation" class=" menu-item-142468"><a href="/coming-soon/" target="_self" role="menuitem">Coming Soon</a></li></ul></li><li role="presentation" class="has-children menu-item-142446"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="sub-menu-142446" class="dropdown-toggle" role="menuitem">Communities<span class="caret"></span></a><ul class="dropdown-menu" id="sub-menu-142446" role="menu"><li role="presentation" class=" menu-item-142469"><a href="/communities/ipswich/" target="_self" role="menuitem">Life in Ipswich</a></li><li role="presentation" class=" menu-item-142472"><a href="/communities/newburyport/" target="_self" role="menuitem">Life in Newburyport</a></li><li role="presentation" class=" menu-item-142471"><a href="/communities/gloucester/" target="_self" role="menuitem">Life in Gloucester</a></li><li role="presentation" class=" menu-item-142473"><a href="/communities/marblehead/" target="_self" role="menuitem">Life in Marblehead</a></li><li role="presentation" class=" menu-item-142474"><a href="/communities/manchester-by-the-sea/" target="_self" role="menuitem">Life in Manchester by the Sea</a></li><li role="presentation" class=" menu-item-142470"><a href="/communities/peabody/" target="_self" role="menuitem">Life in Peabody</a></li><li role="presentation" class=" menu-item-142475"><a href="/communities/rowley/" target="_self" role="menuitem">Life in Rowley</a></li><li role="presentation" class=" menu-item-142476"><a href="/communities/" target="_self" role="menuitem">View All</a></li></ul></li><li role="presentation" class="has-children menu-item-142447"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="sub-menu-142447" class="dropdown-toggle" role="menuitem">North Shore Lifestyle<span class="caret"></span></a><ul class="dropdown-menu" id="sub-menu-142447" role="menu"><li role="presentation" class=" menu-item-142481"><a href="/lifestyle/active-adult-homes/" target="_self" role="menuitem">Active Adult Homes</a></li><li role="presentation" class=" menu-item-142478"><a href="/lifestyle/waterfront/" target="_self" role="menuitem">Waterfront Homes</a></li><li role="presentation" class=" menu-item-142479"><a href="/lifestyle/historic/" target="_self" role="menuitem">Historic Homes</a></li><li role="presentation" class=" menu-item-142480"><a href="/lifestyle/luxury-equestrian/" target="_self" role="menuitem">Luxury & Equestrian Homes</a></li></ul></li><li role="presentation" class="has-children menu-item-142994"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="sub-menu-142994" class="dropdown-toggle" role="menuitem">Our Services<span class="caret"></span></a><ul class="dropdown-menu" id="sub-menu-142994" role="menu"><li role="presentation" class=" menu-item-142995"><a href="/about-windhill-realty/advertising/" target="_self" role="menuitem">Advertising</a></li><li role="presentation" class=" menu-item-142996"><a href="/about-windhill-realty/reasons-for-success/" target="_self" role="menuitem">Reasons for success</a></li><li role="presentation" class=" menu-item-142997"><a href="/sellers/builder-service-offerings/" target="_self" role="menuitem">Builder service offerings</a></li><li role="presentation" class=" menu-item-142998"><a href="/buyers/the-loan-process-start-to-finish-seven-steps-to-a-mortgage/" target="_self" role="menuitem">The loan process</a></li><li role="presentation" class=" menu-item-142999"><a href="/buyers/mortgage-calculator/" target="_self" role="menuitem">Mortgage calculator</a></li><li role="presentation" class=" menu-item-143000"><a href="/buyers/preferred-mortgage-lenders/" target="_self" role="menuitem">Preferred mortgage lenders</a></li></ul></li><li role="presentation" class="has-children menu-item-142450"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="sub-menu-142450" class="dropdown-toggle" role="menuitem">About Us<span class="caret"></span></a><ul class="dropdown-menu" id="sub-menu-142450" role="menu"><li role="presentation" class=" menu-item-142457"><a href="/our-agents/" target="_self" role="menuitem">Our Agents</a></li><li role="presentation" class=" menu-item-142458"><a href="/about-windhill-realty/our-story/" target="_self" role="menuitem">Our Story</a></li><li role="presentation" class=" menu-item-142459"><a href="/about-windhill-realty/office-location/" target="_self" role="menuitem">Office Location</a></li><li role="presentation" class=" menu-item-142460"><a href="/blog/" target="_self" role="menuitem">Blog</a></li><li role="presentation" class=" menu-item-142461"><a href="/home/make-the-move-that-takes-your-real-estate-career-to-the-next-level/" target="_self" role="menuitem">Careers</a></li></ul></li><li role="presentation" class=" menu-item-142520"><a href="/contact-us/" target="_self" role="menuitem">Contact Us</a></li></ul></div></nav></div></div><div class="mobile-nav"><button type="button" class="navbar-toggle" data-target="#navbar-mobile-204229" aria-label="Toggle navigation"><span>Menu</span><span class="fa fa-bar"></span><span class="fa fa-bar"></span><span class="fa fa-bar"></span></button><div class="navbar-wrapper"><nav class="navbar navbar-default" role="navigation"><div id="navbar-mobile-204229"><a href="#" class="menu-close"><i class="fa fa-times-circle-o"></i><span class="sr-only">Close Button</span></a><div class="menu-sign-on"><a class="usm-btn nav-login" href="/user/login/" rel="nofollow">Log In</a><a class="usm-btn nav-register" href="/user/register/" rel="nofollow">Sign Up</a><a class="usm-btn nav-account" href="/user/" rel="nofollow">My Account</a></div><ul class="nav navbar-nav site-nav" role="menubar"><li role="presentation" class="has-children menu-item-142445"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="mobile-sub-menu-142445" class="dropdown-toggle" role="menuitem">Property Search<span class="caret"></span></a><ul class="dropdown-menu" id="mobile-sub-menu-142445" role="menu"><li role="presentation" class=" menu-item-142462"><a href="/our-listings/" target="_self" role="menuitem">Our Listings</a></li><li role="presentation" class=" menu-item-142463"><a href="/listings/" target="_self" role="menuitem">Advanced Property Search</a></li><li role="presentation" class=" menu-item-142464"><a href="/popular-searches/open-houses/" target="_self" role="menuitem">Open Houses</a></li><li role="presentation" class=" menu-item-142465"><a href="/our-sold-listings/" target="_self" role="menuitem">Sold Properties</a></li><li role="presentation" class=" menu-item-142466"><a href="/lifestyle/waterfront/" target="_self" role="menuitem">Waterfront Homes</a></li><li role="presentation" class=" menu-item-142467"><a href="/lifestyle/historic/" target="_self" role="menuitem">Historic Homes</a></li><li role="presentation" class=" menu-item-142468"><a href="/coming-soon/" target="_self" role="menuitem">Coming Soon</a></li></ul></li><li role="presentation" class="has-children menu-item-142446"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="mobile-sub-menu-142446" class="dropdown-toggle" role="menuitem">Communities<span class="caret"></span></a><ul class="dropdown-menu" id="mobile-sub-menu-142446" role="menu"><li role="presentation" class=" menu-item-142469"><a href="/communities/ipswich/" target="_self" role="menuitem">Life in Ipswich</a></li><li role="presentation" class=" menu-item-142472"><a href="/communities/newburyport/" target="_self" role="menuitem">Life in Newburyport</a></li><li role="presentation" class=" menu-item-142471"><a href="/communities/gloucester/" target="_self" role="menuitem">Life in Gloucester</a></li><li role="presentation" class=" menu-item-142473"><a href="/communities/marblehead/" target="_self" role="menuitem">Life in Marblehead</a></li><li role="presentation" class=" menu-item-142474"><a href="/communities/manchester-by-the-sea/" target="_self" role="menuitem">Life in Manchester by the Sea</a></li><li role="presentation" class=" menu-item-142470"><a href="/communities/peabody/" target="_self" role="menuitem">Life in Peabody</a></li><li role="presentation" class=" menu-item-142475"><a href="/communities/rowley/" target="_self" role="menuitem">Life in Rowley</a></li><li role="presentation" class=" menu-item-142476"><a href="/communities/" target="_self" role="menuitem">View All</a></li></ul></li><li role="presentation" class="has-children menu-item-142447"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="mobile-sub-menu-142447" class="dropdown-toggle" role="menuitem">North Shore Lifestyle<span class="caret"></span></a><ul class="dropdown-menu" id="mobile-sub-menu-142447" role="menu"><li role="presentation" class=" menu-item-142481"><a href="/lifestyle/active-adult-homes/" target="_self" role="menuitem">Active Adult Homes</a></li><li role="presentation" class=" menu-item-142478"><a href="/lifestyle/waterfront/" target="_self" role="menuitem">Waterfront Homes</a></li><li role="presentation" class=" menu-item-142479"><a href="/lifestyle/historic/" target="_self" role="menuitem">Historic Homes</a></li><li role="presentation" class=" menu-item-142480"><a href="/lifestyle/luxury-equestrian/" target="_self" role="menuitem">Luxury & Equestrian Homes</a></li></ul></li><li role="presentation" class="has-children menu-item-142994"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="mobile-sub-menu-142994" class="dropdown-toggle" role="menuitem">Our Services<span class="caret"></span></a><ul class="dropdown-menu" id="mobile-sub-menu-142994" role="menu"><li role="presentation" class=" menu-item-142995"><a href="/about-windhill-realty/advertising/" target="_self" role="menuitem">Advertising</a></li><li role="presentation" class=" menu-item-142996"><a href="/about-windhill-realty/reasons-for-success/" target="_self" role="menuitem">Reasons for success</a></li><li role="presentation" class=" menu-item-142997"><a href="/sellers/builder-service-offerings/" target="_self" role="menuitem">Builder service offerings</a></li><li role="presentation" class=" menu-item-142998"><a href="/buyers/the-loan-process-start-to-finish-seven-steps-to-a-mortgage/" target="_self" role="menuitem">The loan process</a></li><li role="presentation" class=" menu-item-142999"><a href="/buyers/mortgage-calculator/" target="_self" role="menuitem">Mortgage calculator</a></li><li role="presentation" class=" menu-item-143000"><a href="/buyers/preferred-mortgage-lenders/" target="_self" role="menuitem">Preferred mortgage lenders</a></li></ul></li><li role="presentation" class="has-children menu-item-142450"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="mobile-sub-menu-142450" class="dropdown-toggle" role="menuitem">About Us<span class="caret"></span></a><ul class="dropdown-menu" id="mobile-sub-menu-142450" role="menu"><li role="presentation" class=" menu-item-142457"><a href="/our-agents/" target="_self" role="menuitem">Our Agents</a></li><li role="presentation" class=" menu-item-142458"><a href="/about-windhill-realty/our-story/" target="_self" role="menuitem">Our Story</a></li><li role="presentation" class=" menu-item-142459"><a href="/about-windhill-realty/office-location/" target="_self" role="menuitem">Office Location</a></li><li role="presentation" class=" menu-item-142460"><a href="/blog/" target="_self" role="menuitem">Blog</a></li><li role="presentation" class=" menu-item-142461"><a href="/home/make-the-move-that-takes-your-real-estate-career-to-the-next-level/" target="_self" role="menuitem">Careers</a></li></ul></li><li role="presentation" class=" menu-item-142520"><a href="/contact-us/" target="_self" role="menuitem">Contact Us</a></li></ul><ul class="nav navbar-nav user-nav"><li class="menu-item-saved-search" role="presentation"><a href="/realestate/searches/" rel="nofollow">Saved Searches</a></li><li class="menu-item-favorites" role="presentation"><a href="/realestate/favorites/view/" rel="nofollow">Favorites</a></li></ul></div></nav></div></div></div></div></div>
</header>
<div class="topWrap">
    <div id="top"><div id="slideshow-205525" class="widget slideshow container"><div class="slideshow-wrapper" id="carousel-205525"><div class="carousel slide carousel-fade"><div class="carousel-inner"><div class="item active"><img alt="Kitchen" src="https://d3w216np43fnr4.cloudfront.net/8989/205525/1-original.jpg?version=1655375178" srcset="https://d3w216np43fnr4.cloudfront.net/1170x1170/8989/205525/1.jpg?version=1655375185 1170w,https://d3w216np43fnr4.cloudfront.net/970x970/8989/205525/1.jpg?version=1655375190 970w,https://d3w216np43fnr4.cloudfront.net/750x750/8989/205525/1.jpg?version=1655375187 750w,https://d3w216np43fnr4.cloudfront.net/320x320/8989/205525/1.jpg?version=1655375187 320w,https://d3w216np43fnr4.cloudfront.net/8989/205525/1-original.jpg?version=1655375178 1500w"/></div></div></div></div></div></div>
</div>
<div class="sub1Wrap">
    <div id="group1"><div id="recsearch-204235" class="widget recsearchlist recsearch recommendedsearchlist tabbed container"><h3 class="widget-title">Rec Search</h3><div class="widget-inner"><ul class="nav nav-tabs"><li class="active recsearch-category-advanced-search"><a href="#tab-30190" data-toggle="tab">Advanced Search</a></li><li class="recsearch-category-open-houses"><a href="#tab-30064" data-toggle="tab">Open Houses</a></li></ul><div class="tab-content"><div class="tab-pane active" id="tab-30190"><ul class="category-searches"><li><a title="Homes above 500k" href="/advanced-search/homes-above-500k/">$500k+</a></li><li><a title="Homes below 500K" href="/advanced-search/homes-below-500k/">Below $500k</a></li><li><a title="Single Family Homes" href="/advanced-search/single-family-homes/">Single-Family Homes</a></li><li><a title="Waterfront Homes" href="/advanced-search/waterfront-homes/">Waterfront</a></li><li><a title="Active Adult Homes" href="/search-by-type/active-adult-homes/">Active Adult Homes</a></li><li><a title="North Shore MA Historical Homes" href="/search-by-type/north-shore-ma-historic-homes/">Historical Homes</a></li></ul></div><div class="tab-pane" id="tab-30064"><ul class="category-searches"><li><a title="North Shore Open Houses" href="/open-houses/north-shore-open-houses/">All Open Houses</a></li><li><a title="Amesbury MA Open Houses" href="/open-houses/amesbury-ma-open-houses/">Amesbury</a></li><li><a title="Andover MA Open Houses" href="/open-houses/andover-ma-open-houses/">Andover</a></li><li><a title="Beverly MA Open Houses" href="/open-houses/beverly-open-houses/">Beverly</a></li><li><a title="Boxford MA Open Houses" href="/open-houses/boxford-open-houses/">Boxford</a></li><li><a title="Danvers MA Open Houses" href="/open-houses/danvers-open-houses/">Danvers</a></li><li><a title="Essex MA Open Houses" href="/open-houses/essex-open-houses/">Essex</a></li><li><a title="Georgetown MA Open Houses" href="/open-houses/georgetown-open-houses/">Georgetown</a></li><li><a title="Gloucester MA Open Houses" href="/open-houses/gloucester-open-houses/">Gloucester</a></li><li><a title="Groveland MA Open Houses" href="/open-houses/groveland-open-houses/">Groveland</a></li><li><a title="Hamilton MA Open Houses" href="/open-houses/hamilton-open-houses/">Hamilton</a></li><li><a title="Ipswich MA Open Houses" href="/open-houses/ipswich-open-houses/">Ipswich</a></li><li><a title="Lynnfield MA Open Houses" href="/open-houses/lynnfield-open-houses/">Lynnfield</a></li><li><a title="Marblehead MA Open Houses" href="/open-houses/marblehead-open-houses/">Marblehead</a></li><li><a title="Manchester MA Open Houses" href="/open-houses/manchester-open-houses/">Manchester</a></li><li><a title="Merrimac MA Open Houses" href="/open-houses/merrimac-ma-open-houses/">Merrimac</a></li><li><a title="Newbury MA Open Houses" href="/newbury-ma-open-houses/">Newbury</a></li><li><a title="Newburyport MA Open Houses" href="/newburyport-open-houses/">Newburyport</a></li><li><a title="North Andover MA Open Houses" href="/open-houses/north-andover-ma-open-houses/">North Andover</a></li><li><a title="Peabody MA Open Houses" href="/open-houses/peabody-ma-open-houses/">Peabody</a></li><li><a title="Rockport MA Open Houses" href="/open-houses/rockport-ma-open-houses/">Rockport</a></li><li><a title="Rowley MA Open Houses" href="/open-houses/rowley-ma-open-houses/">Rowley</a></li><li><a title="Salem MA Open Houses" href="/open-houses/salem-ma-open-houses/">Salem</a></li><li><a title="Salisbury MA Open Houses" href="/open-houses/salisbury-ma-open-houses/">Salisbury</a></li><li><a title="Topsfield MA Open Houses" href="/open-houses/topsfield-open-houses/">Topsfield</a></li><li><a title="Wenham MA Open Houses" href="/open-houses/wenham-open-houses/">Wenham</a></li><li><a title="West Newbury MA Open Houses" href="/open-houses/west-newbury-ma-open-houses/">West Newbury</a></li></ul></div></div><a href="/realestate/searchcategories/" title="View All Recommended Searches" class="usm-btn view-all">View all</a></div>        
        </div><div id="autosuggestionsearch-204236" class="widget autosuggestionsearch container"><div class="autosuggest widget-autosuggest"><div class="widget-inner"><form action="/listings/" method="get"><div class="autosuggest-searchbar"><input type="search" placeholder="Search by Address, Neighborhood, City, or Zip Code..." aria-label="&#10;                                Search: Search by Address, Neighborhood, City, or Zip Code...&#10;                                Use Up and Down to choose options,&#10;                                press Enter to select the currently focused option,&#10;                                press Escape to exit the menu,&#10;                                press Tab to select the option and exit the menu.&#10;                            " autocomplete="off" name="autosuggest-search-query" id="autosuggest-search-query-204236" maxlength="200" class="search-input form-control"/><div class="buttons"><div class="autosuggest-loader"></div><button class="usm-btn btn-search" id="autosuggest-search-button" role="button" aria-label="Search"><i class="fa fa-search"></i></button></div></div><div class="autosuggest-links"><div class="col-links"></div></div></form></div></div></div></div>
</div>
<div class="sub2Wrap">
    <div id="group2"></div>
</div>
<section id="wrapper">
    <div class="content-row">
        <div class="contentWrap">
            <main></main>
            <aside id="sidebar1"><div class="btn-row blog-sidebar-btn">
  <a href="/user/subscribe/?mail_type=Blog/" class="button-prim-blue">
    Subscribe</a
  >
</div>
<div id="blog-sidebar-204111" class="widget blogsidebar blog-sidebar container"><div class="searchform"><h3>All Articles</h3><div class="box"><form method="GET" action="/blog/"><input type="text" name="q" id="q"/><input type="submit" name="Search" id="Search" value="Search"/></form></div></div><div class="categorylist"><h3>Categories</h3><div class="box"><ul><li><a href="/blog/category/area-events/">Area Events (86)</a><ul></ul></li><li><a href="/blog/category/area-info/">Area Info (118)</a><ul></ul></li><li><a href="/blog/category/beverly/">Beverly (56)</a><ul></ul></li><li><a href="/blog/category/biography-series/">Biography Series (9)</a><ul></ul></li><li><a href="/blog/category/buyer-info/">Buyer Info (110)</a><ul></ul></li><li><a href="/blog/category/community-charity/">Community & Charity (8)</a><ul></ul></li><li><a href="/blog/category/danvers/">Danvers (77)</a><ul></ul></li><li><a href="/blog/category/easter-2019/">Easter 2019 (1)</a><ul></ul></li><li><a href="/blog/category/everything-else/">Everything Else (184)</a><ul></ul></li><li><a href="/blog/category/gloucester/">Gloucester (2)</a><ul></ul></li><li><a href="/blog/category/hamilton-wenham/">Hamilton-Wenham (119)</a><ul></ul></li><li><a href="/blog/category/homes-for-sale-north-shore/">Homes for sale North Shore (16)</a><ul></ul></li><li><a href="/blog/category/ipswich/">Ipswich (256)</a><ul></ul></li><li><a href="/blog/category/ipswich-ma-homes-for-sale/">Ipswich MA homes for sale (36)</a><ul></ul></li><li><a href="/blog/category/legal-insider/">Legal Insider (12)</a><ul></ul></li><li><a href="/blog/category/market-info/">Market Info (305)</a><ul></ul></li><li><a href="/blog/category/new-windhill-building/">NEW Windhill Building (29)</a><ul></ul></li><li><a href="/blog/category/open-house/">Open House (5)</a><ul></ul></li><li><a href="/blog/category/seller-info/">Seller Info (85)</a><ul></ul></li><li><a href="/blog/category/topsfield/">Topsfield (77)</a><ul></ul></li><li><a href="/blog/category/vacation-rental-ossipee-lake-ossipee-nh/">Vacation Rental Ossipee Lake, Ossipee NH (1)</a><ul></ul></li><li><a href="/blog/category/windhill-builders/">Windhill Builders (5)</a><ul></ul></li></ul></div></div></div></aside>
        </div>
    </div>
</section>
<div class="sub3Wrap">
    <div id="group3"></div>
</div>
<div class="sub4Wrap">
    <div id="group4"><div id="widget-ask-204330" class="widget askaquestion niceform container"><div class="widget-inner"><h3 class="widget-title">Get in touch</h3><div class="error-message-container"></div><form method="POST" action="/mail/send/sidebar_ask_a_question/" id="aaq-204330" data-pageview="/complete/ask-a-question/"><div><h4></h4><div class="contact-info"></div></div><div class="form-group form-group-name"><label class="sr-only" for="ask-204330-name">Full Name</label><input type="text" name="Name" class="required form-control" placeholder="*Full Name" id="ask-204330-name" required="required"/></div><div class="form-group form-group-email"><label class="sr-only" for="ask-204330-email">Email</label><input type="text" name="Email" class="required form-control email" placeholder="*Email Address" id="ask-204330-email" required="required"/></div><div class="form-group form-group-phone"><label class="sr-only" for="ask-204330-phone">Phone</label><input type="text" name="Phone" class="form-control phone " placeholder="Phone" id="ask-204330-phone"/></div><div class="form-group form-group-comments"><label class="sr-only" for="ask-204330-question">Questions or Comments?</label><textarea name="Comments" id="ask-204330-question" class="form-control required" placeholder="*Questions or Comments" cols="12" rows="7"></textarea></div><div style="display:none;">Do not fill in this field:<input type="text" name="topyenoh" id="topyenoh"/></div><input type="hidden" name="g-recaptcha-response" id="g-recaptcha-response" value="initalize" class="g-recaptcha-response"/><input type="hidden" name="FormKey" id="FormKey" value="1e3e32f93d4d0bd6b27d62163147d10a"/><input type="hidden" name="Sent From" id="Sent From" value="https://www.windhillrealty.com/blog/feed/"/><input type="hidden" name="mailformid" id="mailformid" value="sidebar_ask_a_question"/><input type="hidden" name="Sent_Form" id="Sent_Form" value="sidebar_ask_a_question"/><input type="hidden" name="RealtorID" id="RealtorID" title="RealtorID"/><div class="form-group opt-in-block"><label class="show"><input type="checkbox" name="OptIn" value="1" class="required" required="required"/><span class="control-label">Opt in</span></label><p>I agree to receive marketing and customer service calls and text messages from Windhill Realty. To opt out, you can reply 'stop' at any time or click the unsubscribe link in the emails. Consent is not a condition of purchase. Msg/data rates may apply. Msg frequency varies. <a href="/privacy-policy/">Privacy Policy</a>.</p></div><div class="submit-btn"><button type="submit" name="send" class="usm-btn">Send</button></div><div class="recaptcha-notice">This site is protected by reCAPTCHA and the Google <a href="https://policies.google.com/privacy">Privacy Policy</a> and <a href="https://policies.google.com/terms">Terms of Service</a> apply.</div></form></div></div></div>
</div>
<div class="footWrap">
    <div id="footer"><div id="image-204339" class="widget image container"><a href="/" target="_self"><img src="https://d3w216np43fnr4.cloudfront.net/8989/204339/1.jpeg?version=1715686126" alt="Windhill a new way in real estate" width="2893" height="2552"/></a></div><div class="footer-wrapper"><div id="sociallinks-204095" class="widget sociallinks socialinkswidget flat container"><ul class="fa-social-links sm40"><li><a target="_blank" title="Facebook" href="https://www.facebook.com/windhillcorealty" class="fa-social-links fsml-facebook" rel="noopener nofollow"><i class="fa fa-facebook"></i><span class="sr-only">Facebook</span></a></li><li><a target="_blank" title="Instagram" href="https://www.instagram.com/windhillcorealty/" class="fa-social-links fsml-instagram" rel="noopener nofollow"><i class="fa fa-instagram"></i><span class="sr-only">Instagram</span></a></li></ul></div><div class="footer-office-adress-body">
  <div class="footer-office-adress padding-right">
    <h3>Windhill + Co. Main Office</h3>
    <p>16 Market Street, Ipswich, MA 01938</p>
  </div>
  <div class="footer-office-adress">
    <h3>Windhill + Co. Woodworks</h3>
    <p>2A Moulton Street Georgetown, MA 01833</p>
  </div>
</div>
<div class="footer-contact">
  <h3>
    <a
      href="https://www.windhillbuilders.com/"
      target="_blank"
      rel="nofollow noopener"
      >Builders</a
    >
  </h3>
  <i class="fas fa-phone"></i>
  <a href="tel:978-356-8988"> 978-356-8988</a>
  <br />
  <i class="fas fa-envelope"></i>
  <a href="mailto:info@windhillbuilders.com">info@windhillbuilders.com</a>
</div>
<div class="footer-contact">
  <h3>
    <a
      href="https://www.windhillwoodworks.com/"
      target="_blank"
      rel="nofollow noopener"
      >Woodworks</a
    >
  </h3>
  <i class="fas fa-phone"></i>
  <a href="tel:351-207-5020"> 351-207-5020</a>
  <br />
  <i class="fas fa-envelope"></i>
  <a href="mailto:info@windhillwoodworks.com">info@windhillwoodworks.com</a>
</div>
<div class="footer-contact">
  <h3><a href="/">Realty</a></h3>
  <i class="fas fa-phone"></i>
  <a href="tel:978-356-8922"> 978-356-8922</a>
  <br />
  <i class="fas fa-envelope"></i>
  <a href="/contact-us/"> info@windhillrealty.com</a>
</div><div class="line-100"></div><div id="menuwidget-204340" class="widget menu menuwidget bare container"><h3 class="widget-title">Quick Links</h3><div class="widget-inner"><ul role="menubar"><li role="presentation" class=" menu-item-142503"><a href="/listings/" target="_self" role="menuitem">Property Search</a></li><li role="presentation" class=" menu-item-142504"><a href="/communities/" target="_self" role="menuitem">Communities</a></li><li role="presentation" class=" menu-item-142505"><a href="/our-listings/" target="_self" role="menuitem">Our Listings</a></li><li role="presentation" class=" menu-item-142507"><a href="/our-agents/" target="_self" role="menuitem">About Us</a></li></ul></div></div><div id="menuwidget-204341" class="widget menu menuwidget bare container"><h3 class="widget-title">Search</h3><div class="widget-inner"><ul role="menubar"><li role="presentation" class=" menu-item-142508"><a href="/real-estate/peabody-ma-real-estate/" target="_self" role="menuitem">Peabody</a></li><li role="presentation" class=" menu-item-142509"><a href="/real-estate/salem-ma-real-estate/" target="_self" role="menuitem">Salem</a></li><li role="presentation" class=" menu-item-142510"><a href="/real-estate/danvers-ma-real-estate/" target="_self" role="menuitem">Danvers</a></li><li role="presentation" class=" menu-item-142511"><a href="/real-estate/lynnfield-ma-real-estate/" target="_self" role="menuitem">Lynnfield</a></li><li role="presentation" class=" menu-item-142512"><a href="/real-estate/ipswich-ma-real-estate/" target="_self" role="menuitem">Ipswich</a></li><li role="presentation" class=" menu-item-142513"><a href="/real-estate/beverly-ma-real-estate/" target="_self" role="menuitem">Beverly</a></li><li role="presentation" class=" menu-item-142514"><a href="/real-estate/gloucester-ma-real-estate/" target="_self" role="menuitem">Gloucester</a></li><li role="presentation" class=" menu-item-142515"><a href="/real-estate/rockport-ma-real-estate/" target="_self" role="menuitem">Rockport</a></li></ul></div></div></div></div>
</div>
<footer class="usmWrap">
    <div id="group5"><div id="associations-204346" class="widget associations container"><div id="footer-logos" style="width: 100%"><div id="footer-logos-left-assoc"></div><div id="footer-logos-right-accred"></div><div id="footer-logos-right-custom"><img src="https://d3w216np43fnr4.cloudfront.net/8989/204346/1.png?version=1654010420" title="Association logos" alt="Association logos"/></div></div></div><div id="codewidget-204345" class="widget code codewidget container"><a href="/privacy-policy/">Privacy Policy</a></div><div id="usmlogo-204347" class="widget usmlogo container"><a href="https://www.unionstreetmedia.com/?utm_campaign=passive&#38;utm_medium=usm-badge&#38;utm_source=www.windhillrealty.com&#38;utm_content=real-estate" rel="nofollow noopener" title="VT NH Real Estate Web Design" target="_blank"><img src="https://d3w216np43fnr4.cloudfront.net/8989/204347/1.png?version=1654010434" alt="Union Street Media Logo"/></a></div></div>
</footer><div id="progress"><i class="fa fa-spinner fa-spin"></i></div><script type="text/javascript">
            require(["jquery"], function ($) {
                var $navbarToggle = $("#menuwidget-204230 .navbar-toggle");

                $navbarToggle.click(function () {
                    var target = $(this).data("target");
                    $(target).parent("nav").toggleClass("active");
                    if ($(target).parent("nav").hasClass("active")) {
                        $("body").addClass("modal-open");
                    } else {
                        $("body.modal-open").removeClass("modal-open");
                    }
                });

                $("#menuwidget-204230 .menu-close").click(function (e) {
                    $navbarToggle.click();
                    e.preventDefault();
                });

                $("#menuwidget-204230 li.has-children ul li").click(function (event) {
                    event.stopPropagation();
                });
            });
        
            require(["jquery"], function ($) {
                var $navbarToggle = $("#menuwidget-204229 .navbar-toggle");

                $navbarToggle.click(function () {
                    var target = $(this).data("target");
                    $(target).parent("nav").toggleClass("active");
                    if ($(target).parent("nav").hasClass("active")) {
                        $("body").addClass("modal-open");
                    } else {
                        $("body.modal-open").removeClass("modal-open");
                    }
                });

                $("#menuwidget-204229 .menu-close").click(function (e) {
                    $navbarToggle.click();
                    e.preventDefault();
                });

                $("#menuwidget-204229 li.has-children ul li").click(function (event) {
                    event.stopPropagation();
                });
            });
        
            require(["jquery", "bootstrap"], function ($) {
                if ($.fn.carousel === undefined && jQuery.fn.carousel !== undefined) {
                    $ = jQuery;
                }
                $("#carousel-205525 .carousel").carousel({
                    "interval": 4000
                });
                $("#carousel-205525 .carousel-inner .item").each(function() {
                        this.style["-webkit-transition-duration"] = "1s"; 
                        this.style["-moz-transition-duration"] = "1s"; 
                        this.style["-o-transition-duration"] = "1s"; 
                        this.style["transition-duration"] = "1s"; 
                });
            });
        
            require(["jquery", "usm", "bootstrap"], function ($, usm) {
                if (usm.touchSupport) {
                    require(["bootstraptabcollapse"], function() {
                        $(document).ready(function() {
                            var tab = $("#recsearch-204235 .nav-tabs");

                            if (tab) {
                                tab.tabCollapse();

                                //It is a specific task for adding category class for the rec search items by category name
                                tab.on("shown-accordion.bs.tabcollapse", function(e) {
                                    let tabPanel = document.querySelectorAll("#recsearch-204235 .panel-group .panel");

                                    if (tabPanel) {
                                        let classList = [];

                                        e.target.querySelectorAll("li").forEach((li) => {
                                            li.className.split(' ').forEach((className) => {
                                                if (!classList.includes(className) && className.indexOf("recsearch-category-") !== -1) {
                                                    classList.push(className);
                                                }
                                            });
                                        });

                                        tabPanel.forEach((panel, index) => {
                                            if (!panel.classList.contains(classList[index])) {
                                                panel.classList.add(classList[index]);
                                            }
                                        });
                                    }
                                });
                            }
                        });
                    });
                }
            });
        
            // Searchable suggestions with a label values for the suggestion.
            var SEARCHABLE_SUGGESTIONS_OPTIONS = {
                usmCityAndState: '',
                county: ' - County',
                stateOrProvince: '',
                usmNeighborhood: ' - Neighborhood',
                postalCode: ' - Zip Code',
                listingId: ' - MLS Number',
                usmNonMlsId: ' - Internal ID',
                elementarySchool: ' - Elementary School',
                middleOrJuniorSchool: ' - Middle Or Junior High School',
                usmArea: ' - Area',
                address: ' - Address',
                highSchool: ' - High School',
                highSchoolDistrict: ' - School District',
                usmVillage: ' - Village',
                usmSubdivision: ' - Subdivision',
                streetName: ' - Street',
                usmComplex: ' - Complex',
                usmPropertyName: ' - Property Name',
                mlsAreaMinor: ' - MLS Area Minor',
                mlsAreaMajor: ' - MLS Area Major',
                offMarketData: ' - Off Market',
                title: 'title',
                agent: ' - Agent',
                team: ' - Team',
            }

            var displayWaterBodyNameSuggestions = '';
            var showAgentsSearch = '0';

            if (displayWaterBodyNameSuggestions) {
                SEARCHABLE_SUGGESTIONS_OPTIONS.waterBodyName = ' - Water Body Name';
            }

            var suggestionResponse = null;
            require(['jquery'], function($) {
                /**
                 * Get current search mode based on active button
                 */
                function getCurrentSearchMode() {
                    if (showAgentsSearch === '1' && $('#agents-204236').hasClass('active')) {
                        return 'agents';
                    } else if ($('#rentals-property-types-204236').hasClass('active')) {
                        return 'rentals';
                    } else {
                        return 'sales';
                    }
                }

                /**
                 * Filter out not supported suggestions.
                 *
                 * @param suggestions
                 * @returns {[]}
                 */
                function sanitizeSuggestions(suggestions) {
                    const sanitizedSuggestions = [];
                    if (suggestions && Array.isArray(suggestions)) {
                        for (var suggestionIndex in suggestions) {
                            var suggestion = suggestions[suggestionIndex];

                            var suggestionType = suggestion.type;
                            // Filter out suggestions that are not currently supported
                            if (!SEARCHABLE_SUGGESTIONS_OPTIONS.hasOwnProperty(suggestionType)) {
                                continue;
                            }

                            sanitizedSuggestions.push(suggestion);
                        }
                        return sanitizedSuggestions;
                    }

                    return [];
                }

                /**
                 * Transform agents API response to suggestions format
                 */
                function transformAgentsToSuggestions(responseData) {
                    if (!Array.isArray(responseData?.agents) || !Array.isArray(responseData?.teams)) {
                        return [];
                    }
                    const data = [
                      ...responseData.agents.map(agent => ({ ...agent, type: 'agent' })),
                      ...responseData.teams.map(team => ({ ...team, type: 'team' }))
                    ];

                    return data.map((item) => ({
                        label: item.name,
                        value: item.name,
                        type: item.type,
                        id: item.id,
                        slug: item.slug,
                    }));
                }

                /**
                 * Check if the parameter looks like an address (starts with digits followed by words)
                 */
                function shouldReduceByAddress(value) {
                    var addressPattern = /^\d+\s+\w+/i;
                    return addressPattern.test(value.trim());
                }

                function fetchSuggestions(request, response) {
                    var param = request.term;
                    var requestPrefix = '';
                    var isOMPEnabled = requestPrefix === 'OMP:';
                    var searchMode = getCurrentSearchMode();

                    // Restrict search length to minimum 2 characters before sending the request.
                    if (param.length < 2) {
                        // We do not store and show recent searches if OMP is enabled or in agents mode
                        var isRecentSearchesDisabled = isOMPEnabled || searchMode === 'agents';
                        var recentSearches = isRecentSearchesDisabled ? [] : JSON.parse(window.localStorage.getItem('lastSearches'));

                        if (recentSearches && recentSearches.length > 0) {
                          recentSearches.unshift({label: 'Recent Searches', value: 'Recent Searches', type: 'title'})
                          response(recentSearches);
                        } else {
                          response([{label: 'The search word must be at least 3 characters long.', noResults: true}]);
                        }
                    } else {
                        // Different API endpoints based on search mode
                       var baseUrl = '';
                       var requestData = {};

                        if (searchMode === 'agents') {
                            baseUrl = '/api/suggestions/teams/';
                            requestData = {
                                q: param,
                            };
                        } else {
                            baseUrl = '/api/suggestions/';
                            requestData = {
                                q: requestPrefix + param
                            };

                            if (shouldReduceByAddress(param)) {
                                requestData.reduce = 'usmFullAddress';
                            }
                        }

                        $.ajax({
                            dataType: 'json',
                            url: baseUrl,
                            data: requestData,
                            type: 'GET',
                            timeout: 10000,
                            success: function(data) {
                                var suggestions = [];

                                if (searchMode === 'agents') {
                                    // Transform agents response
                                    suggestions = transformAgentsToSuggestions(data);
                                } else {
                                    // Regular suggestions
                                    if (data.suggestions && data.suggestions.length > 0) {
                                        suggestions = sanitizeSuggestions(data.suggestions);
                                    }
                                }

                                if (suggestions.length > 0) {
                                    // Set the suggestion response to the first suggestion
                                    suggestionResponse = suggestions[0];
                                    response(suggestions);
                                } else {
                                    // No results from API
                                    var noResultsMessage = searchMode === 'agents' ? 'No agents found.' : 'Enter another region.';
                                    response([{label: noResultsMessage, noResults: true}]);
                                }
                            },
                            error: function() {
                                response([{label: 'Problem contacting server, please refresh and try again.', noResults: true}]);
                                $('.autosuggest-loader').removeClass('fal fa-spinner fa-pulse');
                                $('.autosuggest-loader').addClass('fal fa-exclamation-triangle');
                            }
                        });
                    }
                }

                $('#autosuggest-search-query-204236').autocomplete({
                    source: function(request, response) {
                      fetchSuggestions(request, response);
                    },
                    minLength: 0,
                    open: function() {
                        inputWidth = $('#autosuggest-search-query-204236').outerWidth();
                        $('ul.ui-menu').css( 'width', inputWidth );
                    },
                    search: function(event, ui) {
                        $('.autosuggest-loader').addClass('fal fa-spinner fa-pulse');
                    },
                    response: function(event, ui) {
                        $('.autosuggest-loader').removeClass('fal fa-spinner fa-pulse');
                    },
                    position: {
                        offset: '0 -6'
                    },
                    autoFocus: true,
                    messages: {
                        //These messages are for accessability and are not visible in the UI (with proper styling).
                        noResults: 'No options found.',
                        results: function(amount) {
                            return amount + (amount > 1 ? ' results ' : ' result ') + 'found.'
                        }
                    },
                    delay: 300
                }).focus(function() {
                  $(this).autocomplete('search', $(this).val());
                }).data('ui-autocomplete')._renderItem = function(ul, item) {
                    let txt = String(item.label);

                    if (item.type) {
                        txt = txt.replace(new RegExp(this.term, 'gi'),'<b>$&</b>');
                    }

                    var type = item.type;

                    if (SEARCHABLE_SUGGESTIONS_OPTIONS.hasOwnProperty(type)) {
                        type = SEARCHABLE_SUGGESTIONS_OPTIONS[type];

                        if (type == 'listingId') {
                            txt = txt.toUpperCase();
                        }
                    } else {
                        type = '';
                    }

                    if (type === 'title') {
                        return $('<li></li>')
                            .append('<div class="item-title"><b>' + txt + '</b></div>')
                            .appendTo(ul);
                    }

                    var status = '';
                    if (item.standardStatus && item.standardStatus.length === 1 && item.standardStatus[0] === 'Closed') {
                        status = ' <span class="ui-status">Sold</span>';
                    }

                    const itemNoResultsClassName = !!item?.noResults ? 'autosuggest-item-no-result' : '';

                    return $(`<li class='${itemNoResultsClassName}'></li>`)
                        .data('ui-autocomplete-item', item)
                        .append('<a>' + txt + '<span>' + type + '</span>' + status + '</a>')
                        .appendTo(ul);
                };
            });
        
            require(['jquery'], function($) {
                var stateMap = JSON.parse('{"Alabama":"AL","Alaska":"AK","Arizona":"AZ","Arkansas":"AR","Bahamas":"BS","California":"CA","Colorado":"CO","Connecticut":"CT","Delaware":"DE","D.C.":"DC","Florida":"FL","Georgia":"GA","Hawaii":"HI","Idaho":"ID","Illinois":"IL","Indiana":"IN","Iowa":"IA","Kansas":"KS","Kentucky":"KY","Louisiana":"LA","Maine":"ME","Maryland":"MD","Massachusetts":"MA","Michigan":"MI","Minnesota":"MN","Mississippi":"MS","Missouri":"MO","Montana":"MT","Nebraska":"NE","Nevada":"NV","New Hampshire":"NH","New Jersey":"NJ","New Mexico":"NM","New York":"NY","North Carolina":"NC","North Dakota":"ND","Ohio":"OH","Oklahoma":"OK","Oregon":"OR","Pennsylvania":"PA","Rhode Island":"RI","South Carolina":"SC","South Dakota":"SD","Tennessee":"TN","Texas":"TX","Utah":"UT","Vermont":"VT","Virginia":"VA","Washington":"WA","West Virginia":"WV","Wisconsin":"WI","Wyoming":"WY","Alberta":"AB","British Columbia":"BC","Manitoba":"MB","New Brunswick":"NB","Newfoundland and Labrador":"NL","Nova Scotia":"NS","Ontario":"ON","Prince Edward Island":"PE","Quebec":"QC","Saskatchewan":"SK"}');
                const MAX_RECENT_SEARCHES_CACHED = 5;
                var showAgentsSearch = '0';

                function getCurrentSearchMode() {
                    if (showAgentsSearch === '1' && $('#agents-204236').hasClass('active')) {
                        return 'agents';
                    } else if ($('#rentals-property-types-204236').hasClass('active')) {
                        return 'rentals';
                    } else {
                        return 'sales';
                    }
                }

                /**
                 * Update placeholder based on current search mode
                 */
                function updatePlaceholder() {
                    var searchMode = getCurrentSearchMode();
                    var searchInput = $('#autosuggest-search-query-204236');
                    var placeholder = '';

                    switch(searchMode) {
                        case 'agents':
                            placeholder = 'Search for agents by name';
                            break;
                        case 'rentals':
                        case 'sales':
                        default:
                            placeholder = `Search by Address, Neighborhood, City, or Zip Code...`;
                            break;
                    }

                    searchInput.attr('placeholder', placeholder);
                }

                function getStateAbbreviation(stateName) {
                    if (!stateName) {
                        return null;
                    }

                    if (!stateMap.hasOwnProperty(stateName)) {
                        return null;
                    }

                    return stateMap[stateName];
                }

                function goToDetailView(filter) {
                    var baseUrl = '/api/listings/';
                    // We should use this replace in order to divide params into array in the ListingSearch.php in the V2
                    filter =  filter.replace(/\S&\S/g, function (tmpVal) {
                      return tmpVal.replace(/&/g, '#');
                    });
                    filter = encodeURIComponent(filter);
                    $.ajax({
                        dataType: 'json',
                        url: baseUrl + '?suggestionFilter=' + filter,
                        type: 'GET',
                        success: function(data) {
                            if (!Array.isArray(data.listings)) {
                                return;
                            }

                            if (data.listings.length === 1) {
                                window.location.href = data.listings[0].usmDetailPath;

                                return;
                            }

                            if (data.listings.length > 1) {
                                window.location.href = '/listings/' + '?suggestionFilter=' + filter;

                                return;
                            }
                        }
                    });
                }

                function getCityAndStatePath(value) {
                    var array = value.split(' ');

                    const state = array.pop().toLowerCase();
                    const city = array.join('-').toLowerCase();

                    return state + '/' + city + '/';
                }

                /**
                 * Build url with path based on the selected suggestion.
                 *
                 */
                function getUrlPath(suggestion) {
                    let path = '';
                    switch (suggestion.type) {
                        case 'cityAndState':
                            path += getCityAndStatePath(suggestion.value);

                            return path;
                        case 'stateOrProvince':
                            var stateAbbreviation = getStateAbbreviation(suggestion.value);

                            if (stateAbbreviation && stateAbbreviation.length == 2) {
                                path += stateAbbreviation.toLowerCase() + '/';
                            }

                            return path;
                        case 'neighborhood':
                        case 'village':
                            path += convertFilterString(suggestion.filter);

                            return path;
                        default:
                            return path;
                    }
                }

                function convertFilterString(filterString) {
                  if (!filterString) {
                    return '';
                  }

                  const filters = filterString.split('&');
                  const suggestionFilters = filters.map(filter => {
                    const filterPart = filter.split('=');

                    if (filterPart.length !== 2) {
                       return null;
                    }

                    const [key, value] = filterPart;
                    const name = key.match(/\[(.*?)\]/)?.[1];

                    if (!name) return null;

                    return name === 'cityAndState' || name === 'usmCityAndState'
                    ? getCityAndStatePath(value) + '?'
                    : name + '=' + value ;
                  });

                  return getPathFromFilters(suggestionFilters);
                }

                function getPathFromFilters(suggestionFilters) {
                  if (!suggestionFilters || suggestionFilters.length === 0) {
                    return '';
                  }

                  const cityAndStateItem = suggestionFilters.find(item => item.includes('/?'));

                  if (!cityAndStateItem) {
                    return '?' + suggestionFilters.join('&');
                  }

                  const filtersWithoutCityAndState = suggestionFilters.filter(item => item !== cityAndStateItem);

                  return cityAndStateItem + filtersWithoutCityAndState.join('&');
                }

                function getPropertyDetailPathFromOffMarketSuggestion(suggestion) {
                    if (!suggestion) {
                        return '';
                    }

                    const { value, filter } = suggestion;
                    const startIndex = filter?.indexOf('=') + 1;
                    const usmPid = filter?.substring(startIndex);

                    const address = value?.split(' ')
                        ?.map(function(word) { return word.toLowerCase() })
                        ?.join('-') || '';

                    return '/property/' + address + '/' + usmPid + '/';
                };

                function submitSearch(e, item) {
                    e.preventDefault();

                    if (!item) {
                        return;
                    }

                    // If the item has no type, it's an error message and shouldn't send anywhere
                    if (!item.type) {
                        return;
                    }

                    var searchMode = getCurrentSearchMode();

                    // Finish the input in case a selection was made without completing it
                    $('#autosuggest-search-query').val(item.type === 'listingId' ? item.value.toUpperCase() : item.label);

                    if (item.type === 'agent' || item.type === 'team') {
                        window.location.href = `/realestate/${item.type}/${item.slug}/`;

                        return;
                    }

                    // Send to detail view if MLS Number
                    if (item.type === 'listingId' || item.type === 'address' || item.type === 'usmPropertyName' || item.type === 'usmNonMlsId') {
                        var filter = item.filter;

                        if (item.standardStatus && item.standardStatus.length > 0) {
                            var statusList = Array.isArray(item.standardStatus)
                                ? item.standardStatus
                                : [item.standardStatus];
                            // It is very common for listings other than 'Active 'to being filtered out, so we need to add this filter to ensure that they are returned by the listings api
                            filter += (filter !== '' ? '&' : '') + 'filter[standardStatus]=' + statusList.join(',');
                        }
                        goToDetailView(filter);

                        return;
                    } else if (item.type === 'offMarketData') {
                        const propertyPath = getPropertyDetailPathFromOffMarketSuggestion(item);

                        window.location.href = propertyPath;

                        return;
                    }

                    item.type = item.type.replace('usmCityAndState', 'cityAndState')
                        .replace('usmNeighborhood', 'neighborhood')
                        .replace('usmVillage', 'village')
                        .replace('usmSubdivision', 'subdivision')
                        .replace('usmComplex', 'complex');

                    if (item.type === 'cityAndState') {
                        item.value = item.value.replace(', ', ' ');
                    }

                    path = getUrlPath(item);

                    // Don't save agents to recent searches
                    if (searchMode !== 'agents') {
                        var searches = [Object.assign({}, item)];
                        var storedSearches = JSON.parse(localStorage.getItem('lastSearches'));

                        if (storedSearches) {
                            searches = storedSearches.filter(function(storedSearch) {
                                storedSearch.value !== item.value
                            });
                            storedSearches = searches.length <= (MAX_RECENT_SEARCHES_CACHED - 1)
                              ? searches
                              : searches.slice(0,-1);
                            searches = [Object.assign({}, item), ...storedSearches];
                        }

                        localStorage.setItem('lastSearches', JSON.stringify(searches));
                    }

                    var propertyTypeFilter = '';
                    var displaySalesRentalsToggle = '';

                    if (displaySalesRentalsToggle && searchMode !== 'agents') {
                        var forSalePropertyTypes = '';
                        var rentalsPropertyTypes = '';
                        var forSaleLabel = 'Sales';
                        var rentalsLabel = 'Rentals';
                        var agentsLabel = '';
                        var propertyTypes = $('#sales-property-types-204236').hasClass('active') ? forSalePropertyTypes : rentalsPropertyTypes;

                        if (propertyTypes) {
                            if (item.type === 'cityAndState' && !propertyTypes.includes(',')) {
                                path = path + propertyTypes.toLowerCase() + '/';
                            } else {
                                propertyTypeFilter = 'propertyTypes=' + propertyTypes;
                            }
                        }
                    }

                    var fullPath = '';
                    if (path.length > 0) {
                        var separator = path.indexOf('?') !== -1 ? '&' : '?';
                        fullPath = '/listings/' + path + separator +'' + propertyTypeFilter;
                    } else {
                        fullPath = '/listings/?' + item.type + '=' + encodeURIComponent(item.value) + '&' + propertyTypeFilter;
                    }

                    // Remove trailing ? or &
                    const lastChar = fullPath.charAt(fullPath.length - 1);
                    if (lastChar === '?' || lastChar === '&') {
                        fullPath = fullPath.slice(0, -1);
                    }

                    window.location.href = fullPath;
                }

                $('.widget-autosuggest').on('submit', function(e) {
                    submitSearch(e, suggestionResponse);
                });

                $('.widget-autosuggest').on('autocompleteselect', function(e, ui) {
                    submitSearch(e, ui.item);
                });

                var salesPropertyTypesButton = $('#sales-property-types-204236');
                var rentalPropertyTypesButton = $('#rentals-property-types-204236');
                var agentsButton = $('#agents-204236');

                // Function to clear search and refresh autocomplete
                function clearSearchAndRefresh() {
                    $('#autosuggest-search-query-204236').val('').autocomplete('search', '');
                }

                const buttons = [salesPropertyTypesButton, rentalPropertyTypesButton];
                if (showAgentsSearch === '1') {
                    buttons.push(agentsButton);
                }

                function setActiveButton(activeButton, buttons) {
                    $.each(buttons, function(index, btn) {
                        btn.removeClass('active');
                    });
                    activeButton.addClass('active');
                    updatePlaceholder();
                    clearSearchAndRefresh();
                }

                salesPropertyTypesButton.on('click', function() {
                    setActiveButton(salesPropertyTypesButton, buttons);
                });

                rentalPropertyTypesButton.on('click', function() {
                    setActiveButton(rentalPropertyTypesButton, buttons);
                });

                // Only add event handler if agents search is enabled
                if (showAgentsSearch === '1') {
                    agentsButton.on('click', function() {
                        setActiveButton(agentsButton, buttons);
                    });
                }

                // Initialize placeholder on document ready
                $(document).ready(function() {
                    updatePlaceholder();
                });
            });
        
            require(["jquery", "usm", "usm.modalform", "usm.analytics"], function($, usm) {
                var $form = $('form#aaq-204330');

                var options = {
                    postSuccess: function (e) {
                                                if (typeof dataLayer !== 'undefined') {
                            dataLayer.push({"event":"Contact_Form","form_name":"Ask A Question - General"});
                        }
                                            }
                };

                usm.modalForm.addValidation($form, options);
            });
        var URI = "/blog/feed/";require(['usm', 'usm.user'], function (usm) { usm.user.setModal(1); });require(["jquery"], function ($) { $("body").addClass("js"); });</script><script type="text/javascript">require(["https://d1nn5t56all1qd.cloudfront.net/8989/js/custom.js?version=1655294331"]);</script></body>
</html><!-- You're on: Some other server - 172.18.22.126 - www.windhillrealty.com   Time: 0.177 -->