최근 30일 신고가
1,523건
서울 368 · 경기 717 · 인천 29
신고가 비율 (8월 계약)
8.1%
전국 거래 31,096건 중 2,531건
- 전국 신고가 비율은 2월 8.6% → 8월 8.1%로 6개월 전보다 내렸습니다.
- 1년 전 같은 달(2025년 8월)은 4.3%였습니다.
- 8월 계약 기준으로 신고가 비율이 가장 높은 권역은 서울(25.6%)입니다.
최근 7일 새로 신고된 신고가
어제까지 없던 거래가 오늘 국토부 자료에 새로 올라온 것입니다.
엘지동수원자이 79.1㎡(24평) · 10층경기 수원시 영통구 망포동 · 계약 26-10-01직전 최고 6억 4,900만 (21.10)
7억 4,500만+14.8%
상현마을금호베스트빌2단지 135.6㎡(41평) · 15층경기 용인시 수지구 상현동 · 계약 26-10-01직전 최고 7억 9,500만 (26.04)
8억 8,500만+11.3%
은하마을(주공2) 39.5㎡(12평) · 2층경기 부천시 원미구 중동 · 계약 26-10-01직전 최고 4억 3,000만 (26.08)
4억 7,800만+11.2%
중흥마을(주공) 39.9㎡(12평) · 13층경기 부천시 원미구 중동 · 계약 26-10-01직전 최고 3억 4,100만 (21.12)
3억 7,000만+8.5%
나주역자이리버파크 60㎡(18평) · 21층전남광주 나주시 송월동 · 계약 26-10-01직전 최고 3억 3,000만 (26.08)
3억 4,100만+3.3%
e편한세상동래명장2단지 65.2㎡(20평) · 16층부산 동래구 명장동 · 계약 26-10-01직전 최고 4억 8,800만 (26.07)
4억 9,700만+1.8%
국화동성 77.3㎡(23평) · 6층대전 서구 둔산동 · 계약 26-09-30직전 최고 4억 9,000만 (22.04)
5억 6,000만+14.3%
신영통현대2차 101.8㎡(31평) · 16층경기 화성시 병점구 반월동 · 계약 26-09-30직전 최고 4억 3,000만 (23.05)
4억 9,000만+14%
e편한세상서울대입구2차 116.7㎡(35평) · 8층서울 관악구 봉천동 · 계약 26-09-30직전 최고 15억 4,500만 (26.06)
16억 5,000만+6.8%
남양효자맨션 84.4㎡(26평) · 7층전북 전주시 완산구 효자동1가 · 계약 26-09-30직전 최고 1억 6,600만 (26.01)
1억 7,500만+5.4%
병점역효성해링턴플레이스 85㎡(26평) · 5층경기 화성시 병점구 병점동 · 계약 26-09-30직전 최고 5억 5,000만 (22.06)
5억 7,500만+4.5%
버들치마을성복힐스테이트3차 95.1㎡(29평) · 4층경기 용인시 수지구 성복동 · 계약 26-09-30직전 최고 9억 (26.04)
9억 3,500만+3.9%
더레이크시티부영1단지 60㎡(18평) · 27층경기 화성시 동탄구 산척동 · 계약 26-09-30직전 최고 7억 7,000만 (26.09)
7억 9,700만+3.5%
아남1 50.2㎡(15평) · 17층서울 강동구 고덕동 · 계약 26-09-30직전 최고 12억 3,000만 (26.04)
12억 7,000만+3.3%
더샵보정애비뉴1단지 133.7㎡(40평) · 6층경기 용인시 기흥구 보정동 · 계약 26-09-30직전 최고 12억 (26.06)
12억 4,000만+3.3%
센트럴힐데스하임 84.8㎡(26평) · 30층충북 청주시 상당구 탑동 · 계약 26-09-30직전 최고 5억 800만 (25.10)
5억 2,500만+3.3%
성복역금호베스트빌 84.8㎡(26평) · 19층경기 용인시 수지구 상현동 · 계약 26-09-30직전 최고 10억 7,000만 (26.08)
11억+2.8%
호반써밋시그니처3차 85㎡(26평) · 7층충남 당진시 수청동 · 계약 26-09-30직전 최고 4억 5,500만 (26.06)
4억 6,500만+2.2%
롯데캐슬 알바트로스 101.9㎡(31평) · 14층경기 화성시 동탄구 청계동 · 계약 26-09-30직전 최고 13억 (26.06)
13억 2,500만+1.9%
임광그대가 84.9㎡(26평) · 12층경기 군포시 산본동 · 계약 26-09-30직전 최고 5억 7,000만 (23.06)
5억 8,000만+1.8%
다우훼밀리 60㎡(18평) · 9층서울 중랑구 신내동 · 계약 26-09-30직전 최고 5억 7,700만 (21.10)
5억 8,000만+0.5%
구로두산위브 36.9㎡(11평) · 16층서울 구로구 구로동 · 계약 26-09-30직전 최고 6억 3,800만 (26.09)
6억 4,000만+0.3%
녹번JR아파트 59.9㎡(18평) · 8층서울 은평구 녹번동 · 계약 26-09-29직전 최고 7억 8,000만 (26.08)
8억 4,800만+8.7%
롯데캐슬골든힐스 84.9㎡(26평) · 18층서울 성북구 길음동 · 계약 26-09-29직전 최고 12억 (22.06)
12억 3,000만+2.5%
인후동한신휴플러스 59.9㎡(18평) · 16층전북 전주시 덕진구 인후동1가 · 계약 26-09-29직전 최고 2억 8,000만 (26.04)
2억 8,600만+2.1%
광명한진타운 59.9㎡(18평) · 9층경기 광명시 광명동 · 계약 26-09-29직전 최고 8억 9,000만 (26.07)
9억+1.1%
이안논현오션파크 65㎡(20평) · 3층인천 남동구 논현동 · 계약 26-09-28직전 최고 3억 6,300만 (25.06)
3억 8,000만+4.7%
창동주공3단지(해등마을) 44.9㎡(14평) · 6층서울 도봉구 창동 · 계약 26-09-28직전 최고 6억 6,000만 (22.03)
6억 9,000만+4.5%
주공5 58㎡(18평) · 2층경기 광명시 하안동 · 계약 26-09-28직전 최고 6억 9,000만 (26.05)
7억 500만+2.2%
e편한세상영통2차(1단지) 59.9㎡(18평) · 5층경기 수원시 영통구 망포동 · 계약 26-09-28직전 최고 6억 8,000만 (26.09)
6억 9,000만+1.5%
최근 30일 신고가 거래
1,523건 · 계약일 기준
엘지동수원자이 79.1㎡(24평) · 10층경기 수원시 영통구 망포동 · 계약 26-10-01직전 최고 6억 4,900만 (21.10)
7억 4,500만+14.8%
상현마을금호베스트빌2단지 135.6㎡(41평) · 15층경기 용인시 수지구 상현동 · 계약 26-10-01직전 최고 7억 9,500만 (26.04)
8억 8,500만+11.3%
은하마을(주공2) 39.5㎡(12평) · 2층경기 부천시 원미구 중동 · 계약 26-10-01직전 최고 4억 3,000만 (26.08)
4억 7,800만+11.2%
중흥마을(주공) 39.9㎡(12평) · 13층경기 부천시 원미구 중동 · 계약 26-10-01직전 최고 3억 4,100만 (21.12)
3억 7,000만+8.5%
나주역자이리버파크 60㎡(18평) · 21층전남광주 나주시 송월동 · 계약 26-10-01직전 최고 3억 3,000만 (26.08)
3억 4,100만+3.3%
e편한세상동래명장2단지 65.2㎡(20평) · 16층부산 동래구 명장동 · 계약 26-10-01직전 최고 4억 8,800만 (26.07)
4억 9,700만+1.8%
국화동성 77.3㎡(23평) · 6층대전 서구 둔산동 · 계약 26-09-30직전 최고 4억 9,000만 (22.04)
5억 6,000만+14.3%
신영통현대2차 101.8㎡(31평) · 16층경기 화성시 병점구 반월동 · 계약 26-09-30직전 최고 4억 3,000만 (23.05)
4억 9,000만+14%
e편한세상서울대입구2차 116.7㎡(35평) · 8층서울 관악구 봉천동 · 계약 26-09-30직전 최고 15억 4,500만 (26.06)
16억 5,000만+6.8%
남양효자맨션 84.4㎡(26평) · 7층전북 전주시 완산구 효자동1가 · 계약 26-09-30직전 최고 1억 6,600만 (26.01)
1억 7,500만+5.4%
병점역효성해링턴플레이스 85㎡(26평) · 5층경기 화성시 병점구 병점동 · 계약 26-09-30직전 최고 5억 5,000만 (22.06)
5억 7,500만+4.5%
버들치마을성복힐스테이트3차 95.1㎡(29평) · 4층경기 용인시 수지구 성복동 · 계약 26-09-30직전 최고 9억 (26.04)
9억 3,500만+3.9%
더레이크시티부영1단지 60㎡(18평) · 27층경기 화성시 동탄구 산척동 · 계약 26-09-30직전 최고 7억 7,000만 (26.09)
7억 9,700만+3.5%
아남1 50.2㎡(15평) · 17층서울 강동구 고덕동 · 계약 26-09-30직전 최고 12억 3,000만 (26.04)
12억 7,000만+3.3%
더샵보정애비뉴1단지 133.7㎡(40평) · 6층경기 용인시 기흥구 보정동 · 계약 26-09-30직전 최고 12억 (26.06)
12억 4,000만+3.3%
센트럴힐데스하임 84.8㎡(26평) · 30층충북 청주시 상당구 탑동 · 계약 26-09-30직전 최고 5억 800만 (25.10)
5억 2,500만+3.3%
성복역금호베스트빌 84.8㎡(26평) · 19층경기 용인시 수지구 상현동 · 계약 26-09-30직전 최고 10억 7,000만 (26.08)
11억+2.8%
호반써밋시그니처3차 85㎡(26평) · 7층충남 당진시 수청동 · 계약 26-09-30직전 최고 4억 5,500만 (26.06)
4억 6,500만+2.2%
충주호암두진하트리움아파트 77.9㎡(24평) · 7층충북 충주시 호암동 · 계약 26-09-30직전 최고 4억 1,000만 (21.11)
4억 1,800만+2%
롯데캐슬 알바트로스 101.9㎡(31평) · 14층경기 화성시 동탄구 청계동 · 계약 26-09-30직전 최고 13억 (26.06)
13억 2,500만+1.9%
임광그대가 84.9㎡(26평) · 12층경기 군포시 산본동 · 계약 26-09-30직전 최고 5억 7,000만 (23.06)
5억 8,000만+1.8%
모티더베스트빌 51.6㎡(16평) · 15층부산 동구 수정동 · 계약 26-09-30직전 최고 2억 3,000만 (26.09)
2억 3,300만+1.3%
신성미소지움 85㎡(26평) · 10층강원 춘천시 근화동 · 계약 26-09-30직전 최고 4억 1,000만 (26.02)
4억 1,300만+0.7%
다우훼밀리 60㎡(18평) · 9층서울 중랑구 신내동 · 계약 26-09-30직전 최고 5억 7,700만 (21.10)
5억 8,000만+0.5%
구로두산위브 36.9㎡(11평) · 16층서울 구로구 구로동 · 계약 26-09-30직전 최고 6억 3,800만 (26.09)
6억 4,000만+0.3%
자양호반써밋 59.1㎡(18평) · 20층서울 광진구 자양동 · 계약 26-09-29직전 최고 16억 2,000만 (25.11)
18억 7,500만+15.7%
녹번JR아파트 59.9㎡(18평) · 8층서울 은평구 녹번동 · 계약 26-09-29직전 최고 7억 8,000만 (26.08)
8억 4,800만+8.7%
아모르102 49.9㎡(15평) · 7층제주 제주시 외도일동 · 계약 26-09-29직전 최고 1억 7,500만 (22.05)
1억 9,000만+8.6%
중앙하이츠빌2단지 73.3㎡(22평) · 3층서울 성북구 정릉동 · 계약 26-09-29직전 최고 7억 1,000만 (26.07)
7억 7,000만+8.5%
창동한승미메이드 84.7㎡(26평) · 7층서울 도봉구 창동 · 계약 26-09-29직전 최고 5억 8,000만 (26.07)
5억 9,900만+3.3%
코오롱하늘채1차 59.9㎡(18평) · 20층부산 북구 화명동 · 계약 26-09-29직전 최고 3억 9,700만 (22.09)
4억 1,000만+3.3%
구리갈매푸르지오 84.5㎡(26평) · 23층경기 구리시 갈매동 · 계약 26-09-29직전 최고 8억 2,500만 (26.04)
8억 5,000만+3%
힐스테이트푸르지오주안 46㎡(14평) · 16층인천 미추홀구 주안동 · 계약 26-09-29직전 최고 3억 6,500만 (25.09)
3억 7,500만+2.7%
창원마린푸르지오1단지 104㎡(31평) · 22층경남 창원시 진해구 풍호동 · 계약 26-09-29직전 최고 5억 8,000만 (25.02)
5억 9,500만+2.6%
전주만성에코르1단지 85㎡(26평) · 14층전북 전주시 덕진구 만성동 · 계약 26-09-29직전 최고 5억 7,500만 (26.09)
5억 9,000만+2.6%
롯데캐슬골든힐스 84.9㎡(26평) · 18층서울 성북구 길음동 · 계약 26-09-29직전 최고 12억 (22.06)
12억 3,000만+2.5%
신도브래뉴 55.5㎡(17평) · 6층서울 금천구 독산동 · 계약 26-09-29직전 최고 5억 8,700만 (23.09)
6억+2.2%
원타워 60㎡(18평) · 7층부산 동래구 온천동 · 계약 26-09-29직전 최고 2억 3,000만 (25.06)
2억 3,500만+2.2%
하마비마을동부센트레빌 125.7㎡(38평) · 2층경기 용인시 기흥구 언남동 · 계약 26-09-29직전 최고 6억 8,500만 (21.11)
7억+2.2%
이노힐스아파트 85㎡(26평) · 16층전북 완주군 이서면 갈산리 · 계약 26-09-29직전 최고 4억 4,500만 (26.09)
4억 5,500만+2.2%
인후동한신휴플러스 59.9㎡(18평) · 16층전북 전주시 덕진구 인후동1가 · 계약 26-09-29직전 최고 2억 8,000만 (26.04)
2억 8,600만+2.1%
우정혁신엘에이치2단지 52㎡(16평) · 5층울산 중구 태화동 · 계약 26-09-29직전 최고 3억 2,100만 (26.02)
3억 2,700만+1.9%
세중참사랑 85㎡(26평) · 1층충북 충주시 목행동 · 계약 26-09-29직전 최고 1억 7,800만 (23.12)
1억 8,100만+1.7%
네이처하임 74.9㎡(23평) · 21층경기 시흥시 조남동 · 계약 26-09-29직전 최고 6억 4,000만 (26.07)
6억 5,000만+1.6%
e편한세상센텀스타시티영천2블럭 84.7㎡(26평) · 11층경북 영천시 완산동 · 계약 26-09-29직전 최고 3억 5,500만 (26.07)
3억 6,000만+1.4%
에스케이북한산시티 60㎡(18평) · 12층서울 강북구 미아동 · 계약 26-09-29직전 최고 8억 3,000만 (26.08)
8억 4,000만+1.2%
두산4 84.9㎡(26평) · 9층서울 중랑구 면목동 · 계약 26-09-29직전 최고 9억 4,000만 (22.06)
9억 5,000만+1.1%
창동주공3단지(해등마을) 84.4㎡(26평) · 4층서울 도봉구 창동 · 계약 26-09-29직전 최고 8억 9,000만 (22.02)
9억+1.1%
광명한진타운 59.9㎡(18평) · 9층경기 광명시 광명동 · 계약 26-09-29직전 최고 8억 9,000만 (26.07)
9억+1.1%
월드메르디앙월드시티 84.9㎡(26평) · 6층울산 북구 매곡동 · 계약 26-09-29직전 최고 4억 1,500만 (26.07)
4억 1,900만+1%
연수서해그랑블에듀파크 84.9㎡(26평) · 13층인천 연수구 동춘동 · 계약 26-09-29직전 최고 5억 8,321만 (24.11)
5억 8,500만+0.3%
비단마을영풍 122.8㎡(37평) · 11층경기 수원시 장안구 천천동 · 계약 26-09-28직전 최고 7억 7,000만 (26.06)
8억 3,900만+9%
르파비스 59.7㎡(18평) · 18층경기 화성시 동탄구 목동 · 계약 26-09-28직전 최고 5억 9,000만 (26.06)
6억 3,500만+7.6%
힐스테이트황성 85㎡(26평) · 21층경북 경주시 황성동 · 계약 26-09-28직전 최고 4억 3,700만 (25.09)
4억 7,000만+7.6%
하가지구제일오투그란데 84.1㎡(25평) · 5층전북 전주시 덕진구 덕진동2가 · 계약 26-09-28직전 최고 3억 9,500만 (22.05)
4억 2,500만+7.6%
리센츠 27.7㎡(8평) · 32층서울 송파구 잠실동 · 계약 26-09-28직전 최고 18억 3,000만 (26.04)
19억 5,000만+6.6%
동산동골드클래스 84.7㎡(26평) · 9층전북 전주시 덕진구 여의동2가 · 계약 26-09-28직전 최고 3억 1,500만 (26.08)
3억 3,000만+4.8%
이안논현오션파크 65㎡(20평) · 3층인천 남동구 논현동 · 계약 26-09-28직전 최고 3억 6,300만 (25.06)
3억 8,000만+4.7%
창동주공3단지(해등마을) 44.9㎡(14평) · 6층서울 도봉구 창동 · 계약 26-09-28직전 최고 6억 6,000만 (22.03)
6억 9,000만+4.5%
평거하우스토리 134.1㎡(41평) · 6층경남 진주시 평거동 · 계약 26-09-28직전 최고 4억 6,000만 (24.05)
4억 8,000만+4.3%
광진햇빛찬2차 103.7㎡(31평) · 7층전북 전주시 완산구 중화산동2가 · 계약 26-09-28직전 최고 4억 2,800만 (26.06)
4억 4,500만+4%
월곡래미안루나밸리 60㎡(18평) · 23층서울 성북구 하월곡동 · 계약 26-09-28직전 최고 10억 9,000만 (26.07)
11억 3,000만+3.7%
강변코아루 146㎡(44평) · 13층강원 춘천시 우두동 · 계약 26-09-28직전 최고 4억 7,000만 (24.10)
4억 8,500만+3.2%
서산석림엘크루에듀포레 80.1㎡(24평) · 13층충남 서산시 석림동 · 계약 26-09-28직전 최고 3억 7,000만 (25.11)
3억 8,000만+2.7%
주공5 58㎡(18평) · 2층경기 광명시 하안동 · 계약 26-09-28직전 최고 6억 9,000만 (26.05)
7억 500만+2.2%
힐스테이트봉담프라이드시티 59.7㎡(18평) · 22층경기 화성시 효행구 봉담읍 내리 · 계약 26-09-28직전 최고 4억 7,000만 (25.11)
4억 8,000만+2.1%
화서역푸르지오더에듀포레 60㎡(18평) · 24층경기 수원시 장안구 천천동 · 계약 26-09-28직전 최고 8억 1,500만 (26.09)
8억 2,700만+1.5%
e편한세상영통2차(1단지) 59.9㎡(18평) · 5층경기 수원시 영통구 망포동 · 계약 26-09-28직전 최고 6억 8,000만 (26.09)
6억 9,000만+1.5%
행림마을진로 59.9㎡(18평) · 17층경기 용인시 수지구 동천동 · 계약 26-09-28직전 최고 8억 (26.07)
8억 1,000만+1.2%
한신더휴영천퍼스트 75.7㎡(23평) · 22층경북 영천시 야사동 · 계약 26-09-28직전 최고 2억 4,700만 (26.07)
2억 4,900만+0.8%
수원시청역SKVIEW 84.9㎡(26평) · 14층경기 수원시 권선구 권선동 · 계약 26-09-28직전 최고 7억 2,500만 (26.08)
7억 3,000만+0.7%
이노힐스아파트 84.9㎡(26평) · 11층전북 완주군 이서면 갈산리 · 계약 26-09-28직전 최고 4억 4,000만 (26.04)
4억 4,300만+0.7%
이노힐스아파트 85㎡(26평) · 19층전북 완주군 이서면 갈산리 · 계약 26-09-28직전 최고 4억 4,300만 (26.09)
4억 4,500만+0.5%
다산유승한내들골든뷰 84.7㎡(26평) · 5층경기 남양주시 다산동 · 계약 26-09-27직전 최고 9억 8,000만 (26.07)
10억 4,800만+6.9%
중앙하이츠빌1단지 85㎡(26평) · 16층서울 성북구 정릉동 · 계약 26-09-27직전 최고 8억 3,900만 (26.09)
8억 8,000만+4.9%
개나리 84.8㎡(26평) · 6층대전 서구 탄방동 · 계약 26-09-27직전 최고 4억 8,250만 (21.10)
4억 9,800만+3.2%
원일아름 59.8㎡(18평) · 20층경기 구리시 인창동 · 계약 26-09-27직전 최고 6억 3,000만 (26.08)
6억 3,900만+1.4%
남산역화성파크드림 74.2㎡(22평) · 12층대구 중구 남산동 · 계약 26-09-27직전 최고 4억 300만 (24.05)
4억 700만+1%
중앙하이츠(1269) 82.3㎡(25평) · 2층서울 구로구 구로동 · 계약 26-09-26직전 최고 8억 8,000만 (26.07)
9억 2,900만+5.6%
프리빌리지2차 125㎡(38평) · 24층경남 창원시 성산구 성주동 · 계약 26-09-26직전 최고 6억 4,000만 (22.05)
6억 6,000만+3.1%
주영더팰리스1차 107.6㎡(33평) · 10층경남 통영시 광도면 죽림리 · 계약 26-09-26직전 최고 3억 3,300만 (23.01)
3억 3,500만+0.6%
구로두산 63.3㎡(19평) · 12층서울 구로구 구로동 · 계약 26-09-24직전 최고 7억 7,000만 (21.10)
8억 6,000만+11.7%
광진파크하우스 45.6㎡(14평) · 7층서울 광진구 구의동 · 계약 26-09-23직전 최고 6억 5,500만 (26.06)
8억+22.1%
상아1차아파트 69㎡(21평) · 9층서울 도봉구 창동 · 계약 26-09-23직전 최고 7억 2,000만 (26.03)
8억 5,000만+18.1%
남광아파트 43.9㎡(13평) · 12층서울 강서구 화곡동 · 계약 26-09-23직전 최고 3억 (22.01)
3억 5,000만+16.7%
제일풍경채에듀앤파크 76.6㎡(23평) · 7층경기 화성시 동탄구 장지동 · 계약 26-09-23직전 최고 5억 9,200만 (23.11)
6억 9,000만+16.6%
두산 59.7㎡(18평) · 26층서울 구로구 개봉동 · 계약 26-09-23직전 최고 7억 1,000만 (26.08)
8억+12.7%
송파파인타운7단지 84.9㎡(26평) · 9층서울 송파구 장지동 · 계약 26-09-23직전 최고 18억 4,800만 (26.02)
20억 8,000만+12.6%
영흥숲푸르지오파크비엔 85㎡(26평) · 22층경기 수원시 영통구 원천동 · 계약 26-09-23직전 최고 10억 (26.09)
11억 2,000만+12%
한일타운우성 60㎡(18평) · 9층경기 수원시 장안구 조원동 · 계약 26-09-23직전 최고 5억 200만 (25.12)
5억 5,500만+10.6%
대림한숲 84.2㎡(25평) · 10층경기 구리시 수택동 · 계약 26-09-23직전 최고 9억 8,000만 (26.05)
10억 8,000만+10.2%
롯데인벤스가 125.7㎡(38평) · 10층경남 밀양시 내이동 · 계약 26-09-23직전 최고 3억 2,900만 (24.04)
3억 6,000만+9.4%
현대으뜸타운 84.7㎡(26평) · 14층울산 북구 매곡동 · 계약 26-09-23직전 최고 1억 5,000만 (23.03)
1억 6,400만+9.3%
북한산한신휴플러스 84.9㎡(26평) · 4층서울 도봉구 창동 · 계약 26-09-23직전 최고 8억 3,300만 (26.08)
9억+8%
종로청계힐스테이트 84.9㎡(26평) · 14층서울 종로구 숭인동 · 계약 26-09-23직전 최고 11억 7,000만 (22.05)
12억 6,000만+7.7%
솔빛마을신도브래뉴 79.6㎡(24평) · 3층경기 화성시 동탄구 반송동 · 계약 26-09-23직전 최고 8억 2,000만 (26.06)
8억 8,000만+7.3%
가천대역쌍용스윗닷홈 84.9㎡(26평) · 15층경기 성남시 수정구 태평동 · 계약 26-09-23직전 최고 9억 5,500만 (26.07)
10억 2,000만+6.8%
e편한세상둔산1단지 60㎡(18평) · 4층대전 서구 탄방동 · 계약 26-09-23직전 최고 6억 (21.10)
6억 3,900만+6.5%
e편한세상반월나노시티역 75.4㎡(23평) · 25층경기 화성시 병점구 반월동 · 계약 26-09-23직전 최고 8억 (26.08)
8억 5,000만+6.2%
세종 84.9㎡(26평) · 14층경기 군포시 산본동 · 계약 26-09-23직전 최고 8억 (26.06)
8억 4,800만+6%
이편한세상광주역6단지 84.9㎡(26평) · 14층경기 광주시 역동 · 계약 26-09-23직전 최고 7억 7,000만 (22.04)
8억 1,000만+5.2%
벽산 60㎡(18평) · 13층서울 강서구 마곡동 · 계약 26-09-23직전 최고 8억 7,500만 (26.06)
9억 2,000만+5.1%
라일실크빌 73.1㎡(22평) · 7층인천 서해구 가좌동 · 계약 26-09-23직전 최고 2억 7,300만 (25.02)
2억 8,500만+4.4%
우남퍼스트빌 60㎡(18평) · 5층경기 용인시 수지구 신봉동 · 계약 26-09-23직전 최고 10억 5,700만 (26.09)
10억 9,500만+3.6%
북한산두산위브 59.5㎡(18평) · 19층서울 서대문구 홍은동 · 계약 26-09-23직전 최고 8억 9,000만 (26.07)
9억 2,000만+3.4%
병점역센트럴허브시티 60㎡(18평) · 10층경기 화성시 병점구 병점동 · 계약 26-09-23직전 최고 4억 5,500만 (26.09)
4억 7,000만+3.3%
양현마을신안 60㎡(18평) · 2층경기 용인시 기흥구 신갈동 · 계약 26-09-23직전 최고 6억 7,800만 (26.05)
7억+3.2%
이편한세상화랑대 60㎡(18평) · 11층서울 중랑구 묵동 · 계약 26-09-23직전 최고 10억 1,000만 (26.07)
10억 4,000만+3%
선평배들마을주공 52㎡(16평) · 4층전남광주 순천시 서면 선평리 · 계약 26-09-23직전 최고 1억 (24.10)
1억 300만+3%
신구로자이 102㎡(31평) · 23층서울 구로구 구로동 · 계약 26-09-23직전 최고 9억 2,500만 (26.04)
9억 5,000만+2.7%
더샵파크프레스티지 59.9㎡(18평) · 10층서울 영등포구 신길동 · 계약 26-09-23직전 최고 15억 (26.03)
15억 4,000만+2.7%
판교원마을9단지(한림풀에버) 85㎡(26평) · 7층경기 성남시 분당구 판교동 · 계약 26-09-23직전 최고 18억 5,000만 (26.03)
19억+2.7%
선샤인파크 77.1㎡(23평) · 17층강원 동해시 부곡동 · 계약 26-09-23직전 최고 1억 6,400만 (26.07)
1억 6,800만+2.4%
힐스테이트태전(C6,1515~1520동) 72.9㎡(22평) · 9층경기 광주시 태전동 · 계약 26-09-23직전 최고 5억 5,500만 (25.10)
5억 6,800만+2.3%
한진 60㎡(18평) · 8층서울 구로구 개봉동 · 계약 26-09-23직전 최고 7억 2,200만 (26.09)
7억 3,700만+2.1%
매교역푸르지오SKVIEW 74.7㎡(23평) · 11층경기 수원시 팔달구 매교동 · 계약 26-09-23직전 최고 10억 3,000만 (26.08)
10억 5,000만+1.9%
꿈마을(한진) 59.9㎡(18평) · 11층경기 부천시 원미구 중동 · 계약 26-09-23직전 최고 5억 8,000만 (22.02)
5억 9,000만+1.7%
구로두산위브 36.9㎡(11평) · 7층서울 구로구 구로동 · 계약 26-09-23직전 최고 6억 2,800만 (26.09)
6억 3,800만+1.6%
선우2 84.2㎡(25평) · 6층경남 양산시 평산동 · 계약 26-09-23직전 최고 1억 2,500만 (26.03)
1억 2,700만+1.6%
일신 75.8㎡(23평) · 11층경남 진주시 하대동 · 계약 26-09-23직전 최고 1억 4,900만 (26.04)
1억 5,100만+1.3%
줄을 누르면 그 단지의 12개월 시세 페이지가 열립니다(단지 페이지가 없으면 시군구 페이지).
거래가 높은 신고가 TOP 10
1
래미안원베일리 117㎡(35평) · 21층서울 서초구 반포동 · 계약 26-09-21직전 최고 92억 (25.07)
94억+2.2%
2
우성4 126.5㎡(38평) · 8층서울 강남구 도곡동 · 계약 26-09-09직전 최고 39억 (25.03)
49억 2,000만+26.2%
3
역삼자이 114㎡(34평) · 12층서울 강남구 역삼동 · 계약 26-09-17직전 최고 36억 2,000만 (25.03)
38억 8,000만+7.2%
4
광장 150.7㎡(46평) · 5층서울 영등포구 여의도동 · 계약 26-09-11직전 최고 31억 (25.04)
37억 8,000만+21.9%
5
여의도자이 148.9㎡(45평) · 11층서울 영등포구 여의도동 · 계약 26-09-11직전 최고 35억 5,000만 (25.06)
37억 7,000만+6.2%
6
서초래미안 126.3㎡(38평) · 16층서울 서초구 서초동 · 계약 26-09-07직전 최고 33억 5,000만 (26.05)
35억+4.5%
7
잠실더샵스타파크 208.3㎡(63평) · 30층서울 송파구 신천동 · 계약 26-09-03직전 최고 30억 (24.09)
34억 8,000만+16%
8
롯데캐슬프레지던트 191.5㎡(58평) · 30층서울 마포구 공덕동 · 계약 26-09-15직전 최고 28억 3,000만 (24.11)
30억+6%
9
래미안트윈파크 115.4㎡(35평) · 8층서울 동작구 본동 · 계약 26-09-06직전 최고 27억 3,000만 (25.10)
30억+9.9%
10
갤러리아팰리스 138.6㎡(42평) · 29층서울 송파구 잠실동 · 계약 26-09-18직전 최고 28억 5,000만 (25.11)
29억 7,000만+4.2%
상승폭 큰 신고가 TOP 10
1
등촌1,2단지주공아파트 41.2㎡(12평) · 13층서울 강서구 등촌동 · 계약 26-09-16직전 최고 5억 9,500만 (25.06)
8억+34.5%
2
현대 72.7㎡(22평) · 4층경북 안동시 신안동 · 계약 26-09-17직전 최고 1억 500만 (26.01)
1억 4,000만+33.3%
3
한솔애리즈 84.7㎡(26평) · 4층서울 강동구 성내동 · 계약 26-09-04직전 최고 6억 6,000만 (24.12)
8억 8,000만+33.3%
4
벽산타운II 57.4㎡(17평) · 17층서울 관악구 봉천동 · 계약 26-09-10직전 최고 6억 8,000만 (26.05)
8억 9,000만+30.9%
5
현대1 66.7㎡(20평) · 8층서울 영등포구 대림동 · 계약 26-09-05직전 최고 7억 6,000만 (26.01)
9억 9,000만+30.3%
6
서초트라팰리스 73.4㎡(22평) · 11층서울 서초구 서초동 · 계약 26-09-16직전 최고 13억 5,000만 (25.04)
17억 5,500만+30%
7
시범다은마을우남퍼스트빌 85㎡(26평) · 27층경기 화성시 동탄구 반송동 · 계약 26-09-11직전 최고 7억 5,900만 (26.06)
9억 8,000만+29.1%
8
수지삼성2차 74.1㎡(22평) · 17층경기 용인시 수지구 풍덕천동 · 계약 26-09-19직전 최고 9억 3,000만 (26.01)
12억+29%
9
무지개(1단지)(대림) 60.7㎡(18평) · 9층경기 성남시 분당구 구미동 · 계약 26-09-21직전 최고 10억 500만 (25.11)
12억 9,000만+28.4%
10
만현마을3단지성원쌍떼빌 59.9㎡(18평) · 1층경기 용인시 수지구 상현동 · 계약 26-09-19직전 최고 6억 2,500만 (24.09)
8억+28%
신고가가 넓게 나온 시군구 (최근 60일)
건수가 아니라 그 지역 거래 중 신고가 비율로 줄 세웠습니다. 거래가 100건 이상인 곳만.
월별 신고가 비율
계약월 기준 · 칸 아래 숫자는 신고가 건수/전체 거래 건수 · 신고 중은
신고 기한(계약 후 30일)이 안 끝나 건수가 더 늘어나는 달입니다.
| 계약월 | 전국 | 서울 | 경기 | 인천 | 5대 광역시 | 그 외 지방 |
|---|
| 26.10 신고 중 | 3.8%6/159 | 0.0%0/3 | 10.3%4/39 | 0.0%0/12 | 3.3%1/30 | 1.3%1/75 |
|---|
| 26.09 신고 중 | 6.7%1,647/24,461 | 23.4%405/1,730 | 9.7%785/8,102 | 1.9%31/1,648 | 3.3%144/4,422 | 3.3%282/8,559 |
|---|
| 26.08 | 8.1%2,531/31,096 | 25.6%863/3,369 | 10.4%1,098/10,582 | 1.9%38/2,008 | 3.7%187/5,052 | 3.4%345/10,085 |
|---|
| 26.07 | 9.2%3,548/38,704 | 25.7%1,375/5,350 | 11.0%1,492/13,600 | 2.6%61/2,316 | 3.6%212/5,896 | 3.5%408/11,542 |
|---|
| 26.06 | 8.3%3,412/40,985 | 22.6%1,160/5,124 | 10.2%1,513/14,809 | 2.4%58/2,467 | 3.5%226/6,522 | 3.8%455/12,063 |
|---|
| 26.05 | 7.0%3,129/44,864 | 15.4%1,285/8,333 | 7.4%1,121/15,218 | 2.0%52/2,597 | 3.7%244/6,530 | 3.5%427/12,186 |
|---|
| 26.04 | 6.4%2,879/45,315 | 15.5%1,283/8,300 | 6.4%955/14,911 | 1.6%41/2,571 | 3.1%209/6,653 | 3.0%391/12,880 |
|---|
| 26.03 | 5.9%2,672/45,248 | 19.3%1,021/5,300 | 6.1%866/14,082 | 1.5%42/2,809 | 3.7%301/8,146 | 3.0%442/14,911 |
|---|
| 26.02 | 8.6%3,239/37,854 | 26.1%1,470/5,624 | 9.2%1,083/11,729 | 2.2%45/2,075 | 4.4%299/6,819 | 2.9%342/11,607 |
|---|
| 26.01 | 7.0%3,149/45,022 | 24.6%1,297/5,262 | 7.4%1,027/13,926 | 2.0%51/2,590 | 3.9%342/8,666 | 3.0%432/14,578 |
|---|
| 25.12 | 5.9%2,232/37,750 | 21.2%944/4,453 | 6.1%683/11,121 | 0.7%15/2,160 | 3.6%264/7,418 | 2.6%326/12,598 |
|---|
| 25.11 | 4.7%1,883/40,062 | 21.6%709/3,276 | 4.0%448/11,247 | 1.4%33/2,401 | 3.6%319/8,913 | 2.6%374/14,225 |
|---|
| 25.10 | 7.5%3,325/44,205 | 21.8%1,785/8,170 | 6.6%925/13,985 | 1.7%36/2,163 | 3.5%263/7,621 | 2.6%316/12,266 |
|---|
신고가, 이렇게 셉니다
- 같은 단지·같은 평형(전용면적 ㎡ 반올림)에서 그때까지의 최고가를 넘긴 거래만 신고가로 봅니다. 평형이 다르면 비교하지 않습니다.
- 그 평형의 이전 거래가 4건 이상이어야 합니다. 거래가 한두 건뿐인 평형의 ‘경신’은 우연일 가능성이 높습니다.
- 직전 최고가 1억원 이상, 상승폭 40% 이하만 셉니다. 그 이상 급등은 특수 거래나 입력 오류가 많습니다.
- 직거래(가족 간 거래가 섞임)와 토지임대부 주택은 뺍니다. 계약이 해제된 거래도 뺍니다.
- 비교 기간은 2021년 10월 이후 보유한 실거래입니다. 그래서 ‘역대 최고가’가 아니라 ‘2021년 10월 이후 최고가’입니다.
2021년 고점을 넘었는지가 궁금하다면 이 기준이 그대로 답이 됩니다.
- 계약일 기준입니다. 신고는 계약 후 30일 안에 하므로 최근 거래는 며칠에 걸쳐 계속 추가됩니다.
신고가 비율을 볼 때 주의할 점
- 신고가 한 건이 그 단지 시세 전체가 올랐다는 뜻은 아닙니다. 같은 평형이라도 층·동·향, 리모델링 여부에 따라 값이 다릅니다.
- 거래가 적은 달에는 몇 건의 신고가로 비율이 크게 움직입니다. 칸 아래 건수를 같이 보세요.
- 비율이 오르는 건 ‘이전 최고가 근처나 그 위에서 거래가 되고 있다’는 뜻입니다. 시장 온도를 보는 보조 지표로 쓰세요.
출처: 국토교통부 아파트 매매 실거래가 공개 자료. 매일 아침 갱신합니다.
지역별 시세·상승·하락은 아파트 실거래가 지도에서 볼 수 있습니다.
자주 묻는 질문
신고가는 정확히 무슨 뜻인가요?
같은 단지·같은 평형에서 그때까지 신고된 거래 중 가장 높은 가격을 넘긴 거래입니다. 이 페이지는 2021년 10월 이후 실거래를 기준으로 판단합니다.
신고가 비율이 높으면 집값이 오르는 건가요?
최고가 근처에서 거래가 많이 이뤄진다는 신호라 시장이 강하다는 보조 지표로 볼 수 있습니다. 다만 거래량이 적을 때는 소수 거래로 비율이 크게 흔들리므로 건수와 함께 보세요.
우리 단지가 신고가인데 목록에 없어요.
이전 거래가 4건 미만인 평형, 직거래, 상승폭 40% 초과 거래는 기준에서 뺍니다. 또 계약 후 신고까지 최대 30일이 걸려 아직 공개되지 않았을 수 있습니다.
dmFyIEQ9SlNPTi5wYXJzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHBoLWRhdGFhZWFlYTkwYjNhJykudGV4dENvbnRlbnQpOwp2YXIgVEhFTUVfSUNPPWZ1bmN0aW9uKHQpe3JldHVybiB0PT09J2RhcmsnPyc8c3ZnIGNsYXNzPSJ0cGgtaSBpY28tcyIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0yMCAxNC41QTguNSA4LjUgMCAwIDEgOS41IDRhOC41IDguNSAwIDEgMCAxMC41IDEwLjV6Ii8+PC9zdmc+Jzp0PT09J2xpZ2h0Jz8nPHN2ZyBjbGFzcz0idHBoLWkgaWNvLXMiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS43IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNMTIgNy41YTQuNSA0LjUgMCAxIDAgMCA5IDQuNSA0LjUgMCAwIDAgMC05ek0xMiAydjJNMTIgMjB2Mk00LjIgNC4ybDEuNCAxLjRNMTguNCAxOC40bDEuNCAxLjRNMiAxMmgyTTIwIDEyaDJNNC4yIDE5LjhsMS40LTEuNE0xOC40IDUuNmwxLjQtMS40Ii8+PC9zdmc+JzonPHN2ZyBjbGFzcz0idHBoLWkgaWNvLXMiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS43IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNMTIgM2E5IDkgMCAxIDAgMCAxOCA5IDkgMCAwIDAgMC0xOHpNMTIgM3YxOGE5IDkgMCAwIDAgMC0xOHoiLz48L3N2Zz4nO307Cgp2YXIgJD1mdW5jdGlvbihpKXtyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RwaC0nK2kpO307CnZhciB2PWZ1bmN0aW9uKGkpe3ZhciBlPSQoaSk7cmV0dXJuIGU/KCtlLnZhbHVlfHwwKTowO307CnZhciBzPWZ1bmN0aW9uKGkpe3ZhciBlPSQoaSk7cmV0dXJuIGU/ZS52YWx1ZTonJzt9Owp2YXIgZj1mdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5yb3VuZChuKS50b0xvY2FsZVN0cmluZygna28tS1InKSsn7JuQJzt9Owp2YXIgZmQ9ZnVuY3Rpb24obixkKXtyZXR1cm4gbi50b0xvY2FsZVN0cmluZygna28tS1InLHttYXhpbXVtRnJhY3Rpb25EaWdpdHM6ZHx8MX0pO307CnZhciBjdXQxMD1mdW5jdGlvbih4KXtyZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJvdW5kKHgpLzEwKSoxMDt9Owp2YXIgc2V0PWZ1bmN0aW9uKGksdCl7dmFyIGU9JChpKTtpZighZSlyZXR1cm47aWYoaT09PSdtYWluJyl7Y291bnRVcChlLHQpO31lbHNle2UudGV4dENvbnRlbnQ9dDt9fTsKCi8qIOyViOyghO2VnCDsoIDsnqXshowg7KCR6re8IOKAlCDsi5ztgazrpr8g66qo65OcL+ywqOuLqCDtmZjqsr3sl5DshJzrj4Qg7KO97KeAIOyViuqyjCAqLwp2YXIgc3RvcmU9ewogIGdldDpmdW5jdGlvbihrKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKGspO31jYXRjaChlKXtyZXR1cm4gbnVsbDt9fSwKICBzZXQ6ZnVuY3Rpb24oayx2YWwpe3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrLHZhbCk7fWNhdGNoKGUpe319LAogIGRlbDpmdW5jdGlvbihrKXt0cnl7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oayk7fWNhdGNoKGUpe319Cn07Cgp2YXIgdG9hc3Q9ZnVuY3Rpb24obXNnKXsKICB2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcudHBoLXRvYXN0Jyk7CiAgaWYoIXQpe3Q9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7dC5jbGFzc05hbWU9J3RwaC10b2FzdCc7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0KTt9CiAgdC50ZXh0Q29udGVudD1tc2c7dC5jbGFzc0xpc3QuYWRkKCdzaG93Jyk7CiAgY2xlYXJUaW1lb3V0KHQuX2gpO3QuX2g9c2V0VGltZW91dChmdW5jdGlvbigpe3QuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpO30sMTkwMCk7Cn07CgovKiDthYzrp4gg7Yag6riAOiDsi5zsiqTthZwg7ISk7KCVIOKGkiDrnbzsnbTtirgg4oaSIOuLpO2BrCDsiJztmZggKi8KZnVuY3Rpb24gaW5pdFRoZW1lKHJvb3QpewogIHZhciBLPSd0cGgtdGhlbWUnLCBjdXI9c3RvcmUuZ2V0KEspOwogIGlmKGN1cikgcm9vdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtdGhlbWUnLGN1cik7CiAgdmFyIGI9JCgndGhlbWUnKTsKICBpZighYikgcmV0dXJuOwogIHZhciBsYWJlbD1mdW5jdGlvbigpewogICAgdmFyIHQ9cm9vdC5nZXRBdHRyaWJ1dGUoJ2RhdGEtdGhlbWUnKTsKICAgIGIuaW5uZXJIVE1MPVRIRU1FX0lDTyh0KSsnIDxzcGFuPicrKHQ9PT0nZGFyayc/J+uLpO2BrCc6dD09PSdsaWdodCc/J+udvOydtO2KuCc6J+yekOuPmScpKyc8L3NwYW4+JzsKICB9OwogIGxhYmVsKCk7CiAgYi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXsKICAgIHZhciB0PXJvb3QuZ2V0QXR0cmlidXRlKCdkYXRhLXRoZW1lJyk7CiAgICB2YXIgbng9IXQ/J2xpZ2h0Jzp0PT09J2xpZ2h0Jz8nZGFyayc6Jyc7CiAgICBpZihueCl7cm9vdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtdGhlbWUnLG54KTtzdG9yZS5zZXQoSyxueCk7fQogICAgZWxzZXtyb290LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS10aGVtZScpO3N0b3JlLmRlbChLKTt9CiAgICBsYWJlbCgpOwogIH0pOwp9CgovKiDsnoXroKXqsJIg4oaUIFVSTCDtjIzrnbzrr7jthLAg4oaUIGxvY2FsU3RvcmFnZSAqLwpmdW5jdGlvbiBpbml0U3RhdGUoc2x1ZywgaWRzLCBvbmNoYW5nZSl7CiAgdmFyIEtFWT0ndHBoLWluLScrc2x1ZywgcT1uZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCksIHVzZWQ9ZmFsc2U7CiAgaWRzLmZvckVhY2goZnVuY3Rpb24oaSl7CiAgICB2YXIgZT0kKGkpOyBpZighZSkgcmV0dXJuOwogICAgaWYocS5oYXMoaSkpeyBlLnZhbHVlPXEuZ2V0KGkpOyB1c2VkPXRydWU7IH0KICB9KTsKICBpZighdXNlZCl7CiAgICB2YXIgcmF3PXN0b3JlLmdldChLRVkpOwogICAgaWYocmF3KXsgdHJ5eyB2YXIgbz1KU09OLnBhcnNlKHJhdyk7CiAgICAgIGlkcy5mb3JFYWNoKGZ1bmN0aW9uKGkpeyB2YXIgZT0kKGkpOyBpZihlJiZvW2ldIT09dW5kZWZpbmVkJiZvW2ldIT09JycpIGUudmFsdWU9b1tpXTsgfSk7CiAgICB9Y2F0Y2goZSl7fSB9CiAgfQogIHZhciBzYXZlPWZ1bmN0aW9uKCl7CiAgICB2YXIgbz17fTsgaWRzLmZvckVhY2goZnVuY3Rpb24oaSl7IHZhciBlPSQoaSk7IGlmKGUpIG9baV09ZS52YWx1ZTsgfSk7CiAgICBzdG9yZS5zZXQoS0VZLCBKU09OLnN0cmluZ2lmeShvKSk7CiAgfTsKICB2YXIgc2hhcmU9JCgnc2hhcmUnKTsKICBpZihzaGFyZSkgc2hhcmUuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7CiAgICB2YXIgcD1uZXcgVVJMU2VhcmNoUGFyYW1zKCk7CiAgICBpZHMuZm9yRWFjaChmdW5jdGlvbihpKXsgdmFyIGU9JChpKTsgaWYoZSkgcC5zZXQoaSxlLnZhbHVlKTsgfSk7CiAgICB2YXIgdXJsPWxvY2F0aW9uLm9yaWdpbitsb2NhdGlvbi5wYXRobmFtZSsnPycrcC50b1N0cmluZygpOwogICAgdmFyIGRvbmU9ZnVuY3Rpb24oKXt0b2FzdCgn66eB7YGs66W8IOuzteyCrO2WiOyKteuLiOuLpCcpO307CiAgICBpZihuYXZpZ2F0b3IuY2xpcGJvYXJkJiZuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCl7CiAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHVybCkudGhlbihkb25lLGZ1bmN0aW9uKCl7cHJvbXB0KCfslYTrnpgg7KO87IaM66W8IOuzteyCrO2VmOyEuOyalCcsdXJsKTt9KTsKICAgIH0gZWxzZSBwcm9tcHQoJ+yVhOuemCDso7zshozrpbwg67O17IKs7ZWY7IS47JqUJyx1cmwpOwogIH0pOwogIHZhciBjb3B5PSQoJ2NvcHknKTsKICBpZihjb3B5KSBjb3B5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpewogICAgdmFyIGxpbmVzPVtkb2N1bWVudC50aXRsZS5zcGxpdCgnfCcpWzBdLnRyaW0oKV07CiAgICBpZHMuZm9yRWFjaChmdW5jdGlvbihpKXsKICAgICAgdmFyIGU9JChpKTsgaWYoIWUpIHJldHVybjsKICAgICAgdmFyIGxhYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdsYWJlbFtmb3I9dHBoLScraSsnXScpOwogICAgICB2YXIgdmFsPWUudGFnTmFtZT09PSdTRUxFQ1QnP2Uub3B0aW9uc1tlLnNlbGVjdGVkSW5kZXhdLnRleHQ6KCtlLnZhbHVlfHwwKS50b0xvY2FsZVN0cmluZygna28tS1InKTsKICAgICAgaWYobGFiKSBsaW5lcy5wdXNoKCfCtyAnK2xhYi50ZXh0Q29udGVudC50cmltKCkrJzogJyt2YWwpOwogICAgfSk7CiAgICBsaW5lcy5wdXNoKCcnKTsKICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50cGgtdG90YWwnKS5mb3JFYWNoKGZ1bmN0aW9uKHQpewogICAgICB2YXIgbD10LnF1ZXJ5U2VsZWN0b3IoJy5sJyksIHZhbD10LnF1ZXJ5U2VsZWN0b3IoJy52Jyk7CiAgICAgIGlmKGwmJnZhbCkgbGluZXMucHVzaChsLnRleHRDb250ZW50LnRyaW0oKSsnOiAnK3ZhbC50ZXh0Q29udGVudC50cmltKCkpOwogICAgfSk7CiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudHBoLXBhZ2UgdGFibGUnKS5mb3JFYWNoKGZ1bmN0aW9uKHRiKXsKICAgICAgdGIucXVlcnlTZWxlY3RvckFsbCgndHInKS5mb3JFYWNoKGZ1bmN0aW9uKHRyKXsKICAgICAgICB2YXIgdGQ9dHIucXVlcnlTZWxlY3RvckFsbCgndGQnKTsKICAgICAgICBpZih0ZC5sZW5ndGg9PT0yKSBsaW5lcy5wdXNoKCfCtyAnK3RkWzBdLnRleHRDb250ZW50LnRyaW0oKSsnOiAnK3RkWzFdLnRleHRDb250ZW50LnRyaW0oKSk7CiAgICAgIH0pOwogICAgfSk7CiAgICBsaW5lcy5wdXNoKCcnLCBsb2NhdGlvbi5vcmlnaW4rbG9jYXRpb24ucGF0aG5hbWUpOwogICAgdmFyIHR4dD1saW5lcy5qb2luKCdcbicpOwogICAgdmFyIGRvbmU9ZnVuY3Rpb24oKXt0b2FzdCgn6rKw6rO866W8IOuzteyCrO2WiOyKteuLiOuLpCcpO307CiAgICBpZihuYXZpZ2F0b3IuY2xpcGJvYXJkJiZuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCkgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodHh0KS50aGVuKGRvbmUsZG9uZSk7CiAgICBlbHNlIHsgdmFyIHRhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7IHRhLnZhbHVlPXR4dDsgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0YSk7CiAgICAgICAgICAgdGEuc2VsZWN0KCk7IHRyeXtkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpO31jYXRjaChlKXt9IHRhLnJlbW92ZSgpOyBkb25lKCk7IH0KICB9KTsKICB2YXIgcmVzZXQ9JCgncmVzZXQnKTsKICBpZihyZXNldCkgcmVzZXQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7CiAgICBzdG9yZS5kZWwoS0VZKTsgbG9jYXRpb24uaHJlZj1sb2NhdGlvbi5wYXRobmFtZTsKICB9KTsKICByZXR1cm4gc2F2ZTsKfQoKLyog6riI7JWhIOyeheugpSDrsJEg67mg66W4IOyhsOyglSDsuakgKi8KZnVuY3Rpb24gaW5pdENoaXBzKG9uY2hhbmdlKXsKICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudHBoLWNoaXAnKS5mb3JFYWNoKGZ1bmN0aW9uKGMpewogICAgYy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXsKICAgICAgdmFyIGU9JChjLmRhdGFzZXQudCk7IGlmKCFlKSByZXR1cm47CiAgICAgIHZhciBkPWMuZGF0YXNldC5kOwogICAgICBlLnZhbHVlID0gZD09PScwJyA/IDAgOiBNYXRoLm1heCgwLCgrZS52YWx1ZXx8MCkrKCtkKSk7CiAgICAgIG9uY2hhbmdlKCk7CiAgICB9KTsKICB9KTsKfQoKLyog7J6F66Cl6rCS7J2EIOyCrOuejOydtCDsnb3ripQg66y47J6l7Jy866GcICgzLDAwMCwwMDAg4oaSIDMwMOunjOybkCkgKi8KZnVuY3Rpb24ga29yTW9uZXkobil7CiAgbj1NYXRoLnJvdW5kKG4pOyBpZighbikgcmV0dXJuICcw7JuQJzsKICB2YXIgZW9rPU1hdGguZmxvb3Iobi8xMDAwMDAwMDApLCBtYW49TWF0aC5mbG9vcigobiUxMDAwMDAwMDApLzEwMDAwKSwgd29uPW4lMTAwMDAsIHA9W107CiAgaWYoZW9rKSBwLnB1c2goZW9rKyfslrUnKTsKICBpZihtYW4pIHAucHVzaChtYW4udG9Mb2NhbGVTdHJpbmcoJ2tvLUtSJykrJ+unjCcpOwogIGlmKHdvbikgcC5wdXNoKHdvbi50b0xvY2FsZVN0cmluZygna28tS1InKSk7CiAgcmV0dXJuIHAuam9pbignICcpKyfsm5AnOwp9CmZ1bmN0aW9uIGluaXRSZWFkKG1hcCl7CiAgT2JqZWN0LmtleXMobWFwKS5mb3JFYWNoKGZ1bmN0aW9uKGlkKXsKICAgIHZhciBlPSQoaWQpLCBvdXQ9JChtYXBbaWRdKTsgaWYoIWV8fCFvdXQpIHJldHVybjsKICAgIHZhciB1cGQ9ZnVuY3Rpb24oKXsgb3V0LnRleHRDb250ZW50ID0gKCtlLnZhbHVlPjApID8ga29yTW9uZXkoK2UudmFsdWUpIDogJyc7IH07CiAgICBlLmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0Jyx1cGQpOyB1cGQoKTsKICB9KTsKfQoKCi8qIOyIq+yekCDsubTsmrTtirjsl4Ug4oCUIOqysOqzvOqwgCDrsJTrgJQg65WMIOu2gOuTnOufveqyjCAqLwpmdW5jdGlvbiBjb3VudFVwKGVsLCB0ZXh0KXsKICBpZighZWwpIHJldHVybjsKICB2YXIgcHJldj1lbC5fcmF3fHwnJywgY3VyPXRleHQ7CiAgZWwuX3Jhdz1jdXI7CiAgdmFyIHBuPXBhcnNlRmxvYXQoU3RyaW5nKHByZXYpLnJlcGxhY2UoL1teMC05Li1dL2csJycpKTsKICB2YXIgY249cGFyc2VGbG9hdChTdHJpbmcoY3VyKS5yZXBsYWNlKC9bXjAtOS4tXS9nLCcnKSk7CiAgdmFyIHJlZHVjZT13aW5kb3cubWF0Y2hNZWRpYSYmd2luZG93Lm1hdGNoTWVkaWEoJyhwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpJykubWF0Y2hlczsKICBpZihyZWR1Y2V8fCFpc0Zpbml0ZShwbil8fCFpc0Zpbml0ZShjbil8fHBuPT09Y258fE1hdGguYWJzKGNuLXBuKTwxKXtlbC50ZXh0Q29udGVudD1jdXI7cmV0dXJuO30KICB2YXIgcHJlPWN1ci5zbGljZSgwLGN1ci5zZWFyY2goL1swLTktXS8pKTsKICB2YXIgcG9zdD1jdXIuc2xpY2UoY3VyLnNlYXJjaCgvWzAtOV1bXjAtOV0qJC8pKzEpLnJlcGxhY2UoL15bMC05XS8sJycpOwogIHZhciBzdWZmaXg9Y3VyLnJlcGxhY2UoL15bXjAtOS1dKi8sJycpLnJlcGxhY2UoL15bMC05LC5cLV0rLywnJyk7CiAgdmFyIHQwPW51bGwsIGR1cj0zODA7CiAgY2FuY2VsQW5pbWF0aW9uRnJhbWUoZWwuX2FmfHwwKTsKICBmdW5jdGlvbiBzdGVwKHQpewogICAgaWYoIXQwKSB0MD10OwogICAgdmFyIGs9TWF0aC5taW4oMSwodC10MCkvZHVyKSwgZT0xLU1hdGgucG93KDEtaywzKTsKICAgIHZhciB2YWw9cG4rKGNuLXBuKSplOwogICAgZWwudGV4dENvbnRlbnQ9cHJlK01hdGgucm91bmQodmFsKS50b0xvY2FsZVN0cmluZygna28tS1InKStzdWZmaXg7CiAgICBpZihrPDEpIGVsLl9hZj1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoc3RlcCk7IGVsc2UgZWwudGV4dENvbnRlbnQ9Y3VyOwogIH0KICBlbC5fYWY9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHN0ZXApOwp9CgovKiDrqqjrsJTsnbwg6rOg7KCVIOqysOqzvOuwlCArIOunqCDsnITroZwgKi8KZnVuY3Rpb24gaW5pdFN0aWNreShyb290LCBsYWJlbCl7CiAgaWYoIXJvb3QpIHJldHVybjsKICB2YXIgbWFpbj0kKCdtYWluJyk7IGlmKCFtYWluKSByZXR1cm47CiAgdmFyIGJhcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICBiYXIuY2xhc3NOYW1lPSd0cGgtc3RpY2t5JzsKICBiYXIuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJsIj4nK2xhYmVsKyc8L2Rpdj48ZGl2IGNsYXNzPSJ2IiBpZD0idHBoLXN0aWNreXYiPuKApjwvZGl2Pic7CiAgcm9vdC5hcHBlbmRDaGlsZChiYXIpOwogIHZhciB0b3A9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgdG9wLnR5cGU9J2J1dHRvbic7IHRvcC5jbGFzc05hbWU9J3RwaC10b3AnOyB0b3Auc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywn66eoIOychOuhnCcpOwogIHRvcC5pbm5lckhUTUw9Jzxzdmcgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgMTlWNSIvPjxwYXRoIGQ9Ik01IDEybDctNyA3IDciLz48L3N2Zz4nOwogIHRvcC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXt3aW5kb3cuc2Nyb2xsVG8oe3RvcDowLGJlaGF2aW9yOidzbW9vdGgnfSk7fSk7CiAgcm9vdC5hcHBlbmRDaGlsZCh0b3ApOwogIHZhciBzdj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHBoLXN0aWNreXYnKTsKICB2YXIgc3luYz1mdW5jdGlvbigpewogICAgaWYoc3YmJnN2LnRleHRDb250ZW50IT09bWFpbi50ZXh0Q29udGVudCkgc3YudGV4dENvbnRlbnQ9bWFpbi50ZXh0Q29udGVudDsKICAgIHZhciByPW1haW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICBiYXIuY2xhc3NMaXN0LnRvZ2dsZSgnb24nLCByLmJvdHRvbTw1Nik7CiAgICB0b3AuY2xhc3NMaXN0LnRvZ2dsZSgnb24nLCB3aW5kb3cuc2Nyb2xsWT41MDApOwogIH07CiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsc3luYyx7cGFzc2l2ZTp0cnVlfSk7CiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsc3luYyk7CiAgaWYod2luZG93Lk11dGF0aW9uT2JzZXJ2ZXIpIG5ldyBNdXRhdGlvbk9ic2VydmVyKHN5bmMpLm9ic2VydmUobWFpbix7Y2hpbGRMaXN0OnRydWUsY2hhcmFjdGVyRGF0YTp0cnVlLHN1YnRyZWU6dHJ1ZX0pOwogIHN5bmMoKTsKfQoKLyog4pSA4pSAIOywqO2KuCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAKICAg7IOJ7J2AIENTUyDrs4DsiJggLS1zMS8tLXMyLy0tczMgKOqygOymneuQnCDsubTthYzqs6Drpqwg7YyU66CI7Yq4KS4KICAg6rOE7Je07J20IDLqsJwg7J207IOB7J2066m0IOuylOuhgOulvCDtla3sg4Eg67aZ7J206rOgLCDqsJLsnYAg7ZGc7JeQ64+EIOq3uOuMgOuhnCDsnojri6QuICovCnZhciBTVkdOUz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnOwpmdW5jdGlvbiBlbCh0LGEpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhTVkdOUyx0KTtmb3IodmFyIGsgaW4gYSllLnNldEF0dHJpYnV0ZShrLGFba10pO3JldHVybiBlO30KCmZ1bmN0aW9uIHRpcChib3gpewogIHZhciB0PWJveC5xdWVyeVNlbGVjdG9yKCcudHBoLXRpcCcpOwogIGlmKCF0KXt0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO3QuY2xhc3NOYW1lPSd0cGgtdGlwJztib3guYXBwZW5kQ2hpbGQodCk7fQogIHJldHVybiB0Owp9CmZ1bmN0aW9uIHNob3dUaXAoYm94LHgseSxodG1sKXsKICB2YXIgdD10aXAoYm94KTsgdC5pbm5lckhUTUw9aHRtbDsgdC5zdHlsZS5vcGFjaXR5PScxJzsKICB2YXIgdz10Lm9mZnNldFdpZHRoLCBidz1ib3guY2xpZW50V2lkdGg7CiAgdC5zdHlsZS5sZWZ0PU1hdGgubWF4KDQsTWF0aC5taW4oYnctdy00LHgtdy8yKSkrJ3B4JzsKICB0LnN0eWxlLnRvcD1NYXRoLm1heCgyLHktdC5vZmZzZXRIZWlnaHQtMTApKydweCc7Cn0KZnVuY3Rpb24gaGlkZVRpcChib3gpe3ZhciB0PWJveC5xdWVyeVNlbGVjdG9yKCcudHBoLXRpcCcpO2lmKHQpdC5zdHlsZS5vcGFjaXR5PScwJzt9CgovKiDshLjroZwg64iE7KCBIOunieuMgCDigJQgY2F0czpb652867KoXSwgc2VyaWVzOlt7bmFtZSxjbHMsZGF0YTpbXX1dICovCmZ1bmN0aW9uIHN0YWNrQ2hhcnQoYm94SWQsIGNhdHMsIHNlcmllcywgZm10KXsKICB2YXIgYm94PSQoYm94SWQpOyBpZighYm94KSByZXR1cm47CiAgYm94LnF1ZXJ5U2VsZWN0b3JBbGwoJ3N2ZywudHBoLWxlZ2VuZCcpLmZvckVhY2goZnVuY3Rpb24obil7bi5yZW1vdmUoKTt9KTsKICB2YXIgVz02NjAsSD0yMzYsUEw9OCxQUj04LFBUPTE0LFBCPTI2OwogIHZhciBuPWNhdHMubGVuZ3RoOyBpZighbikgcmV0dXJuOwogIHZhciB0b3RhbHM9Y2F0cy5tYXAoZnVuY3Rpb24oXyxpKXtyZXR1cm4gc2VyaWVzLnJlZHVjZShmdW5jdGlvbihhLHMpe3JldHVybiBhKyhzLmRhdGFbaV18fDApO30sMCk7fSk7CiAgdmFyIG1heD1NYXRoLm1heC5hcHBseShudWxsLHRvdGFscyl8fDE7CiAgdmFyIGl3PVctUEwtUFIsIGloPUgtUFQtUEI7CiAgdmFyIGJ3PU1hdGgubWF4KDYsTWF0aC5taW4oNDYsaXcvbiowLjY4KSksIHN0ZXA9aXcvbjsKICB2YXIgc3ZnPWVsKCdzdmcnLHt2aWV3Qm94OicwIDAgJytXKycgJytILHJvbGU6J2ltZyd9KTsKICBmb3IodmFyIGc9MDtnPD0zO2crKyl7CiAgICB2YXIgZ3k9UFQraWgqZy8zOwogICAgc3ZnLmFwcGVuZENoaWxkKGVsKCdsaW5lJyx7eDE6UEwseTE6Z3kseDI6Vy1QUix5MjpneSwnY2xhc3MnOidnbCd9KSk7CiAgfQogIGNhdHMuZm9yRWFjaChmdW5jdGlvbihjLGkpewogICAgdmFyIGN4PVBMK3N0ZXAqaStzdGVwLzIsIHk9UFQraWgsIGFjYz0wOwogICAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24ocyxzaSl7CiAgICAgIHZhciB2YWw9cy5kYXRhW2ldfHwwOyBpZih2YWw8PTApIHJldHVybjsKICAgICAgdmFyIGg9dmFsL21heCppaDsgeS09aDsgYWNjKz12YWw7CiAgICAgIHZhciBpc1RvcCA9IHNpPT09c2VyaWVzLmxlbmd0aC0xIHx8ICFzZXJpZXMuc2xpY2Uoc2krMSkuc29tZShmdW5jdGlvbih6KXtyZXR1cm4gKHouZGF0YVtpXXx8MCk+MDt9KTsKICAgICAgdmFyIHI9ZWwoJ3JlY3QnLHt4OmN4LWJ3LzIseTp5LHdpZHRoOmJ3LGhlaWdodDpNYXRoLm1heCgxLGgpLCdjbGFzcyc6cy5jbHMsCiAgICAgICAgICAgICAgICAgICAgICAgcng6aXNUb3A/NDowLHJ5OmlzVG9wPzQ6MH0pOwogICAgICBzdmcuYXBwZW5kQ2hpbGQocik7CiAgICB9KTsKICAgIHZhciBoaXQ9ZWwoJ3JlY3QnLHt4OmN4LXN0ZXAvMisxLHk6UFQsd2lkdGg6c3RlcC0yLGhlaWdodDppaCwnY2xhc3MnOidoaXQnfSk7CiAgICBoaXQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJyxmdW5jdGlvbihldil7CiAgICAgIHZhciBicj1ib3guZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICAgIHZhciByb3dzPXNlcmllcy5tYXAoZnVuY3Rpb24ocyl7CiAgICAgICAgcmV0dXJuICc8c3BhbiBzdHlsZT0iZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6OHB4O2hlaWdodDo4cHg7Ym9yZGVyLXJhZGl1czoycHg7JwogICAgICAgICAgICAgKyAnYmFja2dyb3VuZDp2YXIoLS0nK3MuY2xzKycpO21hcmdpbi1yaWdodDo2cHgiPjwvc3Bhbj4nK3MubmFtZSsnICcrZm10KHMuZGF0YVtpXXx8MCk7CiAgICAgIH0pLmpvaW4oJzxicj4nKTsKICAgICAgc2hvd1RpcChib3gsZXYuY2xpZW50WC1ici5sZWZ0LGV2LmNsaWVudFktYnIudG9wLAogICAgICAgICAgICAgICc8Yj4nK2MrJzwvYj48YnI+Jytyb3dzKyc8YnI+7ZWp6rOEICcrZm10KGFjYykpOwogICAgfSk7CiAgICBoaXQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsZnVuY3Rpb24oKXtoaWRlVGlwKGJveCk7fSk7CiAgICBzdmcuYXBwZW5kQ2hpbGQoaGl0KTsKICAgIGlmKG48PTE0fHxpJU1hdGguY2VpbChuLzEyKT09PTApCiAgICAgIHN2Zy5hcHBlbmRDaGlsZChPYmplY3QuYXNzaWduKGVsKCd0ZXh0Jyx7eDpjeCx5OkgtOCwnY2xhc3MnOidsYicsJ3RleHQtYW5jaG9yJzonbWlkZGxlJ30pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGV4dENvbnRlbnQ6Y30pKTsKICB9KTsKICBib3guYXBwZW5kQ2hpbGQoc3ZnKTsKICBib3guYXBwZW5kQ2hpbGQobGVnZW5kKHNlcmllcykpOwp9CgovKiDqsIDroZwg64iE7KCBIOunieuMgCjqtazshLEpIOKAlCBzZWdzOlt7bmFtZSxjbHMsdmFsdWV9XSDCtyDsp4HsoJEg652867KoICovCmZ1bmN0aW9uIGhTdGFjayhib3hJZCwgc2VncywgZm10KXsKICB2YXIgYm94PSQoYm94SWQpOyBpZighYm94KSByZXR1cm47CiAgYm94LnF1ZXJ5U2VsZWN0b3JBbGwoJ3N2ZywudHBoLWxlZ2VuZCcpLmZvckVhY2goZnVuY3Rpb24obil7bi5yZW1vdmUoKTt9KTsKICB2YXIgdG90YWw9c2Vncy5yZWR1Y2UoZnVuY3Rpb24oYSxzKXtyZXR1cm4gYStNYXRoLm1heCgwLHMudmFsdWUpO30sMCl8fDE7CiAgdmFyIFc9NjYwLEg9NjQsUEw9OCxQUj04LEJIPTM0LFRZPTEyOwogIHZhciBzdmc9ZWwoJ3N2Zycse3ZpZXdCb3g6JzAgMCAnK1crJyAnK0gscm9sZTonaW1nJ30pOwogIHZhciB4PVBMLCBpdz1XLVBMLVBSOwogIHNlZ3MuZm9yRWFjaChmdW5jdGlvbihzLGkpewogICAgdmFyIHc9TWF0aC5tYXgoMCxzLnZhbHVlKS90b3RhbCppdzsgaWYodzw9MCkgcmV0dXJuOwogICAgdmFyIGZpcnN0PWk9PT0wLCBsYXN0PWk9PT1zZWdzLmxlbmd0aC0xOwogICAgc3ZnLmFwcGVuZENoaWxkKGVsKCdyZWN0Jyx7eDp4LHk6VFksd2lkdGg6dyxoZWlnaHQ6QkgsJ2NsYXNzJzpzLmNscywKICAgICAgcng6KGZpcnN0fHxsYXN0KT80OjAscnk6KGZpcnN0fHxsYXN0KT80OjB9KSk7CiAgICB2YXIgcGN0PXMudmFsdWUvdG90YWwqMTAwOwogICAgaWYocGN0Pj05KQogICAgICBzdmcuYXBwZW5kQ2hpbGQoT2JqZWN0LmFzc2lnbihlbCgndGV4dCcse3g6eCt3LzIseTpUWStCSC8yKzQsJ2NsYXNzJzondmwnLAogICAgICAgICd0ZXh0LWFuY2hvcic6J21pZGRsZScsZmlsbDonI2ZmZid9KSx7dGV4dENvbnRlbnQ6cGN0LnRvRml4ZWQoMCkrJyUnfSkpOwogICAgdmFyIGhpdD1lbCgncmVjdCcse3g6eCx5OlRZLHdpZHRoOncsaGVpZ2h0OkJILCdjbGFzcyc6J2hpdCd9KTsKICAgIChmdW5jdGlvbihzZWcscHgscHcpewogICAgICBoaXQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJyxmdW5jdGlvbihldil7CiAgICAgICAgdmFyIGJyPWJveC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgICBzaG93VGlwKGJveCxldi5jbGllbnRYLWJyLmxlZnQsZXYuY2xpZW50WS1ici50b3AsCiAgICAgICAgICAnPGI+JytzZWcubmFtZSsnPC9iPjxicj4nK2ZtdChzZWcudmFsdWUpKycgwrcgJysoc2VnLnZhbHVlL3RvdGFsKjEwMCkudG9GaXhlZCgxKSsnJScpOwogICAgICB9KTsKICAgICAgaGl0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLGZ1bmN0aW9uKCl7aGlkZVRpcChib3gpO30pOwogICAgfSkocyx4LHcpOwogICAgc3ZnLmFwcGVuZENoaWxkKGhpdCk7CiAgICB4Kz13OwogIH0pOwogIGJveC5hcHBlbmRDaGlsZChzdmcpOwogIGJveC5hcHBlbmRDaGlsZChsZWdlbmQoc2Vncy5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuIHtuYW1lOnMubmFtZSsnICcrZm10KHMudmFsdWUpLGNsczpzLmNsc307fSkpKTsKfQoKLyog7ISg7ZiVIOy2lOydtCDssKjtirgg4oCUIHNlcmllczpbe25hbWUsY2xzLGRhdGE6W119XSwgY2F0czpb652867KoXSAqLwpmdW5jdGlvbiBsaW5lQ2hhcnQoYm94SWQsIGNhdHMsIHNlcmllcywgZm10KXsKICB2YXIgYm94PSQoYm94SWQpOyBpZighYm94KSByZXR1cm47CiAgYm94LnF1ZXJ5U2VsZWN0b3JBbGwoJ3N2ZywudHBoLWxlZ2VuZCcpLmZvckVhY2goZnVuY3Rpb24obil7bi5yZW1vdmUoKTt9KTsKICB2YXIgbj1jYXRzLmxlbmd0aDsgaWYobjwyKSByZXR1cm47CiAgdmFyIFc9NjYwLEg9MjQwLFBMPTU0LFBSPTEyLFBUPTE0LFBCPTI2OwogIHZhciBhbGw9W107IHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKHMpe2FsbD1hbGwuY29uY2F0KHMuZGF0YS5maWx0ZXIoZnVuY3Rpb24odil7cmV0dXJuIHYhPW51bGw7fSkpO30pOwogIGlmKCFhbGwubGVuZ3RoKSByZXR1cm47CiAgdmFyIG14PU1hdGgubWF4LmFwcGx5KG51bGwsYWxsKSwgbW49TWF0aC5taW4uYXBwbHkobnVsbCxhbGwpOwogIHZhciBwYWQ9KG14LW1uKSowLjE1fHxteCowLjAyfHwxOyBteCs9cGFkOyBtbj1NYXRoLm1heCgwLG1uLXBhZCk7CiAgdmFyIGl3PVctUEwtUFIsIGloPUgtUFQtUEI7CiAgdmFyIFg9ZnVuY3Rpb24oaSl7cmV0dXJuIFBMK2l3KihuPT09MT8wLjU6aS8obi0xKSk7fTsKICB2YXIgWT1mdW5jdGlvbih2KXtyZXR1cm4gUFQraWgqKDEtKHYtbW4pLygobXgtbW4pfHwxKSk7fTsKICB2YXIgc3ZnPWVsKCdzdmcnLHt2aWV3Qm94OicwIDAgJytXKycgJytILHJvbGU6J2ltZyd9KTsKICBmb3IodmFyIGc9MDtnPD00O2crKyl7CiAgICB2YXIgZ3Y9bW4rKG14LW1uKSpnLzQsIGd5PVkoZ3YpOwogICAgc3ZnLmFwcGVuZENoaWxkKGVsKCdsaW5lJyx7eDE6UEwseTE6Z3kseDI6Vy1QUix5MjpneSwnY2xhc3MnOidnbCd9KSk7CiAgICBzdmcuYXBwZW5kQ2hpbGQoT2JqZWN0LmFzc2lnbihlbCgndGV4dCcse3g6UEwtOCx5Omd5KzQsJ2NsYXNzJzonbGInLCd0ZXh0LWFuY2hvcic6J2VuZCd9KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0ZXh0Q29udGVudDpNYXRoLnJvdW5kKGd2KS50b0xvY2FsZVN0cmluZygna28tS1InKX0pKTsKICB9CiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24ocyl7CiAgICB2YXIgZD0nJywgc3RhcnRlZD1mYWxzZTsKICAgIHMuZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKHYsaSl7CiAgICAgIGlmKHY9PW51bGwpIHJldHVybjsKICAgICAgZCs9KHN0YXJ0ZWQ/J0wnOidNJykrWChpKS50b0ZpeGVkKDEpKycgJytZKHYpLnRvRml4ZWQoMSkrJyAnOyBzdGFydGVkPXRydWU7CiAgICB9KTsKICAgIGlmKGQpIHN2Zy5hcHBlbmRDaGlsZChlbCgncGF0aCcse2Q6ZCxmaWxsOidub25lJywnc3Ryb2tlJzondmFyKC0tJytzLmNscysnKScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3Ryb2tlLXdpZHRoJzoyLjIsJ3N0cm9rZS1saW5lam9pbic6J3JvdW5kJywnc3Ryb2tlLWxpbmVjYXAnOidyb3VuZCd9KSk7CiAgICB2YXIgbGFzdD1zLmRhdGEubGVuZ3RoLTE7CiAgICBpZihzLmRhdGFbbGFzdF0hPW51bGwpCiAgICAgIHN2Zy5hcHBlbmRDaGlsZChlbCgnY2lyY2xlJyx7Y3g6WChsYXN0KSxjeTpZKHMuZGF0YVtsYXN0XSkscjo0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6J3ZhcigtLScrcy5jbHMrJyknLHN0cm9rZTondmFyKC0tc3VyZmFjZSknLCdzdHJva2Utd2lkdGgnOjJ9KSk7CiAgfSk7CiAgY2F0cy5mb3JFYWNoKGZ1bmN0aW9uKGMsaSl7CiAgICBpZihuPjEwICYmIGklTWF0aC5jZWlsKG4vNykhPT0wICYmIGkhPT1uLTEpIHJldHVybjsKICAgIHN2Zy5hcHBlbmRDaGlsZChPYmplY3QuYXNzaWduKGVsKCd0ZXh0Jyx7eDpYKGkpLHk6SC04LCdjbGFzcyc6J2xiJywndGV4dC1hbmNob3InOidtaWRkbGUnfSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGV4dENvbnRlbnQ6Y30pKTsKICB9KTsKICBmb3IodmFyIGk9MDtpPG47aSsrKXsKICAgIChmdW5jdGlvbihpZHgpewogICAgICB2YXIgaGl0PWVsKCdyZWN0Jyx7eDpYKGlkeCktaXcvKG4tMSkvMix5OlBULHdpZHRoOml3LyhuLTEpfHwyMCxoZWlnaHQ6aWgsJ2NsYXNzJzonaGl0J30pOwogICAgICBoaXQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJyxmdW5jdGlvbihldil7CiAgICAgICAgdmFyIGJyPWJveC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgICB2YXIgcm93cz1zZXJpZXMubWFwKGZ1bmN0aW9uKHMpewogICAgICAgICAgcmV0dXJuICc8c3BhbiBzdHlsZT0iZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6OHB4O2hlaWdodDo4cHg7Ym9yZGVyLXJhZGl1czoycHg7JwogICAgICAgICAgICAgICArICdiYWNrZ3JvdW5kOnZhcigtLScrcy5jbHMrJyk7bWFyZ2luLXJpZ2h0OjZweCI+PC9zcGFuPicrcy5uYW1lKycgJwogICAgICAgICAgICAgICArIChzLmRhdGFbaWR4XT09bnVsbD8nLSc6Zm10KHMuZGF0YVtpZHhdKSk7CiAgICAgICAgfSkuam9pbignPGJyPicpOwogICAgICAgIHNob3dUaXAoYm94LGV2LmNsaWVudFgtYnIubGVmdCxldi5jbGllbnRZLWJyLnRvcCwnPGI+JytjYXRzW2lkeF0rJzwvYj48YnI+Jytyb3dzKTsKICAgICAgfSk7CiAgICAgIGhpdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJyxmdW5jdGlvbigpe2hpZGVUaXAoYm94KTt9KTsKICAgICAgc3ZnLmFwcGVuZENoaWxkKGhpdCk7CiAgICB9KShpKTsKICB9CiAgYm94LmFwcGVuZENoaWxkKHN2Zyk7CiAgYm94LmFwcGVuZENoaWxkKGxlZ2VuZChzZXJpZXMpKTsKfQoKZnVuY3Rpb24gbGVnZW5kKGl0ZW1zKXsKICB2YXIgZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgZC5jbGFzc05hbWU9J3RwaC1sZWdlbmQnOwogIGl0ZW1zLmZvckVhY2goZnVuY3Rpb24ocyl7CiAgICB2YXIgc3A9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogICAgc3AuaW5uZXJIVE1MPSc8aSBzdHlsZT0iYmFja2dyb3VuZDp2YXIoLS0nK3MuY2xzKycpIj48L2k+JytzLm5hbWU7CiAgICBkLmFwcGVuZENoaWxkKHNwKTsKICB9KTsKICByZXR1cm4gZDsKfQovKiAy7LCoIOuplOuJtDog7ZiE7J6sIO2DreydtCDtnLTrjIDtj7Ag7ZmU66m0IOuwlijsmKTrpbjsqr0p7JeQIOyeiOycvOuptCDqsIDroZzroZwg64u56rKoIOuztOydtOqyjCDtlZzri6Qo7Y6Y7J207KeA64qUIOyEuOuhnOuhnCDsm4Dsp4HsnbTsp4Ag7JWK64qU64ukKSAqLwooZnVuY3Rpb24oKXsKICB2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcudHBoLXN1Ym5hdiBhW2FyaWEtY3VycmVudF0nKTsgaWYoIWEpIHJldHVybjsKICB2YXIgdz1hLnBhcmVudE5vZGUsIGFyPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksIHdyPXcuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgaWYoYXIucmlnaHQ+d3IucmlnaHQtOHx8YXIubGVmdDx3ci5sZWZ0KSB3LnNjcm9sbExlZnQrPWFyLmxlZnQtd3IubGVmdC0ody5jbGllbnRXaWR0aC1hLm9mZnNldFdpZHRoKS8yOwp9KSgpOwo7CnZhciBSPUQuciwgc2hvd249MCwgUEFHRT0xMjAsIGN1cj1bXTsKdmFyIFRPREFZPShmdW5jdGlvbigpe3ZhciBkPW5ldyBEYXRlKCk7ZC5zZXRNaW51dGVzKGQuZ2V0TWludXRlcygpLWQuZ2V0VGltZXpvbmVPZmZzZXQoKSk7cmV0dXJuIGQudG9JU09TdHJpbmcoKS5zbGljZSgwLDEwKTt9KSgpOwp2YXIgTEFTVD1zdG9yZS5nZXQoJ3RwaC1zZWVuLW5oJyk7CmZ1bmN0aW9uIGVvayhuKXt2YXIgZT1NYXRoLmZsb29yKG4vMTAwMDApLG09biUxMDAwMDtyZXR1cm4gKChlP2UrJ+yWtSAnOicnKSsobT9tLnRvTG9jYWxlU3RyaW5nKCdrby1LUicpKyfrp4wnOicnKSl8fCcwJzt9CmZ1bmN0aW9uIGlzTmV3KHgpeyByZXR1cm4gTEFTVCAmJiB4WzEyXSAmJiB4WzEyXT5MQVNUOyB9CmZ1bmN0aW9uIHJvdyh4KXsKICByZXR1cm4gJzxhIGNsYXNzPSJ0cGgtcm93IiBocmVmPSInK3hbMTFdKyciPjxkaXYgY2xhc3M9Im5tIj48Yj4nK3hbMF0KICAgKycgPHNtYWxsIHN0eWxlPSJjb2xvcjp2YXIoLS1mYWludCk7Zm9udC13ZWlnaHQ6NDAwIj4nK3hbMV0rJ+OOoSgnK01hdGgucm91bmQoeFsxXS8zLjMwNTc4NSkrJ+2PiSkgwrcgJyt4WzJdKyfsuLU8L3NtYWxsPicKICAgKyhpc05ldyh4KT8nIDxzcGFuIGNsYXNzPSJ0cGgtdGFnIHRwaC1uZXciPk5FVzwvc3Bhbj4nOicnKSsnPC9iPicKICAgKyc8c3Bhbj4nK3hbM10rJyAnK3hbNF0rJyDCtyDqs4Tslb0gJyt4WzVdKyc8L3NwYW4+PHNwYW4+7KeB7KCEIOy1nOqzoCAnK2Vvayh4WzddKSsnICgnK3hbOF0rJyk8L3NwYW4+PC9kaXY+JwogICArJzxkaXYgY2xhc3M9InByIj4nK2Vvayh4WzZdKSsnPGVtIGNsYXNzPSJ1cCI+KycreFs5XSsnJTwvZW0+PC9kaXY+PC9hPic7Cn0KZnVuY3Rpb24gZHJhdyhtb3JlKXsKICBpZighbW9yZSl7IHNob3duPTA7ICQoJ25obGlzdCcpLmlubmVySFRNTD0nJzsgfQogICQoJ25obGlzdCcpLmluc2VydEFkamFjZW50SFRNTCgnYmVmb3JlZW5kJywgY3VyLnNsaWNlKHNob3duLCBzaG93bitQQUdFKS5tYXAocm93KS5qb2luKCcnKSk7CiAgc2hvd24rPVBBR0U7CiAgJCgnbmhtb3JlJykuaGlkZGVuID0gc2hvd24+PWN1ci5sZW5ndGg7Cn0KZnVuY3Rpb24gcnVuKCl7CiAgdmFyIHNkPSQoJ25oc2QnKS52YWx1ZSwgc289JCgnbmhzbycpLnZhbHVlOwogIGN1cj1SLmZpbHRlcihmdW5jdGlvbih4KXsgcmV0dXJuICFzZCB8fCB4WzEwXT09PXNkOyB9KTsKICB2YXIgayA9IHNvPT09J3VwJz8gOSA6IHNvPT09J3AnPyA2IDogLTE7CiAgaWYoaz49MCkgY3VyLnNvcnQoZnVuY3Rpb24oYSxiKXsgcmV0dXJuIGJba10tYVtrXTsgfSk7CiAgJCgnbmhjbnQnKS50ZXh0Q29udGVudD1jdXIubGVuZ3RoLnRvTG9jYWxlU3RyaW5nKCdrby1LUicpKyfqsbQgwrcg6rOE7JW97J28IOq4sOykgCc7CiAgZHJhdyhmYWxzZSk7CiAgdHJ5eyBzdG9yZS5zZXQoJ3RwaC1maWx0LW5oJywgSlNPTi5zdHJpbmdpZnkoe25oc2Q6c2QsIG5oc286c299KSk7IH1jYXRjaChlKXt9Cn0KdHJ5eyB2YXIgZj1KU09OLnBhcnNlKHN0b3JlLmdldCgndHBoLWZpbHQtbmgnKXx8J3t9Jyk7CiAgWyduaHNkJywnbmhzbyddLmZvckVhY2goZnVuY3Rpb24oaSl7IGlmKGZbaV0hPW51bGwgJiYgJChpKSkgJChpKS52YWx1ZT1mW2ldOyB9KTsgfWNhdGNoKGUpe30KWyduaHNkJywnbmhzbyddLmZvckVhY2goZnVuY3Rpb24oaSl7ICQoaSkuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJyxydW4pOyB9KTsKJCgnbmhtb3JlJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7IGRyYXcodHJ1ZSk7IH0pOwpydW4oKTsKaWYoTEFTVCl7CiAgdmFyIG49Ui5maWx0ZXIoaXNOZXcpLmxlbmd0aDsKICAkKCduaG5ldycpLmlubmVySFRNTCA9IG4gPyAn7KeA64KcIOuwqeusuCgnK0xBU1QrJykg7J207ZuEIOyDiOuhnCDsi6Dqs6DrkJwg7Iug6rOg6rCAIDxiPicrbisn6rG0PC9iPiDigJQgTkVXIO2RnOyLnCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAn7KeA64KcIOuwqeusuCgnK0xBU1QrJykg7J207ZuEIOyDiOuhnCDsi6Dqs6DrkJwg7Iug6rOg6rCA64qUIOyXhuyKteuLiOuLpCc7Cn0Kc3RvcmUuc2V0KCd0cGgtc2Vlbi1uaCcsIFRPREFZKTsKaW5pdFRoZW1lKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy50cGgtcGFnZScpKTsK