자신의 분야에서 독보적인 업적을 세우고 최고의 위치에 올랐음에도 저런 순수한 마음과 아이의 눈망울을 가질 있다는게 존경스럽다

 

"무엇이든 단순하게 설명할 없다면 진정으로 이해하지 못했다는 "  맞는것 같다

 

🦊DATA STRUCTURE & DATA FLOW

 

  1. CoreDATA 와 SQLITE3 - Primitive type, Array, MEMORY control, LinkedList, Stack, Queue, Hash, RDB & NoSQL, File I/O, …
  2. Local DATA & Server DATA - Synchronization, Callback, Closer, Point, Polymorphism, Scheduler’s, Message Queue 
  3. REACT implementation by Design 

 

 

 

🐰Related Courses

  1. Memory Control - Firmware, RDB & NoSQL - Database

 

 

 

 

가용한 모든 데이터의 효율적인 수집 및 관리

고품질의 데이터의 용이한 셀프 분석

머신러닝 모델의 개발 / 테스트 / 배포의 효율적 관리

신뢰성과 투명성을 갖춘 Al의 개발 / 운영 / 확산

보이스봇

챗봇

VOC 분석

상당 유형 분류

자동 문의 답변

상담원 지원 (답변 추천)

없음

 

 

 

2

 

 

 

import UIKit

 

protocol somebodyDelegate : class {

    static func hardwork()

}

 

class ViewController: UIViewController {

    

    override func viewDidLoad() {

        

        someOne.hardwork()

        

    }

}

 

 

class someOne : somebodyDelegate {

     static func hardwork() {

        print("hello world")

        print("teaching basics")

        print("provide a lot of food")

        print("et cetra...")

    }

}

 

 

 

 

 

 

import UIKit

 

protocol somebodyDelegate : class {

    func hardwork()

}

 

class ViewController: UIViewController {

    

    override func viewDidLoad() {

        someOne().hardwork()

    }

}

 

 

class someOne : somebodyDelegate {

      func hardwork() {

        print("hello world")

        print("teaching basics")

        print("provide a lot of food")

        print("et cetra...")

    }

}

 

 

 

 

 

import UIKit

 

protocol somebodyDelegate : class {

    func hardwork(s:String)

}

 

class ViewController: UIViewController {

    override func viewDidLoad() {

        someOne().hardwork(s: "hi world")

    }

}

 

 

class someOne : somebodyDelegate {

    func hardwork(s:String) {

        print(s)

        print("teaching basics")

        print("provide a lot of food")

        print("et cetra...")

    }

}

 

 

 

 

 

 

import UIKit

 

protocol somebodyDelegate : class {

    func hardwork(s:String)

    func buildS() -> String

}

 

protocol buildStringDelegate {

    func buildS() -> String

}

 

class ViewController: UIViewController {

    override func viewDidLoad() {

        someOne().hardwork(s: "hi world")

        print(someOne().buildS())

    }

}

 

 

class someOne : somebodyDelegate, buildStringDelegate{

    

    func buildS() -> String {

        return "hi world"

    }

    

    func hardwork(s:String) {

        print(s)

        print("teaching basics")

        print("provide a lot of food")

        print("et cetra...")

    }

 

}

 

 

 

 

 

someOne().hardwork(s: "hi world")

        print(someOne().buildS())

 

 

 

 

let so = someOne()

        so.hardwork(s: "hi world")

        print(so.buildS())

Cannot assign to property: 'buildS' is a method

 

 

 

 

 

 

 

import UIKit

 

protocol buildStringDelegate {

    func buildS() -> String

}

 

class ViewController: UIViewController, buildStringDelegate {

    

    func buildS() -> String {

        return "my world"

    }

 

    override func viewDidLoad() {

        let so = someOne()

        so.d = self

        so.hardwork(s: "hi world")

    }

}

 

class someOne {

    

    var d : buildStringDelegate?

    

    func hardwork(s:String) {

        print(s)

        print("teaching basics")

        print("provide a lot of food")

        print("et cetra...")

        print(d!.buildS())

    }

}

 

Google Analytics Terms of Service

These Google Analytics Terms of Service (this "Agreement") are entered into by Google LLC ("Google") and the entity executing this Agreement ("You"). This Agreement governs Your use of the standard Google Analytics (the "Service"). BY CLICKING THE "I ACCEPT" BUTTON, COMPLETING THE REGISTRATION PROCESS, OR USING THE SERVICE, YOU ACKNOWLEDGE THAT YOU HAVE REVIEWED AND ACCEPT THIS AGREEMENT AND ARE AUTHORIZED TO ACT ON BEHALF OF, AND BIND TO THIS AGREEMENT, THE OWNER OF THIS ACCOUNT. In consideration of the foregoing, the parties agree as follows:

1. Definitions.

"Account" refers to the billing account for the Service. All Profiles linked to a single Property will have their Hits aggregated before determining the charge for the Service for that Property.

"Confidential Information" includes any proprietary data and any other information disclosed by one party to the other in writing and marked "confidential" or disclosed orally and, within five business days, reduced to writing and marked "confidential". However, Confidential Information will not include any information that is or becomes known to the general public, which is already in the receiving party's possession prior to disclosure by a party or which is independently developed by the receiving party without the use of Confidential Information.

"Customer Data" or "Google Analytics Data" means the data you collect, process or store using the Service concerning the characteristics and activities of Visitors.

"Documentation" means any accompanying documentation made available to You by Google for use with the Processing Software, including any documentation available online.

"GATC" means the Google Analytics Tracking Code, which is installed on a Property for the purpose of collecting Customer Data, together with any fixes, updates and upgrades provided to You.

"Hit" means the base unit that the Google Analytics system processes. A Hit may be a call to the Google Analytics system by various libraries, including, Javascript (e.g., analytics.js), Silverlight, Flash, and Mobile. A Hit may currently be a page view, a transaction, item, or event, social interaction, or user timing. Hits may also be delivered to the Google Analytics system without using one of the various libraries by other Google Analytics-supported protocols and mechanisms the Service makes available to You.

"Platform Home" means the user interface through which You can access certain Google Marketing Platform-level functionality.

"Processing Software" means the Google Analytics server-side software and any upgrades, which analyzes the Customer Data and generates the Reports.

"Profile" means the collection of settings that together determine the information to be included in, or excluded from, a particular Report. For example, a Profile could be established to view a small portion of a web site as a unique Report. There can be multiple Profiles established under a single Property.

"Property" means any web page, app, or other property under Your control that sends data to Google Analytics. Each Property includes a default Profile that measures all pages within the Property.

"Privacy Policy" means the privacy policy on a Property.

"Report" means the resulting analysis shown at www.google.com/analytics/ for a Profile.

"Servers" means the servers controlled by Google (or its wholly owned subsidiaries) on which the Processing Software and Customer Data are stored.

"Software" means the GATC and the Processing Software.

"Third Party" means any third party (i) to which You provide access to Your Account or (ii) for which You use the Service to collect information on the third party's behalf.

"Visitors" means visitors to Your Properties.

The words "include" and "including" mean "including but not limited to."

2. Fees and Service.

Subject to Section 15, the Service is provided without charge to You for up to 10 million Hits per month per account. Google may change its fees and payment policies for the Service from time to time including the addition of costs for geographic data, the importing of cost data from search engines, or other fees charged to Google or its wholly-owned subsidiaries by third party vendors for the inclusion of data in the Service reports. The changes to the fees or payment policies are effective upon Your acceptance of those changes which will be posted at www.google.com/analytics/. Unless otherwise stated, all fees are quoted in U.S. Dollars. Any outstanding balance becomes immediately due and payable upon termination of this Agreement and any collection expenses (including attorneys' fees) incurred by Google will be included in the amount owed, and may be charged to the credit card or other billing mechanism associated with Your AdWords account.

3. Member Account, Password, and Security.

To register for the Service, You must complete the registration process by providing Google with current, complete and accurate information as prompted by the registration form, including Your e-mail address (username) and password. You will protect Your passwords and take full responsibility for Your own, and third party, use of Your accounts. You are solely responsible for any and all activities that occur under Your Account. You will notify Google immediately upon learning of any unauthorized use of Your Account or any other breach of security. Google's (or its wholly-owned subsidiaries') support staff may, from time to time, log in to the Service under Your customer password in order to maintain or improve service, including to provide You assistance with technical or billing issues.

4. Nonexclusive License.

Subject to the terms and conditions of this Agreement, (a) Google grants You a limited, revocable, non-exclusive, non-sublicensable license to install, copy and use the GATC solely as necessary for You to use the Service on Your Properties or Third Party's Properties; and (b) You may remotely access, view and download Your Reports stored atwww.google.com/analytics/. You will not (and You will not allow any third party to) (i) copy, modify, adapt, translate or otherwise create derivative works of the Software or the Documentation; (ii) reverse engineer, decompile, disassemble or otherwise attempt to discover the source code of the Software, except as expressly permitted by the law in effect in the jurisdiction in which You are located; (iii) rent, lease, sell, assign or otherwise transfer rights in or to the Software, the Documentation or the Service; (iv) remove any proprietary notices or labels on the Software or placed by the Service; (v) use, post, transmit or introduce any device, software or routine which interferes or attempts to interfere with the operation of the Service or the Software; or (vi) use data labeled as belonging to a third party in the Service for purposes other than generating, viewing, and downloading Reports. You will comply with all applicable laws and regulations in Your use of and access to the Documentation, Software, Service and Reports.

5. Confidentiality.

Neither party will use or disclose the other party's Confidential Information without the other's prior written consent except for the purpose of performing its obligations under this Agreement or if required by law, regulation or court order; in which case, the party being compelled to disclose Confidential Information will give the other party as much notice as is reasonably practicable prior to disclosing the Confidential Information.

6. Information Rights and Publicity.

Google and its wholly owned subsidiaries may retain and use, subject to the terms of its privacy policy (located at https://www.google.com/policies/privacy/), information collected in Your use of the Service. Google will not share Your Customer Data or any Third Party's Customer Data with any third parties unless Google (i) has Your consent for any Customer Data or any Third Party's consent for the Third Party's Customer Data; (ii) concludes that it is required by law or has a good faith belief that access, preservation or disclosure of Customer Data is reasonably necessary to protect the rights, property or safety of Google, its users or the public; or (iii) provides Customer Data in certain limited circumstances to third parties to carry out tasks on Google's behalf (e.g., billing or data storage) with strict restrictions that prevent the data from being used or shared except as directed by Google. When this is done, it is subject to agreements that oblige those parties to process Customer Data only on Google's instructions and in compliance with this Agreement and appropriate confidentiality and security measures.

7. Privacy.

You will not and will not assist or permit any third party to, pass information to Google that Google could use or recognize as personally identifiable information. You will have and abide by an appropriate Privacy Policy and will comply with all applicable laws, policies, and regulations relating to the collection of information from Visitors. You must post a Privacy Policy and that Privacy Policy must provide notice of Your use of cookies that are used to collect data. You must disclose the use of Google Analytics, and how it collects and processes data. This can be done by displaying a prominent link to the site "How Google uses data when you use our partners' sites or apps", (located at www.google.com/policies/privacy/partners/, or any other URL Google may provide from time to time). You will use commercially reasonable efforts to ensure that a Visitor is provided with clear and comprehensive information about, and consents to, the storing and accessing of cookies or other information on the Visitor’s device where such activity occurs in connection with the Service and where providing such information and obtaining such consent is required by law.

You must not circumvent any privacy features (e.g., an opt-out) that are part of the Service. You will comply with all applicable Google Analytics policies located at www.google.com/analytics/policies/ (or such other URL as Google may provide) as modified from time to time (the "Google Analytics Policies").

You may participate in an integrated version of Google Analytics and certain Google advertising services ("Google Analytics Advertising Features"). If You use Google Analytics Advertising Features, You will adhere to the Google Analytics Advertising Features policy (available at support.google.com/analytics/bin/answer.py?hl=en&topic=2611283&answer=2700409) Your access to and use of any Google advertising service is subject to the applicable terms between You and Google regarding that service.

If You use the Platform Home, Your use of the Platform Home is subject to the Platform Home Additional Terms (or as subsequently re-named) available at https://support.google.com/marketingplatform/answer/9047313 (or such other URL as Google may provide) as modified from time to time (the "Platform Home Terms").

8. Indemnification.

To the extent permitted by applicable law, You will indemnify, hold harmless and defend Google and its wholly owned subsidiaries, at Your expense, from any and all third-party claims, actions, proceedings, and suits brought against Google or any of its officers, directors, employees, agents or affiliates, and all related liabilities, damages, settlements, penalties, fines, costs or expenses (including, reasonable attorneys' fees and other litigation expenses) incurred by Google or any of its officers, directors, employees, agents or affiliates, arising out of or relating to (i) Your breach of any term or condition of this Agreement, (ii) Your use of the Service, (iii) Your violations of applicable laws, rules or regulations in connection with the Service, (iv) any representations and warranties made by You concerning any aspect of the Service, the Software or Reports to any Third Party; (v) any claims made by or on behalf of any Third Party pertaining directly or indirectly to Your use of the Service, the Software or Reports; (vi) violations of Your obligations of privacy to any Third Party; and (vii) any claims with respect to acts or omissions of any Third Party in connection with the Service, the Software or Reports. Google will provide You with written notice of any claim, suit or action from which You must indemnify Google. You will cooperate as fully as reasonably required in the defense of any claim. Google reserves the right, at its own expense, to assume the exclusive defense and control of any matter subject to indemnification by You.

9. Third Parties.

If You use the Service on behalf of the Third Party or a Third Party otherwise uses the Service through Your Account, whether or not You are authorized by Google to do so, then You represent and warrant that (a) You are authorized to act on behalf of, and bind to this Agreement, the Third Party to all obligations that You have under this Agreement, (b) Google may share with the Third Party any Customer Data that is specific to the Third Party's Properties, and (c) You will not disclose Third Party's Customer Data to any other party without the Third Party's consent.

10. DISCLAIMER OF WARRANTIES.

TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, EXCEPT AS EXPRESSLY PROVIDED FOR IN THIS AGREEMENT, GOOGLE MAKES NO OTHER WARRANTY OF ANY KIND, WHETHER EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING WITHOUT LIMITATION WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR USE AND NONINFRINGEMENT.

11. LIMITATION OF LIABILITY.

TO THE EXTENT PERMITTED BY APPLICABLE LAW, GOOGLE WILL NOT BE LIABLE FOR YOUR LOST REVENUES OR INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE DAMAGES, EVEN IF GOOGLE OR ITS SUBSIDIARIES AND AFFILIATES HAVE BEEN ADVISED OF, KNEW OR SHOULD HAVE KNOWN THAT SUCH DAMAGES WERE POSSIBLE AND EVEN IF DIRECT DAMAGES DO NOT SATISFY A REMEDY. GOOGLE'S (AND ITS WHOLLY OWNED SUBSIDIARIES' TOTAL CUMULATIVE LIABILITY TO YOU OR ANY OTHER PARTY FOR ANY LOSS OR DAMAGES RESULTING FROM CLAIMS, DEMANDS, OR ACTIONS ARISING OUT OF OR RELATING TO THIS AGREEMENT WILL NOT EXCEED $500 (USD).

12. Proprietary Rights Notice.

The Service, which includes the Software and all Intellectual Property Rights therein are, and will remain, the property of Google (and its wholly owned subsidiaries). All rights in and to the Software not expressly granted to You in this Agreement are reserved and retained by Google and its licensors without restriction, including, Google's (and its wholly owned subsidiaries') right to sole ownership of the Software and Documentation. Without limiting the generality of the foregoing, You agree not to (and not to allow any third party to): (a) sublicense, distribute, or use the Service or Software outside of the scope of the license granted in this Agreement; (b) copy, modify, adapt, translate, prepare derivative works from, reverse engineer, disassemble, or decompile the Software or otherwise attempt to discover any source code or trade secrets related to the Service; (c) rent, lease, sell, assign or otherwise transfer rights in or to the Software or the Service; (d) use, post, transmit or introduce any device, software or routine which interferes or attempts to interfere with the operation of the Service or the Software; (e) use the trademarks, trade names, service marks, logos, domain names and other distinctive brand features or any copyright or other proprietary rights associated with the Service for any purpose without the express written consent of Google; (f) register, attempt to register, or assist anyone else to register any trademark, trade name, serve marks, logos, domain names and other distinctive brand features, copyright or other proprietary rights associated with Google (or its wholly owned subsidiaries) other than in the name of Google (or its wholly owned subsidiaries, as the case may be); (g) remove, obscure, or alter any notice of copyright, trademark, or other proprietary right appearing in or on any item included with the Service; or (h) seek, in a proceeding filed during the term of this Agreement or for one year after such term, an injunction of any portion of the Service based on patent infringement.

13. U.S. Government Rights.

If the use of the Service is being acquired by or on behalf of the U.S. Government or by a U.S. Government prime contractor or subcontractor (at any tier), in accordance with 48 C.F.R. 227.7202-4 (for Department of Defense (DOD) acquisitions) and 48 C.F.R. 2.101 and 12.212 (for non-DOD acquisitions), the Government's rights in the Software, including its rights to use, modify, reproduce, release, perform, display or disclose the Software or Documentation, will be subject in all respects to the commercial license rights and restrictions provided in this Agreement.

14. Term and Termination.

Either party may terminate this Agreement at any time with notice. Upon any termination of this Agreement, Google will stop providing, and You will stop accessing the Service; and You will delete all copies of the GATC from all Properties and certify thereto in writing to Google within 3 business days of such termination. In the event of any termination (a) You will not be entitled to any refunds of any usage fees or any other fees, and (b) any outstanding balance for Service rendered through the date of termination will be immediately due and payable in full and (c) all of Your historical Report data will no longer be available to You.

15. Modifications to Terms of Service and Other Policies.

Google may modify these terms or any additional terms that apply to the Service to, for example, reflect changes to the law or changes to the Service. You should look at the terms regularly. Google will post notice of modifications to these terms at www.google.com/analytics/, the Google Analytics Policies at www.google.com/analytics/policies/, or other policies referenced in these terms at the applicable URL for such policies. Changes will not apply retroactively and will become effective no sooner than 14 days after they are posted. If You do not agree to the modified terms for the Service, You should discontinue Your use Google Analytics. No amendment to or modification of this Agreement will be binding unless (i) in writing and signed by a duly authorized representative of Google, (ii) You accept updated terms online, or (iii) You continue to use the Service after Google has posted updates to the Agreement or to any policy governing the Service.

16. Miscellaneous, Applicable Law and Venue.

Google will be excused from performance in this Agreement to the extent that performance is prevented, delayed or obstructed by causes beyond its reasonable control. This Agreement (including any amendment agreed upon by the parties in writing) represents the complete agreement between You and Google concerning its subject matter, and supersedes all prior agreements and representations between the parties. If any provision of this Agreement is held to be unenforceable for any reason, such provision will be reformed to the extent necessary to make it enforceable to the maximum extent permissible so as to effect the intent of the parties, and the remainder of this Agreement will continue in full force and effect. This Agreement will be governed by and construed under the laws of the state of California without reference to its conflict of law principles. In the event of any conflicts between foreign law, rules, and regulations, and California law, rules, and regulations, California law, rules and regulations will prevail and govern. Each party agrees to submit to the exclusive and personal jurisdiction of the courts located in Santa Clara County, California. The United Nations Convention on Contracts for the International Sale of Goods and the Uniform Computer Information Transactions Act do not apply to this Agreement. The Software is controlled by U.S. Export Regulations, and it may be not be exported to or used by embargoed countries or individuals. Any notices to Google must be sent to: Google LLC, 1600 Amphitheatre Parkway, Mountain View, CA 94043, USA, with a copy to Legal Department, via first class or air mail or overnight courier, and are deemed given upon receipt. A waiver of any default is not a waiver of any subsequent default. You may not assign or otherwise transfer any of Your rights in this Agreement without Google's prior written consent, and any such attempt is void. The relationship between Google and You is not one of a legal partnership relationship, but is one of independent contractors. This Agreement will be binding upon and inure to the benefit of the respective successors and assigns of the parties hereto. The following sections of this Agreement will survive any termination thereof: 1, 4, 5, 6 (except the last two sentences), 7, 8, 9, 10, 11, 12, 14, and 16.

Last Updated July 24, 2018

Follow us on:    

Learning & Support

Help Center

User Forum

Solutions Gallery

Analytics Academy

Partner Gallery

Developers

Analytics Developer Site

Demos & Tools

Help & Communities

Technology Partner Program

Related Products

Google Ads

DoubleClick

AdSense

More Solutions from Google

Business Solutions

G Suite

Google Cloud

'Blog History' 카테고리의 다른 글

199 - 구글 블로그 폐쇄예정  (0) 2020.04.26
198  (0) 2020.04.26
196  (0) 2020.04.26
195 애플도 이렇게 자세하게 쓰는데  (0) 2020.04.24
194  (0) 2020.04.23

제목없음

[Web발신]

[YES24 북클럽] YES24 북클럽 24 이용권이 발급되었습니다. 이용권을 등록하시면, 이용기간이 24 추가됩니다.

이용권은 YES24 북클럽 가입 등록 가능하오니, 북클럽에 먼저 가입해주세요.

 

( YES24 북클럽 X FLO 99요금제 가입 , 등록 불가)

 

▶ YES24 북클럽 가입하기 : https://bit.ly/2Z12AcF

이용권 번호 : F24G20822J801W7M283G

이용권 등록기간 : 2020.05.22 23:59:59까지

이용권 등록하기 : https://bit.ly/2U9OQwP

 

 

삼성에서는 다행히 미주 개발팀에 있으며 6년 간 영어를 써서 서바이벌 영어라도 전 세계 개발자들과 커뮤니케이션에 문제 없는게 삼성 나와서도 많은 도움이 되었었다. 그러나 최근 영어를 잘 못하는 개발 그룹을 만나면서 작은 고민이 생겼다.

 

 사실, 밥 먹으러 가자고 하거나 let's grab a bite나 ご飯食べに行こう。나 뜻만 통하면 된다고 역설하여 모든 프로그래밍 언어가 통한다고 말은 하였었다. 폴리글랏 프로그래밍은 그냥 윗 단 사람들이 관리 잘하려고 만든 개념이고, 내가 말하는 것은 CPU 단에 일하는 사람 눈에서 보면 정말 다 똑같이 ASM&C로 짜여진 코드 덩어리에 불과하니 그렇게 역설했다.

 다만, 아쉬운 것은 그렇게 불을 한 번 붙여놓고 몇 년을 지켜보고 나니 개발자가 그 사실을 이용하는 것 보다는 개발을 잘 못해서 어쩔 수 없이 관리자로 간 사람들이 그 개념을 이용해 먹고 있는 것을 확인했다.

 

그래서 

이미 답은 정해져 있어도 변하는데에는 많은 시간이 걸린다. 그러나 코로나19의 여파로 재택근무, 원격교육, 생산지와 고객을 직접 잇는 택배 시스템이 순식간에 급부상 하고 있다. 굳이 영어를 하지 않더라도 한국 사람들이 빨리 합리적으로 내려진 답을 실행해야 하는 시기가 온 것이다.

 


개발자라면, 영어를 잘하라고 말하고 싶다. 영어를 잘해서 영어로 대화하고 지내라는 뜻은 아니다. 영어는 단순한 언어를 넘어 생각의 방식이 논리적으로 변한다. 영어권 개발자를 만나보면 생각이 논리적이고 합리적인 경우가 많았다. 보통 프로젝트가 한창 진행 중일 때 소규모의 경우 클라이언트와 개발자, 디자이너 등 굳이 프로젝트를 모아주는 사람만 있어도 프로젝트는 잘 돌아간다. 즉, PM 은 필요하지만 PL은 한 달 정도 자리를 비워도 혹은, 아예 돌아오지 않아도 되는 자리이다. 그 PM 도 클라인트와 대화가 잘되는 개발자/디자이너라고 하면 PM 도 필요 없다. 이것은 앱이 활성화되고 앱으로 수십/수백억 이상을 버는 사람, 혹은 소규모 집단이 생기면서 이미 검증된 사실이다.  우리나라 주식 시장에서도 외국인을 따로 생각하는 이유가 그들이 자본주의 개념을 만들었고 그들이 우위에 있을 수밖에 없는 제도 장치들로 클라이언트의 역할을 하는 경우가 많다

 

영어만 잘한다고 끝이 아니다. 실제 겪었던 일이다. 외국에 오래 살고 학교도 해외에서 나와 fluent 하게 대화를 할 능력이 되는 PM/PL이 있었다. 실제 외국인 클라이언트와 대화를 해 보면 어느 정도는 괜찮아진다. 그러나 개발을 아는 CEO가 온 경우 영어를 잘해도 디자인/개발 용어를 모르는 PM/PL이 끼어 있으면, 해당 CEO와 개발자/디자이너와 직접 소통하게 된다. 그 편이 훨씬 합리적이기 때문이다. 

 

수백억 이상의 자산가를 많이 아는 국내 중개인의 경우 누굴 만나던지 절대 자산가와 직접 연결시키지 않는 경우를 봤었는데 예전에는 이런 비즈니스가 통했을지 몰라도 돈과 비례해 똑똑해진 요즘 부자들은 유튜브에서 쉽게 자신의 요구를 들어줄 사람을 찾고 SNS로 소통할 수 있는 사회가 되어 버렸다. 한국의 기성 문화로는 다단계를 거치는 것이 맞고 중간에 여러 로비를 해야겠으나, 논리적으로 보면 전혀 맞지 않다. 기업에서도 이런 중개인 행태를 접한다. 재미있는 것은 그런 정치로 살아남을 만한 시장은 이제 없다는 것이다. 예전에는 피자를 잘 나누어서 자기 몫을 챙기는 정치가 유행이었다면 이제는 아예 그 피자가 계속 있을지 고민해야 한다는 것이다.

 

최근 동형 암호 연구 또는, 딥러닝 관련해서 각기 다른 지인들 카테고리가 한양대에 귀결되어 한양대에 갈 일이 몇 번 있었는데 한양대 내부에서 발행되는 학보를 보고 깜짝 놀랐다. 전부 영어로 되어 있었던 것이다. 이미 6년 전 수도권 학생들이긴 했으나, 대부분의 대학생/대학원생들이 원서로 공부하는데 어려움이 없어하는 것을 보고 자동 번역 프로그램 기다리는 것보다 더 빨리 학생 수준이 성장하는구나 생각했다. 학창 시절 원강을 하시는 분도 계셨지만 그때는 지금만큼 학생 평균이 영어를 잘한다는 느낌은 없었다. 5년 전 영어는 잘하고 프로그래밍은 더 못했던(혹은 아예 몰랐던) 제자들의 안부를 좀 물어보니 영어를 잘해서 말해 준대로 원서로 자료 구조를 공부했었던 학생들이 모두 이름있는 대기업에 있는 것과 대조되게 프로그래밍만 강조하던 친구들의 회사 네임베류의 평균이 상대적으로 낮은 것을 보고 여전히 한국의 교육은 문제가 있구나 라고 생각한다. 뭐, 굳이 이것 뿐 아니라 한국 교육 관련 컨텐츠의 최대한 모니터링 하려고 하며 모든 교육을 학교로 돌려 보내려고 하는 나로서는... 결국 학교로 모든 것을 못 돌려 보내겠구나 하는 생각이다. 이는 한국 교육 시스템의 구조적 한계와 또 그 이유를 발견하고 결국 인정했다. 

 

그 한계는 다음과 같다. 흔히 공부원을 철밥통이라 불렀다. 철밥통에서 오는 안정감으로 학교 교육이 안정되어야 하는데, 그 철밥통과 IT 교육을 접목시키려 하다보니 외부 IT 인을 교사로 뽑기 보다는 일반 교사에 IT 교육을 시킨다. 그러니 빠르게 변화하는 IT 분야에 뒤쳐질 수 밖에 없다. 그러나 뽑아도 문제인게 내가 만난 대부분의 사람들 중 나같이 대찬 사람들은 시스템을 파괴하며 진보 하는 경향이 강하고 페이도 쌔다. 공무원 페이로 생활할 수 있는 수준이 아니다.(당연히 늙으면 공무원 연금이 짱이지만) 그런 성향이 아니면 시스템이 주는 따뜻한 보금자리에 고착화 되어 버리고 말더라. 즉, 외부인을 쓰더라도 그 당시 경쟁력 있는 외부인을 쓰고 다음에 또 봤을 때 다른 외부인을 쓰는 것이 학생들에게도 보다 나은 경쟁력을 줄 수 있다는 것이다. 어찌보면 시스템의 한계일 수도 있지만 학교는 오랜 기간 다져오고 검증되어진 기본 교육을 지킬 의무가 있기 때문에 이 한계는 차라리 다수의 학생을 보호하는 장치를 한다는 생각이다.

 

보스턴에서 아직도 오고 있는 FSF의 메일이 날 여전히 오픈 소스 진영에 남으라고 하고 있지만. 사실 linux foundation 도 변질 되었지만 여전히 좋은 역할을 하고 있는 점. 마소가 오픈소스 진영을 열심히 먹어가고 있지만 이젠, 그 오픈소스 진영이 워낙 커서 다 먹기도 힘들고 마소의 돈이 돌아 품질이 좋아지는 점 등을 볼 때.

 

FSF 의 모임에서 꿈꾸는... 그냥 지나가다가 기술 이야기로 밤을 샐 수 있고 억압되지 않은 자유를 느끼는 문화는 차라리 고액의 돈을 버는 사람들과 기술 이야기를 할 때 더욱 그런 것 같다(내가 원하던 모습인 것 같다)는 느낌이 든다. 예전에는 자국에서 영어 못하면 놀리는 영어 광고를 비판하고 영어 안해도 된다고 역설하다가 태세 전환 하였다. 오픈소스 부르짖다가 또 태세 전환 하였다. 물론, 옳은 쪽이다. 요즘 어린 세대에 맞춤형 전환이라고 하겠다.

 

그래도 마음 으로는 말이 틀렸다고 말해 사람을 찾고 있다. 40 지금도 새벽까지 개발하고 있는 나보다  개발의 재미를 아는 사람을 만나기는 힘든 일임을 실감하고 있다. 워크홀릭을 바라지는 않는다삼성전자에서 인연이 되어 지금도 애플과 페이스북에서 일하고 있는 70 지인(중국계 미국인)들을 11시까지 시키던 삼성전자의 임원이 결국 눈이 보인다는 소리를 듣고 나서야 엔지니어를 집으로 보내던 시절이 있었는데, 뒤로 따로 한잔 기회가 있어 물었을 실은 미국의 의료보험이 너무 비싸서 계속 일한다는 말을 했다. 분은  연륜과 실력을 알아봐 있는 곳으로 가서  년에 이상 유럽 여행도 하고 있다는 말을 들으니 기업이 훌륭한 엔지니어를 만들어 내는 중요한 역할도 한다는 생각이다.

'Blog History' 카테고리의 다른 글

198  (0) 2020.04.26
197  (0) 2020.04.26
195 애플도 이렇게 자세하게 쓰는데  (0) 2020.04.24
194  (0) 2020.04.23
191-여호와의 증인에게 보여주고 싶은 영화  (0) 2020.04.20

iPadOS는 iPad 고유의 경험을 차별화하기 위해 새로운 이름으로 선보이는 운영 체제입니다. iPadOS는 iOS와 같은 기반으로 구축되며, iPad의 큰 디스플레이와 다양한 능력에 특화된 강력하고 새로운 성능 및 직관적인 기능을 추가합니다. 이 업데이트는 다수의 앱으로 동시에 작업하는 새로운 방법을 제공하고, 새로 디자인된 홈 화면에서 더 많은 정보를 한눈에 볼 수 있으며, 반응성이 향상된 Apple Pencil로 무엇이든 바로 마크업을 추가할 수 있는 새로운 방법을 제공하고, 커서 지원을 추가합니다. 또한, 드라마틱한 다크 모드를 새로 탑재하고, 사용자의 개인 정보를 보호하면서 웹 사이트에 로그인하는 간편한 방법을 제공하고, 사진을 보고 편집하는 새로운 도구를 추가합니다. iPadOS는 시스템 전반에 걸친 최적화로 빠른 속도와 반응을 경험할 수 있습니다.

홈 화면

  • 정보를 한눈에 볼 수 있는 ‘오늘 위젯’을 홈 화면에 탑재함
  • 각각의 페이지에 더 많은 앱을 표시할 수 있는 새로운 레이아웃을 적용함

멀티태스킹

  • 다수의 앱을 지원하는 Slide Over 기능으로 iPadOS의 어디에서든 즐겨찾는 앱에 접근하고 앱 간에 빠르게 전환함
  • Split View 기능을 사용하여 하나의 앱을 여러 개의 윈도우로 나눠서 두 개의 문서, 메모 또는 이메일을 나란히 배열하여 작업함
  • 동일한 앱을 여러 개의 공간에서 열 수 있도록 공간 기능을 향상함
  • 앱 Exposé 기능으로 열려 있는 앱의 모든 윈도우를 빠르게 볼 수 있음

Apple Pencil

  • Apple Pencil의 대기 시간을 줄여서 더 빠른 반응성을 느낄 수 있음
  • 참신한 모양새, 새로운 도구 및 화면의 어느 모서리로도 드래그할 수 있는 새로 디자인된 도구 팔레트를 제공함
  • Apple Pencil로 화면의 오른쪽 하단 또는 왼쪽 모서리에서 쓸어넘겨서 무엇이든 마크업할 수 있는 새로운 제스처를 추가함
  • 새로운 전체 페이지 옵션으로 웹 페이지, Mail 메시지, iWork 문서 및 지도 전체를 마크업할 수 있음

마우스 및 트랙패드 지원

  • 홈 화면의 앱 아이콘, Dock, 버튼 및 앱의 제어기에서 잘 보이는 새로운 커서 디자인
  • 12.9형 iPad Pro(3세대 이상) 및 11형 iPad Pro(1세대 이상)에서 iPad용 Magic Keyboard 지원
  • Magic Mouse, Magic Mouse 2, Magic Trackpad, Magic Trackpad 2 및 타사 Bluetooth, USB 마우스 지원
  • iPad용 Magic Keyboard 및 Magic Trackpad 2의 Multi-Touch 제스처를 사용하여 스크롤, 앱 영역 간에 쓸어넘기기, 홈으로 이동, 앱 전환기에 접근, 확대 또는 축소, 탭하여 클릭, 보조 클릭(오른쪽 클릭) 및 페이지 간에 쓸어넘기기 가능
  • Magic Mouse 2의 Multi-Touch 제스처를 사용하여 스크롤, 보조 클릭(오른쪽 클릭) 및 페이지 간에 쓸어넘기기 가능

텍스트 편집

  • 스크롤 막대를 문질러서 바로 드래그하여 긴 문서, 웹 페이지 및 이메일 대화를 빠르게 탐색할 수 있음
  • 커서를 들어 올려서 원하는 위치에 놓기만 하면 되는 더욱 빠르고 정확해진 커서 탐색을 제공함
  • 탭하기 및 쓸어넘기기로 텍스트를 쉽게 선택할 수 있도록 텍스트 선택 기능을 향상함
  • 손가락을 한 번 오므려서 복사하고, 두 번 오므려서 오려두며, 손가락을 펼쳐서 붙여넣는 새로운 제스처를 추가함
  • 세 손가락으로 이중 탭하여 iPadOS의 어떤 동작이든 실행 취소함

QuickType

  • 새로운 유동식 키보드는 어느 곳으로든 드래그하여 더 많은 공간을 콘텐츠에 할애할 수 있음
  • 유동식 키보드의 QuickPath 기능을 사용하여 한 손으로 간편하게 슬라이드하여 입력할 수 있음

서체

  • 사용자가 좋아하는 앱에서 사용할 수 있도록 App Store에서 사용자 설정 서체를 받을 수 있음
  • 설정에서 서체를 관리할 수 있음

파일

  • 파일 앱에서 외장 드라이브를 지원하여 USB 드라이브, SD 카드 또는 하드 드라이브의 파일에 접근하고 파일을 관리할 수 있음
  • 직장 또는 가정용 PC에서 서버에 연결할 수 있는 SMB를 지원함
  • 로컬 드라이브에 폴더를 생성하고 즐겨 찾는 파일을 추가할 수 있는 로컬 저장 공간을 제공함
  • 중첩된 폴더를 드릴 다운할 수 있는 열을 제공함
  • 미리보기 패널에서 고해상도 파일 미리보기, 리치 메타데이터 및 빠른 동작을 지원함
  • Zip 파일을 생성하고 풀 수 있는 압축 및 압축 해제 기능을 지원함
  • 새로운 키보드 단축키를 지원하여 외장 키보드로 파일을 더 빠르게 관리할 수 있음
  • 파일 앱에서 iCloud Drive 폴더 공유
  • 명시적으로 초대한 사람만 접근할 수 있도록 제한하거나 폴더 링크가 있는 사람이 접근할 수 있도록 제어
  • 파일을 변경하고 업로드할 수 있는 사람과 파일을 보고 다운로드만 할 수 있는 사람을 선택할 수 있는 권한

Safari

  • Safari에서 웹 사이트가 자동으로 iPad의 큰 Multi-Touch 디스플레이에 최적화되어 데스크탑과 같은 브라우징 경험을 제공함
  • Squarespace, WordPress, Google Docs 같은 웹 플랫폼을 지원함
  • 다운로드 관리 기능으로 빠르게 다운로드 항목에 접근하고 다운로드 중인 파일 상태를 확인함
  • 30여 개의 새로운 키보드 단축키를 사용하여 외장 키보드로 웹을 더 빠르게 탐색할 수 있음
  • 시작 페이지에 즐겨찾기, 자주 방문한 웹 사이트, 가장 최근에 방문한 웹 사이트 및 Siri 제안이 포함되도록 업데이트함
  • 스마트 검색 필드에 텍스트 크기 제어기, 읽기 도구 보기 및 사이트별 설정에 빠르게 접근할 수 있는 보기 옵션을 추가함
  • 읽기 도구 보기를 선택하고 개별 사이트에 대한 콘텐츠 차단기, 카메라, 마이크 및 위치 접근을 활성화할 수 있는 사이트별 설정을 추가함
  • 사진을 업로드할 때 크기를 변경하는 옵션을 제공함

다크 모드

  • 특히 저조도 환경에서 보기에 적합하도록 새롭고 아름다운 어두운 색상을 적용하여 새로운 경험을 제공함
  • 일몰 시 또는 특정 시간에 자동으로 켜지도록 설정하거나 제어 센터에서 켤 수 있음
  • 라이트 모드 및 다크 모드에서 자동으로 전환되는 4개의 새로운 시스템 배경화면을 추가함

사진

  • 보관함에서 엄선한 사진을 제공하는 완전히 새로워진 사진 탭으로 사진 및 비디오를 쉽게 찾고, 다시 보고, 공유할 수 있음
  • 강력하고 새로운 사진 편집 도구로 사진을 쉽게 편집 및 조정하고 한눈에 볼 수 있음
  • 회전, 자르기, 화질 향상 등 30가지가 넘는 비디오 편집 도구를 새로 추가함

Apple로 로그인

  • 이미 가지고 있는 Apple ID로 가맹 중인 앱 및 웹 사이트에 비공개적으로 로그인하는 새로운 방법을 제공함
  • 사용자의 이름과 이메일 주소만으로 간단한 계정을 설정할 수 있음
  • 자동으로 사용자에게 전달되는 고유한 이메일 주소를 공유하는 ‘나의 이메일 가리기’ 기능을 추가함
  • 내장된 이중 인증 기능으로 사용자의 계정을 보호함
  • 사용자가 좋아하는 앱을 사용할 때 Apple에서 추적하거나 프로파일링하지 않음

App Store와 아케이드

  • 한 번의 구독으로 광고 및 추가 비용 없이 획기적인 새로운 게임을 무제한으로 즐길 수 있음
  • App Store의 완전히 새로운 아케이드 탭에서 최신 게임, 개인 맞춤화 추천, 독점 편집 콘텐츠를 탐색할 수 있음
  • iPhone, iPod touch, iPad, Mac 및 Apple TV 간에 플레이할 수 있음
  • 셀룰러 연결을 통해 대용량 앱을 다운로드할 수 있는 옵션을 제공함
  • 계정 페이지에서 앱을 삭제하거나 업데이트가 있는 앱을 볼 수 있음
  • 유니버설 구입 지원을 통해 iPhone, iPod touch, iPad, Mac 및 Apple TV에서 가맹 중인 앱을 한 번의 구입으로 사용 가능
  • 최근에 플레이한 아케이드 게임이 아케이드 탭에 나타나며 iPhone, iPod touch, iPad, Mac 및 Apple TV에서 계속 플레이할 수 있음
  • 모든 게임 보기에서 목록 보기 가능
  • 아랍어 및 히브리어를 지원함

지도

  • 미국에서 더 확장된 도로 범위, 향상된 주소 정밀도, 개선된 보행자 지원 및 더 상세해진 지도를 담은 완전히 새로운 지도 앱을 선보임
  • 고해상도의 대화식 3D 경험으로 도시를 둘러볼 수 있는 ‘주변보기’ 기능을 추가함
  • 좋아하는 장소를 ‘모음’으로 만들어 친구 및 가족과 쉽게 공유할 수 있음
  • 즐겨찾기를 통해 매일 방문하는 장소까지 쉽고 빠르게 경로를 이용할 수 있음
  • 경로에 따라 이동 중일 때 예상 도착 시간을 보내서 공유할 수 있음

미리 알림

  • 완전히 새로워진 디자인 및 미리 알림을 생성하고 정리하는 더욱 강력하고 지능적인 방법을 제공함
  • 날짜, 위치, 깃발, 첨부 파일 등을 미리 알림에 빠르게 추가할 수 있는 도구 막대를 제공함
  • 오늘, 예정된 항목, 깃발 표시됨, 전체의 새로운 네 가지 스마트 목록으로 예정된 미리 알림을 쉽게 추적할 수 있음
  • 하위 항목 및 그룹화된 목록으로 미리 알림을 구성할 수 있음

Siri

  • Apple Podcasts, Safari, 지도에서 개인 맞춤화된 Siri 제안을 제공함
  • Siri를 통해 전 세계 10만 개 이상의 라디오 스테이션을 청취할 수 있음
  • 사용자가 상호 작용한 Siri 및 받아쓰기 오디오를 Apple이 보관하는 것을 허용하여 Siri 및 받아쓰기 기능을 향상하는 옵션을 개인 정보 보호 설정에서 사용자가 선택할 수 있음
  • Siri 설정에서 사용자의 Siri 및 받아쓰기 기록을 삭제할 수 있음

단축어

  • 단축어 앱이 내장됨
  • 갤러리에서 사용자의 일상생활에 맞게 개인 맞춤화된 자동화를 제안함
  • 트리거 조건을 기반으로 개인용 및 홈 자동화 단축어가 자동으로 실행됨
  • 자동화 탭에서 고급 동작으로서 단축어에 대한 홈 앱 지원을 제공함

미모티콘과 메시지

  • 새로운 헤어스타일, 모자, 메이크업, 피어싱을 포함한 새로워진 미모티콘 사용자 설정 옵션을 추가함
  • 메시지, Mail 및 타사 제공 앱에서 미모티콘 스티커 팩을 사용할 수 있으며, iPad Pro, iPad Air(3세대), iPad(5세대 및 이후 모델) 및 iPad mini(5세대)에서 사용 가능함
  • 옵션을 사용하면 사용자의 이름과 사진뿐만 아니라 미모티콘까지 친구들과 공유 가능
  • 지능적인 제안 및 카테고리화된 결과를 제공하여 메시지를 더 간편하게 찾을 수 있도록 검색 기능을 향상함

이모티콘

  • 동물, 음식, 활동, 새로운 장애인 이모티콘, 성별 중립적인 이모티콘, 커플 이모티콘의 피부톤 추가 등 70여 개의 이모티콘이 새로 추가되거나 업데이트됨

증강 현실

  • iPad Pro(12.9형, 3세대 또는 이후 모델), iPad Pro(11형, 1세대 또는 이후 모델), iPad Air(3세대) 및 iPad mini(5세대)를 사용하는 경우 앱에서 사람들의 앞이나 뒤에 가상의 대상체를 자연스럽게 배치할 수 있도록 해주는 인물 오클루전 기능을 추가함
  • iPad Pro(12.9형, 3세대 또는 이후 모델), iPad Pro(11형, 1세대 또는 이후 모델), iPad Air(3세대) 및 iPad mini(5세대)를 사용하는 경우 앱에서 인물의 위치와 움직임을 파악하여 캐릭터를 움직이게 만들거나 가상의 대상체와 상호작용할 수 있도록 해주는 모션 캡처 기능을 추가함
  • iPad Pro(12.9형, 3세대 또는 이후 모델) 및 iPad Pro(11형, 1세대 또는 이후 모델)를 사용하는 경우 증강 현실 콘텐츠에서 동시에 최대 3명의 얼굴을 추적하여 친구들과 함께 즐길 수 있음
  • 증강 현실 훑어보기 기능으로 오디오 재생 지원 및 동시에 여러 개의 증강 현실 대상체에 접속할 수 있음

Mail

  • 보낸 사람을 차단해서 그 사람이 보낸 모든 이메일 메시지를 휴지통으로 옮길 수 있음
  • 스레드 알림 비활성화 기능으로 활동이 지나치게 많은 이메일 스레드에서 받는 알림을 멈출 수 있음
  • 포맷 막대에서 간편하게 리치 텍스트 포맷 도구에 접근할 수 있으며, 모든 종류의 파일을 첨부할 수 있음
  • 모든 시스템 서체뿐만 아니라, App Store에서 다운로드하는 새로운 서체도 지원함
  • S/MIME으로 구성하면 암호화된 이메일에 대한 응답이 자동으로 암호화됨

메모

  • 갤러리 보기에서 메모의 축소판을 확인할 수 있어 필요한 메모를 더욱 쉽게 찾을 수 있음
  • 공유 폴더를 사용하여 다른 사람에게 폴더의 메모에 모든 접근 권한을 주어 함께 공동 작업을 할 수 있음
  • 메모에 포함된 이미지 및 스캔한 항목에 포함된 텍스트를 시각적으로 인식할 수 있도록 검색 기능을 강화함
  • 체크리스트 항목을 간편하게 재정렬하거나 들여쓰기하고, 완료된 항목을 자동으로 목록의 하단으로 보내는 새로운 체크리스트 옵션을 제공함

Apple Music

  • 노래에 맞춰 표시되는 가사로 음악 감상의 즐거움을 향상함
  • 전 세계 10만 개 이상의 라디오 스테이션을 청취할 수 있음

홈 앱

  • HomeKit 보안 비디오를 사용하여 사용자의 보안 카메라에서 암호화된 비디오를 비공개적으로 캡처 및 저장하고 볼 수 있으며, 사람, 동물 및 차량을 감지하는 기능을 지원함
  • HomeKit가 지원되는 라우터를 사용하여 HomeKit 액세서리가 집 인터넷을 통해 커뮤니케이션하는 대상을 제어할 수 있음
  • 새로 디자인된 Home 앱의 HomeKit 액세서리 제어기에서 다중 서비스를 지원하는 액세서리에 대한 통합 보기를 추가함

스크린 타임

  • 30일간의 사용량 데이터를 이전 주간의 스크린 타임 수치와 비교함
  • 복합적인 제한 시간을 통해 여러 앱 카테고리, 특정 앱 또는 웹사이트를 하나의 제한 시간에 포함할 수 있음
  • 스크린 타임 제한 시간이 되면 빠르게 작업을 저장하거나 게임에서 로그아웃할 수 있는 ‘1분 더’ 옵션을 추가함
  • 새로운 유해 콘텐츠 차단 기능은 자녀가 통화하거나 FaceTime 또는 메시지를 보낼 수 있는 사람에 대해 더욱 다양한 커뮤니케이션 제한 기능을 제공함
  • ‘자녀의 연락처’ 목록으로 부모가 자녀의 기기에 표시되는 연락처를 관리할 수 있음

AirDrop

  • 공간 인식을 지원하는 초광대역 기술이 탑재된 새로운 U1 칩을 사용하여 iPhone 11, iPhone 11 Pro 및 iPhone 11 Pro Max 간에 대상을 가리켜서 AirDrop할 수 있음

개인 정보 보호 및 보안

  • 위치 권한에 대한 ‘한 번 허용’ 옵션으로 위치를 앱과 한 번만 공유할 수 있음
  • 백그라운드 추적 알림 기능으로 앱이 사용자의 위치를 백그라운드에서 사용하는 경우 사용자에게 알림
  • 향상된 Wi-Fi 및 Bluetooth 기능으로 사용자의 동의 없이 앱이 사용자의 위치에 접근하는 것을 방지함
  • 위치 공유 제어를 통해 사용자가 사진을 공유할 때 쉽게 위치를 제거할 수 있는 옵션을 제공함

시스템 경험

  • 제어 센터에서 Wi-Fi 네트워크 및 Bluetooth 액세서리를 선택할 수 있음
  • 음량 제어기를 상단 중앙에 튀지 않게 새로 디자인함
  • 웹 페이지, Mail 메시지, iWork 문서 및 지도에서 전체 페이지를 스크린샷 캡처할 수 있음
  • 지능형 제안을 통해 탭 몇 번으로 콘텐츠를 공유할 수 있도록 공유 시트를 새로 디자인함
  • 오디오 공유를 사용하여 단일 오디오 스트림을 두 쌍의 AirPods, Powerbeats Pro, Beats Solo3, BeatsX 또는 Powerbeats3 간에 공유할 수 있음
  • iPad Pro(12.9형, 3세대 또는 이후 모델) 및 iPad Pro(11형, 1세대 또는 이후 모델)에서 Dolby Atmos, Dolby Digital 또는 Dolby Digital Plus 사운드 트랙 콘텐츠를 짜릿한 서라운드 사운드로 즐길 수 있는 Dolby Atmos 재생 기능을 제공함

언어 지원

  • 38개의 새로운 키보드 언어를 지원함
  • 아랍어(현대 표준), 아랍어(나즈디), 광둥어, 네덜란드어, 힌디어(데바나가리), 힌디어(라틴), 스웨덴어 및 베트남어 키보드의 자동 완성 입력을 지원함
  • 별도의 이모티콘 및 지구본 키를 사용하여 언어 간에 빠르게 전환하고 쉽게 이모티콘을 선택할 수 있음
  • 받아쓰기를 위한 자동 언어 감지 기능을 추가함
  • 태국어 및 영어, 베트남어 및 영어를 지원하는 이중 언어 사전을 추가함

중국

  • 카메라 앱에 추가된 전용 QR 코드 모드는 제어 센터에서 접근할 수 있고, QR 코드 성능이 향상되었으며, 손전등 옵션이 포함되고, 개인 정보 보호가 강화됨
  • 복잡한 도로를 더욱 쉽게 주행할 수 있도록 교차로 보기를 지도 앱에 추가함
  • 중국어 키보드에 조절 가능한 손글씨 영역을 제공함
  • 창힐입력, 빠른 창힐입력, 자획 및 손글씨 키보드에 대한 광둥어 자동 완성을 도입함

인도

  • 인도식 영어를 구사하는 남녀 Siri 음성을 완전히 새롭게 추가함
  • 15개의 새로운 키보드 언어가 추가되어 22개의 모든 공식 인도어를 지원함
  • 자동 완성 입력을 포함한 힌디어(라틴) 및 영어의 이중 언어 키보드를 제공함
  • 힌디어(데바나가리) 키보드에 대한 자동 완성 입력을 지원함
  • 구자라트어, 굴묵키어, 칸나다어 및 오디아어를 앱에서 더 명확하고 쉽게 읽을 수 있는 새로운 인도어 시스템 서체를 도입함
  • 아삼어, 벵골어, 구자라트어, 힌디어, 칸나다어, 말라얄람어, 마라티어, 네팔어, 오디아어, 펀자브어, 산스크리트어, 타밀어, 텔루구어 및 우르두어를 위한 30개의 새로운 문서 서체를 지원함
  • 연락처에 더 정확한 레이블을 추가할 수 있도록 수백 개의 새로운 관계 레이블이 포함된 연락처를 제공함

AirPods 지원

  • Siri가 수신 메시지를 크게 읽어주는 ‘메시지 읽어주기’ 기능을 AirPods Pro 및 AirPods(2세대)에서 지원함
  • AirPods Pro를 지원함

성능 향상

  • 앱 실행이 최대 2배 빨라짐*
  • iPad Pro(11형, 1세대) 및 iPad Pro(12.9형, 3세대)에서 Face ID로 최대 30퍼센트 빠르게 잠금 해제함**
  • 앱 업데이트의 크기가 평균 60퍼센트 감소함*
  • App Store에서 앱 크기가 최대 50퍼센트까지 줄어듦*

기타 기능 및 향상된 기능

  • ‘저데이터 모드’를 통해 셀룰러 네트워크 또는 선택된 특정 Wi-Fi 네트워크에서 데이터 사용량을 줄일 수 있음
  • PlayStation 4 및 Xbox 무선 컨트롤러를 지원함
  • 나의 iPhone 찾기와 나의 친구 찾기를 하나로 합친 앱을 사용하여 Wi-Fi 또는 셀룰러 네트워크에 연결할 수 없는 경우에도 잃어버린 기기를 찾을 수 있음
  • 매일 독서 습관을 만드는 데 도움이 되는 Apple Books 독서 목표 기능을 추가함
  • 캘린더 앱에서 이벤트에 첨부 파일을 추가할 수 있음
  • 새로 디자인된 Home 앱의 HomeKit 액세서리 제어기에서 다중 서비스를 지원하는 액세서리에 대한 통합 보기를 추가함
  • 음성 메모에서 녹음 항목을 편집할 때 손가락을 모으거나 펼쳐서 확대 축소하는 제스처로 정확성을 높임

*테스트는 2019년 5월 Apple에서 iOS 12.3, 배포 전 단계의 iPadOS, iOS 13이 설치된 최대 성능을 정상 지원하는 iPhone XS 및 iPad Pro(11형, 1세대), 그리고 시제품 App Store 서버 환경에서 리패키징한 서드 파티 앱을 사용해 진행했습니다. 더 작아진 앱 업데이트 다운로드 크기는 가장 자주 업데이트되는 앱 모음의 평균값을 기준으로 한 것입니다. 성능은 기기별 설정, 콘텐츠, 배터리 상태, 사용 방법, 소프트웨어 버전 및 기타 다양한 요인에 따라 달라질 수 있습니다.

**테스트는 2019년 5월 Apple에서 iOS 12.3, 배포 전 단계의 iPadOS, iOS 13이 설치된 최대 성능을 정상 지원하는 iPhone X 및 iPhone XS Max, iPad Pro(11형, 1세대)를 사용했으며, 옆면 또는 상단 버튼으로 기기를 깨우는 방식으로 진행했습니다. 성능은 기기별 설정, 콘텐츠, 배터리 상태, 사용 방법 및 기타 다양한 요인에 따라 달라질 수 있습니다.

일부 기능은 일부 지역 또는 일부 Apple 기기에서만 사용할 수 있습니다. Apple 소프트웨어 업데이트의 보안 콘텐츠에 관한 자세한 정보는 다음 웹 사이트를 참조하십시오. 

https://support.apple.com/ko-kr/HT201222

'Blog History' 카테고리의 다른 글

197  (0) 2020.04.26
196  (0) 2020.04.26
194  (0) 2020.04.23
191-여호와의 증인에게 보여주고 싶은 영화  (0) 2020.04.20
190 - 플랫폼의 힘  (0) 2020.04.20

mongo db $250 promotion code.

 

You’re a valued Realm Cloud customer, we’re reaching out to notify of a change affecting your support experience.

 

As you’re probably aware, Realm was acquired by MongoDB in April 2019. Since then, we’ve been working on understanding the various customer interactions and are now making some changes, including the move to a new portal experience and to the MongoDB Atlas Developer Support plan.

 

With this change, you can expect:

  • Improved response to your high priority cases
  • 8-hour initial response time SLA on S1 - Blocker issues
  • 24/7, 365 access to the Support portal where our experienced engineers will offer more Realm-specific assistance and guidance
  • End-to-end assistance and advice from our dedicated team, as well as access to knowledge base articles created by MongoDB and Realm engineers
  • Increased visibility and access to your cases at any time via one unified platform

What’s next: 

  • We’re deprecating the current Realm Support portal on September 7, 2020
  • Sign up for Atlas Developer support for $49/month by creating a free Atlas account and to replace your current Realm Cloud plan (this means your monthly Realm Cloud plan will remain, but you will only be paying $49 a month).
  • Please make sure to name your org with the naming convention "Realm Cloud - ” e.g. “Realm Cloud - Test” 
  • If you sign up for the new portal experience between now and June 30, you’ll receive 250 free credits to Atlas, MongoDB’s Database-as-a-Service by applying this MDBSUPPORT-TIRUXR

 

If you have any questions or concerns, please contact us by replying to this email.

 

Thank you for being a valued MongoDB customer!

 

Julia Prause

Global Director, Customer Success

 

DetailsDate AddedActive DatesTotal AmountUsedAvailable

PROMO

MDBSUPPORT-TIRUXR

04/23/20 04/23/20

(EXPIRES  12/31/99)

$250.00

$0.00

$250.00

find the menu titled APPLY CREDIT in billing.

 


I don't know of any way to change this behavior.


nstimer 안되어 dispatch_async(dispatch_get_main_queue(), ^{ 로 대
//    [NSTimer scheduledTimerWithTimeInterval:2.0
//                                                            target:self
//                                                          selector:@selector(timeoutHandler:)
//                                                          userInfo:nil
//                                                           repeats:NO];



import numpy as np
from sklearn.datasets import load_boston
boston = load_boston()
X = boston.data
y = boston.target
x, resid, rank, s = np.linalg.lstsq(X, y)
print(x)



Boston house prices dataset
---------------------------
**Data Set Characteristics:**  
    :Number of Instances: 506 
    :Number of Attributes: 13 numeric/categorical predictive. Median Value (attribute 14) is usually the target.
    :Attribute Information (in order):
        1. CRIM     per capita crime rate by town
        2. ZN       proportion of residential land zoned for lots over 25,000 sq.ft.
        3. INDUS    proportion of non-retail business acres per town
        4. CHAS     Charles River dummy variable (= 1 if tract bounds river; 0 otherwise)
        5. NOX      nitric oxides concentration (parts per 10 million)
        6. RM       average number of rooms per dwelling
        7. AGE      proportion of owner-occupied units built prior to 1940
        8. DIS      weighted distances to five Boston employment centres
        9. RAD      index of accessibility to radial highways
       10. TAX      full-value property-tax rate per $10,000
       11. PTRATIO  pupil-teacher ratio by town
       12. B        1000(Bk - 0.63)^2 where Bk is the proportion of blacks by town
       13. LSTAT    % lower status of the population
       14. MEDV     Median value of owner-occupied homes in $1000's


[-9.28965170e-02  4.87149552e-02 -4.05997958e-03  2.85399882e+00
 -2.86843637e+00  5.92814778e+00 -7.26933458e-03 -9.68514157e-01
  1.71151128e-01 -9.39621540e-03 -3.92190926e-01  1.49056102e-02
 -4.16304471e-01]

 

UIImagePickerController

The preview is handled for you by the UIImagePickerController, and the overlay is always visible until the controller is dismissed.

import numpy as np
from sklearn.datasets import load_boston
boston = load_boston()
X = boston.data
y = boston.target
x, resid, rank, s = np.linalg.lstsq(X, y)
print(x)

1. 범죄율에 반비례한다.
2. 비소매사업지역 면적 비율에 비례한다.
3. 일산화 질소 농도에 반비례 한다.
4. 주택당 방 수에 비혜한다.
5. 중 하위 계층 비율에 반비례 한다.
6. 인구중 흑인 비율에 비례한다.
7. 학생/교사 비율에 반비례한다.
8. 25,000 평방피트를 초과 거주지역 비율에 반비례 한다.
9. 인구 찰스강의 경계에 위치한 경우에 증가한다.
10. 1940년 이전에 건축된 비율에 반비례 한다.
11. 방사형 고속도로까지의 거리에 반비례 한다.
12. 직업센터 거리에 비례한다.
13. 재산세율에 반비례 한다.

남자배우 = 여자배우 + (남자-여자)

 

'Blog History' 카테고리의 다른 글

196  (0) 2020.04.26
195 애플도 이렇게 자세하게 쓰는데  (0) 2020.04.24
191-여호와의 증인에게 보여주고 싶은 영화  (0) 2020.04.20
190 - 플랫폼의 힘  (0) 2020.04.20
189  (1) 2020.04.20

https://code.google.com/codejam/resources/quickstart-guide#gcj


What's the least I need to know to use the competition arena?
There's a lot of important information in the official Terms and FAQ for Kickstart; and if you're competing, you should read them. But if you're on the site to practice your programming skills, or you just need a quick intro to how the competition arena works, here are some steps you can follow:

Open the competition arena to your round. If you're competing, go to your contest's home page at the time of the round. If you're practicing, visit the Past Problems page and select a round. Then select a problem.

Read the problem. The first few sections will describe precisely what problem your program needs to solve. Take careful note of the Limits section. Those limits should help you determine what types of solutions are necessary to handle the Small and Large datasets.

Write a program that will solve the problem, with the Small limits described, in less than 3 minutes or so. Make sure your program accepts input and gives output in the format given; if you run it with the Sample Input as input, it should produce precisely the Sample Output (including the "Case #" text). If you are not sure how to deal with input and output, take a look at the standard I/O tutorial below for one possibility you might like.

At the top of the page, click to solve the Small dataset and download the input file. During a real contest, a 4-minute timer will start as soon as we receive the download request. If you're practicing, there won't be a timer.

Run your program on that input file, and save the result in a file. Submit that file as your output file. (During a real contest, you will also need to submit your source code.) The server will respond in one of a few ways:

Correct: Your submission was completely correct for every case!

Rejected: Your submission was rejected for some reason unrelated to the correctness or incorrectness of your answers. For example, you might have uploaded an input file or source code instead of your own output file. The clock is still running, so see if you can fix the issue before you run out of time (in which case your submission will be treated as Incorrect).

Incorrect: Your result was wrong. We won't tell you which case(s) you got wrong, so you'll have to debug on your own. For a Small dataset, you can fix your program and attempt the dataset again as many times as you'd like. Note that during a real contest, you'll download a new input file for each attempt. If you eventually get the dataset Correct, you will receive a minor time penalty for each incorrect attempt (but it is always better to solve something than not solve it, even with penalties!)

After you solve the Small dataset, the Large dataset will become available. Once your program is ready to deal with the higher limits, download the Large datasets. (It is most common for contestants to write just one solution that solves both datasets.) An 8-minute timer will start as soon as we receive the download request.

Run your program and submit, as with the Small. You won't know whether you solved the problem correctly until the end of the competition. If your submission is Rejected or you want to submit another answer, you can try again within the 8-minute time limit, but only the last submission will be judged.

Move on to another problem (there's a list on the left). Each dataset that you solve correctly is worth a number of points that's written next to its download link. The contestant with the most points at the end of the contest has the highest rank. Ties are broken by which contestant got her last point earliest, with 4 minutes of penalty time added to that for each incorrect submission on a Small dataset that was eventually answered correctly. The scoreboard will display "optimistic" preliminary results for dramatic purposes; that is, it will assume that every Large submission is correct. After the contest, the scoreboard will show the true results, including which Large submissions were wrong.

Tutorials
We only have one tutorial for now, but we may add more in the future. While reading about theory is great, we strongly advise you to practice solving actual problems to get better. You can do so by visiting our Past Problems section. Happy coding!

A "standard" solution: using standard input and output
Kickstart encourages flexible problem-solving: we give you an input file and leave it to you to solve the problem in the way you prefer. It is up to you to choose your language, development environment, architecture, libraries, and so on.

Many of our contestants use a model common in other programming contests like ACM-ICPC and Codeforces: a one-file program that reads the input and produces exactly the required output. This tutorial demonstrates how to use standard input and standard output to apply this model to Kickstart like a pro! Of course, you are still welcome to read input and/or write output in completely different ways; this is just one option.

What are standard input and standard output?
The standard input (stdin) and standard output (stdout) are among the data streams that programs use to interact with the outside world. When you are running a program from the console in the most simple way, stdin is just what is read from the keyboard into the program, and stdout is what is printed on the screen. However, these two streams can be directed to read to, and write from, files!

Suppose that you have a program called "my_program" that you usually run via the command:

MY_PROGRAM
content_copy
 MY_PROGRAM 
Note that MY_PROGRAM could be something like ./my_binary if using a language like C++ that compiles to machine code, java my_java_binary_name for a language like Java that uses virtual machines, or python my_python_code.py for a language like Python that is interpreted rather than compiled.

In Linux, Mac OS/X and Windows, you can use < and > to redirect stdin and stdout to files, respectively. So a command line like

MY_PROGRAM < input_file.txt > output_file.txt 
content_copy
 MY_PROGRAM < input_file.txt > output_file.txt  
will make your program receive the contents of input_file.txt in its stdin, and write the output to its stdout to output_file.txt.

How do I use stdin and stdout for Kickstart?
As you work on a solution, you may wish to read from a file (say, a sample.txt into which you have copied the problem's sample I/O), but still write the output to the console, to avoid having to open or print the output file while you are debugging. You can do this with:

 MY_PROGRAM < sample.txt
content_copy
  MY_PROGRAM < sample.txt 
Once you have downloaded an input, you will want to direct your output to a file to upload:

MY_PROGRAM < small_input.txt > small_output.txt
content_copy
 MY_PROGRAM < small_input.txt > small_output.txt 
If your program's algorithm works for both the Small and Large datasets, you can just rerun this command without even changing nor recompiling the program:

 MY_PROGRAM < large_input.txt > large_output.txt 
content_copy
  MY_PROGRAM < large_input.txt > large_output.txt  
How do I write my code to read from stdin and write to stdout?
Consider the following very simple problem. The input consists of one line with a number of test cases T, and then T more lines, each of which contains two positive integers N and M. The desired output form is Case #x: y z, where x, y, and z are all integers; x is the case number (starting from 1), y is the sum of N and M, and z is the product of N and M.

input_file.txt
content_copy
3
1 5
7 -2
9001 0
 3
1 5
7 -2
9001 0
 
Here's some code to solve this problem, reading from stdin and writing to stdout, in various languages. For our examples, we use some of the most commonly used languages in Kickstart, but you are certainly not limited to using just these!

C++ (commands)
content_copy
g++ solution.cpp -o solution
./solution < input_file.txt > output_file.txt
 g++ solution.cpp -o solution
./solution < input_file.txt > output_file.txt
 
C++ (solution.cpp)
content_copy
#include   // includes cin to read from stdin and cout to write to stdout
using namespace std;  // since cin and cout are both in namespace std, this saves some text
int main() {
  int t, n, m;
  cin >> t;  // read t. cin knows that t is an int, so it reads it as such.
  for (int i = 1; i <= t; ++i) {
    cin >> n >> m;  // read n and then m.
    cout << "Case #" << i << ": " << (n + m) << " " << (n * m) << endl;
    // cout knows that n + m and n * m are ints, and prints them accordingly.
    // It also knows "Case #", ": ", and " " are strings and that endl ends the line.
  }

  return 0;
}
 #include   // includes cin to read from stdin and cout to write to stdout
using namespace std;  // since cin and cout are both in namespace std, this saves some text
int main() {
  int t, n, m;
  cin >> t;  // read t. cin knows that t is an int, so it reads it as such.
  for (int i = 1; i <= t; ++i) {
    cin >> n >> m;  // read n and then m.
    cout << "Case #" << i << ": " << (n + m) << " " << (n * m) << endl;
    // cout knows that n + m and n * m are ints, and prints them accordingly.
    // It also knows "Case #", ": ", and " " are strings and that endl ends the line.
  }

  return 0;

Java (commands)
content_copy
javac Solution.java
java Solution < input_file.txt > output_file.txt
 javac Solution.java
java Solution < input_file.txt > output_file.txt
 
Java (Solution.java)
content_copy
import java.util.*;
import java.io.*;
public class Solution {
  public static void main(String[] args) {
    Scanner in = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
    int t = in.nextInt();  // Scanner has functions to read ints, longs, strings, chars, etc.
    for (int i = 1; i <= t; ++i) {
      int n = in.nextInt();
      int m = in.nextInt();
      System.out.println("Case #" + i + ": " + (n + m) + " " + (n * m));
    }
  }
}
 import java.util.*;
import java.io.*;
public class Solution {
  public static void main(String[] args) {
    Scanner in = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
    int t = in.nextInt();  // Scanner has functions to read ints, longs, strings, chars, etc.
    for (int i = 1; i <= t; ++i) {
      int n = in.nextInt();
      int m = in.nextInt();
      System.out.println("Case #" + i + ": " + (n + m) + " " + (n * m));
    }
  }

Python 2 (commands)
content_copy
python2 solution.py < input_file.txt > output_file.txt
 python2 solution.py < input_file.txt > output_file.txt
 
Python 2 (solution.py)
content_copy
# raw_input() reads a string with a line of input, stripping the '\n' (newline) at the end.
# This is all you need for most Kickstart problems.
t = int(raw_input())  # read a line with a single integer
for i in xrange(1, t + 1):
  n, m = [int(s) for s in raw_input().split(" ")]  # read a list of integers, 2 in this case
  print "Case #{}: {} {}".format(i, n + m, n * m)
  # check out .format's specification for more formatting options
 # raw_input() reads a string with a line of input, stripping the '\n' (newline) at the end.
# This is all you need for most Kickstart problems.
t = int(raw_input())  # read a line with a single integer
for i in xrange(1, t + 1):
  n, m = [int(s) for s in raw_input().split(" ")]  # read a list of integers, 2 in this case
  print "Case #{}: {} {}".format(i, n + m, n * m)
  # check out .format's specification for more formatting options 
Python 3 (commands)
content_copy
python3 solution.py < input_file.txt > output_file.txt
 python3 solution.py < input_file.txt > output_file.txt
 
Python 3 (solution.py)
content_copy
# input() reads a string with a line of input, stripping the '\n' (newline) at the end.
# This is all you need for most Kickstart problems.
t = int(input())  # read a line with a single integer
for i in range(1, t + 1):
  n, m = [int(s) for s in input().split(" ")]  # read a list of integers, 2 in this case
  print("Case #{}: {} {}".format(i, n + m, n * m))
  # check out .format's specification for more formatting options
 # input() reads a string with a line of input, stripping the '\n' (newline) at the end.
# This is all you need for most Kickstart problems.
t = int(input())  # read a line with a single integer
for i in range(1, t + 1):
  n, m = [int(s) for s in input().split(" ")]  # read a list of integers, 2 in this case
  print("Case #{}: {} {}".format(i, n + m, n * m))
  # check out .format's specification for more formatting options 
As you can see from these examples, most languages provide simple ways of reading from stdin and writing to stdout. This is often easier than referring directly to particular files in your code — you don't need to change or recompile your code when switching from the Small dataset to the Large dataset, or when switching your output destination from the console (for debugging) to a file (so you can submit).

You can always check the documentation of your favorite language to find the preferred way to use stdin and stdout. Almost all languages have one.



(𝐴𝐵𝐶)⁻¹=𝐶¯¹𝐵¯¹𝐴⁻¹

 


(𝐴ᵀ)⁻¹=(𝐴⁻¹)ᵀ

(𝐴𝐵)⁻¹=𝐵⁻¹𝐴⁻¹
(𝐴𝐵𝐶)⁻¹=𝐶⁻¹𝐵⁻¹𝐴⁻¹

 


print("파이썬 강의를 열심히 듣던 당신은 목이 말라 잠깐 나왔습니다.")
print("마침 자판기가 보이네요.")
print("_____________________")
print("│:::}────────────────}")
print("│ | Cola & Cider |")
print("│ | ┌─────────────┐|")
print("│ H | │ [※] [#] [§] │|")
print("│ Y | ├─────────────┤|")
print("│ U | │ <◆><◇><◆>==↕│|")
print("│ | └─────────────┘|")
print("│ | |")
print("│ | ┌─────────────┐|")
print("│ \\ \\")
print("│_____))_____________))")
print("│:::::}───────────────}")
print("│_____)_______________)")
print("------------------------------------------------------------------------------------------")
ImportError: No module named _bsddb
soralee@soraui-MacBookAir python-bittorrent-master % brew install berkeley-db
Updating Homebrew...
.
..
.

visual
visual-studio
visual-studio-code
visualboyadvance-m
visualvm
vitalsource-bookshelf
vk-messenger
vmpk
vnote
volt
voodoopad
vox
vox-preferences-pane
vscodium
vsee
vu
vysor
wallpaper-wizard
waltr
wanna
wasabi-wallet
waterfox
waterfox-current
wavebox
webarchiveextractor
webcamoid
webcatalog
webponize
webpquicklook
webtorrent
weiyun
weka
wercker-cli
whalebird
whatsyoursign
whoozle-android-file-transfer
wickrme
widelands
wifispoof
winds
wineskin-winery
wings3d
wire
wkhtmltopdf
wko
wondershare-filmora
wordservice
workflowy
wpsoffice
writefull
wwdc
x-moto
x2goclient
x48
xact
xamarin-studio
xamarin-workbooks
xampp
xaos
xca
xdm
xee
ximalaya
xld
xlink-kai
xlplayer
xquartz
xscope
yacreader
yammer
yandex
yandex-cloud-cli
yojimbo
youdaonote
youku
yourkit-java-profiler
yu-writer
yy
zalo
zazu
zeebe-modeler
zeronet
zettelkasten
zettlr
zoho-mail
zoho-workdrive
zoom-in
zoomus
zulip
zxpinstaller
==> Deleted Casks
capture-one                              hook

==> Installing dependencies for berkeley-db: openssl@1.1
==> Installing berkeley-db dependency: openssl@1.1
==> Downloading https://homebrew.bintray.com/bottles/openssl@1.1-1.1.1f.catalina
==> Downloading from https://akamai.bintray.com/72/724cd97c269952cdc28e24798e350
######################################################################## 100.0%
==> Pouring openssl@1.1-1.1.1f.catalina.bottle.tar.gz

For pkg-config to find openssl@1.1 you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig"

==> Summary
🍺  /usr/local/Cellar/openssl@1.1/1.1.1f: 8,057 files, 18MB
==> Installing berkeley-db
==> Downloading https://homebrew.bintray.com/bottles/berkeley-db-18.1.32_1.catal
==> Downloading from https://akamai.bintray.com/f2/f2fc006ecf0cddfeaf94af43572ca
######################################################################## 100.0%
==> Pouring berkeley-db-18.1.32_1.catalina.bottle.tar.gz
🍺  /usr/local/Cellar/berkeley-db/18.1.32_1: 5,672 files, 116.5MB
==> Caveats
==> openssl@1.1
A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
  /usr/local/etc/openssl@1.1/certs

and run
  /usr/local/opt/openssl@1.1/bin/c_rehash

openssl@1.1 is keg-only, which means it was not symlinked into /usr/local,
because macOS provides LibreSSL.

If you need to have openssl@1.1 first in your PATH run:
  echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.zshrc

For compilers to find openssl@1.1 you may need to set:
  export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
  export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"

For pkg-config to find openssl@1.1 you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig"

  Downloading https://files.pythonhosted.org/packages/fa/ad/eb82bcccbfb076b6a6797f48c339460699103065fb2a2fc72403b16970fe/bsddb3-6.2.7.tar.gz (437kB)
     |████████████████████████████████| 440kB 189kB/s
    ERROR: Command errored out with exit status 1:
     command: /Users/soralee/opt/anaconda3/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/h4/v_qg2vb96670g5cbg7t5g8500000gn/T/pip-install-yf_94__j/bsddb3/setup.py'"'"'; __file__='"'"'/private/var/folders/h4/v_qg2vb96670g5cbg7t5g8500000gn/T/pip-install-yf_94__j/bsddb3/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base pip-egg-info
         cwd: /private/var/folders/h4/v_qg2vb96670g5cbg7t5g8500000gn/T/pip-install-yf_94__j/bsddb3/
    Complete output (2 lines):
    Can't find a local Berkeley DB installation.
    (suggestion: try the --berkeley-db=/path/to/bsddb option)
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

soralee@soraui-MacBookAir bsddb3-5.3.0 % sudo python setup.py install --berkeley-db=/Users/soralee/bsddb
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, gsp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~~^~~~~~~~~
:266:1: note: expanded from here
st_alloc_buckets
^
Modules/_bsddb.c:5039:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(alloc_max_buckets);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:4995:56: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, gsp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~~^~~~~~~~~
:268:1: note: expanded from here
st_alloc_max_buckets
^
Modules/_bsddb.c:5040:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(alloc_pages);
    ^~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:4995:56: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, gsp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~~^~~~~~~~~
:270:1: note: expanded from here
st_alloc_pages
^
Modules/_bsddb.c:5041:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(alloc_max_pages);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:4995:56: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, gsp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~~^~~~~~~~~
:272:1: note: expanded from here
st_alloc_max_pages
^
Modules/_bsddb.c:5043:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(io_wait);
    ^~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:4995:56: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, gsp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~~^~~~~~~~~
:274:1: note: expanded from here
st_io_wait
^
Modules/_bsddb.c:5046:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(sync_interrupted);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:4995:56: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, gsp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~~^~~~~~~~~
:276:1: note: expanded from here
st_sync_interrupted
^
Modules/_bsddb.c:5070:9: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
        MAKE_ENTRY(cache_hit);
        ^~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:5059:61: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d3, #name, (*fsp2)->st_##name)
                          ~~~~~~~~~~~~~            ~~~~~~~~~^~~~~~~~~
:280:1: note: expanded from here
st_cache_hit
^
Modules/_bsddb.c:5071:9: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
        MAKE_ENTRY(cache_miss);
        ^~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:5059:61: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d3, #name, (*fsp2)->st_##name)
                          ~~~~~~~~~~~~~            ~~~~~~~~~^~~~~~~~~
:282:1: note: expanded from here
st_cache_miss
^
Modules/_bsddb.c:5073:9: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
        MAKE_ENTRY(page_create);
        ^~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:5059:61: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d3, #name, (*fsp2)->st_##name)
                          ~~~~~~~~~~~~~            ~~~~~~~~~^~~~~~~~~
:286:1: note: expanded from here
st_page_create
^
Modules/_bsddb.c:5074:9: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
        MAKE_ENTRY(page_in);
        ^~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:5059:61: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d3, #name, (*fsp2)->st_##name)
                          ~~~~~~~~~~~~~            ~~~~~~~~~^~~~~~~~~
:288:1: note: expanded from here
st_page_in
^
Modules/_bsddb.c:5075:9: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
        MAKE_ENTRY(page_out);
        ^~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:5059:61: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d3, #name, (*fsp2)->st_##name)
                          ~~~~~~~~~~~~~            ~~~~~~~~~^~~~~~~~~
:290:1: note: expanded from here
st_page_out
^
Modules/_bsddb.c:6476:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(record);
    ^~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6468:58: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, statp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~~~~^~~~~~~~~
:11:1: note: expanded from here
st_record
^
Modules/_bsddb.c:6482:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(wcount);
    ^~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6468:58: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, statp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~~~~^~~~~~~~~
:21:1: note: expanded from here
st_wcount
^
Modules/_bsddb.c:6483:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(wcount_fill);
    ^~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6468:58: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, statp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~~~~^~~~~~~~~
:23:1: note: expanded from here
st_wcount_fill
^
Modules/_bsddb.c:6485:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(rcount);
    ^~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6468:58: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, statp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~~~~^~~~~~~~~
:25:1: note: expanded from here
st_rcount
^
Modules/_bsddb.c:6487:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(scount);
    ^~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6468:58: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, statp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~~~~^~~~~~~~~
:27:1: note: expanded from here
st_scount
^
Modules/_bsddb.c:6494:5: warning: implicit conversion loses integer precision:
      'roff_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(regsize);
    ^~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6468:58: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, statp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~~~~^~~~~~~~~
:41:1: note: expanded from here
st_regsize
^
Modules/_bsddb.c:6495:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(region_wait);
    ^~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6468:58: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, statp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~~~~^~~~~~~~~
:43:1: note: expanded from here
st_region_wait
^
Modules/_bsddb.c:6496:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(region_nowait);
    ^~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6468:58: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, statp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~~~~^~~~~~~~~
:45:1: note: expanded from here
st_region_nowait
^
Modules/_bsddb.c:6563:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(nrequests);
    ^~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6549:55: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, sp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:73:1: note: expanded from here
st_nrequests
^
Modules/_bsddb.c:6564:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(nreleases);
    ^~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6549:55: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, sp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:75:1: note: expanded from here
st_nreleases
^
Modules/_bsddb.c:6566:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(nupgrade);
    ^~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6549:55: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, sp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:77:1: note: expanded from here
st_nupgrade
^
Modules/_bsddb.c:6567:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(ndowngrade);
    ^~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6549:55: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, sp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:79:1: note: expanded from here
st_ndowngrade
^
Modules/_bsddb.c:6573:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(lock_nowait);
    ^~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6549:55: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, sp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:81:1: note: expanded from here
st_lock_nowait
^
Modules/_bsddb.c:6574:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(lock_wait);
    ^~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6549:55: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, sp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:83:1: note: expanded from here
st_lock_wait
^
Modules/_bsddb.c:6576:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(ndeadlocks);
    ^~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6549:55: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, sp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:85:1: note: expanded from here
st_ndeadlocks
^
Modules/_bsddb.c:6579:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(nlocktimeouts);
    ^~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6549:55: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, sp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:91:1: note: expanded from here
st_nlocktimeouts
^
Modules/_bsddb.c:6580:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(ntxntimeouts);
    ^~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6549:55: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, sp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:93:1: note: expanded from here
st_ntxntimeouts
^
Modules/_bsddb.c:6582:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(objs_wait);
    ^~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6549:55: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, sp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:95:1: note: expanded from here
st_objs_wait
^
Modules/_bsddb.c:6583:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(objs_nowait);
    ^~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6549:55: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, sp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:97:1: note: expanded from here
st_objs_nowait
^
Modules/_bsddb.c:6584:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(lockers_wait);
    ^~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6549:55: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, sp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:99:1: note: expanded from here
st_lockers_wait
^
Modules/_bsddb.c:6585:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(lockers_nowait);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6549:55: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, sp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:101:1: note: expanded from here
st_lockers_nowait
^
Modules/_bsddb.c:6587:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(lock_wait);
    ^~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6549:55: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, sp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:103:1: note: expanded from here
st_lock_wait
^
Modules/_bsddb.c:6588:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(lock_nowait);
    ^~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6549:55: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, sp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:105:1: note: expanded from here
st_lock_nowait
^
Modules/_bsddb.c:6595:5: warning: implicit conversion loses integer precision:
      'roff_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(regsize);
    ^~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6549:55: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, sp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:109:1: note: expanded from here
st_regsize
^
Modules/_bsddb.c:6596:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(region_wait);
    ^~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6549:55: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, sp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:111:1: note: expanded from here
st_region_wait
^
Modules/_bsddb.c:6597:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(region_nowait);
    ^~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6549:55: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, sp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:113:1: note: expanded from here
st_region_nowait
^
Modules/_bsddb.c:6864:5: warning: implicit conversion loses integer precision:
      'roff_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(regsize);
    ^~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6856:58: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, statp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~~~~^~~~~~~~~
:136:1: note: expanded from here
st_regsize
^
Modules/_bsddb.c:6865:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(region_wait);
    ^~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6856:58: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, statp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~~~~^~~~~~~~~
:138:1: note: expanded from here
st_region_wait
^
Modules/_bsddb.c:6866:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(region_nowait);
    ^~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6856:58: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(d, #name, statp->st_##name)
                          ~~~~~~~~~~~~~           ~~~~~~~^~~~~~~~~
:140:1: note: expanded from here
st_region_nowait
^
Modules/_bsddb.c:6959:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(nbegins);
    ^~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6945:61: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)        _addIntToDict(d, #name, sp->st_##name)
                                ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:161:1: note: expanded from here
st_nbegins
^
Modules/_bsddb.c:6960:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(naborts);
    ^~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6945:61: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)        _addIntToDict(d, #name, sp->st_##name)
                                ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:163:1: note: expanded from here
st_naborts
^
Modules/_bsddb.c:6961:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(ncommits);
    ^~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6945:61: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)        _addIntToDict(d, #name, sp->st_##name)
                                ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:165:1: note: expanded from here
st_ncommits
^
Modules/_bsddb.c:6963:5: warning: implicit conversion loses integer precision:
      'roff_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(regsize);
    ^~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6945:61: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)        _addIntToDict(d, #name, sp->st_##name)
                                ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:169:1: note: expanded from here
st_regsize
^
Modules/_bsddb.c:6964:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(region_wait);
    ^~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6945:61: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)        _addIntToDict(d, #name, sp->st_##name)
                                ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:171:1: note: expanded from here
st_region_wait
^
Modules/_bsddb.c:6965:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(region_nowait);
    ^~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:6945:61: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)        _addIntToDict(d, #name, sp->st_##name)
                                ~~~~~~~~~~~~~           ~~~~^~~~~~~~~
:173:1: note: expanded from here
st_region_nowait
^
Modules/_bsddb.c:7785:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(bulk_fills);
    ^~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:207:1: note: expanded from here
st_bulk_fills
^
Modules/_bsddb.c:7786:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(bulk_overflows);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:209:1: note: expanded from here
st_bulk_overflows
^
Modules/_bsddb.c:7787:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(bulk_records);
    ^~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:211:1: note: expanded from here
st_bulk_records
^
Modules/_bsddb.c:7788:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(bulk_transfers);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:213:1: note: expanded from here
st_bulk_transfers
^
Modules/_bsddb.c:7789:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(client_rerequests);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:215:1: note: expanded from here
st_client_rerequests
^
Modules/_bsddb.c:7790:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(client_svc_miss);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:217:1: note: expanded from here
st_client_svc_miss
^
Modules/_bsddb.c:7791:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(client_svc_req);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:219:1: note: expanded from here
st_client_svc_req
^
Modules/_bsddb.c:7797:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(pg_duplicated);
    ^~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:229:1: note: expanded from here
st_pg_duplicated
^
Modules/_bsddb.c:7798:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(pg_records);
    ^~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:231:1: note: expanded from here
st_pg_records
^
Modules/_bsddb.c:7799:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(pg_requested);
    ^~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:233:1: note: expanded from here
st_pg_requested
^
Modules/_bsddb.c:7802:5: warning: implicit conversion loses integer precision:
      'db_ssize_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(election_cur_winner);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:239:1: note: expanded from here
st_election_cur_winner
^
Modules/_bsddb.c:7814:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(elections);
    ^~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:259:1: note: expanded from here
st_elections
^
Modules/_bsddb.c:7815:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(elections_won);
    ^~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:261:1: note: expanded from here
st_elections_won
^
Modules/_bsddb.c:7816:5: warning: implicit conversion loses integer precision:
      'db_ssize_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(env_id);
    ^~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:263:1: note: expanded from here
st_env_id
^
Modules/_bsddb.c:7819:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(log_duplicated);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:269:1: note: expanded from here
st_log_duplicated
^
Modules/_bsddb.c:7820:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(log_queued);
    ^~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:271:1: note: expanded from here
st_log_queued
^
Modules/_bsddb.c:7821:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(log_queued_max);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:273:1: note: expanded from here
st_log_queued_max
^
Modules/_bsddb.c:7822:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(log_queued_total);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:275:1: note: expanded from here
st_log_queued_total
^
Modules/_bsddb.c:7823:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(log_records);
    ^~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:277:1: note: expanded from here
st_log_records
^
Modules/_bsddb.c:7824:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(log_requested);
    ^~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:279:1: note: expanded from here
st_log_requested
^
Modules/_bsddb.c:7825:5: warning: implicit conversion loses integer precision:
      'db_ssize_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(master);
    ^~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:281:1: note: expanded from here
st_master
^
Modules/_bsddb.c:7826:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(master_changes);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:283:1: note: expanded from here
st_master_changes
^
Modules/_bsddb.c:7832:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(msgs_badgen);
    ^~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:2:1: note: expanded from here
st_msgs_badgen
^
Modules/_bsddb.c:7833:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(msgs_processed);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:4:1: note: expanded from here
st_msgs_processed
^
Modules/_bsddb.c:7834:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(msgs_recover);
    ^~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:6:1: note: expanded from here
st_msgs_recover
^
Modules/_bsddb.c:7835:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(msgs_send_failures);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:8:1: note: expanded from here
st_msgs_send_failures
^
Modules/_bsddb.c:7836:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(msgs_sent);
    ^~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:10:1: note: expanded from here
st_msgs_sent
^
Modules/_bsddb.c:7837:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(newsites);
    ^~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:12:1: note: expanded from here
st_newsites
^
Modules/_bsddb.c:7840:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(nthrottles);
    ^~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:18:1: note: expanded from here
st_nthrottles
^
Modules/_bsddb.c:7841:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(outdated);
    ^~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:20:1: note: expanded from here
st_outdated
^
Modules/_bsddb.c:7843:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(startsync_delayed);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:22:1: note: expanded from here
st_startsync_delayed
^
Modules/_bsddb.c:7846:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(txns_applied);
    ^~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:7781:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:26:1: note: expanded from here
st_txns_applied
^
Modules/_bsddb.c:8061:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(perm_failed);
    ^~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:8059:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:36:1: note: expanded from here
st_perm_failed
^
Modules/_bsddb.c:8062:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(msgs_queued);
    ^~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:8059:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:38:1: note: expanded from here
st_msgs_queued
^
Modules/_bsddb.c:8063:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(msgs_dropped);
    ^~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:8059:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:40:1: note: expanded from here
st_msgs_dropped
^
Modules/_bsddb.c:8064:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(connection_drop);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:8059:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:42:1: note: expanded from here
st_connection_drop
^
Modules/_bsddb.c:8065:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_ENTRY(connect_fail);
    ^~~~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:8059:62: note: expanded from macro 'MAKE_ENTRY'
#define MAKE_ENTRY(name)  _addIntToDict(stats, #name, statp->st_##name)
                          ~~~~~~~~~~~~~               ~~~~~~~^~~~~~~~~
:44:1: note: expanded from here
st_connect_fail
^
Modules/_bsddb.c:8565:57: warning: passing 'int *' to parameter of type
      'u_int32_t *' (aka 'unsigned int *') converts between pointers to integer
      types with different sign [-Wpointer-sign]
    err = self->sequence->get_cachesize(self->sequence, &size);
                                                        ^~~~~
Modules/_bsddb.c:8691:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_INT_ENTRY(wait);
    ^~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:8688:67: note: expanded from macro 'MAKE_INT_ENTRY'
#define MAKE_INT_ENTRY(name)  _addIntToDict(dict_stat, #name, sp->st_##name)
                              ~~~~~~~~~~~~~                   ~~~~^~~~~~~~~
:59:1: note: expanded from here
st_wait
^
Modules/_bsddb.c:8692:5: warning: implicit conversion loses integer precision:
      'uintmax_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    MAKE_INT_ENTRY(nowait);
    ^~~~~~~~~~~~~~~~~~~~~~
Modules/_bsddb.c:8688:67: note: expanded from macro 'MAKE_INT_ENTRY'
#define MAKE_INT_ENTRY(name)  _addIntToDict(dict_stat, #name, sp->st_##name)
                              ~~~~~~~~~~~~~                   ~~~~^~~~~~~~~
:61:1: note: expanded from here
st_nowait
^
127 warnings generated.
cc -bundle -undefined dynamic_lookup -Wl,-F. -L/AppleInternal/BuildRoot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.Internal.sdk/usr/local/libressl/lib build/temp.macosx-10.15-x86_64-2.7/Modules/_bsddb.o -L/Users/soralee/bsddb/lib -L/Users/soralee/bsddb/lib -ldb -o build/lib.macosx-10.15-x86_64-2.7/bsddb3/_pybsddb.so
ld: warning: directory not found for option '-L/AppleInternal/BuildRoot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.Internal.sdk/usr/local/libressl/lib'
ld: warning: directory not found for option '-L/Users/soralee/bsddb/lib'
ld: warning: directory not found for option '-L/Users/soralee/bsddb/lib'
creating build/bdist.macosx-10.15-x86_64
creating build/bdist.macosx-10.15-x86_64/egg
creating build/bdist.macosx-10.15-x86_64/egg/bsddb3
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/dbrecio.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/test_support.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/db.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/dbobj.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3
creating build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_sequence.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_fileid.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_distributed_transactions.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_misc.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_all.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_cursor_pget_bug.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_basics.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_pickle.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_early_close.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_db.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_join.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_recno.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_associate.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/__init__.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_dbenv.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_queue.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_lock.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_thread.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_compat.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_dbshelve.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_dbobj.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_compare.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_dbtables.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_get_none.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/tests/test_replication.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/__init__.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/dbutils.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/dbtables.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/_pybsddb.so -> build/bdist.macosx-10.15-x86_64/egg/bsddb3
copying build/lib.macosx-10.15-x86_64-2.7/bsddb3/dbshelve.py -> build/bdist.macosx-10.15-x86_64/egg/bsddb3
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/dbrecio.py to dbrecio.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/test_support.py to test_support.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/db.py to db.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/dbobj.py to dbobj.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_sequence.py to test_sequence.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_fileid.py to test_fileid.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_distributed_transactions.py to test_distributed_transactions.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_misc.py to test_misc.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_all.py to test_all.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_cursor_pget_bug.py to test_cursor_pget_bug.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_basics.py to test_basics.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_pickle.py to test_pickle.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_early_close.py to test_early_close.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_db.py to test_db.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_join.py to test_join.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_recno.py to test_recno.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_associate.py to test_associate.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/__init__.py to __init__.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_dbenv.py to test_dbenv.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_queue.py to test_queue.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_lock.py to test_lock.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_thread.py to test_thread.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_compat.py to test_compat.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_dbshelve.py to test_dbshelve.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_dbobj.py to test_dbobj.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_compare.py to test_compare.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_dbtables.py to test_dbtables.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_get_none.py to test_get_none.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/tests/test_replication.py to test_replication.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/__init__.py to __init__.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/dbutils.py to dbutils.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/dbtables.py to dbtables.pyc
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/dbshelve.py to dbshelve.pyc
creating stub loader for bsddb3/_pybsddb.so
byte-compiling build/bdist.macosx-10.15-x86_64/egg/bsddb3/_pybsddb.py to _pybsddb.pyc
creating build/bdist.macosx-10.15-x86_64/egg/EGG-INFO
copying bsddb3.egg-info/PKG-INFO -> build/bdist.macosx-10.15-x86_64/egg/EGG-INFO
copying bsddb3.egg-info/SOURCES.txt -> build/bdist.macosx-10.15-x86_64/egg/EGG-INFO
copying bsddb3.egg-info/dependency_links.txt -> build/bdist.macosx-10.15-x86_64/egg/EGG-INFO
copying bsddb3.egg-info/top_level.txt -> build/bdist.macosx-10.15-x86_64/egg/EGG-INFO
writing build/bdist.macosx-10.15-x86_64/egg/EGG-INFO/native_libs.txt
zip_safe flag not set; analyzing archive contents...
creating dist
creating 'dist/bsddb3-5.3.0-py2.7-macosx-10.15-x86_64.egg' and adding 'build/bdist.macosx-10.15-x86_64/egg' to it
removing 'build/bdist.macosx-10.15-x86_64/egg' (and everything under it)
Processing bsddb3-5.3.0-py2.7-macosx-10.15-x86_64.egg
Copying bsddb3-5.3.0-py2.7-macosx-10.15-x86_64.egg to /Library/Python/2.7/site-packages
Adding bsddb3 5.3.0 to easy-install.pth file

Installed /Library/Python/2.7/site-packages/bsddb3-5.3.0-py2.7-macosx-10.15-x86_64.egg
Processing dependencies for bsddb3==5.3.0
Fdinished processing dependencies for bsddb3==5.3.0


soralee@soraui-MacBookAir bsddb3-5.3.0 % python test.py
Running tests from /Users/soralee/Downloads/bsddb3-5.3.0/build

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Berkeley DB 18.1.32: (February 19, 2019)
bsddb.db.version():   (18, 1, 32)
bsddb.db.full_version(): ('Berkeley DB Release 18.1, library version 18.1.32: (February 19, 2019)', 18, 1, 0, 0, 32)
bsddb.db.__version__: 5.3.0
bsddb.db.cvsid:       $Id: _bsddb.c,v a377bbc1ed58 2012/01/16 18:54:28 jcea $
py module:            /Users/soralee/Downloads/bsddb3-5.3.0/build/lib.macosx-10.15-x86_64-2.7/bsddb3/__init__.py
extension module:     /Users/soralee/Downloads/bsddb3-5.3.0/build/lib.macosx-10.15-x86_64-2.7/bsddb3/__init__.py
python version:       2.7.16 (default, Feb 29 2020, 01:55:37)
[GCC 4.2.1 Compatible Apple LLVM 11.0.3 (clang-1103.0.29.20) (-macos10.15-objc-
My pid:               22396
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

writing build/bdist.macosx-10.15-x86_64/egg/EGG-INFO/native_libs.txt
zip_safe flag not set; analyzing archive contents...
creating 'dist/bsddb3-5.3.0-py2.7-macosx-10.15-x86_64.egg' and adding 'build/bdist.macosx-10.15-x86_64/egg' to it
removing 'build/bdist.macosx-10.15-x86_64/egg' (and everything under it)
Processing bsddb3-5.3.0-py2.7-macosx-10.15-x86_64.egg
Removing /Library/Python/2.7/site-packages/bsddb3-5.3.0-py2.7-macosx-10.15-x86_64.egg
Copying bsddb3-5.3.0-py2.7-macosx-10.15-x86_64.egg to /Library/Python/2.7/site-packages
bsddb3 5.3.0 is already the active version in easy-install.pth

Installed /Library/Python/2.7/site-packages/bsddb3-5.3.0-py2.7-macosx-10.15-x86_64.egg
Processing dependencies for bsddb3==5.3.0

https://www.youtube.com/watch?v=-ArRPlpU9Tc

여호와의 증인 판결문을 읽었었다.

 

부모님, 그리고 어릴적부터 주변인에 의해 확실히 종교인으로 검증된 인력이므로 군대를 가지 않은 것에 대해 무죄가

선고된 판결문이었다.

 

그리고 이 영화.

 

세상에는 참 판단하기 어려운 일이 많다.

'Blog History' 카테고리의 다른 글

195 애플도 이렇게 자세하게 쓰는데  (0) 2020.04.24
194  (0) 2020.04.23
190 - 플랫폼의 힘  (0) 2020.04.20
189  (1) 2020.04.20
188  (0) 2020.04.20

https://www.youtube.com/watch?v=BtaHCBwWZ68

 

YouTube

동영상을 볼 수 없습니다. 불편을 끼쳐 드려 죄송합니다.

www.youtube.com

동영상을 완전히 막을 수 있다.

 

사회 보편적인 통념 아래, 자유로운 경쟁은 필요하다.

 

https://www.youtube.com/watch?v=1r3iW5MmuPw

 

YouTube

동영상을 볼 수 없습니다. 불편을 끼쳐 드려 죄송합니다.

www.youtube.com

https://www.youtube.com/watch?v=Giu4PNwUi9g

 

YouTube

동영상을 볼 수 없습니다. 불편을 끼쳐 드려 죄송합니다.

www.youtube.com

 

'Blog History' 카테고리의 다른 글

194  (0) 2020.04.23
191-여호와의 증인에게 보여주고 싶은 영화  (0) 2020.04.20
189  (1) 2020.04.20
188  (0) 2020.04.20
187  (0) 2020.04.20

Meteor Mic firmware repair.zip


SAMSON METEOR microphone error

SAMSON METEOR microphone has a big problem in which the firmware can be corrupted very easily.  There is a suitable solution to fix this, but It's not useful utility in Windows 10 because It looks different in Windows 7. first of all you cannot find connect button. And I predict you to type VID and PID to the wrong textbox. The reason why It's not top of the dialog is the wrong position. On Windows 7, you can find VID & PID textbox on the bottom of the dialog. Actually, the box on the bottom is right.

 I will do this with event log to modify VID&PID, and used VMWARE to solve this, too.  So I will find genuine windows 7 or 8 machine to try again without any of protector like a vaccine program.


I think I'm going to throw the SAMSON MIC to the trash can, and buy a new mic in the long run. But I will try this on windows 7 machine again with attachment above.


I wholeheartedly recommended that SAMSON engineer team have to insert protecting circuit to protect firmware from USB power like a method to use condenser or something. 


망할... 샘쓴. 아니 삼손 엔지니어가 이 글을 볼까?


개썩을 5년 넘게 묵혀두다가 이제 뜯었는데 한번 방송하고 그 다음부터 고장난지 몰랐었다. 올려진 영상을 다시 보니 아이맥 프로 마이크로 돌아간 것 같아서 보니까,... 걍 마이크가 다운된 것이었다(펌웨어 날아감). 게다가 샘손 마이크에서 공식적으로 펌웨어 업데이트 솔루션을 올린게 있는데 안된다. ㅋㅋㅋ


아마 작은 USB 파워도 보호 못하는 보호 회로 하드웨어 설계자가 만들었다는 확신을 가지고 쓴다. 아마 10배 정도 비쌌으면 차라리 민감한 마이크니 사용자가 못한 것이라고 뒤집어 씌우면 먹힐 것 같다는 생각도 든다. 참, 사기꾼과 수법은 다양하고 사람들은 인지하지도 못한다 ㅋㅋㅋㅋ


국내에 뭐 서비스 센터도 없을테니 걍 데코용으로나 써야겠다.


에혀.


결론, 정의와진실튜브 애청자님 특히, 숙자누님 현주누님... 마이크 새로 사겠습니다 ㅠ




관련 링크


https://doc-0s-88-apps-viewer.googleusercontent.com/viewer/secure/pdf/bf7piid15kuc6nomilkabq7jirjco8oo/p2avh61pfvbnqsc19fjholpkms0d5gdb/1561214325000/lantern/07575487619971687060/ACFrOgCl2QWtW1uJHxPg4TX1H1I4393tqYALqdXFoMoV4_K-2rbuhwpzlkSY9WPs6ijA4TzFNrErqtH6LuWSRWoUR9-s5YLp_VfhIWKY8Cgm6B-rVq-6RHRjAdwJbcY7Lrmm9hoZgDqTiggUcEb1?print=true&nonce=n4n585h7ii88e&user=07575487619971687060&hash=mq59bs01n8qcl9d4lm7t6bt0rvmqjs3t

 

 

https://samsontech.zendesk.com/hc/en-us/articles/224920547-Meteor-Mic-Fix-for-Windows


'Blog History' 카테고리의 다른 글

191-여호와의 증인에게 보여주고 싶은 영화  (0) 2020.04.20
190 - 플랫폼의 힘  (0) 2020.04.20
188  (0) 2020.04.20
187  (0) 2020.04.20
186  (0) 2020.04.20

USB-UART Module Kit 1 13,090원 13,090원 30pin GPIO Ribbon Cable for XU4 1 3,960원 3,960원 XU4 Shifter Shield 1 23,760원 23,760원 Dual stacking 30pin and 12pin Header Extenders 1 2,420원 2,420원 30pin and 12pin Header Sockets 1 1,980원 1,980원 Shipping 1 3,300원 3,300원

ODROID 주변기기 가격

"hjhMaxBlocksHorizontal" 7

"hjhMaxBlocksVertical" 14

(Function)

2019-09-21 00:49:47.749627+0900 takit1[28116:772357] Could not load the "main_menu_background_1.png" image referenced from a nib in the bundle with identifier "games.takit.tw"

2019-09-21 00:49:47.943879+0900 takit1[28116:772357] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /Users/junhoha/Library/Developer/CoreSimulator/Devices/A2DE2EEB-1397-412C-9FDB-FF9BFDCE8FEB/data/Containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles

2019-09-21 00:49:47.944234+0900 takit1[28116:772357] [MC] Reading from private effective user settings.

2019-09-21 00:49:48.260934+0900 takit1[28116:772357] [Error] _authenticateUsingAlert:Faied to authenticate player with existing credentials.Error: Error Domain=GKErrorDomain Code=6 "The requested operation could not be completed because local player has not been authenticated." UserInfo={NSLocalizedDescription=The requested operation could not be completed because local player has not been authenticated.}

2019-09-21 00:49:48.264976+0900 takit1[28116:772357] [Error] startAuthenticationForExistingPrimaryPlayer:Failed to Authenticate player.Error: Error Domain=GKErrorDomain Code=2 "The requested operation has been canceled or disabled by the user." UserInfo={NSLocalizedDescription=The requested operation has been canceled or disabled by the user.}

2019-09-21 00:49:48.265105+0900 takit1[28116:772357] [Error] authenticationDidCompleteWithError: Authentication failed for player with error: Error Domain=GKErrorDomain Code=2 "The requested operation has been canceled or disabled by the user." UserInfo={NSLocalizedDescription=The requested operation has been canceled or disabled by the user.}

Local player could not be authenticated!

Optional(Error Domain=GKErrorDomain Code=2 "The requested operation has been canceled or disabled by the user." UserInfo={NSLocalizedDescription=The requested operation has been canceled or disabled by the user.})

'Blog History' 카테고리의 다른 글

190 - 플랫폼의 힘  (0) 2020.04.20
189  (1) 2020.04.20
187  (0) 2020.04.20
186  (0) 2020.04.20
185 - raspberry pi 64 bit + tensorflow installation  (0) 2020.04.20

https://brunch.co.kr/magazine/highschool

 

나는 고졸사원이다 매거진

#직장인 #회사원 #고졸사원

brunch.co.kr

솔직한 브런치라 좋다.

class Solution {

    public int solution(int[] A) {

        // write your code in Java SE 8

        int sum=0;       

        Arrays.sort(A);       

       

        for(int i=0; i < A.length ; i++) {

            if(A[i+1] - A[i] != 1) return A[i]+1;

        }

        return 0;

    }

}

 

class Solution { public int solution(int[] A) { // write your code in Java SE 8 int sum=0; for(int i=0; i < A.length ; i++) sum ^= A[i] ^ (i+1); return sum ^(A.length+1); } }

 

 

Task description

A zero-indexed array A consisting of N different integers is given. The array contains integers in the range [1..(N + 1)], which means that exactly one element is missing.

 

Your goal is to find that missing element.

 

Write a function:

 

class Solution { public int solution(int[] A); }

that, given a zero-indexed array A, returns the value of the missing element.

 

For example, given array A such that:

 

  A[0] = 2

  A[1] = 3

  A[2] = 1

  A[3] = 5

the function should return 4, as it is the missing element.

 

Assume that:

 

N is an integer within the range [0..100,000];

the elements of A are all distinct;

each element of array A is an integer within the range [1..(N + 1)].

Complexity:

 

expected worst-case time complexity is O(N);

expected worst-case space complexity is O(1), beyond input storage (not counting the storage required for input arguments).

Elements of input arrays can be modified.

Copyright 2009–2016 by Codility Limited. All Rights Reserved. Unauthorized copying, publication or disclosure prohibited.

'Blog History' 카테고리의 다른 글

189  (1) 2020.04.20
188  (0) 2020.04.20
186  (0) 2020.04.20
185 - raspberry pi 64 bit + tensorflow installation  (0) 2020.04.20
184  (0) 2020.04.20

https://jm.suwon.go.kr/main.php

불러오는 중입니다...

신청 완료. 참, 고맙네. 경제가 잘 돌도록 좋은 소상공인 사업자에 잘 써야 겠다.

 

A non-empty zero-indexed array A consisting of N integers is given. Array A represents numbers on a tape.

Any integer P, such that 0 < P < N, splits this tape into two non-empty parts: A[0], A[1], ..., A[P − 1] and A[P], A[P + 1], ..., A[N − 1].

The difference between the two parts is the value of: |(A[0] + A[1] + ... + A[P − 1]) − (A[P] + A[P + 1] + ... + A[N − 1])|

In other words, it is the absolute difference between the sum of the first part and the sum of the second part.

For example, consider array A such that:

A[0] = 3 A[1] = 1 A[2] = 2 A[3] = 4 A[4] = 3

We can split this tape in four places:

  • P = 1, difference = |3 − 10| = 7 
  • P = 2, difference = |4 − 9| = 5 
  • P = 3, difference = |6 − 7| = 1 
  • P = 4, difference = |10 − 3| = 7 

Write a function:

class Solution { public int solution(int[] A); }

that, given a non-empty zero-indexed array A of N integers, returns the minimal difference that can be achieved.

For example, given:

A[0] = 3 A[1] = 1 A[2] = 2 A[3] = 4 A[4] = 3

the function should return 1, as explained above.

Assume that:

  • N is an integer within the range [2..100,000];
  • each element of array A is an integer within the range [−1,000..1,000].

Complexity:

  • expected worst-case time complexity is O(N);
  • expected worst-case space complexity is O(N), beyond input storage (not counting the storage required for input arguments).

Elements of input arrays can be modified.

// you can also use imports, for example:

// import java.util.*;

 

// you can write to stdout for debugging purposes, e.g.

// System.out.println("this is a debug message");

 

 

class Solution {

    public int solution(int[] A) {

        // write your code in Java SE 8

        int partAlange = 0;

        int minValue = Integer.MAX_VALUE;

       

        int partAsum = 0;

        int partBsum = 0;

       

        for(int i=0; i < A.length ; i++) {

            if(i<=partAlange) partAsum += A[i];

            else partBsum += A[i];

            minValue = Math.min(Math.abs(partAsum - partBsum), minValue);

            partAsum = 0;

            partBsum = 0;

            partAlange++;

        }

       

        return minValue;

    }

}

 

class Solution {

    public int solution(int[] A) {

        // write your code in Java SE 8

        int partAlange = 0;

        int minValue = Integer.MAX_VALUE;

       

        int partAsum = 0;   

       

        for(int j=0; j < A.length ; j++) {

        for(int i=0; i < A.length ; i++) {

            if(i<=partAlange) partAsum += A[i];

            else partAsum -= A[i];           

            }

       

        minValue = Math.min(Math.abs(partAsum), minValue);

            partAsum = 0;           

            partAlange++;

        }

       

        return minValue;

    }

}

 

class Solution { public int solution(int[] A) { // write your code in Java SE 8 int minValue = Integer.MAX_VALUE; int head = A[0]; int tail = 0; for(int i=1; i < A.length ; i++) tail += A[i]; for(int j=1; j < A.length ; j++) { minValue = Math.min(Math.abs(head-tail), minValue); head += A[j]; tail -= A[j]; } return minValue; } }

 

'Blog History' 카테고리의 다른 글

188  (0) 2020.04.20
187  (0) 2020.04.20
185 - raspberry pi 64 bit + tensorflow installation  (0) 2020.04.20
184  (0) 2020.04.20
183  (0) 2020.04.20

https://kwon-young-hu.tistory.com/8
https://cafe.naver.com/pipc/23078
https://sunguru-infra.blogspot.com
https://blog.naver.com/aul-_-/221462370568
https://blog.naver.com/md0779/221406112975 

불러오는 중입니다...

https://www.youtube.com/watch?v=WqCnW_2XDw8

pip3 install pip

ERROR : ....whl is not a supported wheel on this platform. .....

Python 2.7 will reach the end of its life on January 1st, 2020. .....

 

cat /etc/issues

Raspbian 10

 

version 35 is not working properly. 

use 37.

 

ERROR: Cannot uninstall 'wrapt'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall...

 

  1. Reduced version:
    pip install --upgrade --force-reinstall pip==9.0.3
  2. Tried to re-install package:
    pip install xxx --disable-pip-version-check
  3. At last, recover the latest version for pip:
    pip install --upgrade pip

??

 

pip install --force-reinstall tensorflow-1.13.1-cp37-none-linux_armv7l.whl

 

wget https://www.piwheels.org/simple/grpcio/grpcio-1.22.0-cp37-cp37m-linux_armv7l.whl 

numpy/numpy-1.16.4-cp37-cp37m-linux_armv7l.whl

h5py/h5py02.9.0-cp37-cp37m-li....

.

.

 

.

 

pip3 install --trusted-host piwheels.org --trusted-host www.piwheels.org --ignore-installed --force-reinstall tensorflow-1.13.1-cp37-none-linux_armv7l.whl

 

'Blog History' 카테고리의 다른 글

187  (0) 2020.04.20
186  (0) 2020.04.20
184  (0) 2020.04.20
183  (0) 2020.04.20
179  (0) 2020.04.19

ODROID HDMI Patch

Post a reply
First unread post • 12 posts • Page 1 of 1
Enable HDMI console output in uboot
Unread postby suriyan » Sat Jan 03, 2015 4:55 pm

Hi,
This might be useful to some. This patch enables HDMI (720p) console output as uboot executes. I am attaching the patch (which could be merged) and the compiled uboot with the fusing scripts in case one wants to try it.

Thanks
- Suriyan
ATTACHMENTS
sd_fuse.hdmiout.tgz
(241.23 KiB) Downloaded 103 times
0001-Enable-HDMI-console.patch.gz
(1.63 KiB) Downloaded 127 times
Donate
suriyan

Posts: 473
Joined: Wed Jun 26, 2013 2:41 pm
languages_spoken: english
ODROIDs: odroid-u2/xu-e/u3/x2/xu3/c1
Top
Re: Enable HDMI console output in uboot
Unread postby mdrjr » Sat Jan 03, 2015 6:19 pm

That's nice :) Tested it here :P
mdrjr
Site Admin

Posts: 11620
Joined: Fri Feb 22, 2013 11:34 pm
Location: Brazil
languages_spoken: english, portuguese
ODROIDs: -
Top
Re: Enable HDMI console output in uboot
Unread postby tobetter » Sat Jan 03, 2015 8:18 pm

suriyan wrote:
Hi,
This might be useful to some. This patch enables HDMI (720p) console output as uboot executes. I am attaching the patch (which could be merged) and the compiled uboot with the fusing scripts in case one wants to try it.

Thanks
- Suriyan

Hey, Suriyan.
Welcome your patch! :mrgreen:
tobetter

Posts: 2040
Joined: Mon Feb 25, 2013 10:55 am
Location: Republic Of Korea
languages_spoken: Korean, English
ODROIDs: X, X2, U2, U3, XU3, C1
Top
Re: Enable HDMI console output in uboot
Unread postby parkerlreed » Mon Jan 05, 2015 6:44 am

Can this be applied from within the Ubuntu image?
parkerlreed

Posts: 6
Joined: Sun Jan 04, 2015 4:37 am
languages_spoken: english
ODROIDs: Odroid-C1
Top
Re: Enable HDMI console output in uboot
Unread postby mdrjr » Mon Jan 05, 2015 6:49 am

Yes, just run the sd_fuse that suryian posted :)
mdrjr
Site Admin

Posts: 11620
Joined: Fri Feb 22, 2013 11:34 pm
Location: Brazil
languages_spoken: english, portuguese
ODROIDs: -
Top
Re: Enable HDMI console output in uboot
Unread postby parkerlreed » Mon Jan 05, 2015 6:52 am

I ran

CODE: SELECT ALL
sudo ./sd_fusing.sh /dev/mmcblk0

but after a reboot it just seems to be the same.
parkerlreed

Posts: 6
Joined: Sun Jan 04, 2015 4:37 am
languages_spoken: english
ODROIDs: Odroid-C1
Top
Re: Enable HDMI console output in uboot
Unread postby mdrjr » Mon Jan 05, 2015 7:32 am

You need the uart kit to reset the u-boot env...

You need to run: 
CODE: SELECT ALL
env default -f
save
reset

On U-Boot
mdrjr
Site Admin

Posts: 11620
Joined: Fri Feb 22, 2013 11:34 pm
Location: Brazil
languages_spoken: english, portuguese
ODROIDs: -
Top
Re: Enable HDMI console output in uboot
Unread postby parkerlreed » Mon Jan 05, 2015 8:06 am

Ahh ok thanks. Might be a little bit before I hack up my uart cable. Thanks for the info.
parkerlreed

Posts: 6
Joined: Sun Jan 04, 2015 4:37 am
languages_spoken: english
ODROIDs: Odroid-C1
Top
Re: Enable HDMI console output in uboot
Unread postby suriyan » Tue Jan 06, 2015 8:39 am

Another way to revert to the default env without uboot intervention is to corrupt the uboot environment starting at sector 1024.
Donate
suriyan

Posts: 473
Joined: Wed Jun 26, 2013 2:41 pm
languages_spoken: english
ODROIDs: odroid-u2/xu-e/u3/x2/xu3/c1
Top
Re: Enable HDMI console output in uboot
Unread postby suriyan » Sun Jan 11, 2015 12:20 am

Hello mdrjr/tobetter,
Will this be merged? I need to build up on this for the usb stuff. hence this question. Also, if the -mno-unaligned-access in config.mk which this patch has, ums commands etc work too.
I have gotten usb host to work as well, and usb storage is fine, but still ironing out issues with low speed device enumeration. If this patch gets in, I do not have to keep remembering to have to change config.mk.

Thanks
- Suriyan
Donate
suriyan

Posts: 473
Joined: Wed Jun 26, 2013 2:41 pm
languages_spoken: english
ODROIDs: odroid-u2/xu-e/u3/x2/xu3/c1
Top
Re: Enable HDMI console output in uboot
Unread postby tobetter » Sun Jan 11, 2015 12:42 am

suriyan wrote:
Hello mdrjr/tobetter,
Will this be merged? I need to build up on this for the usb stuff. hence this question. Also, if the -mno-unaligned-access in config.mk which this patch has, ums commands etc work too.
I have gotten usb host to work as well, and usb storage is fine, but still ironing out issues with low speed device enumeration. If this patch gets in, I do not have to keep remembering to have to change config.mk.

Thanks
- Suriyan

Hello Suriyan,
Your patch is merged in internal git, and will be released sometime. -mno-unaligned-access is actually applied in other commit since it's not very related with HDMI output. But it improve some features. UMS already worked in the current U-boot.
U-boot github is updated just now.
tobetter

Posts: 2040
Joined: Mon Feb 25, 2013 10:55 am
Location: Republic Of Korea
languages_spoken: Korean, English
ODROIDs: X, X2, U2, U3, XU3, C1
Top
Re: Enable HDMI console output in uboot
Unread postby suriyan » Sun Jan 11, 2015 7:34 am

Thanks tobetter,
I see the changes that you mention now!
- Suriyan
Donate
suriyan

Posts: 473
Joined: Wed Jun 26, 2013 2:41 pm
languages_spoken: english
ODROIDs: odroid-u2/xu-e/u3/x2/xu3/c1
Top
Display posts from previous: Sort by Go
Post a reply
12 posts • Page 1 of 1
Return to Hardware and peripherals

Jump to: Go
WHO IS ONLINE
Users browsing this forum: Google [Bot] and 4 guests

Board indexThe team • Delete all board cookies • All times are UTC + 9 hours
Powered by phpBB® Forum Software © phpBB Group

sd_fuse.hdmiout.tgz
0.24MB
0001-Enable-HDMI-console.patch.gz
0.00MB

'Blog History' 카테고리의 다른 글

186  (0) 2020.04.20
185 - raspberry pi 64 bit + tensorflow installation  (0) 2020.04.20
183  (0) 2020.04.20
179  (0) 2020.04.19
178  (0) 2020.04.14

블로거, 인스타, 페북, 다른 블로그, 이 블로그의 다른 글 포함하여 모두 개발일지 999에 통합 작업을 시작하였다.

이유는 간단하다. 내 삶에서 개발이 차지하는 비율이 80%는 넘어가는 것 같아서이다.

잠 자리에 누워, 휴가를 가서도 문제 풀이 생각만 난다.

 

운 좋게 워낙 어릴 적 프로그래밍을 했기에 여러 방황을 거쳤고 40이 된 지금은 슬럼프가 없을 것 같아 더 좋다.

 

과거의 기록은 과거의 날짜로 남기는게 맞겠지만 (물론, 블로그의 기능이 바뀌면 내 의지대로 되지 않겠지만) 왠만하면 수정하면서 현재의 날짜로 바꾸려고 한다. 사실 이 글을 쓰기 전 2개 포스팅을 이미 놓쳤다. 그래서 숫자가 순서대로 되어 있지 않을 수도 있다. 사실 순서대로 보는 사람은 거의 없고 나 역시 읽으면서 약간의 수정을 할 수도 있어서 created 시간 보다 modified 시간을 기록하는 것이 맞다는 생각이다.

 

개발일지 999가 끝나는 순간 다음 뭘 더 생성할 지 고민해 봐야겠다.

'Blog History' 카테고리의 다른 글

185 - raspberry pi 64 bit + tensorflow installation  (0) 2020.04.20
184  (0) 2020.04.20
179  (0) 2020.04.19
178  (0) 2020.04.14
177  (0) 2020.04.14

179번이다. 이 번 글은 라이브 글을 조금 적으려고 한다.

 

기초 기술 공개/친절한 기술 공개 혹은 공짜 기술 공개는 하면 안된다는 생각으로 완전히 바뀌었다. 열심히 배운 사람들이 접하게 되는 중/고급 기술은 공개해도 되는 것 같다. 내 자리를 지키는 것이 문제가 아니라 쉽게 얻은 것은 너무 쉽게 말하는 경향이 있는 것 같다. 나 역시 지금껏 그래왔지만 더 격하게 정당한 댓가를 지불하고 배우려고 한다. FSF에서 말했던 공짜 소프트웨어의 의미를 이제야 정말 알 것 같다. 기술을 배우는데 들인 SW 엔지니어의 노동력은 공짜가 아니다.

 

그렇다. 이런 생각이 들기 시작한 후로 블로그를 티스토리로 통합하기 시작했고, 중급자에게는 나의 삽질 로그, 명령어 뭉치도 충분히 도움될 것을 알기에 그냥 그대로 올리기 시작했다. 구글 서칭 알고리즘이 거르는 것 보다 지도 학습처럼 조회수는 높은데 단체는 아닌 것 같고, 딱히 돈을 안 줘도 될 것 같은 애들만 골라서 레이블을 붙이는 등의 통계 조작은 여전히 하는 것 같다.

 

친구가 충분히 파급력이 생길만한 이력이나 위치에 있으면서 왜 글은 그렇게 쓰지 않냐고 물었다.

 

세상 살다보면 뭐, 그 정도까지 거창하지 않더라도 직장만 봐도 정말 실력있고 일하는 인력은 10%도 안된다.

그런 인력끼리 네트워킹은 딱히 일 이야기도 안한다. 왜냐면 보내는 시간 대부분이 일로 보내기 때문이다.

난 90%를 위해서 글을 쓰는게 아니다. 

 

책도 90%를 위해 냈다면 굳이 1000원에 이북을 퍼뜨리지도 않았겠지.

 

난, 정말 돈이 없는데 천재인 10%의 인력.

그리고 내 주변에서 정말 정의롭고 실력있는 사람 10% 중 내 글이 도움될 만한 0.0x% 를 위해 쓴다.

 

워낙 초창기부터 해서 정말 운이 좋거나 올인하지 않으면 돈이 안되는 플랫폼이라는 것은 진작에 알고 있었고.

수 많은 성공을 분석 해봐도 취미로 했다고 시작은 했다고 쳐도 어느 순간에는 올인이 답인데,

난 그런 올인을 할 생각은 못해봤다.

 

뭐, 다음 메인에 뜨는 글이나 네이버 메인에 2번이나 뜬 뉴스 기사를 만드는 사건의 장본인이기도 했지만

뭔가 된다 싶을 때에도 내가 원하는 것은 인간의 언어를 배우는 것이 아니라 신이 만든 API를 배우는 것이 목적이었기 때문이다.

 

사실, 인간에게 큰 기대를 걸 수 없는 가정환경. 그럼에도 기대를 하고 열심히 싸워왔던 지난 날의 결과에 대해

난 염세적 인간이 될 수 밖에 없다.

 

다만, 강의를 오래 하고 새롭게 태어난 생명들과 조우하다 보니 늘 그들에게서 에너지를 얻고,

염세적이지 말아야지 오늘 하루 정도는 더 적극적이어야지 하다보니

적극적, 밝은, 긍정 에너지의 수식어를 얻게 된 것 뿐이다.

 

늘 진정한 나와 다른 SNS 활동이니 다른 사람들이 볼 때는 잘 되는 상황에서도 늘 도전을 할 수 있었고,

내가 피해를 보지만 알려야 할 것에 대해 주저하지는 않았다.

 

그리고 다른 사람들은 내가 피해를 본 다고 생각하지만 현실과 타협하지 않으면 기억력이 전혀 줄지 않아서

정말 피해를 보는 일 따위는 없다. 악조건에서 기술로 현실을 헤쳐나가다 보면 어느새 새로운 친구도 생긴다.

물론, 그 친구의 대부분은 힘에 굴복했던 사람이라 힘이 생긴다 싶으니 붙는 사람이긴 하다. 대부분은 또 상황이

안 좋으면 떠나는데 이런 습성을 알기 때문에 나 또한 정의롭지 않은 사람들을 공격하기에 딱 좋다.

 

엄청 대단해 보이지만 핵심을 공격하면, 그 주변 사람 다 떠나고 결국 그 사람 하나만 남는데 그 사람이 별 시덥잖은 능력을 가졌다면 금방 무너져 내리기 때문이다.

 

시스템도 잘 아니까 시스템 속에 숨은 녀석도 잘 공격을 한다.

 

김용철 님께서 날 가르쳐 주셨다. 삼성을 생각한다는 책으로.

 

진정한 사람만 남으면 된다는 것도.

 

그리고 비율은 10% 밖에 안되어도 꽤 많은 사람이 정의롭다.

 

https://www.youtube.com/watch?v=ZPeAIvpRqMg

 

기술이 베이스다 보니 정치적 환경에서 양심 선언을 해도, 딱히 정치적으로는 피해를 입지 않는 사람이 글을 쓴다.

 

내 포스팅은 깔끔하지 않지만 내 생각과 유용한 정보를 담는 것이 특징이라 페북에서 지우는 글을 또 붙여 본다.

 

http://www.sisaweekly.com/news/articleView.html?idxno=31118 괜찮네

[시사주간=현지용 기자] 네이버가 오는 19일부터 네이버 뉴스 댓글 작성자의 댓글 이력을 공개하는 시스템으로 전환한다. 18일 네이버는 이 같이 밝히며 댓글 작성자의 활동 이력 및 닉네임도 모두 공개로 전환시...

SISAWEEKLY.COM

[기자수첩] 네이버 뉴스 댓글 이력 공개, 여론조작 전장 벗어날까 - 시사주간

[시사주간=현지용 기자] 네이버가 오는 19일부터 네이버 뉴스 댓글 작성자의 댓글 이력을 공개하는 시스템으로 전환한다. 18일 네이버는 이 같이 밝히며 댓글 작성자의 활동 이력 및 닉네임도 모두 공개로 전환시...

[시사주간=현지용 기자] 네이버가 오는 19일부터 네이버 뉴스 댓글 작성자의 댓글 이력을 공개하는 시스템으로 전환한다. 18일 네이버는 이 같이 밝히며 댓글 작성자의 활동 이력 및 닉네임도 모두 공개로 전환시...

 

좋아요

댓글공유하기

댓글

 

댓글을 입력하세요...

 

  •  
  •  
  •  
  •  

 

하준호

1시간

NAVER

 

중국 사형 제도가 이해됨.

[BY 차이 나는 중국] 중국은 땅이 넓은 만큼 다양한 음식들이 존재합니다. 하지만 그 중 나쁜 마음을 가...

M.POST.NAVER.COM

중국의 가짜음식

[BY 차이 나는 중국] 중국은 땅이 넓은 만큼 다양한 음식들이 존재합니다. 하지만 그 중 나쁜 마음을 가...

[BY 차이 나는 중국] 중국은 땅이 넓은 만큼 다양한 음식들이 존재합니다. 하지만 그 중 나쁜 마음을 가...

댓글 3개

좋아요

댓글공유하기

댓글

'Blog History' 카테고리의 다른 글

184  (0) 2020.04.20
183  (0) 2020.04.20
178  (0) 2020.04.14
177  (0) 2020.04.14
176  (0) 2020.04.14

/*1450427332,,JIT Construction: v2098386,en_US*/

/**
 * Copyright Facebook Inc.
 *
 * Licensed under the Apache License, Version 2.0
 * http://www.apache.org/licenses/LICENSE-2.0
 */
try {(function(a,b,c,d){'use strict';var e='https://www.facebook.com/tr/',f=/^\d+$/,g={allowDuplicatePageViews:false},h=(function(ha){var ia={exports:ha};'use strict';var ja='deep',ka='shallow';function la(){this.list=[];}la.prototype={append:function(na,oa){this._append(encodeURIComponent(na),oa,ja);},_append:function(na,oa,pa){if(Object(oa)!==oa){this._appendPrimitive(na,oa);}else if(pa===ja){this._appendObject(na,oa);}else this._appendPrimitive(na,ma(oa));},_appendPrimitive:function(na,oa){if(oa!=null)this.list.push([na,oa]);},_appendObject:function(na,oa){for(var pa in oa)if(oa.hasOwnProperty(pa)){var qa=na+'['+encodeURIComponent(pa)+']';this._append(qa,oa[pa],ka);}},each:function(na){var oa=this.list;for(var pa=0,qa=oa.length;pa<qa;pa++)na(oa[pa][0],oa[pa][1]);},toQueryString:function(){var na=[];this.each(function(oa,pa){na.push(oa+'='+encodeURIComponent(pa));});return na.join('&');}};function ma(na){if(typeof JSON==='undefined'||JSON===null||!JSON.stringify){return Object.prototype.toString.call(na);}else return JSON.stringify(na);}ia.exports=la;return ia.exports;})({}),i=(function(ha){var ia={exports:ha};'use strict';var ja='console',ka='error',la='Facebook Pixel Error',ma='Facebook Pixel Warning',na='warn',oa=Object.prototype.toString,pa=!('addEventListener' in b),qa=function(){},ra=a[ja]||{},sa=a.postMessage||qa;function ta(ya){return Array.isArray?Array.isArray(ya):oa.call(ya)==='[object Array]';}function ua(ya){sa({action:'FB_LOG',logType:la,logMessage:ya},'*');if(ka in ra)ra[ka](la+': '+ya);}function va(ya){sa({action:'FB_LOG',logType:ma,logMessage:ya},'*');if(na in ra)ra[na](ma+': '+ya);}function wa(ya,za,ab){za=pa?'on'+za:za;var bb=pa?'attachEvent':'addEventListener',cb=pa?'detachEvent':'removeEventListener',db=function(){ya[cb](za,db,false);ab();};ya[bb](za,db,false);}function xa(ya,za,ab){var bb=ya[za];ya[za]=function(){var cb=bb.apply(this,arguments);ab.apply(this,arguments);return cb;};}ha.isArray=ta;ha.logError=ua;ha.logWarning=va;ha.listenOnce=wa;ha.injectMethod=xa;return ia.exports;})({}),j=(function(ha){var ia={exports:ha};'use strict';var ja=/^[+-]?\d+(\.\d+)?$/,ka='number',la='currency_code',ma={AED:1,ARS:1,AUD:1,BOB:1,BRL:1,CAD:1,CHF:1,CLP:1,CNY:1,COP:1,CRC:1,CZK:1,DKK:1,EUR:1,GBP:1,GTQ:1,HKD:1,HNL:1,HUF:1,IDR:1,ILS:1,INR:1,ISK:1,JPY:1,KRW:1,MOP:1,MXN:1,MYR:1,NIO:1,NOK:1,NZD:1,PEN:1,PHP:1,PLN:1,PYG:1,QAR:1,RON:1,RUB:1,SAR:1,SEK:1,SGD:1,THB:1,TRY:1,TWD:1,USD:1,UYU:1,VEF:1,VND:1,ZAR:1},na={value:{type:ka,isRequired:true},currency:{type:la,isRequired:true}},oa={PageView:{},ViewContent:{},Search:{},AddToCart:{},AddToWishlist:{},InitiateCheckout:{},AddPaymentInfo:{},Purchase:{validationSchema:na},Lead:{},CompleteRegistration:{},CustomEvent:{validationSchema:{event:{isRequired:true}}}},pa=Object.prototype.hasOwnProperty;function qa(sa,ta){this.eventName=sa;this.params=ta||{};this.error=null;this.warnings=[];}qa.prototype={validate:function(){var sa=this.eventName,ta=oa[sa];if(!ta)return this._error('Unsupported event: '+sa);var ua=ta.validationSchema;for(var va in ua)if(pa.call(ua,va)){var wa=ua[va];if(wa.isRequired===true&&!pa.call(this.params,va))return this._error('Required parameter "'+va+'" is missing for event "'+sa+'"');if(wa.type)if(!this._validateParam(va,wa.type))return this._error('Parameter "'+va+'" is invalid for event "'+sa+'"');}return this;},_validateParam:function(sa,ta){var ua=this.params[sa];switch(ta){case ka:var va=ja.test(ua);if(va&&Number(ua)<0)this.warnings.push('Parameter "'+sa+'" is negative for event "'+this.eventName+'"');return va;case la:return ma[ua.toUpperCase()]===1;}return true;},_error:function(sa){this.error=sa;return this;}};function ra(sa,ta){return new qa(sa,ta).validate();}ha.validateEvent=ra;return ia.exports;})({}),k=a.fbq;if(!k)return i.logError('Pixel code is not installed correctly on this page');var l=Array.prototype.slice,m=Object.prototype.hasOwnProperty,n=c.href,o=false,p=false,q=a.top!==a,r=[],s={},t=b.referrer,u={};function v(ha){for(var ia in ha)if(m.call(ha,ia))this[ia]=ha[ia];}k.callMethod=function(ha){var ia=l.call(arguments),ja=ia.length===1&&i.isArray(ia[0]);if(ja)ia=ia[0];if(ha.slice(0,6)==='report'){var ka=ha.slice(6);if(ka==='CustomEvent'){ka=(ia[1]||{}).event||ka;ia=['trackCustom',ka].concat(ia.slice(1));}else ia=['track',ka].concat(ia.slice(1));}ha=ia.shift();switch(ha){case 'addPixelId':o=true;return z.apply(this,ia);case 'init':p=true;return z.apply(this,ia);case 'track':if(f.test(ia[0]))return ca.apply(this,ia);if(ja)return ba.apply(this,ia);return aa.apply(this,ia);case 'trackCustom':return ba.apply(this,ia);case 'send':return da.apply(this,ia);default:i.logError('Invalid or unknown method name "'+ha+'"');}};if(k.pixelId){o=true;z(k.pixelId);}var w=k.queue.slice();for(var x=0,y=w.length;x<y;x++)k.callMethod.apply(k,w[x]);k.queue.length=0;if(o&&p||a.fbq!==a._fbq)i.logWarning('Multiple pixels with conflicting versions were detected on this page');if(r.length>1)i.logWarning('Multiple different pixels were detected on this page');(function ha(){if(k.disablePushState===true)return;if(!d.pushState||!d.replaceState)return;var ia=function(){t=n;n=c.href;if(n===t)return;var ja=new v({allowDuplicatePageViews:true});ba.call(ja,'PageView');};i.injectMethod(d,'pushState',ia);i.injectMethod(d,'replaceState',ia);a.addEventListener('popstate',ia,false);})();function z(ha,ia){if(m.call(s,ha)){i.logError('Duplicate Pixel ID: '+ha);return;}var ja={id:ha,userData:ia||{}};r.push(ja);s[ha]=ja;}function aa(ha,ia){ia=ia||{};var ja=j.validateEvent(ha,ia);if(ja.error)i.logError(ja.error);if(ja.warnings)for(var ka=0;ka<ja.warnings.length;ka++)i.logWarning(ja.warnings[ka]);if(ha==='CustomEvent')ha=ia.event;ba.call(this,ha,ia);}function ba(ha,ia){var ja=this instanceof v?this:g,ka=ha==='PageView';for(var la=0,ma=r.length;la<ma;la++){var na=r[la];if(ka&&ja.allowDuplicatePageViews===false&&u[na.id]===true)continue;ea(na,ha,ia);if(ka)u[na.id]=true;}}function ca(ha,ia){ea(null,ha,ia);}function da(ha,ia){for(var ja=0,ka=r.length;ja<ka;ja++)ea(r[ja],ha,ia);}function ea(ha,ia,ja){ha=ha||{};var ka=new h();ka.append('id',ha.id);ka.append('ev',ia);ka.append('dl',n);ka.append('rl',t);ka.append('if',q);ka.append('ts',new Date().valueOf());ka.append('cd',ja);ka.append('ud',ha.userData);ka.append('v',k.version);ka.append('a',k.agent);var la=ka.toQueryString();if(2048>(e+'?'+la).length){fa(e,la);}else ga(e,ka);}function fa(ha,ia){var ja=new Image();ja.src=ha+'?'+ia;}function ga(ha,ia){var ja='fb'+Math.random().toString().replace('.',''),ka=b.createElement('form');ka.method='post';ka.action=ha;ka.target=ja;ka.acceptCharset='utf-8';ka.style.display='none';var la=!!(a.attachEvent&&!a.addEventListener),ma=la?'

 

webpackJsonp([1,61],[,,,,,,,,,,,function(e,t,i){function n(e,t){var i={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=e[n]);return i}function r(e){"use strict";s.constructor.call(this,e),this.$FastLink_handleClick=this.$FastLink_handleClick.bind(this)}var o,s,a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},l=i(1),p=i(42),c=i(18),u=l.PropTypes;o=l.Component,s=o&&o.prototype,Object.assign(r,o),r.prototype=Object.create(s),r.prototype.constructor=r,r.__superConstructor__=o,r.prototype.$FastLink_handleClick=function(e){"use strict";var t=this.props.onClick;if(!t||(t(e),!e.isDefaultPrevented())){var i=e.nativeEvent;if(!i.metaKey&&!i.ctrlKey){var n=!("_blank"===this.props.target||"_top"===this.props.target);n&&(e.preventDefault(),c.navigate(this.props.href,this.props.params))}}},r.prototype.render=function(){"use strict";var e=this.props,t=e.href,i=e.params,r=n(e,["href","params"]);if(i&&t&&!t.match(/^\w+:/)){var o=new p(t,i);t=o.getURL()}return l.createElement("a",a({},r,{href:t,onClick:this.$FastLink_handleClick}))},r.propTypes={href:u.string,onClick:u.func,params:u.object},r.defaultProps={href:null,onClick:null,params:{}},e.exports=r},,function(e,t,i){function n(e){return"/media/"+e+"/flag/"}function r(e,t){var i="/explore/locations/"+e+"/";return t&&(i=o(t)+"?"+p.MODAL_PARAM_LOCATION+"="+e),i}function o(e){return"/p/"+e+"/"}function s(e,t){var i="/"+e+"/";return t&&(i=o(t)+"?"+p.MODAL_PARAM_PROFILE+"="+e),i}function a(e){return"/_u"+s(e)}function l(e,t){var i="/explore/tags/"+e+"/";return t&&(i=o(t)+"?"+p.MODAL_PARAM_TAG+"="+e),i}var p=i(32);e.exports={buildFlagMediaLink:n,buildLocationLink:r,buildMediaLink:o,buildTagLink:l,buildUserLink:s,buildUserLinkForAndroid:a}},,,,,,,function(e,t){var i=600,n=335,r={SITE_WIDTHS:{wide:i+n,narrow:i},SMALL_SCREEN_CUTOFF:414,LANDSCAPE_SMALL_SCREEN_CUTOFF:736,getHeightPercent:function(e){return e.height/e.width*100},getPageWidthForPostDimensions:function(e){var t=i;return e.height>e.width&&(t=Math.ceil(e.width*i/e.height)),t+n},needsCustomMaxPageWidth:function(e){return!!(e&&e.height&&e.width&&e.height>e.width)}};e.exports=r},,,,,,function(e,t,i){(function(t){function n(e){"use strict";o.constructor.call(this,e),m++,this.handleBaseClick=this.handleBaseClick.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this,m),this.lastFocusedElement=document.activeElement}var r,o,s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},a=i(27),l=i(61),p=i(1),c=i(8),u=i(6),d=i(111),h=i(4),m=0,f=p.PropTypes;r=p.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.componentDidMount=function(){"use strict";1===m&&(u.getRootElement().setAttribute("aria-hidden","true"),this.$Modal_cachedBodyOverflow=document.body.style.overflow,document.body.style.overflow="hidden"),this.mountNode=document.createElement("div"),this.mountNode.style.position="relative",this.mountNode.style.zIndex=m,document.body.appendChild(this.mountNode),this.$Modal_escapeListener=a.listen(document.body,"keydown",this.handleKeyDown),this.renderModal(this.props,function(){d(c.findDOMNode(this))})},n.prototype.componentWillUnmount=function(){"use strict";m--,this.$Modal_escapeListener.remove(),c.unmountComponentAtNode(this.mountNode),this.mountNode.parentNode.removeChild(this.mountNode),0===m&&(u.getRootElement().setAttribute("aria-hidden",!1),document.body.style.overflow=this.$Modal_cachedBodyOverflow),this.lastFocusedElement&&this.lastFocusedElement.parentNode&&this.lastFocusedElement.focus(),delete this.lastFocusedElement},n.prototype.componentWillReceiveProps=function(e){"use strict";this.renderModal(e)},n.prototype.handleBaseClick=function(e){"use strict";e.target===e.currentTarget&&this.props.onClose()},n.prototype.handleKeyDown=function(e,t){"use strict";e===m&&t.which===l.ESC&&this.props.onClose()},n.prototype.renderModal=function(e,t){"use strict";if(this.mountNode){var i={};e.contentMaxWidth?i.style={maxWidth:e.contentMaxWidth+"px"}:i.style={};var n=p.createElement("div",{className:h("r98",e.className),onClick:this.handleBaseClick,role:"dialog"},p.createElement("div",{className:"s98"},e.viewportChildren),p.createElement("div",{className:"t98",onClick:this.handleBaseClick},p.createElement("div",s({onClick:this.handleBaseClick},i,{className:"u98"}),e.children)),p.createElement("button",{className:"v98",onClick:e.onClose},"닫기"));c.render(n,this.mountNode,t)}},n.prototype.render=function(){"use strict";return null},n.propTypes={contentMaxWidth:f.number,onClose:f.func.isRequired},e.exports=n,i(147)}).call(t,i(5))},function(e,t,i){var n=i(10),r={listen:function(e,t,i){return e.addEventListener?(e.addEventListener(t,i,!1),{remove:function(){e.removeEventListener(t,i,!1)}}):e.attachEvent?(e.attachEvent("on"+t,i),{remove:function(){e.detachEvent("on"+t,i)}}):void 0},capture:function(e,t,i){return e.addEventListener?(e.addEventListener(t,i,!0),{remove:function(){e.removeEventListener(t,i,!0)}}):{remove:n}},registerDefault:function(){}};e.exports=r},,,,,,,,,,,,,function(e,t,i){function n(e,t){for(var i=arguments.length,n=Array(i>2?i-2:0),a=2;i>a;a++)n[a-2]=arguments[a];return e?void 0:s(0,"You must supply a component argument to createPropsDependentContainer; a React component to wrap"),Array.isArray(n)?void 0:s(0,"You must supply a storeDependencies array to createPropsDependentContainer; a list of flux stores to watch for changes"),"function"!=typeof t?s(0,"You must supply a propDependentStateFetcher function to createPropsDependentContainer; a function that accepts props as the only argument, and returns an object to merge into the current state"):void 0,function(){function i(e){"use strict";a.constructor.call(this,e),this.$_class_onChange=function(){this.setState({derivedProps:t(this.props)})}.bind(this),this.state={derivedProps:t(e)}}var s,a;return s=o.Component,a=s&&s.prototype,Object.assign(i,s),i.prototype=Object.create(a),i.prototype.constructor=i,i.__superConstructor__=s,i.prototype.componentDidMount=function(){"use strict";n.forEach(function(e){return e.addChangeListener(this.$_class_onChange)}.bind(this))},i.prototype.componentWillReceiveProps=function(e){"use strict";this.setState({derivedProps:t(e)})},i.prototype.componentWillUnmount=function(){"use strict";n.forEach(function(e){return e.removeChangeListener(this.$_class_onChange)}.bind(this))},i.prototype.render=function(){"use strict";return o.createElement(e,r({},this.props,this.state.derivedProps))},i}()}var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},o=i(1),s=i(3);e.exports=n},,,,,,,,function(e,t,i){var n=i(1),r=n.PropTypes;e.exports={fullName:r.string,id:r.string.isRequired,username:r.string.isRequired}},,,,,,,function(e,t,i){function n(e,t){var i={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=e[n]);return i}var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},o=i(242),s=i(1),a=s.PropTypes,l=i(110),p=l.INTEGER_SHORTENED,c=l.truncateNumberPrecisionConsumer,u=s.createClass({displayName:"ConsumerBigNumber",propTypes:{customFormat:a.string,shortenNumber:a.bool},getDefaultProps:function(){return{shortenNumber:!1}},render:function(){var e,t=this.props,i=t.customFormat,a=t.numberFilter,l=t.shortenNumber,u=n(t,["customFormat","numberFilter","shortenNumber"]);return l&&this.props.value>=1e4?(e=p,a=function(e){return Math.floor(c(e))}):i&&(e=i),s.createElement(o,r({},u,{customFormat:e,numberFilter:a}))}});e.exports=u},function(e,t,i){e.exports=i(102).create},function(e,t,i){var n=i(7);e.exports=n({SEARCH_RESULTS_FAILED_TO_LOAD:null,SEARCH_RESULTS_LOADED:null,SEARCH_RESULT_NAVIGATED_TO:null,SEARCH_RESULTS_REQUESTED:null,SEARCH_RESULT_SELECTED:null,SEARCH_QUERY_CLEARED:null,HASHTAG_RESULT:null,PLACE_RESULT:null,USER_RESULT:null,SELECTED_WITH_KEYBOARD:null,SELECTED_WITH_MOUSE:null})},,,,function(e,t){e.exports={BACKSPACE:8,TAB:9,RETURN:13,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46,COMMA:188,PERIOD:190,A:65,Z:90}},function(e,t,i){function n(e,t){var i={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=e[n]);return i}function r(){"use strict";o.apply(this,arguments)}var o,s,a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},l=i(1),p=i(14),c=i(4),u=i(7),d=u({danger:null,neutral:null}),h=l.PropTypes;o=l.Component,s=o&&o.prototype,Object.assign(r,o),r.prototype=Object.create(s),r.prototype.constructor=r,r.__superConstructor__=o,r.prototype.render=function(){"use strict";var e=this.props,t=e.className,i=e.variant,r=n(e,["className","variant"]);return l.createElement("button",a({},r,{className:c(t,"h99"+(i===d.danger?" i99":"")+(i===d.neutral?" j99":""))}))},r.defaultProps={variant:d.neutral},r.propTypes={onClick:h.func,variant:h.oneOf(p(d)).isRequired},r.VARIANTS=d,e.exports=r,i(300)},function(e,t,i){function n(){"use strict";r.apply(this,arguments)}var r,o,s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},a=i(26),l=i(1),p=i(8),c=i(4);r=a,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.renderModal=function(e){"use strict";if(this.mountNode){var t=l.createElement("div",{className:c("w99",e.className),onClick:this.handleBaseClick,role:"dialog"},l.createElement("div",{className:"x99",onClick:this.handleBaseClick},e.children));p.render(t,this.mountNode)}},n.propTypes=s({},a.PropTypes),e.exports=n,i(309)},,function(e,t){function i(){return{top:window.pageYOffset,right:window.pageXOffset+window.innerWidth,bottom:window.pageYOffset+window.innerHeight,left:window.pageXOffset,width:window.innerWidth,height:window.innerHeight}}function n(e,t){return o(e,{x:-t.left,y:-t.top})}function r(e,t){var i=e.width*t.x,n=e.height*t.y,r=(i-e.width)/2,o=(n-e.height)/2;return{top:e.top-o,right:e.right+r,bottom:e.bottom+o,left:e.left-r,width:i,height:n}}function o(e,t){return{top:e.top+t.y,right:e.right+t.x,bottom:e.bottom+t.y,left:e.left+t.x,width:e.width,height:e.height}}function s(e,t){return!(e.bottom<t.top||e.left>t.right||e.top>t.bottom||e.right<t.left)}e.exports={getForViewport:i,getInParentCoordSystem:n,getScaled:r,getTranslated:o,isIntersection:s}},,,,,,,,function(e,t,i){var n=i(35),r=i(3),o={_init:function(){void 0===this._ready&&(this._ready=!0,this._timeouts={},this._intervals={})},componentWillUnmount:function(){void 0!==this._ready&&(this._ready=!1,Object.keys(this._timeouts).map(n.clearTimeout.bind(n)),Object.keys(this._intervals).map(n.clearInterval.bind(n)))},_wrapCallback:function(e){var t=this;return function(){return t._ready?void 0:r(0,"Callback called while component was not ready"),e.apply(this,arguments)}},setTimeout:function(e,t){this._init(),this._ready?void 0:r(0,"setTimeout() called while component was not ready");var i=n.setTimeout(this._wrapCallback(e),t);return this._timeouts[i]=!0,i},setInterval:function(e,t){this._init(),this._ready?void 0:r(0,"setInterval() called while component was not ready");var i=n.setInterval(this._wrapCallback(e),t);return this._intervals[i]=!0,i},clearTimeout:function(e){this._timeouts&&(n.clearTimeout(e),delete this._timeouts[e])},clearAllTimeouts:function(){this._timeouts&&Object.keys(this._timeouts).forEach(this.clearTimeout)},clearInterval:function(e){this._intervals&&(n.clearInterval(e),delete this._intervals[e])},clearAllIntervals:function(){this._intervals&&Object.keys(this._intervals).forEach(this.clearTimeout)}};e.exports=o},,,,,function(e,t,i){var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},r=i(1),o=i(8),s=i(98),a=i(180),l=i(10),p=i(27),c=i(65),u=r.PropTypes,d=r.createClass({displayName:"ScrollWatchedComponent",propTypes:{boundScaleFactor:u.shape({x:u.number,y:u.number}),onScrollEnter:u.func,onScrollLeave:u.func},getDefaultProps:function(){return{boundScaleFactor:{x:1,y:1},onScrollEnter:l,onScrollLeave:l}},getScaledPageRelativeRect:function(){var e=o.findDOMNode(this),t=e.getBoundingClientRect(),i=c.getTranslated(t,{x:window.pageXOffset,y:window.pageYOffset});return c.getScaled(i,this.props.boundScaleFactor)},getMeasuredAreaRect:function(){return this.rect},handleResize:function(e,t){this.setRect(this.getScaledPageRelativeRect()),"function"==typeof this.props.onResize&&this.props.onResize(e,t)},setRect:function(e){var t=!this.rect;this.rect=e,t&&(this._visibilityListenerId=a.addVisibilityListener(this.getMeasuredAreaRect,this.handleVisibilityChange))},handleVisibilityChange:function(e){e?this.props.onScrollEnter():this.props.onScrollLeave()},handlePutativeLayoutChange:function(){var e=this.getScaledPageRelativeRect();if(!this.rect||this.rect.top!==e.top||this.rect.bottom!==e.bottom||this.rect.left!==e.left||this.rect.right!==e.right||this.rect.height!==e.height||this.rect.width!==e.width){this.setRect(e);var t=a.listeners[this._visibilityListenerId];a.updateListenerVisibility(t)}},componentDidMount:function(){this._scrollListener=p.listen(window,"scroll",this.handlePutativeLayoutChange),this._orientationListener=p.listen(window,"orientationchange",this.handlePutativeLayoutChange),this._resizeListener=p.listen(window,"resize",this.handlePutativeLayoutChange)},componentWillUnmount:function(){this._visibilityListenerId&&a.removeVisibilityListener(this._visibilityListenerId),this._scrollListener.remove(),this._orientationListener.remove(),this._resizeListener.remove()},render:function(){return r.createElement(s,n({},this.props,{onResize:this.handleResize}))}});e.exports=d},,function(e,t,i){var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},r=i(1),o=i(8),s=i(291),a=i(20),l=i(4),p=r.PropTypes,c=300,u={height:0,position:"absolute",width:0},d=100,h=0,m={caption:p.string,dimensions:p.shape({height:p.number.isRequired,width:p.number.isRequired}),onClick:p.func,onLike:p.func,rich:p.bool,src:p.string},f=r.createClass({displayName:"Photo",mixins:[s],propTypes:m,getDefaultProps:function(){return{rich:!1}},getInitialState:function(){return{componentId:h++,imageDataAvailable:!1,likeEventCount:0}},_handleDoubleClick:function(){this._performLike()},_handleImageLoadOrError:function(){this.isMounted()&&this.setState({imageDataAvailable:!0})},_handleTouchEnd:function(e){if(0===e.touches.length){var t=Math.sqrt(Math.pow(Math.abs(this._initialTouch.pageX-this._touchStartPosition.x),2)+Math.pow(Math.abs(this._initialTouch.pageY-this._touchStartPosition.y),2));d>=t&&this._tapsReceived++,2===this._tapsReceived&&(this._tapsReceived=0,this._performLike())}},_handleTouchStart:function(e){if(null!=this._touchStartTimestamp){var t=(new Date).getTime()-this._touchStartTimestamp;t>c&&(this._tapsReceived=0)}1===e.touches.length&&(this._initialTouch=e.touches[0],this._touchStartPosition={x:this._initialTouch.pageX,y:this._initialTouch.pageY},this._touchStartTimestamp=(new Date).getTime())},_performLike:function(){this.props.onLike&&(this.props.onLike(),this.setState({likeEventCount:this.state.likeEventCount+1}))},componentDidMount:function(){if(this.firstRender=!1,this.props.rich){var e=o.findDOMNode(this.refs.pImageLoader);e.removeAttribute("onload"),e.complete&&(o.findDOMNode(this.refs.pImage).style.visibility=null,this._handleImageLoadOrError())}},componentWillMount:function(){this.firstRender=!0,this._tapsReceived=0},componentWillReceiveProps:function(e){(this.props.src!==e.src||this.props.rich!==e.rich)&&this.setState(this.getInitialState())},renderImage:function(){var e="pImage_"+this.state.componentId,t={visibility:this.props.rich&&this.firstRender?"hidden":null};return r.createElement("img",{alt:this.props.caption,className:"k68",id:e,key:e,ref:"pImage",src:this.props.src,style:t})},renderImageLoader:function(){return r.createElement("img",{alt:this.props.caption,id:"pImageLoader_"+this.state.componentId,onError:this._handleImageLoadOrError,onLoad:this._handleImageLoadOrError,ref:"pImageLoader",src:this.props.src,style:u})},renderPreReactRevealScript:function(){var e="\n      document\n        .getElementById('pImageLoader_"+this.state.componentId+"')\n        .setAttribute(\n          'onload',\n          'document.getElementById(\"pImage_"+this.state.componentId+"\")' +\n            '.style.visibility = null'\n        );\n    ";return r.createElement("script",{dangerouslySetInnerHTML:{__html:e.replace(/\s/g,"")}})},render:function(){var e=this.props,t=e.className,i=e.rich,o=this.state.imageDataAvailable,s=!i||this.firstRender||o,p={};if(this.props.dimensions){var c=a.getHeightPercent(this.props.dimensions);p.style={paddingBottom:c+"%"}}return r.createElement("div",{className:l("l68",t),onClick:this.props.onClick,onDoubleClick:this._handleDoubleClick,onTouchEnd:this._handleTouchEnd,onTouchStart:this._handleTouchStart},r.createElement("div",n({},p,{className:"m68"}),s&&this.renderImage()),this.state.likeEventCount?r.createElement("div",{className:"n68",key:this.state.likeEventCount},r.createElement("span",{className:"o68 coreSpriteLikeAnimationHeart"})):null,r.createElement("div",{className:"p68"}),i&&!o&&this.renderImageLoader(),i&&!o&&this.renderPreReactRevealScript())}});e.exports=f,i(269)},,,,,,function(e,t,i){function n(){"use strict";r.apply(this,arguments)}var r,o,s=i(11),a=i(13),l=i(1),p=i(4),c=l.PropTypes;r=l.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.render=function(){"use strict";return l.createElement(s,{className:p("n49",this.props.className),href:a.buildUserLink(this.props.user.username),title:this.props.user.username},this.props.user.username)},n.propTypes={user:c.shape({username:c.string.isRequired}).isRequired},e.exports=n,i(272)},function(e,t,i){(function(t){function n(){"use strict";r.apply(this,arguments)}var r,o,s=i(62),a=i(1),l=i(4),p=a.PropTypes;r=a.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.renderItem=function(e){"use strict";return e?a.createElement("li",{className:"c99"},e):null},n.prototype.render=function(){"use strict";var e=this.props,t=e.closeLabel,i=e.title,n=e.onCancel,r=a.Children.toArray(this.props.children).filter(function(e){return null!=e}).length;return a.createElement("div",{className:l(this.props.className,"d99")},i&&a.createElement("p",{className:"e99"},i),a.createElement("ul",{className:"f99"+(1===r?" g99":""),role:"menu"},a.Children.map(this.props.children,this.renderItem)),a.createElement("ul",{className:"f99",role:"menu"},this.renderItem(a.createElement(s,{onClick:n},t))))},n.defaultProps={closeLabel:"취소"},n.propTypes={children:p.oneOfType([p.instanceOf(s),p.arrayOf(p.shape({type:p.oneOf([s])}))]),closeLabel:p.string.isRequired,onCancel:p.func.isRequired},e.exports=n,i(299)}).call(t,i(5))},,,,function(e,t,i){var n=i(1),r=n.PropTypes,o=r.shape({position:r.shape({x:r.number.isRequired,y:r.number.isRequired}).isRequired,user:r.shape({username:r.string.isRequired}).isRequired});e.exports=o},function(e,t,i){var n=i(7);e.exports={VARIANTS:n({stacked:null,unstyled:null})}},function(e,t,i){(function(t){function n(e){"use strict";o.constructor.call(this,e),this.$AppInstallLink_handleClick=this.$AppInstallLink_handleClick.bind(this)}var r,o,s=i(41),a=i(9),l=i(1),p=i(6),c=i(96),u=i(14),d=i(4),h=l.PropTypes;r=l.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.$AppInstallLink_handleClick=function(e){"use strict";var t=this.props.onClick;t&&(t(e),e.isDefaultPrevented())||(e.preventDefault(),a.logAction("appInstallClick",{medium:this.getMediumOrDefault(),platform:this.props.platform,source:this.props.campaign}),a.flush(),setTimeout(function(){return window.top.location=this.getInstallHref()}.bind(this),450))},n.prototype.getInstallHref=function(){"use strict";return c(this.props.campaign,this.getMediumOrDefault(),this.props.platform)},n.prototype.getMediumOrDefault=function(){"use strict";return null!=this.props.medium?this.props.medium:this.props.children?"installLink":"badge"},n.prototype.renderBadgeImage=function(){"use strict";var e,t;switch(this.props.platform){case"android":e="Google Play에서 이용 가능",t="//instagramstatic-a.akamaihd.net/bluebar/4da1e40/images/appstore-install-badges/korean_get.png";break;case"ios":e="App Store에서 이용 가능",t="//instagramstatic-a.akamaihd.net/bluebar/4da1e40/images/appstore-install-badges/badge_ios_korean-ko.png"}return t?l.createElement("img",{className:"z18",alt:e,src:t}):null},n.prototype.render=function(){"use strict";return l.createElement("a",{className:d("a28",this.props.className),href:this.getInstallHref(),onClick:this.$AppInstallLink_handleClick,role:this.props.role},this.props.children||this.renderBadgeImage())},n.propTypes={campaign:h.string.isRequired,children:h.node,className:h.string,medium:h.string,onClick:h.func,platform:h.oneOf(u(s.appPlatformTypes)),role:h.string},n.defaultProps={platform:p.platform},e.exports=n,i(171)}).call(t,i(5))},,,function(e,t,i){function n(e,t,i){"undefined"==typeof i&&(i=a.platform);var n;e=e||"unknown";var l=i===r.appPlatformTypes.IOS?"igweb":"instagramweb";switch(i){case r.appPlatformTypes.IOS:n=new s(r.appleAppStoreUrl);var p=l+"."+e;return t&&(p+="."+t),n.addQueryData({pt:428156,ct:p,mt:8}),n.toString();case r.appPlatformTypes.ANDROID:n=new s(r.googlePlayUrl);var c={utm_source:l,utm_campaign:e};return t&&(c.utm_medium=t),n.addQueryData({referrer:o.serialize(c)}),n.toString();case r.appPlatformTypes.WINDOWSPHONE:return r.windowsPhoneAppStoreUrl;default:return r.appDownloadPath.unknown}}var r=i(41),o=i(64),s=i(44),a=i(6);e.exports=n},function(e,t,i){(function(t){function n(e,t,i){if(i=i||{},!t||!e)return"";if("string"==typeof e&&(e=parseInt(e,10)),"number"==typeof e&&(e=new Date(1e3*e)),e instanceof Date?void 0:l(0,"The date passed to formatDate must be either a unix timestamp or JavaScript date object."),isNaN(e.getTime())?l(0,"Invalid date passed to formatDate"):void 0,e.getTime()<1e15?void 0:l(0,"The date passed to formatDate is too far in the future. Did you mix up milliseconds/seconds?"),"string"!=typeof t){var n=o();for(var m in n){var f=n[m];if(f.start<=e.getTime()&&t[f.name]){t=t[f.name];break}}}var g;i.skipPatternLocalization||s()||1===t.length?g=t:(a.formats[t]?void 0:l(0,"Trying to localize an unsupported date format. Please see the INTL_DATE_FORMATS sitevar for a list of formats."),g=a.formats[t]);for(var v=i.utc?"getUTC":"get",b=e[v+"Date"](),A=e[v+"Day"](),y=e[v+"Month"](),x=e[v+"FullYear"](),w=e[v+"Hours"](),E=e[v+"Minutes"](),D=e[v+"Seconds"](),C=e[v+"Milliseconds"](),k="",P=0;P<g.length;P++){var _=g.charAt(P);switch(_){case"\\":P++,k+=g.charAt(P);break;case"d":k+=r(b,2);break;case"j":k+=b;break;case"S":k+=h[b];break;case"D":k+=p[A];break;case"l":k+=c[A];break;case"F":case"f":k+=d[y];break;case"M":k+=u[y];break;case"m":k+=r(y+1,2);break;case"n":k+=y+1;break;case"Y":k+=x;break;case"y":k+=(""+x).slice(2);break;case"a":k+=12>w?"오전":"오후";break;case"A":k+=12>w?"오전":"오후";break;case"g":k+=0===w||12===w?12:w%12;break;case"G":k+=w;break;case"h":k+=0===w||12===w?12:r(w%12,2);break;case"H":k+=r(w,2);break;case"i":k+=r(E,2);break;case"s":k+=r(D,2);break;case"X":k+=r(C,3);break;default:k+=_}}return k}function r(e,t){return Array(t-(""+e).length+1).join("0")+e}function o(){var e=new Date,t=e.getTime(),i=e.getFullYear(),n=e.getDate()-(e.getDay()-a.weekStart+6)%7,r=new Date(i,e.getMonth()+1,0).getDate(),o=1===new Date(i,1,29).getMonth()?366:365,s=864e5;return[{name:"today",start:e.setHours(0,0,0,0)},{name:"withinDay",start:t-s},{name:"thisWeek",start:new Date(e.getTime()).setDate(n)},{name:"withinWeek",start:t-7*s},{name:"thisMonth",start:e.setDate(1)},{name:"withinMonth",start:t-s*r},{name:"thisYear",start:e.setMonth(0)},{name:"withinYear",start:t-s*o},{name:"older",start:-(1/0)}]}function s(){if(!window||!window.location)return!1;var e=window.location.pathname,t="/intern";return e.substr(0,t.length)===t}var a=i(156),l=i(3),p=["일","월","화","수","목","금","토"],c=["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],u=["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],d=["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],h=["","일","일","일","일","일","일","일","일","일","일","일","일","일","일","일","일","일","일","일","일","일","일","일","일","일","일","일","일","일","일","일"];n.periodNames=["today","thisWeek","thisMonth","thisYear","withinDay","withinWeek","withinMonth","withinYear","older"],e.exports=n}).call(t,i(5))},function(e,t,i){var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},r=i(159),o=i(1),s=i(108),a=i(167),l=i(4),p=i(50);i(146);var c=a.ie()&&"onresize"in document.createElement("div"),u={attributes:!0,characterData:!0,childList:!0,subtree:!0},d=o.createClass({displayName:"ResponsiveBlock",propTypes:{onResize:o.PropTypes.func.isRequired},componentDidMount:function(){this._width=null,this._height=null,this._resizeHandler=new s(this._didResize),this._bindResizeEvent(),this._observer=new r(this._resizeHandler.handleEvent),this._observer.observe(o.findDOMNode(this),u)},componentWillUnmount:function(){this._sensorTarget&&(this._sensorTarget.onresize=null,this._sensorTarget=null),this._resizeHandler=null,this._observer.disconnect(),this._observer=null,this._width=null,this._height=null},render:function(){var e,t=l("ResponsiveBlock",this.props.className);return e=c?o.createElement("div",{key:"sensor",ref:"sensorNode",className:"rbSensor"}):o.createElement("div",{key:"sensor",className:"rbSensor"},o.createElement("iframe",{ref:"sensorNode",className:"rbSensorFrame"})),o.createElement("div",n({},this.props,{className:t}),this.props.children,e)},_bindResizeEvent:function(){this.isMounted()&&(c?this._sensorTarget=o.findDOMNode(this.refs.sensorNode):this._sensorTarget=o.findDOMNode(this.refs.sensorNode).contentWindow,this._sensorTarget?(this._sensorTarget.onresize=this._resizeHandler.handleEvent,this._resizeHandler.handleEvent()):p(this._bindResizeEvent))},_didResize:function(){if(this.isMounted()){var e=o.findDOMNode(this),t=e.offsetWidth,i=e.offsetHeight;(t!==this._width||i!==this._height)&&(this._width=t,this._height=i,this.props.onResize(t,i))}}});e.exports=d},,,,function(e,t,i){"use strict";var n=i(139),r=i(38),o=i(37),s=i(12),a=(i(19),{create:function(e){if("object"!=typeof e||!e||Array.isArray(e))return e;if(r.isValidElement(e))return e;1===e.nodeType?s(!1):void 0;var t=[];for(var i in e)n.mapIntoWithKeyPrefixInternal(e[i],t,i,o.thatReturnsArgument);return t}});e.exports=a},,,,function(e,t,i){function n(){return r?document[r]:!1}var r,o,s=i(163);"undefined"!=typeof document.hidden?(r="hidden",o="visibilitychange"):"undefined"!=typeof document.mozHidden?(r="mozHidden",o="mozvisibilitychange"):"undefined"!=typeof document.msHidden?(r="msHidden",o="msvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(r="webkitHidden",o="webkitvisibilitychange");var a={HIDDEN:"hidden",VISIBLE:"visible",isHidden:n};s(a,{visible:!0,hidden:!0}),document.addEventListener&&o&&document.addEventListener(o,function(){a.emit(n()?a.HIDDEN:a.VISIBLE)}),e.exports=a},,function(e,t,i){function n(e){"use strict";this.$ResizeEventHandler_isResizing=!1,this.$ResizeEventHandler_onResizeCallback=e,this.$ResizeEventHandler_didResize=this.$ResizeEventHandler_didResize.bind(this),this.handleEvent=this.handleEvent.bind(this)}var r=i(166);n.prototype.handleEvent=function(e){"use strict";this.$ResizeEventHandler_isResizing===!1&&(this.$ResizeEventHandler_isResizing=!0,r(this.$ResizeEventHandler_didResize))},n.prototype.$ResizeEventHandler_didResize=function(){"use strict";this.$ResizeEventHandler_isResizing=!1,this.$ResizeEventHandler_onResizeCallback()},e.exports=n},,function(e,t){function i(e){var t=n(e);return 3*Math.floor((t-1)/3)}function n(e){return 1>e?0:Math.floor(Math.log(Math.abs(e))/Math.LN10)+1}function r(e,t){var r=i(e),o=n(e),s=Math.pow(10,r-((o-r)%3?t:t-1)),a=Math[0>e?"ceil":"floor"],l=a(e/s)*s;return l}function o(e){return r(e,1)}var s={CURRENCY:"$0,0.00",DATE:"M/D/YY",DATE_LONG:"ddd M/D/YY",DATE_TIME_LONG:"l [at] h:mma",FLOAT:"0,0.00",FLOAT_INT:"0,.[00]",INTEGER:"0,0",INTEGER_SHORTENED:"0.[0]a",PERCENTAGE:"0%",PERCENTAGE_DELTA:"+0.0%",TIME:"h:mma",TIME_PADDED:"hh:mma",truncateNumberPrecisionConsumer:o};e.exports=s},function(e,t){function i(e){var t=e.querySelector(n);t&&t.focus()}var n='\n  :not([tabindex="-1"])[tabindex],\n  area:not([tabindex="-1"]),\n  button:not([disabled]):not([tabindex="-1"]),\n  input:not([disabled]):not([tabindex="-1"]),\n  select:not([disabled]):not([tabindex="-1"]),\n  textarea:not([disabled]):not([tabindex="-1"])\n';e.exports=i},,,,,,,,,,,function(e,t,i){var n,r=i(16),o=i(129),s=i(13),a=i(18),l=i(57),p=i(240),c=i(186),u={navigateToResult:function(e){switch(r.dispatch({actionType:l.SEARCH_RESULT_NAVIGATED_TO,result:e}),e.type){case l.USER_RESULT:a.navigate(s.buildUserLink(e.username));break;case l.HASHTAG_RESULT:a.navigate(s.buildTagLink(e.name));break;case l.PLACE_RESULT:a.navigate(s.buildLocationLink(e.locationId))}},search:function(e,t){""===e?r.dispatch({actionType:l.SEARCH_QUERY_CLEARED}):(r.dispatch({actionType:l.SEARCH_RESULTS_REQUESTED,query:e}),n&&(n.abort(),n=null),n=p(e,t,function(t,i){o.trackEvent(c.search,{search_string:e}),t?r.dispatch({actionType:l.SEARCH_RESULTS_FAILED_TO_LOAD,query:e,results:i}):r.dispatch({actionType:l.SEARCH_RESULTS_LOADED,query:e,results:i})}))},selectResult:function(e,t){r.dispatch({actionType:l.SEARCH_RESULT_SELECTED,index:e,method:t})}};e.exports=u},,function(e,t,i){function n(e){var t=e.users,i=e.hashtags,n=e.places;return t=t.map(function(e){var t=e.user;return{fullName:t.full_name,isVerified:t.is_verified,position:e.position,profilePictureUrl:t.profile_pic_url,type:c.USER_RESULT,username:t.username}}),i=i.map(function(e){var t=e.hashtag;return{mediaCount:t.media_count,name:t.name,position:e.position,type:c.HASHTAG_RESULT}}),n=n.map(function(e){var t=e.place;return{locationId:t.location.pk,name:t.location.name,position:e.position,subtitle:t.subtitle,type:c.PLACE_RESULT}}),t.concat(i).concat(n).sort(function(e,t){return e.position-t.position})}var r,o,s=i(16),a=i(22).EventEmitter,l=i(18),p=i(77),c=i(57),u="change",d=!1,h="",m=[],f=Object.assign({},a.prototype,{_maxListeners:0,addChangeListener:function(e){this.on(u,e)},emitChange:function(){this.emit(u)},getAll:function(){return m},getQuery:function(){return h},getSelectedIndex:function(){return r},getSelectedMethod:function(){return o},isLoading:function(){return d},removeChangeListener:function(e){this.removeListener(u,e)}});f.dispatchToken=s.register(function(e){switch(e.actionType){case c.SEARCH_RESULTS_LOADED:h===e.query&&(m=n(e.results),d=!1,l.setHistoryData({searchResults:m}),r=null);break;case c.SEARCH_RESULTS_REQUESTED:d=!0,h=e.query;break;case c.SEARCH_RESULTS_FAILED_TO_LOAD:d=!1;break;case c.SEARCH_QUERY_CLEARED:d=!1,h="",m=[];break;case c.SEARCH_RESULT_NAVIGATED_TO:d=!1,h="",m=[];break;case c.SEARCH_RESULT_SELECTED:r=e.index,o=e.method;break;case p.DOCUMENT_LOCATION_CHANGED:m=l.getHistoryData("searchResults")||[],h=l.getHistoryData("searchQuery")||"",d=!1;break;default:return!0}return f.emitChange(),!0}),
e.exports=f},function(e,t,i){var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},r=i(1),o=i(6),s=r.createClass({displayName:"FormLink",clickHandler:function(e){e.preventDefault();var t=document.createElement("form");t.setAttribute("action",this.props.href),t.setAttribute("method","post");var i=document.createElement("input");i.setAttribute("type","hidden"),i.setAttribute("name","csrfmiddlewaretoken"),i.setAttribute("value",o.getCSRFToken()),t.appendChild(i),document.body.appendChild(t),t.submit()},render:function(){return r.createElement("a",n({},this.props,{onClick:this.clickHandler}),this.props.text||this.props.children)}});e.exports=s},function(e,t){var i=function(e){var t;for(t in e)if(e.hasOwnProperty(t))return t;return null};e.exports=i},,,,,,,,,,,,,,function(e,t,i){function n(e,t){var i={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=e[n]);return i}function r(){"use strict";o.apply(this,arguments)}var o,s,a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},l=i(1),p=i(150),c=i(97),u=i(4),d=l.PropTypes;o=l.Component,s=o&&o.prototype,Object.assign(r,o),r.prototype=Object.create(s),r.prototype.constructor=r,r.__superConstructor__=o,r.prototype.render=function(){"use strict";var e=this.props,t=e.value,i=n(e,["value"]),r=new Date(1e3*t),o=p.getISOString(r),s=p.agoShortened(t);return l.createElement("time",a({},i,{className:u(this.props.className,"m49"),dateTime:o,title:c(t,"M j, Y")}),s)},r.propTypes={value:d.number.isRequired},e.exports=r,i(271)},,,function(e,t,i){function n(){"use strict";r.apply(this,arguments)}var r,o,s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},a=i(285),l=i(1),p=l.PropTypes;r=l.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.renderItem=function(e){"use strict";return l.createElement(a,s({},e,{className:"g59",key:e.id,mediaLinkBuilder:this.props.mediaLinkBuilder}))},n.prototype.renderItems=function(){"use strict";for(var e=[],t=0;t<this.props.posts.length;t+=this.props.postsPerRow)e.push(this.renderRow(this.props.posts.slice(t,t+this.props.postsPerRow),t));return e},n.prototype.renderRow=function(e,t){"use strict";for(var i=e.map(this.renderItem,this),n=i.length;n<this.props.postsPerRow;n++)i.push(l.createElement("div",{className:"g59 h59",key:"placeholder_"+n}));return l.createElement("div",{className:"i59",key:t},i)},n.prototype.render=function(){"use strict";return this.props.posts.length?l.createElement("div",{className:"j59"},this.renderItems()):null},n.defaultProps={posts:[],postsPerRow:3},n.propTypes={posts:p.arrayOf(p.shape({caption:p.string,code:p.string.isRequired,isVideo:p.bool.isRequired,numComments:p.number,numLikes:p.number,src:p.string.isRequired,thumbnailSrc:p.string})),mediaLinkBuilder:p.func,postsPerRow:p.number},e.exports=n,i(265)},function(e,t,i){function n(){return window.innerWidth}function r(){return window.devicePixelRatio}function o(){f(b,l,v)}function s(){f(A,a,v)}var a,l,p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},c=i(22).EventEmitter,u=i(27),d=i(15),h=i(108),m=i(6),f=i(100),g="change",v={path:"/"},b="ig_pr",A="ig_vw",y=p({},c.prototype,{_maxListeners:0,addChangeListener:function(e){this.on(g,e)},emitChange:function(){this.emit(g)},getPixelRatio:function(){return null!=l?l:m.getPixelRatioServerGuess()},getViewportWidth:function(){return null!=a?a:m.getViewportWidthServerGuess()},removeChangeListener:function(e){this.removeListener(g,e)}});d.canUseDOM&&(l=r(),a=n(),o(),s(),u.listen(window,"resize",new h(function(){a=window.innerWidth,y.emitChange()})),u.listen(window,"beforeunload",function(){o(),s()})),e.exports=y},function(e,t){function i(e,t,i,n,r){function o(){for(var r=arguments.length,a=Array(r),l=0;r>l;l++)a[l]=arguments[l];o.reset(),s=n(function(){e.apply(i,a)},t)}n=n||setTimeout,r=r||clearTimeout;var s;return o.reset=function(){r(s)},o}e.exports=i},function(e,t,i){var n=i(2),r=i(148);n(r,"isdb94228")},function(e,t,i){var n=i(2),r=i(149);n(r,"is-641dc896")},function(e,t){e.exports=".ResponsiveBlock{position:relative}.rbSensor{background:0 0;bottom:0;left:0;position:absolute;right:0;top:0;z-index:-1}.rbSensorFrame{border:none;display:block;height:100%;margin:0;padding:0;width:100%}"},function(e,t){e.exports=".r98{background-color:rgba(0,0,0,.5);bottom:0;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;left:0;position:fixed;z-index:1}.r98,.v98{right:0;top:0}.v98{background:0 0;border:none;cursor:pointer;height:36px;outline:none;overflow:hidden;position:absolute;z-index:2}.v98::before{color:#fff;content:'\\00D7';display:block;font-size:36px;font-weight:600;line-height:36px;padding:0;margin:0}.u98{margin:auto;max-width:935px;pointer-events:auto;width:100%}.s98{bottom:0;left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:0}.s98 *{pointer-events:auto}.t98{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:100%;overflow:auto;width:auto;z-index:1}@media (min-width:481px){.t98{padding:0 40px;pointer-events:none;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.t98::after,.t98::before{content:'';display:block;-webkit-flex-basis:40px;-ms-flex-preferred-size:40px;flex-basis:40px;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}}@media (max-width:480px){.v98,.s98{display:none}}"},,,,function(e,t,i){var n=i(1),r=n.PropTypes;e.exports={id:r.string.isRequired,postedAt:r.number.isRequired,text:r.string.isRequired,userId:r.string.isRequired}},function(e,t,i){(function(t){function n(){"use strict";r.apply(this,arguments)}var r,o,s=i(55),a=i(1),l=i(92),p=i(14),c=a.PropTypes;r=a.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.render=function(){"use strict";var e,i=a.createElement(s,{className:(this.props.variant!==l.VARIANTS.unstyled?"l39":"")+(this.props.variant===l.VARIANTS.stacked?" m39":""),value:this.props.value});return e=1===this.props.value?t("게시물 {count}개",{count:i}):t("게시물 {count}개",{count:i}),a.createElement("span",{className:this.props.variant===l.VARIANTS.stacked?"n39":""},e)},n.propTypes={value:c.number,variant:c.oneOf(p(l.VARIANTS))},e.exports=n,i(217)}).call(t,i(5))},,function(e,t,i){var n=i(157);e.exports=n},function(e,t){e.exports={numericDateOrder:["y","m","d"],numericDateSeparator:"-",shortDayNames:["월","화","수","목","금","토","일"],timeSeparator:" ",weekStart:0,formats:{D:"D","D g:ia":"Y\\년 n\\월 j\\일 A g:i","D M d":"Y\\년 n\\월 j\\일 l","D M d, Y":"Y\\년 n\\월 j\\일 l","D M j":"Y\\년 n\\월 j\\일 l","D M j, g:ia":"Y\\년 n\\월 j\\일 l g:i","D M j, y":"Y\\년 n\\월 j\\일 l","D M j, Y g:ia":"Y\\년 n\\월 j\\일 l g:i","D, M j, Y":"Y\\년 n\\월 j\\일 l","F d":"n\\월 j\\일","F d, Y":"Y\\년 n\\월 j\\일","F g":"n\\월 j\\일","F j":"n\\월 j\\일","F j, Y":"Y\\년 n\\월 j\\일","F j, Y @ g:i A":"Y\\년 n\\월 j\\일 A g:i","F j, Y g:i a":"Y\\년 n\\월 j\\일 A g:i","F jS":"n\\월 j\\일","F jS, g:ia":"Y\\년 n\\월 j\\일 A g:i","F jS, Y":"Y\\년 n\\월 j\\일","F Y":"Y\\년 n\\월","g A":"A g","g:i":"A g:i","g:i A":"A g:i","g:i a":"A g:i","g:iA":"A g:i","g:ia":"A g:i","g:ia F jS, Y":"Y\\년 n\\월 j\\일 A g:i","g:iA l, F jS":"Y\\년 n\\월 j\\일 l A g:i","g:ia M j":"Y\\년 n\\월 j\\일 A g:i","g:ia M jS":"Y\\년 n\\월 j\\일 A g:i","g:ia, F jS":"Y\\년 n\\월 j\\일 A g:i","g:iA, l M jS":"Y\\년 n\\월 j\\일 l A g:i","g:sa":"A g:i","H:I - M d, Y":"Y\\년 n\\월 j\\일 A g:i","h:i a":"A g:i","h:m:s m/d/Y":"Y-m-j A h:i:s",j:"j\\일","l F d, Y":"Y\\년 n\\월 j\\일 l","l g:ia":"Y\\년 n\\월 j\\일 A g:i","l, F d, Y":"Y\\년 n\\월 j\\일 l","l, F j":"Y\\년 n\\월 j\\일 l","l, F j, Y":"Y\\년 n\\월 j\\일 l","l, F jS":"Y\\년 n\\월 j\\일 l","l, F jS, g:ia":"Y\\년 n\\월 j\\일 l A g:i","l, M j":"Y\\년 n\\월 j\\일 l","l, M j, Y":"Y\\년 n\\월 j\\일 l","l, M j, Y g:ia":"Y\\년 n\\월 j\\일 l A g:i","M d":"n\\월 j\\일","M d, Y":"Y\\년 n\\월 j\\일","M d, Y g:ia":"Y\\년 n\\월 j\\일 A g:i","M d, Y ga":"Y\\년 n\\월 j\\일 A g","M j":"n\\월 j\\일","M j, Y":"Y\\년 n\\월 j\\일","M j, Y g:i A":"Y\\년 n\\월 j\\일 A g:i","M j, Y g:ia":"Y\\년 n\\월 j\\일 A g:i","M jS, g:ia":"Y\\년 n\\월 j\\일 A g:i","M Y":"Y\\년 n\\월","M y":"n\\월 j\\일","m-d-y":"Y-m-d","M. d":"n\\월 j\\일","M. d, Y":"Y\\년 n\\월 j\\일","Y\\년 n\\월 j\\일":"Y\\년 n\\월 j\\일","m.d.y":"Y-m-d","m/d":"m-d","m/d/Y":"Y-m-d","m/d/y":"Y-m-d","m/d/Y g:ia":"Y-m-j A h:i","m/d/y H:i:s":"Y-m-j A h:i:s","m/d/Y h:m":"Y-m-j A h:i:s",n:"m-d","n/j":"m-d","n/j, g:ia":"Y-m-j A h:i","n/j/y":"Y-m-d",Y:"Y\\년","Y-m-d":"Y-m-d","Y/m/d":"Y-m-d","y/m/d":"Y-m-d"},ordinalSuffixes:{1:"일",2:"일",3:"일",4:"일",5:"일",6:"일",7:"일",8:"일",9:"일",10:"일",11:"일",12:"일",13:"일",14:"일",15:"일",16:"일",17:"일",18:"일",19:"일",20:"일",21:"일",22:"일",23:"일",24:"일",25:"일",26:"일",27:"일",28:"일",29:"일",30:"일",31:"일"}}},function(e,t){(function(t){var i=t.cancelAnimationFrame||t.webkitCancelAnimationFrame||t.mozCancelAnimationFrame||t.oCancelAnimationFrame||t.msCancelAnimationFrame||t.clearTimeout;e.exports=i}).call(t,function(){return this}())},function(e,t){(function(t){function i(){"use strict"}i.prototype.observe=function(e,t){"use strict"},i.prototype.disconnect=function(){"use strict"},i.prototype.takeRecords=function(){"use strict";return null};var n=t.MutationObserver||t.WebKitMutationObserver||i;e.exports=n}).call(t,function(){return this}())},function(e,t){"use strict";function i(e,t){this.$EventEmitterWithHolding_emitter=e,this.$EventEmitterWithHolding_eventHolder=t,this.$EventEmitterWithHolding_currentEventToken=null,this.$EventEmitterWithHolding_emittingHeldEvents=!1}i.prototype.addListener=function(e,t,i){return this.$EventEmitterWithHolding_emitter.addListener(e,t,i)},i.prototype.once=function(e,t,i){return this.$EventEmitterWithHolding_emitter.once(e,t,i)},i.prototype.addRetroactiveListener=function(e,t,i){var n=this.$EventEmitterWithHolding_emitter.addListener(e,t,i);return this.$EventEmitterWithHolding_emittingHeldEvents=!0,this.$EventEmitterWithHolding_eventHolder.emitToListener(e,t,i),this.$EventEmitterWithHolding_emittingHeldEvents=!1,n},i.prototype.removeAllListeners=function(e){this.$EventEmitterWithHolding_emitter.removeAllListeners(e)},i.prototype.removeCurrentListener=function(){this.$EventEmitterWithHolding_emitter.removeCurrentListener()},i.prototype.listeners=function(e){return this.$EventEmitterWithHolding_emitter.listeners(e)},i.prototype.emit=function(e,t,i,n,r,o,s){this.$EventEmitterWithHolding_emitter.emit(e,t,i,n,r,o,s)},i.prototype.emitAndHold=function(e,t,i,n,r,o,s){this.$EventEmitterWithHolding_currentEventToken=this.$EventEmitterWithHolding_eventHolder.holdEvent(e,t,i,n,r,o,s),this.$EventEmitterWithHolding_emitter.emit(e,t,i,n,r,o,s),this.$EventEmitterWithHolding_currentEventToken=null},i.prototype.releaseCurrentEvent=function(){null!==this.$EventEmitterWithHolding_currentEventToken?this.$EventEmitterWithHolding_eventHolder.releaseEvent(this.$EventEmitterWithHolding_currentEventToken):this.$EventEmitterWithHolding_emittingHeldEvents&&this.$EventEmitterWithHolding_eventHolder.releaseCurrentEvent()},i.prototype.releaseHeldEventType=function(e){this.$EventEmitterWithHolding_eventHolder.releaseEventType(e)},e.exports=i},function(e,t,i){"use strict";function n(){this.$EventHolder_heldEvents={},this.$EventHolder_currentEventKey=null}var r=i(3);n.prototype.holdEvent=function(e,t,i,n,r,o,s){this.$EventHolder_heldEvents[e]=this.$EventHolder_heldEvents[e]||[];var a=this.$EventHolder_heldEvents[e],l={eventType:e,index:a.length};return a.push([t,i,n,r,o,s]),l},n.prototype.emitToListener=function(e,t,i){var n=this.$EventHolder_heldEvents[e];if(n){var r=this.$EventHolder_currentEventKey;n.forEach(function(n,r){n&&(this.$EventHolder_currentEventKey={eventType:e,index:r},t.apply(i,n))}.bind(this)),this.$EventHolder_currentEventKey=r}},n.prototype.releaseCurrentEvent=function(){null===this.$EventHolder_currentEventKey?r(0,"Not in an emitting cycle; there is no current event"):void 0,this.releaseEvent(this.$EventHolder_currentEventKey)},n.prototype.releaseEvent=function(e){delete this.$EventHolder_heldEvents[e.eventType][e.index]},n.prototype.releaseEventType=function(e){this.$EventHolder_heldEvents[e]=[]},e.exports=n},function(e,t,i){"use strict";function n(e,t){if(-1===t.indexOf(e))throw new TypeError(r(e,t))}function r(e,t){var i='Unknown event type "'+e+'". ';return i+="Known event types: "+t.join(", ")+"."}var o=i(33),s={addValidation:function(e,t){var i=Object.keys(t),r=Object.create(e);return o(r,{emit:function(t,r,o,s,a,l,p){return n(t,i),e.emit.call(this,t,r,o,s,a,l,p)}}),r}};e.exports=s},function(e,t,i){function n(e,t){t?void 0:p(0,"Must supply set of valid event types"),this.__eventEmitter?p(0,"An active emitter is already mixed in"):void 0;var i=e.prototype||e,n=e.constructor;n&&(n!==Object&&n!==Function?p(0,"Mix EventEmitter into a class, not an instance"):void 0),i.hasOwnProperty(u)?l(i.__types,t):i.__types?i.__types=l({},i.__types,t):i.__types=t,l(i,d)}var r=i(39),o=i(160),s=i(161),a=i(162),l=i(33),p=i(3),c=i(126),u=c({__types:!0}),d={emit:function(e,t,i,n,r,o,s){return this.__getEventEmitter().emit(e,t,i,n,r,o,s)},emitAndHold:function(e,t,i,n,r,o,s){return this.__getEventEmitter().emitAndHold(e,t,i,n,r,o,s)},addListener:function(e,t,i){return this.__getEventEmitter().addListener(e,t,i)},once:function(e,t,i){return this.__getEventEmitter().once(e,t,i)},addRetroactiveListener:function(e,t,i){return this.__getEventEmitter().addRetroactiveListener(e,t,i)},addListenerMap:function(e,t){return this.__getEventEmitter().addListenerMap(e,t)},addRetroactiveListenerMap:function(e,t){return this.__getEventEmitter().addListenerMap(e,t)},removeAllListeners:function(){this.__getEventEmitter().removeAllListeners()},removeCurrentListener:function(){this.__getEventEmitter().removeCurrentListener()},releaseHeldEventType:function(e){this.__getEventEmitter().releaseHeldEventType(e)},__getEventEmitter:function(){if(!this.__eventEmitter){var e=new r;e=a.addValidation(e,this.__types);var t=new s;this.__eventEmitter=new o(e,t)}return this.__eventEmitter}};e.exports=n},function(e,t,i){function n(){return a||(a=new l(r)),a}function r(){"use strict";this.$PersistentAnimationFrame_done=this.$PersistentAnimationFrame_done.bind(this)}function o(){m=!1,p.addListener(p.HIDDEN,s),p.addListener(p.VISIBLE,s)}function s(){Object.keys(h).forEach(function(e){var t=h[e],i=t.callback;t.cancel(),i()})}var a,l=i(165),p=i(106),c=i(158),u=i(50),d=16,h={},m=!0;r.request=function(e){"use strict";return e?n().get().request(e):0},r.cancel=function(e){"use strict";if(0!==e){var t=h[String(e)];t&&t.cancel()}},r.prototype.request=function(e){"use strict";return m&&o(),this.callback=e,this.hidden=p.isHidden(),this.hidden?this.intID=setTimeout(this.$PersistentAnimationFrame_done,d):this.intID=u(this.$PersistentAnimationFrame_done),this.strID=String(this.intID),h[this.strID]=this,this.intID},r.prototype.cancel=function(){"use strict";this.strID&&(this.hidden?clearTimeout(this.intID):c(this.intID),this.$PersistentAnimationFrame_cleanup(),n().put(this))},r.prototype.$PersistentAnimationFrame_done=function(){"use strict";this.callback(),this.$PersistentAnimationFrame_cleanup(),n().put(this)},r.prototype.$PersistentAnimationFrame_cleanup=function(){"use strict";delete h[this.strID],delete this.intID,delete this.strID,delete this.callback,delete this.hidden},e.exports=r},function(e,t,i){function n(e){"use strict";this.$SimpleObjectsPool_ObjectClass=e,this.$SimpleObjectsPool_objects=[]}var r=i(3);n.prototype.get=function(){"use strict";if(this.$SimpleObjectsPool_objects.length)return this.$SimpleObjectsPool_objects.pop();var e=this.$SimpleObjectsPool_ObjectClass;return new e},n.prototype.put=function(e){"use strict";e instanceof this.$SimpleObjectsPool_ObjectClass?void 0:r(0,"Invalid object to put"),this.$SimpleObjectsPool_objects.push(e)},e.exports=n},function(e,t,i){"use strict";var n=i(164);e.exports=n.request},function(e,t){function i(){if(!b){b=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),i=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(m=/\b(iPhone|iP[ao]d)/.exec(e),f=/\b(iP[ao]d)/.exec(e),d=/Android/i.exec(e),g=/FBAN\/\w+;/i.exec(e),v=/Mobile/i.exec(e),h=!!/Win64/.exec(e),t){n=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,n&&document&&document.documentMode&&(n=document.documentMode);var A=/(?:Trident\/(\d+.\d+))/.exec(e);l=A?parseFloat(A[1])+4:n,r=t[2]?parseFloat(t[2]):NaN,o=t[3]?parseFloat(t[3]):NaN,s=t[4]?parseFloat(t[4]):NaN,s?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),a=t&&t[1]?parseFloat(t[1]):NaN):a=NaN}else n=r=o=a=s=NaN;if(i){if(i[1]){var y=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);p=y?parseFloat(y[1].replace("_",".")):!0}else p=!1;c=!!i[2],u=!!i[3]}else p=c=u=!1}}var n,r,o,s,a,l,p,c,u,d,h,m,f,g,v,b=!1,A={ie:function(){return i()||n},ieCompatibilityMode:function(){return i()||l>n},ie64:function(){return A.ie()&&h},firefox:function(){return i()||r},opera:function(){return i()||o},webkit:function(){return i()||s},safari:function(){return A.webkit()},chrome:function(){return i()||a},windows:function(){return i()||c},osx:function(){return i()||p},linux:function(){return i()||u},iphone:function(){return i()||m},mobile:function(){return i()||m||f||d||v},nativeApp:function(){return i()||g},android:function(){return i()||d},ipad:function(){return i()||f}};e.exports=A},,,,function(e,t,i){var n=i(2),r=i(174);n(r,"is110a3ca4")},function(e,t,i){var n=i(2),r=i(175);n(r,"is196a3bd8")},function(e,t,i){var n=i(2),r=i(176);n(r,"is-63d5c88c")},function(e,t){e.exports=".a28{margin-right:8px}.a28:last-child{margin-right:0}.z18{height:40px}"},function(e,t){e.exports=".u68{position:relative}.u68,.v68,.w68{width:100%;height:100%}.w68{position:absolute;top:0;left:0}"},function(e,t,i){e.exports=".p87{display:inline-block;width:100%}.r87{display:block;overflow:hidden;padding-bottom:100%}.o87{height:calc(100% + 1px);position:absolute;width:100%}.s87,.l87{bottom:0;left:0;position:absolute;right:0;top:0}.video-js{position:static}.l87{z-index:1}.s87{display:block;z-index:2}.p87:hover .m87,.q87 .m87{opacity:1}.m87{background-image:url("+i(188)+");background-position:0 0;background-repeat:no-repeat;display:block;opacity:0;position:absolute;-webkit-transition:opacity .2s ease-out;transition:opacity .2s ease-out;-webkit-transition-delay:.1s;transition-delay:.1s;height:135px;left:50%;margin-left:-67px;margin-top:-67px;top:50%;width:135px}.p87 .vjs-control-bar,.p87 .vjs-control,.p87 .vjs-loading-spinner,.p87 .vjs-big-play-button,.p87 .text-track-display{display:none!important}@media (min-device-pixel-ratio:1.5),(-webkit-min-device-pixel-ratio:1.5),(min-resolution:144dpi){.m87{background-image:url("+i(187)+");background-size:360px 600px}}.n87{position:absolute;top:0;left:0;right:0;bottom:0}"},,function(e,t,i){var n=i(35),r=i(145),o=function(e,t,i){return r(e,t,i,n.setTimeout.bind(this))};e.exports=o},,function(e,t,i){function n(e,t){"use strict";this.measureFn=e,this.listenerFn=t,this.isVisible=null}function r(){"use strict";this.isWindowBound=!1,this.listeners={},this.listenerCount=0,this.seed=1,this.debouncedUpdateVisibility=a(this.updateVisibility,p,this),this.attachWindowListeners()}var o=i(15),s=i(65),a=i(178),l=["scroll","resize","orientationchange"],p=30;r.prototype.attachWindowListeners=function(){"use strict";o.canUseEventListeners&&l.forEach(function(e){return window.addEventListener(e,this,!1)}.bind(this))},r.prototype.detachWindowListeners=function(){"use strict";o.canUseEventListeners&&l.forEach(function(e){return window.removeEventListener(e,this,!1)}.bind(this))},r.prototype.updateListenerVisibility=function(e,t){"use strict";var i=e.measureFn(),n=t||s.getForViewport(),r=s.isIntersection(i,n);e.isVisible!==r&&(e.isVisible=r,e.listenerFn(r))},r.prototype.updateVisibility=function(){"use strict";var e=s.getForViewport();for(var t in this.listeners)this.listeners.hasOwnProperty(t)&&this.updateListenerVisibility(this.listeners[t],e)},r.prototype.addVisibilityListener=function(e,t){"use strict";var i=this.seed++,r=new n(e,t);return this.listeners[i]=r,this.listenerCount++,this.updateListenerVisibility(r),this.isWindowBound||this.attachWindowListeners(),i},r.prototype.removeVisibilityListener=function(e){"use strict";this.listeners.hasOwnProperty(e)&&(delete this.listeners[e],this.listenerCount--,!this.listenerCount&&this.isWindowBound&&this.detachWindowListeners())},r.prototype.handleEvent=function(e){"use strict";this.debouncedUpdateVisibility()},e.exports=new r},function(e,t,i){function n(e){return"on"+e.charAt(0).toUpperCase()+e.slice(1)}function r(){"use strict";o.apply(this,arguments)}var o,s,a=i(1),l=i(8),p=i(4),c=(a.PropTypes,["loadstart","loadedmetadata","loadeddata","loadedalldata","error","ended","seeked"]);o=a.Component,s=o&&o.prototype,Object.assign(r,o),r.prototype=Object.create(s),r.prototype.constructor=r,r.__superConstructor__=o,r.prototype.componentDidMount=function(){"use strict";this.$DeclarativeVideo_handlers=[],this.$DeclarativeVideo_mounted=!0;var e=this.$DeclarativeVideo_getVideoNode();c.forEach(function(t){var i=this.$DeclarativeVideo_handlePlayerEvent.bind(this,t);this.$DeclarativeVideo_handlers.push([t,i]),e.addEventListener(t,i)}.bind(this))},r.prototype.componentDidUpdate=function(e,t){"use strict";var i=this.$DeclarativeVideo_getVideoNode();this.props.loop!==e.loop&&(i.loop=!!this.props.loop),this.props.playing&&!e.playing?i.play():this.props.paused&&e.playing?i.pause():this.props.paused||this.props.playing||!e.paused&&!e.playing||(i.pause(),i.currentTime=0)},r.prototype.componentWillUnmount=function(){"use strict";this.$DeclarativeVideo_mounted=!1;var e=this.$DeclarativeVideo_getVideoNode();this.$DeclarativeVideo_handlers.forEach(function(t){var i=t[0],n=t[1];e.removeEventListener(i,n)}),this.$DeclarativeVideo_handlers=void 0},r.prototype.pause=function(){"use strict";this.$DeclarativeVideo_getVideoNode().pause()},r.prototype.play=function(){"use strict";this.$DeclarativeVideo_getVideoNode().play()},r.prototype.render=function(){"use strict";var e=this.props,t=e.className,i=e.poster,n=e.preload,r=e.src,o=e.type,s=!this.props.playing&&!this.props.paused;return a.createElement("div",{className:p("t68",t)},a.createElement("div",{className:"u68"},a.createElement("video",{className:"v68",poster:i,preload:n,ref:function(e){return this.$DeclarativeVideo_videoRef=e}.bind(this),src:r,type:o}),s&&i&&a.createElement("img",{className:"w68",src:i})))},r.prototype.$DeclarativeVideo_getVideoNode=function(){"use strict";return l.findDOMNode(this.$DeclarativeVideo_videoRef)},r.prototype.$DeclarativeVideo_handlePlayerEvent=function(e,t){"use strict";if(this.$DeclarativeVideo_mounted){var i=this.$DeclarativeVideo_getVideoNode();"seeked"===e&&i.currentTime<.5&&this.props.onLoop&&this.props.onLoop(),this.$DeclarativeVideo_triggerDelegateMethod(e,t)}},r.prototype.$DeclarativeVideo_triggerDelegateMethod=function(e,t){"use strict";var i=this.props[n(e)];i&&i(t)},e.exports=r,i(172)},function(e,t,i){var n=i(340),r=i(1),o=i(66),s=i(30),a=i(40),l=r.PropTypes,p=function(e){var t=e.userId,i=s.getViewer(),n=i&&i.id,r=n===t,a=!!n,l=o.viewerRequested(t),p=o.viewerFollows(t),c=!o.stableRelationshipWith(t);return{hasRequestedToFollow:l,isFollowing:p,isLoading:c,isViewer:r,viewerLoggedIn:a}},c=a(n,p,o,s);c.propTypes={userId:l.string.isRequired},e.exports=c},function(e,t,i){var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},r=i(181),o=i(9),s=i(1),a=i(20),l=i(73),p=i(6),c=i(4),u=s.PropTypes,d=4,h=120,m={notLoaded:0,loading:1,playing:2,playingFinalLoop:5,paused:3,finished:4},f=1500,g="video/mp4",v={analyticsContext:u.string.isRequired,dimensions:u.shape({height:u.number.isRequired,width:u.number.isRequired}),isVisible:u.bool,posterFrameUrl:u.string.isRequired,videoUrl:u.string.isRequired},b=s.createClass({displayName:"Video",mixins:[l],propTypes:v,clearLoopTimer:function(){this._loopTimeoutId&&(this.clearTimeout(this._loopTimeoutId),this._loopTimeoutId=null)},startLoopTimer:function(){this.clearLoopTimer(),this._loopTimeoutId=this.setTimeout(this.handleLoopLimitReached,1e3*h)},handleLoopLimitReached:function(){this.clearLoopTimer(),this.state.playerState===m.playing&&this.setState({playerState:m.playingFinalLoop})},clearLoopLogTimer:function(){this._loopLogTimeoutId&&(this.clearTimeout(this._loopLogTimeoutId),this._loopLogTimeoutId=null)},startLoopLogTimer:function(){this.clearLoopLogTimer(),this._loopLogTimeoutId=this.setTimeout(this.handleLoopLogTimerExpired,1e3*d)},handleLoopLogTimerExpired:function(){this.clearLoopLogTimer(),this.logLoops(),this.setState({loopsCompleted:0})},logLoops:function(){this.state.loopsCompleted>0&&this.logAction("videoEnd",{loops:this.state.loopsCompleted})},getInitialState:function(){return{forceShowControls:!1,loopsCompleted:0,playerState:m.notLoaded}},componentWillMount:function(){this._flashTimeoutId=null,this._loopLogTimeoutId=null,this._loopTimeoutId=null},componentDidMount:function(){this.props.isVisible!==!1&&this.pulseControls()},componentWillReceiveProps:function(e){e.videoUrl!==this.props.videoUrl&&(this.clearLoopLogTimer(),this.setState({loopsCompleted:0})),e.isVisible===!1&&this.props.isVisible===!0&&this.isPlaying()&&this.stop(),e.isVisible!==!0||this.props.isVisible!==!1||this.isPlaying()||this.pulseControls()},componentDidUpdate:function(e,t){var i=t.playerState===m.playing||t.playerState===m.playingFinalLoop,n=this.state.playerState===m.playing||this.state.playerState===m.playingFinalLoop;i&&!n?this.startLoopLogTimer():!i&&n&&this.clearLoopLogTimer()},componentWillUnmount:function(){this.logLoops()},handleEnded:function(){this.stop()},handleLoadstart:function(){this.state.playerState===m.notLoaded&&this.setState({playerState:m.loading})},handleLoop:function(){this.setState({loopsCompleted:this.state.loopsCompleted+1})},handleContainerClick:function(e){e.isDefaultPrevented()||(this.isPlaying()?this.pause():this.play())},play:function(){this.isPlaying()||(this.setState({playerState:m.playing}),this.logAction("videoPlay"),this.startLoopTimer())},pause:function(){this.isPlaying()&&(this.logAction("videoPause"),this.clearLoopTimer(),this.setState({playerState:m.paused}))},stop:function(){this.state.playerState!==m.finished&&(this.pulseControls(),this.setState({playerState:m.finished}))},hidePlayIndicatorOnInit:function(){this.setState({forceShowControls:!1})},isPlaying:function(){return this.state.playerState===m.playing||this.state.playerState===m.playingFinalLoop},logAction:function(e,t){o.logAction(e,n({source:this.props.analyticsContext},t))},pulseControls:function(){this._flashTimeoutId&&(this.clearTimeout(this._flashTimeoutId),delete this._flashTimeoutId),this.setState({forceShowControls:!0}),this._flashTimeoutId=this.setTimeout(this.hidePlayIndicatorOnInit,f)},renderControls:function(){return s.createElement("div",{className:"l87"},s.createElement("a",{className:this.isPlaying()?"":"m87",href:"javascript:;",role:"button"}))},render:function(){var e=this.state.playerState===m.playing,t=s.createElement(r,{className:"n87",loop:e,onEnded:this.handleEnded,onError:this.handleEnded,onLoadstart:this.handleLoadstart,onLoop:this.handleLoop,paused:this.state.playerState===m.paused,playing:this.isPlaying(),poster:this.props.posterFrameUrl,preload:"none",src:this.props.videoUrl,type:g}),i={};if(this.props.dimensions){var o=a.getHeightPercent(this.props.dimensions);100!=o&&(i.style={paddingBottom:"calc("+o+"% - 1px)"},t=s.createElement("div",{className:"o87"},t))}return s.createElement("div",{className:c(this.props.className,"p87"+(this.state.forceShowControls||p.isMobile()&&!this.isPlaying()&&this.state.playerState!==m.notLoaded?" q87":"")),onClick:this.handleContainerClick},s.createElement("div",n({},i,{className:"r87"}),t,s.createElement("a",{className:"s87",href:"javascript:;",role:"button"}),this.renderControls()))}});e.exports=b,i(173)},,,,function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtAAAASwCAMAAADlrY3OAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAADAUExURQAAAP///////////////////////wAAAAAAAP///////////////////////////////wAAAP///////////////////////////wAAAP///////////////////////wAAAP///////wAAAP///////wAAAAAAAAICAjQzM2ViYgEBAQ0MDP///yIiIZOPj6+srNDOzuDf3tnX1+/u7YB9fcbFxOfm5k5MS727u6KenvHw8Pv7+vr5+fLy8vr6+u3cso4AAABAdFJOUwDs4OHl5OMCBOjq5+br3+7wC+nd3OLt7/Er297Y2fPaAdfWBtX1DhIYOlcgJ/kxfJm5zsLab7LWSaiL5N7n6+9tvXvCAAAboUlEQVR42u3dDVfaWB7A4fFdRBRUFGurtlREYVUEtVat3/9bbQLa2hnQtMhLbp6n5+zO7M7JOf+5PyPchPDPPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCSw8jS0lL8X+Yl/cu7tBypxv+xvBT+Gmdt3sz1HC1vtdRTrVaDX+OszZu5nuPlrTeau2e7zUb9OFrk7nnLvKT1fFU6bp637v73v8eb1vfTZqO3xqEu8fO8nULhx+V1+PNmsef6t8ujo6P9/eg/jv53c/GtWa8Fu8RP867O7W1uba6V5zcuw543gy84qsffOlHNldh+t+r2+W6wS9yd92buw+cvX79+/fLx09baQi7kebN3gq6Wmu2jXs6Vp6iPjjrfT6LfxAEucXfe1uynLz99Pticy9+EOm8WT9D1q7jn/Z9/eknfXQS5xN15yy96jn38sDbfuZB0CKJXlI32y/Pzz/P00Y9oiYP7RRzP29r6/OVfPh+szd+FOG/2gq7WTh4rfe0f3X0/6722DGefNp73/uOX/4qT7oQ3bxZfcZzvVyqDku48vV0K5dJDd969j5/7+fhhdvUmsHkzGHSpcTsw6Djpm6toU6sayhJ35936PECUdP4yqHkzGXS7Unmt6KN4iUuBLHE8b+vg80Cftuby7YDmzeJ7wuZNpfJG0u3TUDYA4nkvP33+/FrS5Vzr1IZHat8jlXYfi6+Lmi5efwtjieN57z99fNXB3uJDKPNmcpNjv1h8M+mjx9sgljied+3jGz4d7C083Eo6pQv87e2go6QD2ZaO530z6CjpD7al0ym6seG0UiwmSzqAbel43r2PH5MlbVs65KC7SXe+p3ybNnHQUdJbtqVTGvROQnHSKV/ieN61TwkdbJZzl5ION+he0qnelv6joJ+Sti0dbtC9pNun8RKn8t3SHwb96dOHvcWNFM8r6GRJp/bKwx8HHSW9trBx7UpLuEF3k35M6ZWHbtAHf2hrdt62dIoWuLj+x3aipG/TuE37V0EffNicXX2wLR1w0N2kf15pSdG7pb8LOk56Ln+XwnkF/UdJP19pSc8GQDzv7Ie/sbVXznVSN6+g/0T0WjptHwD4+6CjpNcWN1xpCTno9ejtYcq2pYcJOk56YcO29PQHvf33ohceR70b4tPxbmm4oD9E7w4XVmxLBxx0N+n99GxLx/PObQ1jb251xQcAAg46SrpYSc229PBBd5P2AYCQg46T7m5Lp2CJ3yPorc29cv7h1nNppnWBd2aGt71TScUHAN4l6K34KY85HwAIOeiZmegsnYIPAMTzljffwd7swoYPAIQc9Ez8wmPqt6XfLehu0iu2pQMOupf0lD+X5h2DjpKem1/xXJqAg46Truxf/tyWPgw86Djp1UJ7mufNZNDrhXcUv5ae4ufSxPMu7r2j2XJ+xrZ0wEHHSU/xtvS7Bx0lvZh7tC0dcNC9pKf0hvgRBL23FiXtAwAhBx0lPa3b0vG8C2vvbTZ6d/jDtvS0LPD2yghEZ+lp3JYeTdBR0uX5lTvb0gEH3U16+p5LM6qg46RXCx3b0gEHvRK/8OheeZiibdrRBd1LetrmFfS7Jz1dN8R3g54dlbmF3LYPAEx8gWc2RmclSjq6IX5qNgBGG3Qv6WmaV9AjSXp6rjyMOujZ2fLCxrZt6YCDjpMuTs229OiDjpKe33i0LT3BBS7kRi06S0/Jc1rieefnRm1xteC5NCEHHSdd/HExBQ+1GE/Qc+XFfOHuwkM8wg06t7GyXfz1XJrQg46SXsjPdCY/r6BHmnS0LT3hJwCMLeg46dzMxOcV9EiTLqxXLnsbHpNa4Xje1fKYLM5vrE943kwGvZIfm1z0wuP6JLqWFt3wEH7QUdKrK+sTnVfQI0+6sHN3Hl14mNAtPGMOulxeiO/wmNy8gh69jZnK9Vn8ynISKxzPm18cq+h1x+TmFfRYXnfsXH7rrnAmgl6M9jsmNm82g14dt9zM3elkVngSQS9Gr6QnNa+gxyNf+HFVL03gvf9kgo5edtxNZl5Bj6/o03q0mzWJeXML4ze/MZl5Mxn0xvwErK7cnNXG/0t4UkEvzE9mXkGPr+iZi0Zp7KesiQW9MF+YxLyCHp/cj5NaddyvKicX9EJ+EvMKepwvOr7Xx/47OGvzZjLoCZ2xFvKt6HdwdoKez01gXkGP0epltoLOXwo66KDnMxb0qqADD/p6MkFPYt+9u/d+LeixLPAErpz1Lp+dT+ZN4aSCzp17Uxh00J2zyWzbTSrouzPbdiEHvfC9PpkLK+O+u/D5JsNJzCvo8Wk3J3Tpe0JBT2TeTAY91k9w/HTzbVI3J00m6MnMK+hx6ZxO7PbRiQQ9oXkFPb7z88Ru8B/bp9xfuPGRlfEt8JieU/FS62SCH8GaQNDtEz0HHPT9xe7xhNZ3IkE/TG5eQY9B/OyVST2oYhJBT3JeQY9c/AzDyT1KaPxB30903kwGPernJb+09vQs8Ek+CmzUz8N+KTfheQU9Ws9fmjyxZ66MOeiJzyvoUfr1tfYTnXdsQU/BvIIenZtp+BK/0X7r129ufGnhpIJeG4NfD/8+nPS8Ywl6SuYV9IhynpZvHBlT0He+YSXkoO+j5Z2ir3UbedAPtye+AyvcoO+n6SvO4nnXCyP14CvdJrzAi3ujdH06Tcs78qBXWqdyDjjo1ul07VyNOuj2qZ26gINuT90XuY82aF9cPxULXN4cjcsp3IiN592ZGQ0bz0EHfXM+jRuxowvaxnPQQT8v77TdxTCqoO+mdF5Bv0/OU3tdYTRB+6b6qVrgua33dT/FG7GjCNrGc9hBX0/z8sbzFrff08y1nEMOOtp4nublffegp3xeQQ+nPe0bse8ctI3naVzg2Q/vJF7e2nQv77sGnYJ5Bf33UnFdoRv0+rvouI4SctCddGzEvlvQNp6DDrqTlo3Ydwr6h43nKV7gtYMhfb1IzQ3t7xK0jeegg75P0/K+Q9CPNp5DDvrDdapuaI/nrewMww380x/0p7/XStkN7cMG7Qb+oINup+66wnBBu44SdNCXKdyIHSZoN/AHHfTzDfzp2oj9+6A7Np7TssB7H/9ctLyNNC5vN+jin/v55Bg5hxh05yKtT1L5u6AfLjw5JuCgv6b4usLfBP3oOkrQQaf6usKfB71zbeM55KBb6d6I/eOgbTynb4E3PyfWTvtGbDzvfiUxG89BB315lfqN2D8K2sZz+ixVa98SBn0ZwvLG8yYM2g38KV3gk0RB34RxXSGeN1HQbuBP7QLv3n95UyeUG9rjeR/fztkN/Kld4OVS8+atnL+Gc10hnrfzVs42ntPrcLnUaH1+PeeQljeet/1Gzm7gT/kCX3x8JefPYV1XiOe93a8M/lNxA3/KF7hav/r4daBf11EOg5n3/JV3he2rsObN5jbHwJzb4T1JJZ43elfY9+Rc8eSYIN4VNq6/DMg5wI3YeN7WgMuCNp4D+R18+vGVnAPbiO2+xtrv4zlnG88pX+D4lHX739fOV4Eub3fe63/XXGlfyTmcU9bxSfu3mjsX35r1UK8rdOe9/C3nH7en4c6bxVN0tMLXv3K+Pu9eRgl1eXvztn7W/NgKe96MFt04vWhfXravL67OGvHJKuC3Rk/z3l52Ojeti6uT0OfNZtGl40aj2Ww2nlY36OXN2ryZLHq5Wi11xasb+u/erM2bwaLjJX6ylIGTVdbmzWbTT8wLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADv6vDwcCmB6B8b7THMy7ss79Ly8nL1TdE/tDRoed7jGOblXdY3WppqKZFqvDwDjlFNeozqgGOYl3da32qt3mjuvqnZqNf6r857HMO8vM8CR2vTvOgU//em4s1FM1qdPosTre/xWbJjdC6ax32PMd55bx4Kb3p4Y96kx5jsvBk8Qdeal0dH+wkcHbWbtT6nm8Olau0s8TEuo0omd8rqztueX9vcetPm7Pwr87YXEh1jLT5G1Sl6nCes+sXRfqWyn+TP0UW9z+kmPsbtkMcY67zlgy9fE/hyUB4478XccMdgZAtcatzEoSUQ/WM3jVK/BS41OwmPER2l0yxNMuhS4/LDl4Q+XA6a9+Yg8TFuJjlv5ixFi/P4VOubfyr7j9HiLPU5xtlR0mNEf3b7HGOc895/Thrjx/tB884mPsbntUnOm72gq6Xd7ouFRGfoytFuqfrfBa7WTpIeIz5Mv2OMc969L4ntDZp3c8hjMNqgK8PE+BR0JS1B/0GMm+8Q9KagBT3aM/TnxAaeoYc9BoIWNIIWtKAFLeiUB11MbGDQlSGPMc551z4mtjYw6CGPgaAFjaAFLWhBC1rQaQp69lNis4PmXRvyGAha0CRb4MpOYpWBQQ95DEEjaEEj6NLu3EFic4PmnR3yGAha0CQMej2xwUEPeQxBI2hBI+go6A+JDQx62GMgaEEjaEFnMOjidmLFQQs87DEEjaD/ct7yVmLlQfMOewwELWgELegMBr0zk9jOoAUe9hiCRtB/Oe/iZmKLg+Yd9hgIWtAIWtCCFrSgUx50IbGBQa8PeYxxzruwl9jCwKCHPAaCFjSCFrSggw96fi2x+UHzLgx5DEa4wOsria0PWuDtIY8haAQtaAQtaEGHFvRsYgODHvYYjHCBtzcS2x4Y9JDHEDSCFjSCFrSgAwt6dS6x1UHzDnsMRrjAM7nEZgYt8LDHEDSCFjSCFrSgAws6X04sP2jeYY+BoAVNsgUu5BMrDFrgYY8haAT9l/PmFhPLDZp32GMgaEGTbIFXVhNbGbTAwx5D0Aha0Ai6tLuxkNjGwKCHPAaCFjQJg55PbGDQG0MeQ9AIWtAIOlvzClrQgk570Fn6FSxoQQta0IKe6qAztE0paEELOu1BZ+lSsKAFLWhBC3qag87S7bKCFrSg0x50lj6SJGhBBxd0lj4ULGhBCzrtQWfpwSuCFrSgBS1oQQta0GOaN0uPD85k0Fl6ALigBS1oQQta0IIW9JjmzdLX2GUz6Ax9EaWgBS1oQQta0IIW9Jjm3SkktjNo3vUhj8EIF3hhL7GFQQu8OOQxBI2gBY2gBR180IubiS0ODHrIY4w16JnEBgY97DEQtKARtKAFLWhBpzvo8lZi5UELPOwxBI2g/3Le4nZixUHzDnsMBC1oBC3oDAY99yGxuUELPOwxBI2g/3LeynpilUHzDnsMBC1oBC3oLAZ9kNjAoGeHPIagEbSgEXQU9E5ig4Me8hgIWtAkW+DZT4nNDlrgtSGPIWgELWgEXdrdLya2PzDoIY+BoAVNsgVe+5jY2qAF3hvyGIJG0IJG0IIWtKAFnaag9z4ntjcw6CGPMdagK4kNDHrYYyBoQSNoQQta0IJOd9CbXxLbHLTAwx5D0Aha0Ai6G/R+0j+vBD3UMRC0MzTJFnjra2JbgxZ42GM4QyNoZ2j+szjLpeZ98hjvm6XlpT7HOPuDoD/s9jnGOOd9TH52fRw075+doZcFPS6Hy6XGZfIYLxul5cM+x2je/MExmn2OMc55b/YTuxk0713yY3QmOW8Gg67Wv39J2uKX7/VqvwWu1i+SB33R7xjjnPcieYwXg+a9HfIYjGqBoxeEzVbSFlvN2vLSYb9jnLWTHqN9VqsuHU503nbSFtuD571MeozLic6byVN0rfk90auOy+/NWt+TzdJy9fjsIukxjid6wurOe3Hz+HaJjzcXr87bSXiMYyfo8Z6yohWuN5q7b2o26tH69jvZ9I7RHOoY5uX9VrhaSqS6PGBt/uQYk17frM2bwaKj5VmOFugty/HyHo7uGObl3Zb4cCmBw9eW5j2OYV4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgKw57/IsgjJyXlmNLkiaEnqOcq9VSqVqNm/bvg7QHvVyt1ZvNRr1WkjQhnKBLzdbjXev8TNIEcYKuXxzt7x8ddb4/Je21NGkOutS43K9UKlHTnfPdbtLeHpJa8SuOu0oxEjV9dHPVrNeqkia9QVdLu4/FnjjpyyjpkqRJc9CVnWfFKOn2aePYu0PSHPT6LzvF/Z3WN0mT4qCL2y+tF/cfbyVNeoPemfnd9k7l4eKkYVuaMIKOki5WflzYlialQRf+KzpL3z1dabHhQbqCXl/pozCzU7lxpYUUBr290dfKzHqlty3tpTRpCnomN8BGYb3Svmoed0/S/l2R9qB7SbdOGzVFk56gC/lX5ArrjxfN4+qyoElJ0Curr8oVdtpnNadoUhP0/OtWc9u3dado0hL0xsJb8j8agiYtQecW37JwI2hSE3S+/KYrLzlITdCrc2+4P2+UvCkkLUHPz76ufRpfLdQzQQT9dPXbCZrUBL02WPf+JDdzkKagF/YG6biDlPQFvbjZX8fHVkhj0OWtfu6jnH2wkBQGPffhv+59TpbUBn3wH9cezkFqg5799C+tU59TIb1Br338TdvTwAgn6MsrH4wlxUEvl3Y7n3+6PLfxTJpFz4du3nx5cuOZ56Q+6Gqj9eVrzHUUggj6+CoO+vK76yiE8SK6fnV7cXVWlzNBnKKXS8f1+rEXG4QR9GH8xZtV37tJMEUvLflmZAKL2r8DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/tLhoXnNG860S5HszGzewOddWu5aOjSveQOYd3m5WqvXS8vLh+Y1bwjzlo5P2q1mLRs/wuYNf976yc3R0UW9+vQj3H3JdRjoS64+82ZtfTMw7+V+pdJplHoDB/2S62neo/39n/NmYX2zNu9+cae4v1taXur1HL3kOi5VQyz6eX0rlcrzvJnoOWPzRj3v7FR2S9Vu0FHPzfZFoxTgb6ifv4+KxfgHuLqUkfXN0rzHJ5eVnfXIc9BLy7Wz9v7+9wCLfpq3u75ZWODMzbvU63l9O1bsDRydoOvtyk7x8Sra6AnrRcfTvN3fR79+IwW/vsHPe9i7cBS99auW6mftp567QS/Hbwir9dud6G/vvh2HcYr+17z73d9HP38jvdzMCWNjJ2PzHvY2MaqxXs8zPTu7tWrv/6g1b2dmtovXjVo1/afof8/7vL7dBV5+cU04kOvDmZu3+4PbVau97LkbdDW+pFSrHZ9dRkVXrgLYufzPvDvb28+/kbo/wM8blIFsVmZt3vglcqneaO52nbQq24VnUdCl+CXX90b0b+L0oVBYv2ym/xT973l//vy++AGONyh7m5W9vzZvqn6Aa42Lux9PijMrP61HQcdvESvnjdpx42JlpVBM/yn6X/O++Pnt/gDHG5TXzd6Zq3rcbLXivz40b6p+gOu3z28Dt2cKG79s79ZqjZudwvbDt3qtfnK3sTFz3Uj7Xnx33qe3+Ts76zOF3xc4Wt9K5boZXUWqlqL1rVRazXRfTsvavNHApebdzMpGH1HQpfptYWNlu9U8rjVuVzZWHs5q1bQHHc27XVjpI/6NVG8Xo/cK17vH8evNVnFmptI6TvWPcNbmja6alHa3N3L9zHR/glu53MrOaXSKPl3J5bZT/5ojnne9789v9wf4+PxhY6NQvN6tx+sb/b56OE/3Amdt3n+WqqXdQr6vQvymsP7tIfqr2+hV9G4nn1+5SPsNLfG8M7mBP8ClxvlDLlfYuT45ae1EP8EP5/V0D5y1ed8KOt6Czuc37naPj5vXufxGqxH6vNEKRz+4O9et9Y18/uEq7df7szZvd+CV1b5W4m2dUv0qt5ovRK85Ghf51fxls5T+30ivzdtd4dXVjZmZ3OpqtL5p38bK2ry9gef7WomvJFVrJw/z8xvnUdDn+fnVTtBBR/PGdxbGK5zPB7S+GZq3O/DGQl8bvaB3OwsL+Sjo+lV+YeEh7Te0vPUDHF+G2D1f7f4PV7vHqb/BMGvzZjLo1+aNF/jkejX++9Xbs3oQQWdp3u7AucW+cs8vORYXV7svOVYXF4N4yTFw3viKWen4rLUyH//9fCHany0F8JIjS/N2B86X+8o/vSmM/u/V7pvC+XI5iDeFr81bjda3EA16f18ud1c4gDeFWZq3O/DqXF+rT9t283Nzne623cJcOYhtu1fmja//rizMzd1fnd/PzS0UrtN+b0PW5u0OPD/b1/zThZXy7Fz3wspNebYcxIWVV+aNroxuLM7O3l81d8/vZ2cXV66b6b+wkqV5u5dGXx94fm623L30nZ+bXQzi0vcr89af1rdxfNx4WuH0X/rO0ry9m1fW+uoOfJubW5vt3Zy0sLZ2F8bNSYPnPf5enl2L1jf63RS9C75fm70/D+DmpAzN27u9cG2vn4Xo9tHmZXltr9O7fXRuby2Q20cHzluq1c/34vWt9q6h3d+n/d6GrM3bvQG8edt5tvnCYvcG//bmZu8G/4W9zbUwbvB/Zd5oV+f7ebwbG32ktBrduXOe9kcaZm3e3mNk6s2fH9HZ3Pqp3PsIVrv7EaxvD2tbW+0wPoI1eN54X7ZWKy0/fSTp+a/Nm64f4Zcfonwxcfm3D8mWN7f2AvyQbGvrw7O57pWz3udED39+aHQpsPUNfd7nj7lXnz/m3nox8IvHGCxsftgK6TEGv+Y9eNZd4MOup3/w11+bN10jv3wQSev3gXsPmlndOzi4OQnyQTOtT09mQ32SUNbm/e3XU3xp/0XQz48CW/twcH8a5qPAfq7wbDYeBZaheX8+3P33geOHNbYOPp0H+7DG9seutaw8rDE78z4/brX928Ddx+m2vgf8ON3259heZh6nm515f5t4LzsPPG9/iWxm5wHg2Zn3ZdE3zex8JUX769evN83sfEVDdub99TP8OVNfGtT++iVTX6KTnXmf3zm0MvY1Z+YNeuKnB1Ga17xBTBzvwWfsq4LNG/TEvszdvMHN/M8/5jUvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvPR/4wg8HteE+SQAAAAASUVORK5CYII=";
},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWgAAAJYCAMAAAB4qYzXAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAMAUExURQAAAP///////////wAAAAAAAP///wAAAAAAAAAAAP///////////////////////////////////////////////wAAAP///////////////////////wAAAP///////////////wAAAP///////wAAAP///////wAAAAAAAAAAAAAAAP///wAAAP///wAAAFFNTQAAAAMDAwEBAf///wAAAAAAAP///wAAAFBQUAAAAAEBAQAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAEBAf///wAAAAAAAAEBAQAAAAAAAAAAAA4ODkRCQgAAAB8fHwAAAD08OgAAAGpnZ/Tz829tbS0oKF1aWjYzM2djY/Hx8UhGRPDu7jg3NX98fOPh4eHg4NvZ2eXk5HFtbWJfXtbU1PDt7SQjI3h0dOPi4vr6+uTj43t5efr6+ru5uo2Kip+cnFxZWff29n98fHl2dvr6+ZSQkJWRkePg4ExKSaelpOPh4YB9ffv7+1RQUBkZGS0rK0dGRcXDw3Zycu/u7nRycubl5fX09O3s7ODe3+7s7Pv7+8nIx+jn52lmZgAAAM7Ly7q3t5qXlrq3ueXl5eXj4+vq6pGPj7i0tNXS0t3b2srHx93d3LOwsIWDgpqXl09MTMLAwHdycvTy8mxpaebl5bm2tsG/v/Ly8tXT0/r6+qWiompnZ3Jvb/Hw8NPR0CIiIv////r6+uvq6tDPzvv7+46Li+ro6KShoaGdna2rqs7NzNbU1FpXV+zq6erp6a6rq/Hx8YSBgfTy8n15ed/c2+Df3mFeXtrY18nIx9/e3dPR0fPz8/r6+sPBwb+9vaGenvDt7dnW1oSAgPv7+/v7++He34uHh/r6+tXT0/Ly8vTy8rKvr/n5+Ozq6ff29rGurtPR0dnY1/r6+qWioVFRTHh1dVBQUPv7+qqmpmllZU9NTYSAgHFsbPLw7+7t7drX16Sfn/r6+ra0tO/t7fr6+vr6+snIxqmmpvPy8p+cnKGfnw0NDfj3939u3vIAAAEAdFJOUwDm5ewMK+QCBgHo4Ofh49/r6erd8O8D3u3x7tzbBNni2PIH19oF1vMIEAkK1Qv0DkgnFynUDRH6E0kfFhIdJiMw9xsZFQ8o9iAYGhQhLC1DIjAtPyRf7mI4Vjtc0zjjNmXK0cvRUljC3zRnzPPWavWseoRi8UpZ7niDxUWQ2G7UTi0xR7RV6GTd69zE4uGz11YvtaWCmdvZ4n2XxM67vp10h0qsXtJPyKGh4arsk0tY5Lwk+eLKwtxwzoyQnrvHUtrImNJH00O9wFO6qMu02uaxpmPPynDe1dZ48L3p6KDyz+uitsbqiDJKPNuEb2OBc9nXr274kOro9qyV5Fh7J/B2dxVRAAARSklEQVR42u3deXgb5YHH8ciSdVm+FB+yE1mxEkWyhGWsYNcbH+skdnPfDgmwJCSBhIYkQJamUAIphZSF8AQaKIFylQYopKEUCGfpAdndtlBo6bFbum23tEt3l+59tHs/OyPJZmyPx/ZoZl5L+X6eJ/+9z/PL+9N4NDOaeWfaNAAAAAAAAAAAAAAAAAAAYBqP58zKFTRZV43E5bF41qJyhfXsCkbc4XDYHZHnXPi5wnquiYTblqdSHS2JmDsozbnAc8Vtz5FE54X7Hnr5orVL+trilk05m/vaPotzhXEFY50X3bJAcu4De1sXtchTtuIPOZ17wuYs8p44ssvCXHEbtLt/y2+TyWg0mVy84LprVqWnbP4+U8pt2XJr+ZyGhpm1Id+2e63KFbiHjqUOJKONMqnrBXffW7zUiinLub8umTVXMrthRont4iutyRVXdDC+5L5oXZbU9YIff64n5YiZPWU591cz52bNmlli+871VuSK20VHmnvuaayrU1a9/eaBPkcsYuq3k5z7i4bZQxpmlHq/ttH8XHFFu9tW7a5SqmtMLnh+x5oOc6cs5/7ZrNmzlVWHvA+cZ3auyKLPj1ZVjaz6P276/JKORNi8Kcu55bOGm1Nb9t73TM4VV3S4/9rGqqrRVf/lFau7282bspS7unZE0bOkIxDnd+9cb2auwKKbfq+xerSqxuS5r2xa2BQPm3MmIeWeXd4wyhzpAOS/XzMxd8oVna76t19Zu8ykM4kxiparLrVdal6uMDVS0XXV6qQdyD3XrDLn8FbKPbtkjirpDMZ7u1m5YouuH4O8VV/3udZUi/GHt3LRpTPHMKO8rHKbOblTs+hM1ffv6uk0/ExCs2i5aqd/uxm5QouuCmior25M3nfB7y83+PA2XfQMDbWlRRVPG587dYuWqq5qvPyBT6zoaDbymGvcouWqbSdvMjpXaNHV9nEEqhuNPqyWiw5N11ZbHvL+ztzD+SlWdLrqc395fndTwqjD24kULVdd5v3ZK0bmCi26vmICpKo/9eRHljUZdHgrF11WO77yUmflZgNzp37R6arvefgGgy7QT7Roueoi/62G5QotOuCfmAp7deOxK+eljJiyXLSzfGJKQraKPe8Yk5sXRWeq3rbXiMPbyRQtVV3ms9+/N68Pq+Wi7ZUT55eq/tqGgZwPb+Wii0omrtTpDdxnQG7eFJ2p+oGvZw5v9W9cky26pCTkrAzkniu2aO/kVNqrf3L8xu729C4zh6JtpZNTZvOfzDU3r4r2eqWt+t1fblrUFtY9Yz1Fy1VXvPvznHKFFl3hmzxpq77tnYH2WETnjNNFhyatzOmz55Sbd0X7pB1I3U1rO2I6ty25aF+ZDk5bZX0OuSKLPttv08Xnr9++pT0ctLboMnmj1p+bj0XbbN7Azv9z6PsjlnO9Tp18dt25QouuLNLLF7irM1xjedFOm11vbp4WXeT9qyWxoCePcoUWrX/LchZ9YyAuomib3ty8LXrnfP1btO7vBumLWG+u0KJ1fvvLiq7OYR+dS9FX5+M+Ooeijw7oP+rQd/ye8dWBfDzq0HGGlvUXn2zXuWHlVrT+XLFFl+oTevyGrhzODHVcY8m6U39uPhb90t4VTblc69Bb9O3X55ArtOjJXRfOeuvA2qW5Xb2b5HXwrBP/lVNuvhX9/kPrc74erafo7z6+Pn+vR0/it7usF97O3pef0y8sk/itMut3x3POzauijxjwpImOoiuP5vMTLhO/v2LQ0xuMeHZqEveTZO3ckNfPbE226AcN+tF/skXff32e38M7sXvgBm19Z95Sw+5Umsg9f1l7rpy3NP/vVJpw0S/dZdwT25Mp+taHC+BJ8Qncp5x1+mX5VsOwQbcaTuC+7KwTTxqZO+WLfuu19M2zRt4fPaGib/m5sblii545nvcfX93dlTD4jn+tZ2ey3rviRoNzp3TR779h/AMOEyn65JGCebBC83m/wcf+ju4w4ZEdrecbs54voEeFMkWrPsE66PWNphzAjlt0YT38Nm7Rh6836bHKcYreU2CPc2aeyR61ysCgV6807UHh9DPoVWP4RsE9oKxZ9A8eNvHRd42iNxfgI/eZ9Tqmz1Zx+oCpizmorxMi+dkrhbiIhLwSTMv5KkUffMjk5Unk3GjdKO8V6LIo6SV31r4wd4Q/f+JGsxfckXN3j6z5JwW70E9mta6XRvT8n183/wJ7ZnWyYeq+WrhLV6XXn1vx5tyzFN605AK7nHvfsJ4LejG29IqKS/fN/qDm13dZs8yfnHsg+kHN9xf28oLZtUl/cU7GWb/a25qybG3S/i2bo1k//FFrqsDXJk2vevvUc3LNr37mvB7rpivnPpJu+rYrdvQUfM3pdZzjfZ98cd+L357XvVz+47XoPCGTe/XL995hba7IvbS0MnlHZ1+XIx62cqsSlStym06vte9OL0ruKfxcgU17XNLrI1yWz1ZULgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhcgjL/Q3kke56t/4I/IpV1jPrhpp6coRIsqXGYw/Ip9yxfUcdMcSzY5hmhOxD95UPP6IfMoV2HOsa35r8Qit84feJS+P6FAb0ZHL2+ZF5Yorusbdtf/Ys6Mc29/lrvFkR3Tsv1ttREd2hN7cQxePfrfsxYeUueojcskVV3QwNv+6xclRFl83Pxb0DI44pjbi2OAIvblbQ7Uj37ZaG9qqzL1MbcRlueQK44okWi+PNo4Svbw1EXENjlisNiI5OEJv7qmGuaM0nFLmhtRGlOaSK7Do5uJknYpkcXN2wu7xRujNLVd7dVS5Mld7RH4V7XYUR9VqjBY73K6JjdCbW6tWY60yV3sERU8wt1ztnXPlylztEflXtNpb2IYXrTmCoqd40SVq7wQtUeZqj6BoilafcKPaW18blRPWHqE3t1Ttpc2lylztERRN0eoTVn0Rep1ywtojdBet9rb34UVrjqBoilafcFVARZVywtoj9OaGZqgIKXO1R1A0RatPuNquolo5Ye0RenPLpqsoU+Zqj6Boip5aRTtrVTiVudoj8q/oChXDi9YcQdFTvOiichVFylztEXlXdL1fRb1ywtojKHqqF12iYnjRmiPyruhApYqAcsLaIyh6ihdtK1VhU+Zqj8i7ou1eFXblhLVHUPQUL9oXUuFT5mqPyLuiK3wqKpQT1h6hN9dbpsKrzNUeQdEUrT5hv02FXzlh7RF6cyudKiqVudojKJqixyi6SMXwojVH5FMuRZ8JRYv4Exa1y6LoM6FoEYdZog4rKfpMKFrEqbCoU3+hRYu4uEPRFhYt4vKs0KJFXICnaAuLFvETmtiiBfxIStEWFi3iNgehRYu4kYWirSxawK1oQosWcbMhRVO0eUWLuCFc1A3wFH0mFC3ioR1RDylR9BlRtIAHK0U9SErRZ0LRIh5+F/WwP0WfCUWLWKCEoq0sWsASQ0KLFrGIFEVTtHlFT5+rYrpywtoj9OYmG1UklbnaI/KraGmhvzFqVCz0N9YId04LDI5Ro3JhwzFG5GXRidYZZ6mYqVy6UnXEjFyXzFStMarMVS86L5fMlJdaPaxW42HlYqxb1UZ8PNdFYPdEVexR5t6tNuJYXi4CKy8v/NiDB88Z4eA3H2tXLC98ybfOGTXiwce6clzW+JJtu0eWuHvbJcrcQ6M/i90/PtSVl8saj7Vgdvu4C2Z3mbJQt8m5Qptm6XmLmpZeWTDinQWRcV9qEDHmZQoCcgU2zetBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAiTwKtGFqzYr1GajavJ5drpos1sIwueegtBCMJBiUu6Zqc4qWNmdpNZ1wmlvumqrN6Vnant3hWDwhicdiYao2bYOWenZ0di/s7G+TFuCKy1VLOxCaNrhoeRWucDz1xFU/fLFnaVd/i6M5HnNH2KhNKDoirSy34qfPPvuh637UuqyrqcWRiIfTVdO0oUVLG3TC0ZpMJhcv+ND2m3uWdfS3ySv40bThRbtjzW0fll7CUdWYXPDs8zsGFnVJG3V6T+2iaOOKlr4K447+eVXSK9UC1XXJBf925BNrUk1t8jZN0cYWHY47mrLvwbTXS1XvvmL1/A5HIuxmkza0aGkX3da+cvCl0P5AVXTxVQ9tWdQSZ5M2vOiW9nUfvE/eb5eq/umv57dJe2mKNowrXXTXOr9tiM9bUR1d/EYq5s7fRW2n5GF0rFkqutKpUOTz17+7kKKN33V0rfOFhikr+k1fLELRxn8ZFpUM8+D+ZQ720SYUPfw99ltf7Ol0cCBtynG04mXUz917w7ImR5xTQ8NPwePN/fOG3ij7g30f6V7e70jEOF8x/lpHoq01+1rIRw9sWtInX8AbvKpEQwYe30n7jp4X5LcTHvzs+jWpdunqXZyrdyYULW/S85+bO/fgE9eukGuWL925+ZHFhKIj4djyf/2Xf79W3mm0DV32p2dji840nehYtLS9TX5pDzWbtkmn390Ti8VlsXTN7DXM2aQzb0mS7+pwU7OJRafvCEvfqhTkTiWzm3YN3XvHbY5mNj14Oyk37lpQNbdHAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgIk8auabHumpqalyWJ59xua6aYDgej8jRVn7QilxR87U6153o++iftkjJLpf0z6KqFbkeQfO1PNex6KKr/mhhOBKUPulw0JpPWpEb9IiZr3W5Hk/6z8ix8OZzo8meRNidWPb9VML8T1qRm0z2xCMu6+drZW461R2OtyzceEtddd28tkQ8dWTBb5ZK/wGPVbnRuug8RzjoyvAUZO40j/yd0NzW3r3hlqqAvXplU3/TouN1H3uqK2zuJq3Irauur1vZknBHZEGTd1rCcl3BRGpg3sreP/xUtb2iovrTqWe+v2LVzurtSxKm/k0pcqXP1169rn15qikRTzR1mvv1JCpX+oDDnZ+9PJlMNtZX+P3++t5nnk5e3XPeyar97aZu0pncxYuTUfnzlT7gRYdu/1KqPXXJ7X/TFnQVXu40TzA+cFL6aO0VlV6JvXfJ8fovb1p31P72opiZ38dy7sfqA4GA3V8pCfTO/07d5vNa7/hy3be6TC1aUO40VyTxYbvXN6iid9mmfw7cVXyNf+uSeMRjbm4g/dl6Mx/wwtUXB277h82Byy5sMXPConKnudzNxf6iIf7ezoE7K7+3clfliQFTd9JyboVtiJS7cPW2ikDF1vV98WAB5krBjuJK55DK3tSKJ71Pr9vh9feYXPSI3L7O1n+UZv53A00mFy0mNx3sCw3xyVu07fjKXba3Bkwvenhu945Lnaect347ZXrRInLT+6yikiFF8j7aKe2jnYfN30cPz73jUtvhv7/Md+mX+s3eR4vITX8LnyofUtS74m3bP52/7qjzcfOPOobldh+2fXz9mtVfsH3T9KMOEbnycWXqM9OHlPU+82ZIOo4+FXrK9OPoYbmfXvq3X7xweX/fhV/8a0ch5spnSs2ZM6XTMyShXunMcM2qnaHXzT8zHMydKSld197V0RaPxdvam029yCIqV3Huf8EfzJkzpzR9reMJ5/uPWXat44LTDQ0NJcUtcXcwTb4WXoC5iqtZG6TkkvTVuzfK/9fCq3cXnJ41q1y6ipb+bUe+iFaQudMU12c3Pjq7tjV9Pfp/LL0evfHRudNbBVyPtjg3u+uSf3F45E9e7RbxC8sjj36hW8QvLNbnZpKbOz/6x/0CfjPM5noEzdfin8Gl5Eg4kRDxK/hgrqj5TrO46cx9DuRa8i3BnUoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCw/T/NQ9tr8gdUHQAAAABJRU5ErkJggg=="},function(e,t,i){function n(e){"use strict";s.constructor.call(this,e),this.$Shell_handleAppInstallModalClose=this.$Shell_handleAppInstallModalClose.bind(this),this.$Shell_handleGetAppClick=this.$Shell_handleGetAppClick.bind(this),this.$Shell_handleOpenInApp=this.$Shell_handleOpenInApp.bind(this),this.state={showAppInstallModal:!1},x(e.pageTitle)}function r(e,t){var i=e.props.style;return m.cloneElement(e,a({},e.props,{style:a({},i,t)}))}var o,s,a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},l=i(232),p=i(233),c=i(194),u=i(193),d=i(9),h=i(231),m=i(1),f=i(18),g=i(197),v=i(20),b=i(6),A=i(14),y=i(3),x=i(155),w=i(196),E=w.openInAppOrFallbackToInstall;i(248);var D=m.PropTypes;o=m.Component,s=o&&o.prototype,Object.assign(n,o),n.prototype=Object.create(s),n.prototype.constructor=n,n.__superConstructor__=o,n.prototype.componentDidMount=function(){"use strict";var e=f.getHistoryData("cachedScrollPosition")||{x:0,y:0};window.scrollTo(e.x,e.y),this.$Shell_scrollStartSubscription=g.addListener(g.END_EVENT,this.$Shell_handleScroll)},n.prototype.componentWillReceiveProps=function(e){"use strict";e.pageTitle!==this.props.pageTitle&&x(e.pageTitle)},n.prototype.componentWillUnmount=function(){"use strict";this.$Shell_scrollStartSubscription.remove()},n.prototype.$Shell_handleAppInstallModalClose=function(){"use strict";this.setState({showAppInstallModal:!1})},n.prototype.$Shell_handleGetAppClick=function(e){"use strict";b.isWeb()&&(this.setState({showAppInstallModal:!0}),e.preventDefault())},n.prototype.$Shell_handleOpenInApp=function(){"use strict";d.logAction("openInAppClick",{platform:b.platform,source:this.props.pageIdentifier}),d.flush(function(){b.isIOS()?E(this.props.iOSAppLink):(b.isAndroid()?void 0:y(0,"can only open in app on iOS or Android"),window.location="intent://instagram.com"+this.props.androidAppLink+"#Intent;package=com.instagram.android;scheme=https;end")}.bind(this))},n.prototype.$Shell_handleScroll=function(){"use strict";f.setHistoryData({cachedScrollPosition:{x:window.scrollX,y:window.scrollY}})},n.prototype.renderAppInstallModal=function(){"use strict";return m.createElement(c,{campaign:this.props.pageIdentifier,onClose:this.$Shell_handleAppInstallModalClose})},n.prototype.renderFooter=function(){"use strict";if(null===this.props.footerElement)return null;var e;return e=this.props.footerElement?r(this.props.footerElement,{maxWidth:this.props.maxWidth}):m.createElement(u,{style:{maxWidth:this.props.maxWidth},variant:this.props.footerVariant}),m.createElement("footer",{className:"g28",role:"contentinfo"},e)},n.prototype.renderNavigation=function(){"use strict";if(null===this.props.navElement)return null;var e;if(this.props.navElement)e=r(this.props.navElement,{maxWidth:this.props.maxWidth});else{var t=!!(b.isIOS()&&this.props.iOSAppLink||b.isAndroid()&&this.props.androidAppLink);e=m.createElement(h,{isViewingOwnProfile:this.props.isViewingOwnProfile,onGetAppClick:this.$Shell_handleGetAppClick,onOpenInApp:t?this.$Shell_handleOpenInApp:null,analyticsContext:this.props.pageIdentifier,style:{maxWidth:this.props.maxWidth}})}return m.createElement("nav",{className:"h28",role:"navigation"},e)},n.prototype.render=function(){"use strict";return m.createElement("section",{className:"i28"},null,m.createElement("main",{className:"j28",role:"main"},this.props.children),this.props.hideNavigation?null:this.renderNavigation(),this.renderFooter(),this.props.showAppInstallBanner?m.createElement(p,{banner:this.props.AppInstallBannerComponent||l,campaign:this.props.pageIdentifier,className:"k28",force:this.props.forceAppInstallBanner}):null,this.state.showAppInstallModal&&this.renderAppInstallModal())},n.defaultProps={footerVariant:u.VARIANTS.flexible,isViewingOwnProfile:!1,maxWidth:v.SITE_WIDTHS.wide,showAppInstallBanner:!0},n.propTypes={AppInstallBannerComponent:D.func,androidAppLink:D.string,footerElement:D.element,footerVariant:D.oneOf(A(u.VARIANTS)),forceAppInstallBanner:D.bool,hideNavigation:D.bool,iOSAppLink:D.string,isViewingOwnProfile:D.bool.isRequired,maxWidth:D.number,navElement:D.element,pageIdentifier:D.string.isRequired,pageTitle:D.string.isRequired,showAppInstallBanner:D.bool},e.exports=n,i(211)},,function(e,t,i){var n,r;/*!
 * numeral.js
 * version : 1.5.3
 * author : Adam Draper
 * license : MIT
 * http://adamwdraper.github.com/Numeral-js/
 */
(function(){function i(e){this._value=e}function o(e,t,i,n){var r,o,s=Math.pow(10,t);return o=(i(e*s)/s).toFixed(t),n&&(r=new RegExp("0{1,"+n+"}$"),o=o.replace(r,"")),o}function s(e,t,i){var n;return n=t.indexOf("$")>-1?l(e,t,i):t.indexOf("%")>-1?p(e,t,i):t.indexOf(":")>-1?c(e,t):d(e._value,t,i)}function a(e,t){var i,n,r,o,s,a=t,l=["KB","MB","GB","TB","PB","EB","ZB","YB"],p=!1;if(t.indexOf(":")>-1)e._value=u(t);else if(t===y)e._value=0;else{for("."!==b[A].delimiters.decimal&&(t=t.replace(/\./g,"").replace(b[A].delimiters.decimal,".")),i=new RegExp("[^a-zA-Z]"+b[A].abbreviations.thousand+"(?:\\)|(\\"+b[A].currency.symbol+")?(?:\\))?)?$"),n=new RegExp("[^a-zA-Z]"+b[A].abbreviations.million+"(?:\\)|(\\"+b[A].currency.symbol+")?(?:\\))?)?$"),r=new RegExp("[^a-zA-Z]"+b[A].abbreviations.billion+"(?:\\)|(\\"+b[A].currency.symbol+")?(?:\\))?)?$"),o=new RegExp("[^a-zA-Z]"+b[A].abbreviations.trillion+"(?:\\)|(\\"+b[A].currency.symbol+")?(?:\\))?)?$"),s=0;s<=l.length&&!(p=t.indexOf(l[s])>-1?Math.pow(1024,s+1):!1);s++);e._value=(p?p:1)*(a.match(i)?Math.pow(10,3):1)*(a.match(n)?Math.pow(10,6):1)*(a.match(r)?Math.pow(10,9):1)*(a.match(o)?Math.pow(10,12):1)*(t.indexOf("%")>-1?.01:1)*((t.split("-").length+Math.min(t.split("(").length-1,t.split(")").length-1))%2?1:-1)*Number(t.replace(/[^0-9\.]+/g,"")),e._value=p?Math.ceil(e._value):e._value}return e._value}function l(e,t,i){var n,r,o=t.indexOf("$"),s=t.indexOf("("),a=t.indexOf("-"),l="";return t.indexOf(" $")>-1?(l=" ",t=t.replace(" $","")):t.indexOf("$ ")>-1?(l=" ",t=t.replace("$ ","")):t=t.replace("$",""),r=d(e._value,t,i),1>=o?r.indexOf("(")>-1||r.indexOf("-")>-1?(r=r.split(""),n=1,(s>o||a>o)&&(n=0),r.splice(n,0,b[A].currency.symbol+l),r=r.join("")):r=b[A].currency.symbol+l+r:r.indexOf(")")>-1?(r=r.split(""),r.splice(-1,0,l+b[A].currency.symbol),r=r.join("")):r=r+l+b[A].currency.symbol,r}function p(e,t,i){var n,r="",o=100*e._value;return t.indexOf(" %")>-1?(r=" ",t=t.replace(" %","")):t=t.replace("%",""),n=d(o,t,i),n.indexOf(")")>-1?(n=n.split(""),n.splice(-1,0,r+"%"),n=n.join("")):n=n+r+"%",n}function c(e){var t=Math.floor(e._value/60/60),i=Math.floor((e._value-60*t*60)/60),n=Math.round(e._value-60*t*60-60*i);return t+":"+(10>i?"0"+i:i)+":"+(10>n?"0"+n:n)}function u(e){var t=e.split(":"),i=0;return 3===t.length?(i+=60*Number(t[0])*60,i+=60*Number(t[1]),i+=Number(t[2])):2===t.length&&(i+=60*Number(t[0]),i+=Number(t[1])),Number(i)}function d(e,t,i){var n,r,s,a,l,p,c=!1,u=!1,d=!1,h="",m=!1,f=!1,g=!1,v=!1,x=!1,w="",E="",D=Math.abs(e),C=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],k="",P=!1;if(0===e&&null!==y)return y;if(t.indexOf("(")>-1?(c=!0,t=t.slice(1,-1)):t.indexOf("+")>-1&&(u=!0,t=t.replace(/\+/g,"")),t.indexOf("a")>-1&&(m=t.indexOf("aK")>=0,f=t.indexOf("aM")>=0,g=t.indexOf("aB")>=0,v=t.indexOf("aT")>=0,x=m||f||g||v,t.indexOf(" a")>-1?(h=" ",t=t.replace(" a","")):t=t.replace("a",""),D>=Math.pow(10,12)&&!x||v?(h+=b[A].abbreviations.trillion,e/=Math.pow(10,12)):D<Math.pow(10,12)&&D>=Math.pow(10,9)&&!x||g?(h+=b[A].abbreviations.billion,e/=Math.pow(10,9)):D<Math.pow(10,9)&&D>=Math.pow(10,6)&&!x||f?(h+=b[A].abbreviations.million,e/=Math.pow(10,6)):(D<Math.pow(10,6)&&D>=Math.pow(10,3)&&!x||m)&&(h+=b[A].abbreviations.thousand,e/=Math.pow(10,3))),t.indexOf("b")>-1)for(t.indexOf(" b")>-1?(w=" ",t=t.replace(" b","")):t=t.replace("b",""),s=0;s<=C.length;s++)if(n=Math.pow(1024,s),r=Math.pow(1024,s+1),e>=n&&r>e){w+=C[s],n>0&&(e/=n);break}return t.indexOf("o")>-1&&(t.indexOf(" o")>-1?(E=" ",t=t.replace(" o","")):t=t.replace("o",""),E+=b[A].ordinal(e)),t.indexOf("[.]")>-1&&(d=!0,t=t.replace("[.]",".")),a=e.toString().split(".")[0],l=t.split(".")[1],p=t.indexOf(","),l?(l.indexOf("[")>-1?(l=l.replace("]",""),l=l.split("["),k=o(e,l[0].length+l[1].length,i,l[1].length)):k=o(e,l.length,i),a=k.split(".")[0],k=k.split(".")[1].length?b[A].delimiters.decimal+k.split(".")[1]:"",d&&0===Number(k.slice(1))&&(k="")):a=o(e,null,i),a.indexOf("-")>-1&&(a=a.slice(1),P=!0),p>-1&&(a=a.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1"+b[A].delimiters.thousands)),0===t.indexOf(".")&&(a=""),(c&&P?"(":"")+(!c&&P?"-":"")+(!P&&u?"+":"")+a+k+(E?E:"")+(h?h:"")+(w?w:"")+(c&&P?")":"")}function h(e,t){b[e]=t}function m(e){var t=e.toString().split(".");return t.length<2?1:Math.pow(10,t[1].length)}function f(){var e=Array.prototype.slice.call(arguments);return e.reduce(function(e,t){var i=m(e),n=m(t);return i>n?i:n},-(1/0))}var g,v="1.5.3",b={},A="en",y=null,x="0,0",w="undefined"!=typeof e&&e.exports;g=function(e){return g.isNumeral(e)?e=e.value():0===e||"undefined"==typeof e?e=0:Number(e)||(e=g.fn.unformat(e)),new i(Number(e))},g.version=v,g.isNumeral=function(e){return e instanceof i},g.language=function(e,t){if(!e)return A;if(e&&!t){if(!b[e])throw new Error("Unknown language : "+e);A=e}return(t||!b[e])&&h(e,t),g},g.languageData=function(e){if(!e)return b[A];if(!b[e])throw new Error("Unknown language : "+e);return b[e]},g.language("en",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th"},currency:{symbol:"$"}}),g.zeroFormat=function(e){y="string"==typeof e?e:null},g.defaultFormat=function(e){x="string"==typeof e?e:"0.0"},"function"!=typeof Array.prototype.reduce&&(Array.prototype.reduce=function(e,t){"use strict";if(null===this||"undefined"==typeof this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!=typeof e)throw new TypeError(e+" is not a function");var i,n,r=this.length>>>0,o=!1;for(1<arguments.length&&(n=t,o=!0),i=0;r>i;++i)this.hasOwnProperty(i)&&(o?n=e(n,this[i],i,this):(n=this[i],o=!0));if(!o)throw new TypeError("Reduce of empty array with no initial value");return n}),g.fn=i.prototype={clone:function(){return g(this)},format:function(e,t){return s(this,e?e:x,void 0!==t?t:Math.round)},unformat:function(e){return"[object Number]"===Object.prototype.toString.call(e)?e:a(this,e?e:x)},value:function(){return this._value},valueOf:function(){return this._value},set:function(e){return this._value=Number(e),this},add:function(e){function t(e,t,n,r){return e+i*t}var i=f.call(null,this._value,e);return this._value=[this._value,e].reduce(t,0)/i,this},subtract:function(e){function t(e,t,n,r){return e-i*t}var i=f.call(null,this._value,e);return this._value=[e].reduce(t,this._value*i)/i,this},multiply:function(e){function t(e,t,i,n){var r=f(e,t);return e*r*(t*r)/(r*r)}return this._value=[this._value,e].reduce(t,1),this},divide:function(e){function t(e,t,i,n){var r=f(e,t);return e*r/(t*r)}return this._value=[this._value,e].reduce(t),this},difference:function(e){return Math.abs(g(this._value).subtract(e).value())}},w&&(e.exports=g),"undefined"==typeof ender&&(this.numeral=g),n=[],r=function(){return g}.apply(t,n),!(void 0!==r&&(e.exports=r))}).call(this)},,function(e,t,i){(function(t){function n(){"use strict";r.apply(this,arguments)}var r,o,s=i(11),a=i(229),l=i(1),p=i(97),c=i(14),u=i(7),d=l.PropTypes,h=u({slim:null,flexible:null});r=l.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.render=function(){"use strict";var e=null;return l.createElement("div",{className:"n09"+(this.props.variant===h.slim?" o09":"")+(this.props.variant===h.flexible?" p09":""),style:this.props.style},l.createElement("nav",{className:"q09",role:"navigation"},l.createElement("ul",{className:"r09"},l.createElement("li",{className:"m09"},l.createElement("a",{href:"/about/us/"},"Instagram 정보")),l.createElement("li",{className:"m09"},l.createElement("a",{href:"https://help.instagram.com/"},"지원")),l.createElement("li",{className:"m09"},l.createElement("a",{href:"http://blog.instagram.com/"},"블로그")),l.createElement("li",{className:"m09"},l.createElement(s,{href:"/press/"},"관련 기사")),l.createElement("li",{className:"m09"},l.createElement("a",{href:"/developer/"},"API")),l.createElement("li",{className:"m09"},l.createElement("a",{href:"/about/jobs/"},"채용 정보")),l.createElement("li",{className:"m09"},l.createElement("a",{href:"/legal/privacy/"},"개인정보보호")),l.createElement("li",{className:"m09"},l.createElement("a",{href:"/legal/terms/"},"약관")),e,l.createElement("li",{className:"m09"},l.createElement(a,null)))),l.createElement("span",{className:"s09"},t("© {year} Instagram",{year:p(new Date,"Y")})))},n.defaultProps={variant:h.flexible},n.propTypes={style:d.object,variant:d.oneOf(c(h))},n.VARIANTS=h,e.exports=n,i(208)}).call(t,i(5))},function(e,t,i){(function(t){function n(){"use strict";r.apply(this,arguments)}var r,o,s=i(93),a=i(41),l=i(9),p=i(26),c=i(1),u=c.PropTypes;r=c.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.componentDidMount=function(){"use strict";l.logAction("appModalShow",{source:this.props.campaign})},n.prototype.render=function(){"use strict";var e="앱을 다운로드하여 최고의 Instagram 버전을 경험해보세요.";return c.createElement(p,{onClose:this.props.onClose},c.createElement("div",{className:"a09"},c.createElement("button",{className:"b09",onClick:this.props.onClose},"닫기"),c.createElement("p",{className:"c09"},e),c.createElement("div",{className:"d09"},c.createElement(s,{campaign:this.props.campaign,medium:"modal",platform:a.appPlatformTypes.IOS}),c.createElement(s,{campaign:this.props.campaign,medium:"modal",platform:a.appPlatformTypes.ANDROID}))))},n.propTypes={campaign:u.string.isRequired,onClose:u.func},e.exports=n,i(213)}).call(t,i(5))},,function(e,t,i){function n(e,t){var i="string"==typeof t;if(!a.isIOS())return void(i&&(window.top.location=t));a.isTwitterWebview()&&(i=!1);var n=[],r=!1;$(window).on("pagehide beforeunload blur",function(){n.map(window.clearTimeout)}),i&&n.push(window.setTimeout(function(){r=!0,window.top.location=t},1e3)),n.push(window.setTimeout(function(){r&&window.location.reload()},2e3)),window.location="instagram://"+e}function r(e){n(e)}function o(e){n(e,l())}function s(e,t){"undefined"==typeof t?p(0,"You must pass a fallbackUri to openInAppOrFallbackToUri"):void 0,n(e,t)}var a=i(6),l=i(96),p=i(3);e.exports={openInApp:r,openInAppOrFallbackToInstall:o,openInAppOrFallbackToUri:s}},function(e,t,i){var n=i(15),r=i(39),o=i(27),s=i(35),a=50,l=50,p=200,c=Object.assign(new r,{START_EVENT:"start",END_EVENT:"end",_lastScroll:0,_firstScroll:0,_timeout:null,_scrollOn:!1,_checkScroll:function(){Date.now()-this._lastScroll>p?(this.emit(this.END_EVENT),this._scrollOn=!1,this._timeout=null):this._timeout=s.setTimeout(this._checkScroll.bind(this),a)},_handleScroll:function(){this._lastScroll=Date.now(),this._timeout||(this._firstScroll=this._lastScroll,this._timeout=s.setTimeout(this._checkScroll.bind(this),a)),!this._scrollOn&&this._lastScroll-this._firstScroll>l&&(this._scrollOn=!0,this.emit(this.START_EVENT))}});n.canUseDOM&&o.listen(window,"scroll",c._handleScroll.bind(c)),e.exports=c},,,,,,function(e,t,i){"use strict";function n(e,t,i){return!r(e.props,t)||!r(e.state,i)}var r=i(205);e.exports=n},function(e,t,i){function n(){"use strict";r.apply(this,arguments)}var r,o,s=i(11),a=i(13),l=i(1),p=i(4),c=l.PropTypes;r=l.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.render=function(){"use strict";return l.createElement(s,{className:p("j69",this.props.className),href:a.buildUserLink(this.props.username),title:this.props.username},l.createElement("img",{className:"k69",src:this.props.profilePictureUrl}))},n.propTypes={profilePictureUrl:c.string.isRequired,username:c.string.isRequired},e.exports=n,i(298)},,,function(e,t,i){"use strict";function n(e){var t="transition"+e+"Timeout",i="transition"+e;return function(e){if(e[i]){if(null==e[t])return new Error(t+" wasn't supplied to ReactCSSTransitionGroup: this can cause unreliable animations and won't be supported in a future version of React. See https://fb.me/react-animation-transition-group-timeout for more information.");if("number"!=typeof e[t])return new Error(t+" must be a number (in milliseconds)")}}}var r=i(67),o=i(17),s=i(256),a=i(253),l=r.createClass({displayName:"ReactCSSTransitionGroup",propTypes:{transitionName:a.propTypes.name,transitionAppear:r.PropTypes.bool,transitionEnter:r.PropTypes.bool,transitionLeave:r.PropTypes.bool,transitionAppearTimeout:n("Appear"),transitionEnterTimeout:n("Enter"),transitionLeaveTimeout:n("Leave")},getDefaultProps:function(){return{transitionAppear:!1,transitionEnter:!0,transitionLeave:!0}},_wrapChild:function(e){return r.createElement(a,{name:this.props.transitionName,appear:this.props.transitionAppear,enter:this.props.transitionEnter,leave:this.props.transitionLeave,appearTimeout:this.props.transitionAppearTimeout,enterTimeout:this.props.transitionEnterTimeout,leaveTimeout:this.props.transitionLeaveTimeout},e)},render:function(){return r.createElement(s,o({},this.props,{childFactory:this._wrapChild}))}});e.exports=l},function(e,t,i){var n=i(2),r=i(218);n(r,"is-2b83c814")},function(e,t,i){var n=i(2),r=i(219);n(r,"is1a353bea")},function(e,t,i){var n=i(2),r=i(220);n(r,"is-4751c673")},function(e,t,i){var n=i(2),r=i(221);n(r,"is-63d6c88b")},function(e,t,i){var n=i(2),r=i(222);n(r,"is-749ac294")},function(e,t,i){var n=i(2),r=i(223);n(r,"is4e0a3d03")},function(e,t,i){var n=i(2),r=i(224);n(r,"is36523974")},function(e,t,i){var n=i(2),r=i(225);n(r,"is-1af6c563")},function(e,t,i){var n=i(2),r=i(226);n(r,"is-1cd5c486")},function(e,t,i){var n=i(2),r=i(227);n(r,"is-5a9bc4b2")},function(e,t){e.exports=".n09{font-size:12px;font-weight:600;margin:0 auto;text-transform:uppercase;width:100%}.s09{color:#4b4f54}.m09{display:inline-block;margin-bottom:7px;margin-right:16px}.m09:last-child{margin-right:0}.r09{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin-bottom:3px}@media (min-width:875px){.p09{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:38px 0}.p09 .q09{max-width:100%}.p09 .r09{margin-right:16px}}@media (max-width:874px){.p09{padding:10px 0;text-align:center}.p09 .r09{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;margin:0 auto;max-width:360px}}.o09{padding:10px 0;text-align:center}.o09 .r09{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;margin:0 auto;max-width:360px}"},function(e,t){e.exports=".x89{color:#125688;cursor:pointer;display:inline-block;font-weight:600;position:relative;text-transform:uppercase;vertical-align:top}.x89:hover{color:#0d3c5f}.y89{cursor:pointer;left:0;opacity:0;position:absolute;top:0}"},function(e,t){e.exports=".r79{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;margin:0 auto;width:100%}.s79{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;left:-3px;margin-bottom:-2px;position:relative}.t79{-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;width:0}.n79,.t79 button{font-weight:600;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.t79 button{background:0 0;border:0;cursor:pointer;padding:0}.o79,.o79:visited,.p79{color:#4090db}.o79:hover,.p79:hover{color:#2d6599}.o79:active,.p79:active{color:#20486d}@media (orientation:portrait) and (min-width:448px),(orientation:landscape) and (min-height:415px){.r79{height:77px;padding:26px 0}.n79,.t79 button{font-size:16px;line-height:22px;margin-right:20px}.t79{margin-left:30px;margin-right:-20px}}@media (orientation:portrait) and (max-width:447px),(orientation:landscape) and (max-height:414px){.s79{margin-right:-41px;-webkit-transform:translate3d(0,0,0) scale(.67);transform:translate3d(0,0,0) scale(.67);-webkit-transform-origin:left;transform-origin:left}.r79{height:77px;padding:26px 0}.n79,.t79 button{font-size:14px;line-height:17px;margin-right:15px}.t79{margin-left:20px;margin-right:-15px}}@media (max-width:475px){.q79{display:none}}"},function(e,t){e.exports=".i28{min-height:100%;overflow:hidden}.k28{-webkit-box-ordinal-group:1;-webkit-order:0;-ms-flex-order:0;order:0}.j28{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.j28,.g28{background-color:#fafafa}.g28{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.g28,.h28{padding:0 20px}.h28{border-bottom-color:#edeeee;border-bottom-width:1px;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}"},function(e,t){e.exports=".p29{background-color:#2b2d2e;box-sizing:border-box;display:table;height:51px;padding:11px 13px 11px 51px;position:relative;width:100%}.q29{background-color:#4090db}.v29{text-align:right}.w29{background:0 0;border:1px solid #fff;border-radius:3px;box-sizing:border-box;display:table-cell;font-size:14x;font-weight:600;line-height:25px;padding:0 10px;text-transform:uppercase}.s29{max-width:1px;padding-right:13px;width:100%}.t29{font-size:15px;font-weight:600;line-height:15px;margin:0 0 2px}.u29{font-size:12px;font-weight:500;line-height:12px;margin:0}.r29{left:0;position:absolute;top:0}.s29,.v29{display:table-cell;vertical-align:top}.t29,.u29,.w29{color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x29{background:#fff;color:#4090db;text-transform:none}"},function(e,t){e.exports=".a09{background:#FFF;border-radius:5px;margin:0 auto;padding:50px 75px}.d09{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;margin-top:30px}.b09{background:0 0;border:none;cursor:pointer;height:54px;outline:0;overflow:hidden;position:absolute;right:0;top:0}.b09::before{color:#c9cbcc;content:'\\00D7';display:block;font-size:24px;padding:15px}.c09{color:#34373b;font-size:18px;line-height:24px;margin:0 auto;max-width:250px}"},function(e,t){e.exports=".g1a{background:#fff;border:solid 1px #edeeee;border-radius:3px;box-shadow:0 0 5px rgba(0,0,0,.13);display:block;position:absolute;right:-12px;top:18px;width:243px;z-index:2}.g1a::after{border-color:transparent transparent #fff transparent;border-style:solid;border-width:0 10px 10px 10px;height:0;left:110px;top:-10px;width:0;z-index:3}.g1a::after,.f1a{content:' ';position:absolute}.f1a{background:#fff;border:solid 1px #edeeee;box-shadow:0 0 5px 1px rgba(0,0,0,.13);height:14px;left:99px;top:12px;-webkit-transform:rotate(45deg);transform:rotate(45deg);width:14px;z-index:1}.w0a{border:solid 1px #edeeef;border-radius:30px;float:left;height:30px;margin:7px 10px 0 0;width:30px}.c1a{float:left;margin:12px 18px 0 10px;width:14px}.e1a{color:#a5a7aa;font-size:14px;padding:15px;text-align:center}.d1a{float:left;margin:12px 18px 0 8px;width:16px}.t0a{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;border-bottom:solid 1px #edeeef;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:50px;padding:8px 14px}.t0a:last-child{border:none}.v0a{display:inline;margin-right:0;padding-bottom:5px;white-space:nowrap;width:100%}.b1a{color:#c9c8cd;display:block;font-weight:300;line-height:22px;overflow:hidden;text-overflow:ellipsis}.b1a,.x0a{font-size:14px;text-align:left}.x0a{color:#070809;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;font-weight:400;margin-top:3px}.x0a,.z0a{overflow:hidden}.z0a{line-height:22px;margin-bottom:-4px;max-width:140px;text-overflow:ellipsis}.y0a{margin-top:12px}.h1a{max-height:362px;overflow-y:auto;overflow-x:hidden;padding:0}.i1a{border:solid 1px #edeeef;font-size:16px;font-weight:600;margin:10px;outline:none;padding:10px;width:358px}.u0a{background:#fafafa}.a1a{display:block;height:12px;margin-left:5px;margin-top:4px;position:absolute;width:12px}@media (max-width:639px){.i1a{width:inherit}}"},function(e,t){e.exports=".p0a{left:50%;margin-left:-183px;position:absolute;top:0}.j0a{left:11px;top:9px}.j0a,.l0a{position:absolute;z-index:2}.l0a{background:#fafafa;border:solid 1px #edeeee;border-radius:15px;color:#818488;cursor:text;font-size:14px;font-weight:300;height:28px;left:0;padding:7px;text-align:center;top:0;width:215px}.m0a{display:inline;left:-5px}.n0a{margin-right:6px;vertical-align:baseline}.n0a,.o0a{display:inline-block}.o0a{max-width:140px;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap}.q0a{border-radius:15px;border:solid 1px #edeeee;font-size:14px;height:20px;outline:none;padding:3px 10px 3px 26px;width:178px;z-index:2}.k0a{bottom:0;left:0;position:fixed;right:0;top:0;z-index:1}.r0a{left:200px;position:absolute;top:14px;z-index:3}"},function(e,t){e.exports=".s68{background-color:rgba(0,0,0,.85);border-radius:4px;display:block;font-size:14px;line-height:28px;margin-top:6px;padding:0 10px;position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1}.s68:focus{outline:none}.s68,.s68:link,.s68:visited{color:#fff;font-weight:600}.s68:hover{text-decoration:none}.q68{position:relative}.r68{border-color:transparent transparent rgba(0,0,0,.85)transparent;border-style:solid;border-width:0 6px 6px 6px;height:0;left:50%;margin-left:-6px;position:absolute;top:-12px;width:0}"},function(e,t){e.exports=".n39{text-align:center}.l39{color:#34373b;font-weight:600}.m39{display:block}"},function(e,t,i){(function(t){function n(){"use strict";r.apply(this,arguments)}var r,o,s=i(1),a=s.PropTypes,l=[{code:"af",name:"아프리칸어"},{code:"cs",name:"체코어"},{code:"da",name:"덴마크어"},{code:"de",name:"독일어"},{code:"el",name:"그리스어"},{code:"en",name:"영어"},{code:"es",name:"스페인어"},{code:"fi",name:"핀란드어"},{code:"fr",name:"프랑스어"},{code:"hi",name:"힌디어"},{code:"id",name:"인도네시아어"},{code:"it",name:"이탈리아어"},{code:"ja",name:"일본어"},{code:"ko",name:"한국어"},{code:"ms",name:"말레이어"},{code:"nb",name:"노르웨이어"},{code:"nl",name:"네덜란드어"},{code:"pl",name:"폴란드어"},{code:"pt",name:"포르투갈어(포르투갈)"},{code:"pt-br",name:"포르투갈어"},{code:"ru",name:"러시아어"},{code:"sv",name:"스웨덴어"},{code:"th",name:"태국어"},{code:"tl",name:"타갈로그어/필리핀어"},{code:"tr",name:"터키어"},{code:"zh-cn",name:"중국어(간체)"},{code:"zh-tw",name:"중국어(번체)"}];r=s.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.$LanguageSwitcher_handleChange=function(e){"use strict";this.props.onLanguageSelect(e.target.value)},n.prototype.renderOption=function(e){"use strict";return s.createElement("option",{key:e.code,value:e.code},e.name)},n.prototype.render=function(){"use strict";return s.createElement("span",{className:"x89"},"언어",s.createElement("select",{className:"y89",onChange:this.$LanguageSwitcher_handleChange.bind(this),value:this.props.languageCode},l.map(this.renderOption)))},n.propTypes={languageCode:a.string.isRequired,onLanguageSelect:a.func.isRequired},e.exports=n,i(209)}).call(t,i(5))},function(e,t,i){function n(){"use strict";r.apply(this,arguments)}var r,o,s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},a=i(228),l=i(1),p=i(6),c=i(100),u="ig_lang",d={path:"/"};r=l.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.$LanguageSwitcherContainer_handleLanguageSelect=function(e){"use strict";c(u,e,d),window.location.reload()},n.prototype.render=function(){"use strict";return l.createElement(a,s({},this.props,{languageCode:p.getLanguageCode(),onLanguageSelect:this.$LanguageSwitcherContainer_handleLanguageSelect}))},e.exports=n},function(e,t,i){(function(t){function n(e){"use strict";o.constructor.call(this,e),this.$Navigation_handleOpenInAppClick=this.$Navigation_handleOpenInAppClick.bind(this),this.state={}}var r,o,s=i(11),a=i(125),l=i(13),p=i(236),c=i(1),u=i(246),d=i(6),h=c.PropTypes;i(24);var m=c.createElement(s,{className:"n79",href:"/accounts/login/",key:"loginLink"},"로그인"),f=c.createElement(a,{className:"n79",href:"/accounts/logout/",key:"logoutLink"},"로그아웃");r=c.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.$Navigation_handleOpenInAppClick=function(){"use strict";this.props.onOpenInApp()},n.prototype.renderMenuItems=function(){"use strict";return this.props.viewer?this.props.isViewingOwnProfile?this.props.onOpenInApp?[this.renderOpenInAppLink(),f]:[this.renderSearchBox(),f]:this.props.onOpenInApp?[this.renderOpenInAppLink(),this.renderProfileLink()]:d.isIOS()?[this.renderProfileLink()]:[this.renderSearchBox(),this.renderProfileLink()]:this.props.onOpenInApp?[this.renderOpenInAppLink(),m]:[this.renderSearchBox(),this.renderGetAppLink(),m]},n.prototype.renderGetAppLink=function(){"use strict";return c.createElement("a",{className:"o79 n79",href:"/download/",key:"appLink",onClick:this.props.onGetAppClick},"앱 다운로드")},n.prototype.renderOpenInAppLink=function(){"use strict";return c.createElement("button",{className:"p79",key:"appLink",onClick:this.$Navigation_handleOpenInAppClick},"앱에서 열기")},n.prototype.renderProfileLink=function(){"use strict";return c.createElement(s,{className:"n79",href:l.buildUserLink(this.props.viewer.username),key:"profileLink"},this.props.viewer.username)},n.prototype.renderSearchBox=function(){"use strict";return c.createElement(p,{analyticsContext:this.props.analyticsContext,className:"q79",key:"searchBox"})},n.prototype.render=function(){"use strict";return c.createElement("div",{className:"r79",style:this.props.style},c.createElement(s,{className:"s79 u77 coreSpriteNavigationBrandSmall",href:"/"},"Instagram"),c.createElement("div",{className:"t79"},this.renderMenuItems()))},n.propTypes={isViewingOwnProfile:h.bool.isRequired,onGetAppClick:h.func,onOpenInApp:h.func,analyticsContext:h.string.isRequired,style:h.object,viewer:h.shape(u)},e.exports=n,i(210),i(34)}).call(t,i(5))},function(e,t,i){var n=i(230),r=i(30),o=i(247),s=function(){return{viewer:r.getViewer()}};e.exports=o(n,s,r)},function(e,t,i){(function(t){function n(e){"use strict";o.constructor.call(this,e),this.$AppInstallBanner_handleClick=this.$AppInstallBanner_handleClick.bind(this)}var r,o,s=i(93),a=i(41),l=i(1),p=i(6),c=i(14),u=i(4),d=i(7),h=l.PropTypes,m=d({blue:null,"default":null});r=l.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.$AppInstallBanner_handleClick=function(e){"use strict";this.props.onInstall&&this.props.onInstall()},n.prototype.renderCTA=function(){"use strict";return this.props.variant==m.blue?"앱 다운로드":"받기"},n.prototype.render=function(){"use strict";var e,t=p.platform;switch(t){case a.appPlatformTypes.IOS:e="App Store에서 무료로 다운로드하세요.";break;case a.appPlatformTypes.ANDROID:e="Google Play에서 무료로 다운로드하세요.";break;default:e="무료로 다운로드하세요."}return l.createElement(s,{campaign:this.props.campaign,className:u("p29"+(this.props.variant==m.blue?" q29":""),this.props.className),onClick:this.$AppInstallBanner_handleClick,platform:t,role:"alert"},l.createElement("i",{className:"r29 coreSpriteInstallBannerLogo"}),l.createElement("section",{className:"s29"},l.createElement("p",{className:"t29"},"Instagram"),l.createElement("p",{className:"u29"},e)),l.createElement("section",{className:"v29"},l.createElement("button",{className:"w29"+(this.props.variant==m.blue?" x29":"")},this.renderCTA())))},n.defaultProps={variant:m["default"]},n.propTypes={campaign:h.string.isRequired,onInstall:h.func,variant:h.oneOf(c(m))},n.VARIANTS=m,e.exports=n,i(212)}).call(t,i(5))},function(e,t,i){function n(e,t){var i={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=e[n]);return i}function r(e){e=parseInt(e,10);var t=Date.now();return isNaN(e)||!isFinite(e)||t>=e}function o(e){"use strict";a.constructor.call(this,e),this.state={isVisible:u.isMobile()&&(this.props.force||r(p.getDismissTimestamp()))},this.$AppInstallBannerContainer_handleConvert=this.$AppInstallBannerContainer_handleConvert.bind(this)}var s,a,l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},p=i(177),c=i(1),u=i(6),d=c.PropTypes;s=c.Component,a=s&&s.prototype,Object.assign(o,s),o.prototype=Object.create(a),o.prototype.constructor=o,o.__superConstructor__=s,o.prototype.shouldComponentUpdate=function(e,t){"use strict";return this.state.isVisible!==t.isVisible},o.prototype.$AppInstallBannerContainer_handleConvert=function(){"use strict";this.props.force||p.setDismissCookie()},o.prototype.render=function(){"use strict";if(this.state.isVisible){var e=this.props,t=e.banner,i=(e.force,n(e,["banner","force"]));return c.createElement(t,l({},i,{onInstall:this.$AppInstallBannerContainer_handleConvert,onOpen:this.$AppInstallBannerContainer_handleConvert}))}return null},o.propTypes={banner:d.func.isRequired,force:d.bool},e.exports=o},function(e,t,i){(function(t){function n(e){"use strict";o.constructor.call(this,e)}var r,o,s=i(11),a=i(13),l=i(9),p=i(154),c=i(1),u=i(8),d=i(122),h=i(57),m=i(92),f=c.PropTypes,g=5,v=365,b=60;i(24),r=c.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.componentWillUnmount=function(){"use strict";clearTimeout(this.$Search_timeout)},n.prototype.$Search_handleResultClick=function(e,t){"use strict";l.logAction("viewSearchResult",{rankToken:this.props.rankToken,source:this.props.analyticsContext,selectedPosition:e.position}),d.navigateToResult(e),t.preventDefault()},n.prototype.$Search_handleResultMouseOver=function(e){"use strict";d.selectResult(e,h.SELECTED_WITH_MOUSE)},n.prototype.renderResult=function(e,t){"use strict";switch(e.type){case h.USER_RESULT:return c.createElement(s,{className:"t0a"+(t===this.props.selectedIndex?" u0a":""),href:a.buildUserLink(e.username),key:"user_"+e.username,onClick:this.$Search_handleResultClick.bind(this,e),onMouseOver:this.$Search_handleResultMouseOver.bind(this,t)},c.createElement("div",{className:"v0a"},c.createElement("img",{className:"w0a",src:e.profilePictureUrl}),c.createElement("div",{className:"x0a"+(e.fullName?"":" y0a")},c.createElement("span",{className:"z0a"},e.username),e.isVerified?c.createElement("div",{className:"a1a coreSpriteVerifiedBadgeSmall"}):null),c.createElement("div",{className:"b1a"},e.fullName)));case h.HASHTAG_RESULT:return c.createElement(s,{className:"t0a"+(t===this.props.selectedIndex?" u0a":""),href:a.buildTagLink(e.name),key:"hashtag_"+e.name,onClick:this.$Search_handleResultClick.bind(this,e),onMouseOver:this.$Search_handleResultMouseOver.bind(this,t)},c.createElement("div",{className:"v0a"},c.createElement("span",{className:"c1a coreSpriteHashtag"}),c.createElement("div",{className:"x0a"},c.createElement("span",{className:"z0a"},e.name)),c.createElement("div",{
className:"b1a"},c.createElement(p,{value:e.mediaCount,variant:m.VARIANTS.unstyled}))));case h.PLACE_RESULT:return c.createElement(s,{className:"t0a"+(t===this.props.selectedIndex?" u0a":""),href:a.buildLocationLink(e.locationId),key:"place_"+e.name,onClick:this.$Search_handleResultClick.bind(this,e),onMouseOver:this.$Search_handleResultMouseOver.bind(this,t)},c.createElement("div",{className:"v0a"},c.createElement("span",{className:"d1a coreSpriteLocation"}),c.createElement("div",{className:"x0a"},c.createElement("span",{className:"z0a"},e.name)),c.createElement("div",{className:"b1a"},e.subtitle)));default:return null}},n.prototype.componentDidUpdate=function(){"use strict";var e=u.findDOMNode(this.refs.resultsList);e&&null!=this.props.selectedIndex&&this.props.selectedMethod!==h.SELECTED_WITH_MOUSE&&(e.scrollTop=(v-b/2)*Math.floor(this.props.selectedIndex/g))},n.prototype.render=function(){"use strict";var e;if(!this.props.results||this.props.results.length<1){if(0!==this.props.results.length||this.props.loading||""===this.props.query||"#"===this.props.query||"@"===this.props.query)return null;e=c.createElement("div",{className:"e1a"},"검색 결과가 없습니다.")}return c.createElement("div",null,c.createElement("div",{className:"f1a"}),c.createElement("div",{className:"g1a"},c.createElement("div",{className:"h1a",ref:"resultsList"},this.props.results.map(function(e,t){return this.renderResult(e,t)}.bind(this)),e)))},n.propTypes={analyticsContext:f.string.isRequired,results:f.arrayOf(f.shape({fullName:f.string,hashtag:f.bool,isPrivate:f.bool,mediaCount:f.number,name:f.string,profilePictureUrl:f.string,user:f.bool,username:f.string})).isRequired,selectedIndex:f.number,selectedMethod:f.string},e.exports=n,i(214)}).call(t,i(5))},function(e,t,i){(function(t){function n(e){"use strict";o.constructor.call(this,e),this.$SearchBox_queryChanged=this.$SearchBox_queryChanged.bind(this),this.$SearchBox_search=this.$SearchBox_search.bind(this),this.$SearchBox_searchFocused=this.$SearchBox_searchFocused.bind(this),this.$SearchBox_handleInputClick=this.$SearchBox_handleInputClick.bind(this),this.$SearchBox_backgroundClicked=this.$SearchBox_backgroundClicked.bind(this),this.$SearchBox_handleKeyDown=this.$SearchBox_handleKeyDown.bind(this),this.state={active:!1,query:c.getHistoryData("searchQuery")||""}}var r,o,s=i(61),a=i(9),l=i(1),p=i(8),c=i(18),u=i(122),d=i(57),h=i(237),m=i(43),f=i(198),g=i(56),v=i(4),b=l.PropTypes,A=50,y="검색";i(24),r=l.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.componentWillUnmount=function(){"use strict";clearTimeout(this.$SearchBox_timeout)},n.prototype.$SearchBox_handleKeyDown=function(e){"use strict";e.altKey||e.which!==s.DOWN?e.altKey||e.which!==s.UP?e.altKey||e.which!==s.RETURN||(this.props.results.length>0&&u.navigateToResult(this.props.results[null!=this.props.selectedIndex?this.props.selectedIndex:0]),e.preventDefault()):(this.props.selectedIndex>0&&u.selectResult(this.props.selectedIndex-1,d.SELECTED_WITH_KEYBOARD),e.preventDefault()):(this.props.selectedIndex<this.props.results.length-1&&u.selectResult(null!=this.props.selectedIndex?this.props.selectedIndex+1:0,d.SELECTED_WITH_KEYBOARD),e.preventDefault())},n.prototype.$SearchBox_queryChanged=function(e){"use strict";this.setState({query:e.target.value},function(){clearTimeout(this.$SearchBox_timeout),this.$SearchBox_timeout=setTimeout(this.$SearchBox_search,A)}),c.setHistoryData({searchQuery:e.target.value})},n.prototype.$SearchBox_search=function(){"use strict";u.search(this.state.query,this.state.rankToken),a.logAction("search",{rankToken:this.state.rankToken,source:this.props.analyticsContext}),this.$SearchBox_timeout=null},n.prototype.$SearchBox_searchFocused=function(){"use strict";this.setState({active:!0})},n.prototype.$SearchBox_handleInputClick=function(){"use strict";this.setState({rankToken:Math.random().toString()},function(){p.findDOMNode(this.refs.searchInput).select(),a.logAction("searchBoxFocus",{rankToken:this.state.rankToken,source:this.props.analyticsContext})})},n.prototype.$SearchBox_backgroundClicked=function(){"use strict";this.setState({active:!1}),p.findDOMNode(this.refs.searchInput).blur()},n.prototype.renderActiveState=function(){"use strict";return g({icon:l.createElement("span",{className:"j0a coreSpriteSearchIcon"}),background:l.createElement("div",{className:"k0a",onClick:this.$SearchBox_backgroundClicked})})},n.prototype.render=function(){"use strict";var e=this.state.query||y,t=this.state.active?this.renderActiveState():l.createElement("div",{className:"l0a",onClick:this.$SearchBox_handleInputClick},l.createElement("div",{className:"m0a"},l.createElement("span",{className:"n0a coreSpriteSearchIcon"}),l.createElement("span",{className:"o0a"},e)));return l.createElement("div",{className:v(this.props.className,"p0a")},l.createElement(f,{className:"q0a",onFocus:this.$SearchBox_searchFocused,onChange:this.$SearchBox_queryChanged,onKeyDown:this.$SearchBox_handleKeyDown,placeholder:y,value:this.state.query,ref:"searchInput"}),t,this.state.active?l.createElement(h,{analyticsContext:this.props.analyticsContext,rankToken:this.state.rankToken}):null,this.props.loading&&this.state.active?l.createElement(m,{className:"r0a"}):null)},n.propTypes={analyticsContext:b.string.isRequired,className:b.string,loading:b.bool.isRequired,results:b.array.isRequired,selectedIndex:b.number},e.exports=n,i(215)}).call(t,i(5))},function(e,t,i){var n=i(235),r=i(124),o=i(40),s=function(e){return{loading:r.isLoading(),results:r.getAll(),selectedIndex:r.getSelectedIndex()}},a=o(n,s,r);e.exports=a},function(e,t,i){var n=i(234),r=i(124),o=i(40),s=function(e){return{loading:r.isLoading(),query:r.getQuery(),results:r.getAll(),selectedIndex:r.getSelectedIndex(),selectedMethod:r.getSelectedMethod()}},a=o(n,s,r);e.exports=a},function(e,t,i){function n(e,t){function i(){for(var i=arguments.length,s=Array(i),a=0;i>a;a++)s[a]=arguments[a];n?(r.clearTimeout(n),n=null):n=r.setTimeout(function(){e.apply(t,s),n=null},o)}var n;return i}var r=i(35),o=300;e.exports=n},,function(e,t){var i=function(e,t,i){return $.ajax({type:"GET",url:"/web/search/topsearch/?context=blended&query="+encodeURIComponent(e)+"&rank_token="+encodeURIComponent(t),success:function(e){i(null,e)},failure:function(){i(!0)}})};e.exports=i},function(e,t){function i(e,t,i){var n=e[t];return isNaN(n)||!isFinite(n)?new Error(t+" prop of "+i+" must be number-like"):void 0}e.exports=i},function(e,t,i){(function(t){function n(e,t){var i={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=e[n]);return i}var r=i(1),o=i(241),s=i(191),a=r.PropTypes,l=i(110),p=l.INTEGER,c=r.createClass({displayName:"BigNumber",propTypes:{component:a.any,customFormat:a.string,numberFilter:a.func,value:o},getDefaultProps:function(){return{children:0,component:"span",customFormat:p,numberFilter:Math.floor}},render:function(){var e=this.props,t=e.component,i=e.customFormat,o=e.numberFilter,a=e.value,l=n(e,["component","customFormat","numberFilter","value"]);a=parseFloat(a);var p;return!isNaN(a)&&isFinite(a)?(o&&(a=o(a)),p=s(a).format(i)):p="해당 사항 없음",r.createElement(t,l,p)}});e.exports=c}).call(t,i(5))},function(e,t,i){var n=i(8),r=i(3),o={getInitialState:function(){return{hovering:!1}},_setHovering:function(){this.setState({hovering:!0})},_unsetHovering:function(){this.setState({hovering:!1})},_getHoverTarget:function(){return this.statics&&this.statics.hoverTargetRef?(this.refs[this.statics.hoverTargetRef]?void 0:r(0,"HoverMixin could not find a ref named %s",this.statics.hoverTargetRef),this.refs[this.statics.hoverTargetRef]):n.findDOMNode(this)},componentDidMount:function(){var e=this._getHoverTarget();e.addEventListener("mouseover",this._setHovering),e.addEventListener("mouseout",this._unsetHovering)},componentWillUnmount:function(){var e=this._getHoverTarget();e.removeEventListener("mouseover",this._setHovering),e.removeEventListener("mouseout",this._unsetHovering)}};e.exports=o},function(e,t,i){function n(e,t){var i={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=e[n]);return i}var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},o=i(243),s=i(1),a=i(4),l=s.PropTypes,p=s.createClass({displayName:"UserTag",mixins:[o],propTypes:{LinkComponent:l.func.isRequired,user:l.shape({username:l.string.isRequired}).isRequired},_renderInner:function(e){return s.createElement("span",{className:"q68"},s.createElement("div",{className:"r68",ref:"pointer"}),e)},render:function(){var e=this.props,t=e.LinkComponent,i=e.className,o=e.user,l=n(e,["LinkComponent","className","user"]);return s.createElement(t,r({},l,{className:a(i,"s68"),href:"/"+o.username+"/"}),this._renderInner(o.username))}});e.exports=p,i(216)},function(e,t,i){function n(){"use strict";r.apply(this,arguments)}var r,o,s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},a=i(1),l=i(4),p=a.PropTypes;r=a.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.render=function(){"use strict";return a.createElement("div",s({},this.props,{className:l("c39",this.props.className)}))},n.propTypes={children:p.node,className:p.string},e.exports=n,i(363)},function(e,t,i){var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},r=i(48);e.exports=n({},r)},function(e,t,i){function n(e,t){for(var i=arguments.length,n=Array(i>2?i-2:0),a=2;i>a;a++)n[a-2]=arguments[a];return e?void 0:s(0,"You must supply a component argument to createPureContainer; a React component to wrap"),Array.isArray(n)?void 0:s(0,"You must supply a storeDependencies array to createPureContainer; a list of flux stores to watch for changes"),"function"!=typeof t?s(0,"You must supply a stateFetcher function to createPureContainer; a function that returns an object to merge into the current state"):void 0,function(){function i(e){"use strict";a.constructor.call(this,e),this.$_class_onChange=function(){this.setState({derivedProps:t()})}.bind(this),this.state={derivedProps:t()}}var s,a;return s=o.Component,a=s&&s.prototype,Object.assign(i,s),i.prototype=Object.create(a),i.prototype.constructor=i,i.__superConstructor__=s,i.prototype.componentDidMount=function(){"use strict";n.forEach(function(e){return e.addChangeListener(this.$_class_onChange)}.bind(this))},i.prototype.componentWillUnmount=function(){"use strict";n.forEach(function(e){return e.removeChangeListener(this.$_class_onChange)}.bind(this))},i.prototype.render=function(){"use strict";return o.createElement(e,r({},this.props,this.state.derivedProps))},i}()}var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},o=i(1),s=i(3);e.exports=n},,function(e,t,i){"use strict";var n=i(12),r={addClass:function(e,t){return/\s/.test(t)?n(!1):void 0,t&&(e.classList?e.classList.add(t):r.hasClass(e,t)||(e.className=e.className+" "+t)),e},removeClass:function(e,t){return/\s/.test(t)?n(!1):void 0,t&&(e.classList?e.classList.remove(t):r.hasClass(e,t)&&(e.className=e.className.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,""))),e},conditionClass:function(e,t,i){return(i?r.addClass:r.removeClass)(e,t)},hasClass:function(e,t){return/\s/.test(t)?n(!1):void 0,e.classList?!!t&&e.classList.contains(t):(" "+e.className+" ").indexOf(" "+t+" ")>-1}};e.exports=r},,,,function(e,t,i){"use strict";var n=i(67),r=i(49),o=i(249),s=i(255),a=i(262),l=17,p=n.createClass({displayName:"ReactCSSTransitionGroupChild",propTypes:{name:n.PropTypes.oneOfType([n.PropTypes.string,n.PropTypes.shape({enter:n.PropTypes.string,leave:n.PropTypes.string,active:n.PropTypes.string}),n.PropTypes.shape({enter:n.PropTypes.string,enterActive:n.PropTypes.string,leave:n.PropTypes.string,leaveActive:n.PropTypes.string,appear:n.PropTypes.string,appearActive:n.PropTypes.string})]).isRequired,appear:n.PropTypes.bool,enter:n.PropTypes.bool,leave:n.PropTypes.bool,appearTimeout:n.PropTypes.number,enterTimeout:n.PropTypes.number,leaveTimeout:n.PropTypes.number},transition:function(e,t,i){var n=r.findDOMNode(this);if(!n)return void(t&&t());var a=this.props.name[e]||this.props.name+"-"+e,l=this.props.name[e+"Active"]||a+"-active",p=null,c=function(e){e&&e.target!==n||(clearTimeout(p),o.removeClass(n,a),o.removeClass(n,l),s.removeEndEventListener(n,c),t&&t())};o.addClass(n,a),this.queueClass(l),i?(p=setTimeout(c,i),this.transitionTimeouts.push(p)):s.addEndEventListener(n,c)},queueClass:function(e){this.classNameQueue.push(e),this.timeout||(this.timeout=setTimeout(this.flushClassNameQueue,l))},flushClassNameQueue:function(){this.isMounted()&&this.classNameQueue.forEach(o.addClass.bind(o,r.findDOMNode(this))),this.classNameQueue.length=0,this.timeout=null},componentWillMount:function(){this.classNameQueue=[],this.transitionTimeouts=[]},componentWillUnmount:function(){this.timeout&&clearTimeout(this.timeout),this.transitionTimeouts.forEach(function(e){clearTimeout(e)})},componentWillAppear:function(e){this.props.appear?this.transition("appear",e,this.props.appearTimeout):e()},componentWillEnter:function(e){this.props.enter?this.transition("enter",e,this.props.enterTimeout):e()},componentWillLeave:function(e){this.props.leave?this.transition("leave",e,this.props.leaveTimeout):e()},render:function(){return a(this.props.children)}});e.exports=p},function(e,t,i){"use strict";var n=i(352),r={getChildMapping:function(e){return e?n(e):e},mergeChildMappings:function(e,t){function i(i){return t.hasOwnProperty(i)?t[i]:e[i]}e=e||{},t=t||{};var n={},r=[];for(var o in e)t.hasOwnProperty(o)?r.length&&(n[o]=r,r=[]):r.push(o);var s,a={};for(var l in t){if(n.hasOwnProperty(l))for(s=0;s<n[l].length;s++){var p=n[l][s];a[n[l][s]]=i(p)}a[l]=i(l)}for(s=0;s<r.length;s++)a[r[s]]=i(r[s]);return a}};e.exports=r},function(e,t,i){"use strict";function n(){var e=document.createElement("div"),t=e.style;"AnimationEvent"in window||delete a.animationend.animation,"TransitionEvent"in window||delete a.transitionend.transition;for(var i in a){var n=a[i];for(var r in n)if(r in t){l.push(n[r]);break}}}function r(e,t,i){e.addEventListener(t,i,!1)}function o(e,t,i){e.removeEventListener(t,i,!1)}var s=i(36),a={transitionend:{transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"mozTransitionEnd",OTransition:"oTransitionEnd",msTransition:"MSTransitionEnd"},animationend:{animation:"animationend",WebkitAnimation:"webkitAnimationEnd",MozAnimation:"mozAnimationEnd",OAnimation:"oAnimationEnd",msAnimation:"MSAnimationEnd"}},l=[];s.canUseDOM&&n();var p={addEndEventListener:function(e,t){return 0===l.length?void window.setTimeout(t,0):void l.forEach(function(i){r(e,i,t)})},removeEndEventListener:function(e,t){0!==l.length&&l.forEach(function(i){o(e,i,t)})}};e.exports=p},function(e,t,i){"use strict";var n=i(67),r=i(254),o=i(17),s=i(37),a=n.createClass({displayName:"ReactTransitionGroup",propTypes:{component:n.PropTypes.any,childFactory:n.PropTypes.func},getDefaultProps:function(){return{component:"span",childFactory:s.thatReturnsArgument}},getInitialState:function(){return{children:r.getChildMapping(this.props.children)}},componentWillMount:function(){this.currentlyTransitioningKeys={},this.keysToEnter=[],this.keysToLeave=[]},componentDidMount:function(){var e=this.state.children;for(var t in e)e[t]&&this.performAppear(t)},componentWillReceiveProps:function(e){var t=r.getChildMapping(e.children),i=this.state.children;this.setState({children:r.mergeChildMappings(i,t)});var n;for(n in t){var o=i&&i.hasOwnProperty(n);!t[n]||o||this.currentlyTransitioningKeys[n]||this.keysToEnter.push(n)}for(n in i){var s=t&&t.hasOwnProperty(n);!i[n]||s||this.currentlyTransitioningKeys[n]||this.keysToLeave.push(n)}},componentDidUpdate:function(){var e=this.keysToEnter;this.keysToEnter=[],e.forEach(this.performEnter);var t=this.keysToLeave;this.keysToLeave=[],t.forEach(this.performLeave)},performAppear:function(e){this.currentlyTransitioningKeys[e]=!0;var t=this.refs[e];t.componentWillAppear?t.componentWillAppear(this._handleDoneAppearing.bind(this,e)):this._handleDoneAppearing(e)},_handleDoneAppearing:function(e){var t=this.refs[e];t.componentDidAppear&&t.componentDidAppear(),delete this.currentlyTransitioningKeys[e];var i=r.getChildMapping(this.props.children);i&&i.hasOwnProperty(e)||this.performLeave(e)},performEnter:function(e){this.currentlyTransitioningKeys[e]=!0;var t=this.refs[e];t.componentWillEnter?t.componentWillEnter(this._handleDoneEntering.bind(this,e)):this._handleDoneEntering(e)},_handleDoneEntering:function(e){var t=this.refs[e];t.componentDidEnter&&t.componentDidEnter(),delete this.currentlyTransitioningKeys[e];var i=r.getChildMapping(this.props.children);i&&i.hasOwnProperty(e)||this.performLeave(e)},performLeave:function(e){this.currentlyTransitioningKeys[e]=!0;var t=this.refs[e];t.componentWillLeave?t.componentWillLeave(this._handleDoneLeaving.bind(this,e)):this._handleDoneLeaving(e)},_handleDoneLeaving:function(e){var t=this.refs[e];t.componentDidLeave&&t.componentDidLeave(),delete this.currentlyTransitioningKeys[e];var i=r.getChildMapping(this.props.children);i&&i.hasOwnProperty(e)?this.performEnter(e):this.setState(function(t){var i=o({},t.children);return delete i[e],{children:i}})},render:function(){var e=[];for(var t in this.state.children){var i=this.state.children[t];i&&e.push(n.cloneElement(this.props.childFactory(i),{ref:t,key:t}))}return n.createElement(this.props.component,this.props,e)}});e.exports=a},,,function(e,t,i){var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},r=i(88),o=i(144),s=i(283),a=i(28),l=i(1),p=i(66),c=i(30),u=i(40),d=l.PropTypes,h=function(e){var t=c.getViewer(),i=a.getById(e.id);return n({},i,{comments:r.getCommentsForPost(e.id),commentsState:r.getCommentsStateForPost(e.id),commentsTotalCount:r.getCommentsTotalCountForPost(e.id),commentSaveIsInFlight:r.saveIsInFlightForPost(e.id),likedByViewer:a.viewerLikesPost(e.id),owner:c.getById(i.owner.id),pendingComment:r.getPendingCommentForPost(e.id),viewer:t,viewerFollowsOwner:p.viewerFollows(i.owner.id),viewerIsBlockedByOwner:p.viewerBlockedBy(i.owner.id),viewportWidth:o.getViewportWidth()})},m=u(s,h,r,o,a,p,c);m.propTypes={id:d.string.isRequired},e.exports=m},function(e,t,i){var n=i(79),r=i(16),o=i(9),s=i(121),a={blockUser:function(e,t){o.logAction("blockUserAttempt",{source:t}),r.dispatch({actionType:s.BLOCK_USER,subjectUserId:e}),n.blockUser(e).done(function(i){o.logAction("blockUserSuccess",{source:t}),r.dispatch({actionType:s.BLOCK_USER_SUCCEEDED,subjectUserId:e})},function(i){o.logAction("blockUserFailure",{source:t}),r.dispatch({actionType:s.BLOCK_USER_SUCCEEDED,subjectUserId:e})})},followUser:function(e,t){o.logAction("followUserAttempt",{source:t}),r.dispatch({actionType:s.FOLLOW_USER,subjectUserId:e}),n.followUser(e).done(function(i){o.logAction("followUserSuccess",{source:t}),r.dispatch({actionType:s.FOLLOW_SUCCEEDED,subjectUserId:e})},function(i){o.logAction("followUserFailure",{source:t}),r.dispatch({actionType:s.FOLLOW_SUCCEEDED,subjectUserId:e})})},unblockUser:function(e,t){o.logAction("unblockUserAttempt",{source:t}),r.dispatch({actionType:s.UNBLOCK_USER,subjectUserId:e}),n.unblockUser(e).done(function(i){o.logAction("unblockUserSuccess",{source:t}),r.dispatch({actionType:s.UNBLOCK_USER_SUCCEEDED,subjectUserId:e})},function(i){o.logAction("unblockUserFailure",{source:t}),r.dispatch({actionType:s.UNBLOCK_USER_SUCCEEDED,subjectUserId:e})})},unfollowUser:function(e,t){o.logAction("unfollowUserAttempt",{source:t}),r.dispatch({actionType:s.UNFOLLOW_USER,subjectUserId:e}),n.unfollowUser(e).done(function(i){o.logAction("unfollowUserSuccess",{source:t}),r.dispatch({actionType:s.UNFOLLOW_SUCCEEDED,subjectUserId:e})},function(i){o.logAction("unfollowUserFailure",{source:t}),r.dispatch({actionType:s.UNFOLLOW_SUCCEEDED,subjectUserId:e})})}};e.exports=a},function(e,t,i){(function(t){function n(e,t){var i={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=e[n]);return i}var r=i(1),o=i(56),s=i(338),a=s.linkifyAsReactElements,l=r.PropTypes,p=/(\r\n|[\r\n])/,c=r.createClass({displayName:"UserText",propTypes:{component:l.any,edited:l.bool,elementFactories:l.objectOf(l.func),value:l.string},getDefaultProps:function(){return{component:"span",edited:!1}},_renderText:function(e){if(e){for(var t=e.split(p),i={},n=0;n<t.length;n++){var s=t[n];s&&(n%2===1?i["newline"+n]=r.createElement("br",null):i["text"+n]=a(t[n],this.props.elementFactories))}return o(i)}},render:function(){var e=this.props,t=e.component,i=e.edited,o=e.value,s=n(e,["component","edited","value"]);return i&&(s.title="수정됨"),r.createElement(t,s,this._renderText(o))}});e.exports=c}).call(t,i(5))},,,function(e,t,i){var n=i(2),r=i(274);n(r,"is-76acc0cc")},function(e,t,i){var n=i(2),r=i(275);n(r,"is-197bc543")},function(e,t,i){var n=i(2),r=i(276);n(r,"is-2a61c3b4")},function(e,t,i){var n=i(2),r=i(277);n(r,"is11653cb2")},,function(e,t,i){var n=i(2),r=i(279);n(r,"is-636cc879")},function(e,t,i){var n=i(2),r=i(280);n(r,"is57883c51")},function(e,t,i){var n=i(2),r=i(281);n(r,"is7f9f3931")},function(e,t,i){var n=i(2),r=i(282);n(r,"is458338aa")},,function(e,t){e.exports="@-webkit-keyframes AutoloadingPostsGridMoreLoadingIndicatorAnimation{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes AutoloadingPostsGridMoreLoadingIndicatorAnimation{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.i09,.j09{display:block;font-size:12px;margin:-60px 0;padding:60px 9px;position:relative;text-align:center;vertical-align:middle;z-index:1}.k09,.l09{padding:0 11px}.i09,.j09,.k09,.l09{font-weight:600;text-transform:uppercase}.i09,.i09:visited,.k09,.k09:visited{color:#4090db}.i09:hover,.k09:hover{color:#2d6599}.i09:active,.k09:active{color:#20486d}.j09,.l09{cursor:default}.j09,.j09:active,.j09:hover,.j09:visited,.l09,.l09:active,.l09:hover,.l09:visited{color:#a5a7aa}.e09,.f09{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;margin:60px auto 0;position:relative}.f09::after{-webkit-animation:AutoloadingPostsGridMoreLoadingIndicatorAnimation 2s infinite ease;animation:AutoloadingPostsGridMoreLoadingIndicatorAnimation 2s infinite ease;border-color:#4090db transparent transparent transparent;border-style:solid;border-width:2px;-webkit-transform-origin:50%;transform-origin:50%}.e09::before,.f09::before,.f09::after{border-radius:50%;border-style:solid;border-width:2px;box-sizing:border-box;content:'';left:0;position:absolute;top:0}.e09,.e09::before,.f09,.f09::before,.f09::after{height:120px;width:120px}.g09,.h09{border-radius:3px;border-style:solid;border-width:1px;font-size:14px;line-height:34px;margin:20px 20px 0;padding:0;text-align:center}.e09::before,.g09{border-color:#4090db}.e09:hover::before,.g09:hover{border-color:#2d6599}.e09:active::before,.g09:active{border-color:#20486d}.f09::before,.f09:hover::before,.f09:active::before,.h09{border-color:#c9cbcc}"},function(e,t){e.exports=".i59{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.i59:last-child{margin-bottom:0}.g59{-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1}.g59:last-child{margin-right:0}.h59{width:100%}@media (min-width:736px){.g59{margin-right:30px}.i59{margin-bottom:30px}}@media (max-width:735px){.g59{margin-right:3px}.i59{margin-bottom:3px}}"},function(e,t){e.exports=".t89{display:block;position:relative;width:100%}.p89{background-color:rgba(0,0,0,.3);bottom:0;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;right:0}.p89,.n89,.o89{left:0;position:absolute;top:0}.n89::before,.o89::before{content:'';display:block;height:100%}.q89{color:#fff;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;font-size:16px;font-weight:600}.s89,.r89{line-height:19px;margin:0 auto;padding-left:26px;position:relative}.w89{height:26.23%;width:26.23%}.u89{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;bottom:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;left:0;pointer-events:none;position:absolute;right:0;top:0}.v89{opacity:.15}@media (min-width:736px){.s89{margin-left:0}.r89{margin-right:30px}}@media (max-width:735px){.q89{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.r89{margin-bottom:7px}}"},function(e,t,i){e.exports=".i0a{background-color:transparent;background-image:url("+i(292)+");border:0;min-height:80px;min-width:80px;padding:0}.i0a,.i0a::before{background-size:100% 100%}.i0a::before{content:'';display:block;padding-top:100%;background-image:url("+i(293)+")}"},,function(e,t){e.exports=".l68{background-color:#edeeee;width:100%}.l68,.m68{display:block}.m68{overflow:hidden;padding-bottom:100%}.o68{-webkit-animation-duration:.7s;animation-duration:.7s;-webkit-animation-name:like-heart-animation;animation-name:like-heart-animation;margin:0 auto;opacity:0;pointer-events:none;-webkit-transform:scale(0);transform:scale(0)}.k68{height:100%;left:0;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.n68{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.p68,.n68{bottom:0;left:0;position:absolute;right:0;top:0}@-webkit-keyframes like-heart-animation{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}15%,70%{opacity:1}15%,70%,100%{-webkit-transform:scale(1);transform:scale(1)}100%{opacity:0}}@keyframes like-heart-animation{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}15%,70%{opacity:1}15%,70%,100%{-webkit-transform:scale(1);transform:scale(1)}100%{opacity:0}}"},function(e,t){e.exports=".i87{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.k87{right:0;top:0;visibility:hidden}.k87,.h87{bottom:0;left:0;position:absolute}.tagTransition-enter,.tagTransition-leave{-webkit-transform-origin:center top;transform-origin:center top;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:-webkit-transform,opacity;transition-property:transform,opacity;-webkit-transition-timing-function:cubic-bezier(.16,1.275,.725,1.255);transition-timing-function:cubic-bezier(.16,1.275,.725,1.255)}.tagTransition-enter,.tagTransition-leave-active{opacity:0;-webkit-transform:scale(0);transform:scale(0)}.tagTransition-enter-active{-webkit-transform:scale(1);transform:scale(1);opacity:1}.indicatorTransition-enter,.indicatorTransition-leave{-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:opacity;transition-property:opacity}.indicatorTransition-enter,.indicatorTransition-leave-active{opacity:0}.indicatorTransition-enter-active{opacity:1}"},function(e,t){e.exports="@media (min-width:736px){.m49{font-size:15px;line-height:18px}}@media (max-width:735px){.m49{font-size:14px;line-height:17px}}"},function(e,t){e.exports=".n49{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width:736px){.n49{font-size:15px;line-height:18px}}@media (max-width:735px){.n49{font-size:14px;line-height:17px}}"},function(e,t,i){function n(e){"use strict";o.constructor.call(this,e),this.state={mediaInViewport:null,pageVisible:!E.isHidden()},this.$Post_handleLikeChange=this.$Post_handleLikeChange.bind(this),this.$Post_handleScrollEnter=this.$Post_handleScrollEnter.bind(this),this.$Post_handleScrollLeave=this.$Post_handleScrollLeave.bind(this)}var r,o,s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},a=i(153),l=i(11),p=i(182),c=i(13),u=i(342),d=i(9),h=i(343),m=i(85),f=i(195),g=i(324),v=i(1),b=i(78),A=i(140),y=i(204),x=i(86),w=i(48),E=i(106),D=i(14),C=i(4),k=i(7),P=i(91),_=k({flexible:null,feed:null}),T=v.PropTypes;r=v.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.componentDidMount=function(){"use strict";this.$Post_hideListener=E.addListener(E.HIDDEN,function(){return this.setState({pageVisible:!1})}.bind(this)),this.$Post_showListener=E.addListener(E.VISIBLE,function(){return this.setState({pageVisible:!0})}.bind(this))},n.prototype.componentWillUnmount=function(){"use strict";this.$Post_hideListener.remove(),this.$Post_showListener.remove()},n.prototype.$Post_handleLikeChange=function(e,t){"use strict";var i={mechanic:t,source:this.props.analyticsContext};e?(d.logAction("like",i),f.like(this.props.id)):(d.logAction("unlike",i),f.unlike(this.props.id))},n.prototype.$Post_handleScrollEnter=function(){"use strict";this.setState({mediaInViewport:!0})},n.prototype.$Post_handleScrollLeave=function(){"use strict";this.setState({mediaInViewport:!1})},n.prototype.$Post_shouldRenderTimestampInHeader=function(){"use strict";return this.props.viewerIsBlockedByOwner||this.props.variant===_.feed},n.prototype.renderMedia=function(){"use strict";var e=this.props.viewer&&!this.props.likedByViewer,t={};this.props.dimensions&&(t.dimensions=this.props.dimensions);var i=v.createElement(h,s({},t,{analyticsContext:this.props.analyticsContext,caption:this.props.caption,className:"t09",isVisible:this.state.mediaInViewport&&this.state.pageVisible,isVideo:this.props.isVideo,onLike:e?this.$Post_handleLikeChange.bind(this,!0,"doubleTap"):null,key:this.props.src,src:this.props.src,usertags:this.props.usertags,videoUrl:this.props.videoUrl}));return this.props.isVideo?v.createElement(b,{onScrollEnter:this.$Post_handleScrollEnter,onScrollLeave:this.$Post_handleScrollLeave},i):i},n.prototype.render=function(){"use strict";var e=this.$Post_shouldRenderTimestampInHeader(),t=this.props.variant===_.feed,i="u09";this.props.dimensions&&this.props.dimensions.width/this.props.dimensions.height>1.5&&(i="v09");var n=this.props.viewer!==this.props.owner&&!this.props.owner.isUnpublished;return v.createElement("article",{className:C(this.props.className,this.props.variant===_.flexible?i:null,"w09"+(t?" x09":""))},v.createElement("header",{className:"y09"},v.createElement(y,{className:"z09",profilePictureUrl:this.props.owner.profilePictureUrl,username:this.props.owner.username}),v.createElement("div",{className:"a19"},this.props.owner.isUnpublished?v.createElement("span",{className:"b19"},this.props.owner.fullName||this.props.owner.username):v.createElement(x,{className:"c19",user:this.props.owner}),this.props.location?v.createElement(u,{className:"d19",location:this.props.location}):null),e?v.createElement(l,{className:"e19"+(this.props.location?" f19":""),href:c.buildMediaLink(this.props.code)},v.createElement(A,{value:this.props.postedAt})):n&&v.createElement(p,{analyticsContext:this.props.analyticsContext,className:"g19",userId:this.props.owner.id})),this.renderMedia(),v.createElement(g,{analyticsContext:this.props.analyticsContext,className:"h19",caption:this.props.caption,code:this.props.code,commentSaveIsInFlight:this.props.commentSaveIsInFlight,
comments:this.props.comments,commentsState:this.props.commentsState,commentsTotalCount:this.props.commentsTotalCount,id:this.props.id,isVideo:this.props.isVideo,likedByViewer:this.props.likedByViewer,likers:this.props.likers,location:this.props.location,numLikes:this.props.numLikes,onLikeChange:this.$Post_handleLikeChange,owner:this.props.owner,pendingComment:this.props.pendingComment,postedAt:this.props.postedAt,sharedByAuthor:this.props.sharedByAuthor,showTimestamp:!e,variant:this.props.variant===_.feed?g.VARIANTS.feed:null,viewer:this.props.viewer,viewerFollowsOwner:this.props.viewerFollowsOwner,viewerIsBlockedByOwner:this.props.viewerIsBlockedByOwner,viewportWidth:this.props.viewportWidth}))},n.defaultProps={variant:_.flexible},n.propTypes={analyticsContext:T.string.isRequired,caption:T.string,code:T.string.isRequired,commentSaveIsInFlight:T.bool.isRequired,comments:T.arrayOf(T.shape(a)),commentsState:T.oneOf(D(m)).isRequired,commentsTotalCount:T.number.isRequired,dimensions:T.shape({height:T.number.isRequired,width:T.number.isRequired}),id:T.string.isRequired,isVideo:T.bool.isRequired,likedByViewer:T.bool.isRequired,likers:T.arrayOf(T.shape(w)).isRequired,location:T.shape({id:T.string.isRequired,name:T.string.isRequired}),numLikes:T.number.isRequired,owner:T.shape(w).isRequired,pendingComment:T.string.isRequired,postedAt:T.number.isRequired,sharedByAuthor:T.bool.isRequired,src:T.string.isRequired,usertags:T.arrayOf(P),variant:T.oneOf(D(_)),videoUrl:T.string,viewer:T.shape(w),viewerIsBlockedByOwner:T.bool,viewportWidth:T.number.isRequired},n.VARIANTS=_,e.exports=n,i(303)},function(e,t,i){(function(t){function n(e,t){var i={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=e[n]);return i}function r(e){"use strict";s.constructor.call(this,e),this.$AutoloadingPostsGrid_getPostsToDisplay=this.$AutoloadingPostsGrid_getPostsToDisplay.bind(this),this.$AutoloadingPostsGrid_handleMoreLinkClick=this.$AutoloadingPostsGrid_handleMoreLinkClick.bind(this),this.$AutoloadingPostsGrid_handleScrollLoadingShimEnter=this.$AutoloadingPostsGrid_handleScrollLoadingShimEnter.bind(this),this.$AutoloadingPostsGrid_incrementPostsToDisplay=this.$AutoloadingPostsGrid_incrementPostsToDisplay.bind(this),this.props.onPostLoadTargetChange(h.FETCH_DIRECTION.forward,e.earliestPostIdToDisplay,e.maxPostsToDisplay)}var o,s,a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},l=i(143),p=i(28),c=i(1),u=i(78),d=i(14),h=i(59),m=i(3),f=i(7),g=c.PropTypes,v=f({narrow:null,wide:null});o=c.Component,s=o&&o.prototype,Object.assign(r,o),r.prototype=Object.create(s),r.prototype.constructor=r,r.__superConstructor__=o,r.prototype.$AutoloadingPostsGrid_getPostsToDisplay=function(){"use strict";var e;if(null==this.props.earliestPostIdToDisplay)e=0;else for(var t=0;t<this.props.posts.length;t++)if(this.props.posts[t].id===this.props.earliestPostIdToDisplay){e=t;break}return null==e?m(0,'Failed to find post with ID "%s" in list of posts to display',this.props.earliestPostIdToDisplay):void 0,this.props.posts.slice(e,this.props.maxPostsToDisplay)},r.prototype.$AutoloadingPostsGrid_handleMoreLinkClick=function(e){"use strict";e.preventDefault(),this.props.maxPostsToDisplay<=this.$AutoloadingPostsGrid_getPostsToDisplay().length&&this.$AutoloadingPostsGrid_incrementPostsToDisplay()},r.prototype.$AutoloadingPostsGrid_handleScrollLoadingShimEnter=function(){"use strict";this.props.scrollLoadingEnabled&&this.$AutoloadingPostsGrid_incrementPostsToDisplay()},r.prototype.$AutoloadingPostsGrid_incrementPostsToDisplay=function(){"use strict";var e=this.props.maxPostsToDisplay+this.props.pageSize;this.props.onPostLoadTargetChange(h.FETCH_DIRECTION.forward,this.props.earliestPostIdToDisplay,e)},r.prototype.renderMoreLinkOrNot=function(e){"use strict";var t=this.props.posts[this.props.posts.length-1],i=e[e.length-1],n=this.props.isOldestPostLoaded&&t===i;if(n)return null;var r,o=this.props.maxPostsToDisplay>e.length&&this.props.fetchingState===p.FETCHING_STATES.fetching;if(o)r="더 읽어들이는 중";else{if(this.props.scrollLoadingEnabled)return null;r="더 읽어들이기"}var s;if(this.props.mediaLinkBuilder){var a=e[e.length-1].id;s=this.props.mediaLinkBuilder()+"?max_id="+a}else s="#";var l=this.props.variant===v.narrow;return c.createElement("div",{className:(l||o?"":"e09")+(!l&&o?" f09":"")+(l&&!o?" g09":"")+(l&&o?" h09":"")},c.createElement("a",{className:(l||o?"":"i09")+(!l&&o?" j09":"")+(l&&!o?" k09":"")+(l&&o?" l09":""),href:s,onClick:this.$AutoloadingPostsGrid_handleMoreLinkClick},r))},r.prototype.renderPostsGrid=function(e,t){"use strict";return c.createElement(this.props.postsGridRenderer||l,a({},t,{posts:e}))},r.prototype.renderScrollLoadingShim=function(){"use strict";return c.createElement(u,{onScrollEnter:this.$AutoloadingPostsGrid_handleScrollLoadingShimEnter})},r.prototype.render=function(){"use strict";var e=this.props,t=e.className,i=n(e,["className"]),r=this.$AutoloadingPostsGrid_getPostsToDisplay();return c.createElement("div",{className:t},this.renderPostsGrid(r,i),this.renderScrollLoadingShim(),this.renderMoreLinkOrNot(r))},r.defaultProps={pageSize:p.PAGE_SIZE,variant:v.wide},r.propTypes={earliestPostIdToDisplay:g.string,fetchingState:g.oneOf(d(p.FETCHING_STATES)).isRequired,isOldestPostLoaded:g.bool.isRequired,mediaLinkBuilder:g.func,onPostLoadTargetChange:g.func.isRequired,pageSize:g.number.isRequired,posts:g.array,postsGridRenderer:g.func,variant:g.oneOf(d(v)).isRequired},r.VARIANTS=v,e.exports=r,i(264)}).call(t,i(5))},function(e,t,i){(function(t){function n(e){"use strict";o.constructor.call(this,e),this.state={isPointerInside:!1,isTabFocused:!1},this.$PostsGridItem_handleBlur=this.$PostsGridItem_handleBlur.bind(this),this.$PostsGridItem_handleEnter=this.$PostsGridItem_handleEnter.bind(this),this.$PostsGridItem_handleFocus=this.$PostsGridItem_handleFocus.bind(this),this.$PostsGridItem_handleLeave=this.$PostsGridItem_handleLeave.bind(this)}var r,o,s=i(55),a=i(11),l=i(13),p=i(80),c=i(1),u=i(286),d=i(6),h=i(4),m=i(288);i(24);var f="댓글",g="댓글",v="좋아요",b="좋아요",A=c.PropTypes;r=c.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.$PostsGridItem_handleBlur=function(){"use strict";this.setState({isTabFocused:!1})},n.prototype.$PostsGridItem_handleEnter=function(){"use strict";this.setState({isPointerInside:!0})},n.prototype.$PostsGridItem_handleFocus=function(){"use strict";this.setState({isTabFocused:!0})},n.prototype.$PostsGridItem_handleLeave=function(){"use strict";this.setState({isPointerInside:!1})},n.prototype.$PostsGridItem_isFocused=function(){"use strict";return!d.isMobile()&&(this.state.isTabFocused||this.state.isPointerInside)},n.prototype.renderPostInfo=function(){"use strict";var e=c.createElement(s,{shortenNumber:!0,value:this.props.numComments}),i=c.createElement(s,{shortenNumber:!0,value:this.props.numLikes}),n="n89 u77 coreSpriteSpeechBubbleSmall",r="o89 u77 coreSpriteHeartSmall";return c.createElement("div",{className:"p89"},c.createElement("ul",{className:"q89"},c.createElement("li",{className:"r89"},1===this.props.numLikes?t("{like_word} {count}개",{count:i,like_word:c.createElement("span",{className:r},b)}):t("{likes_word} {count}개",{count:i,likes_word:c.createElement("span",{className:r},v)})),c.createElement("li",{className:"s89"},1===this.props.numComments?t("{comment_word} {count}개",{count:e,comment_word:c.createElement("span",{className:n},g)}):t("{comments_word} {count}개",{count:e,comments_word:c.createElement("span",{className:n},f)}))))},n.prototype.render=function(){"use strict";var e=this.$PostsGridItem_isFocused();return c.createElement(a,{className:h("t89",this.props.className),href:this.props.mediaLinkBuilder(this.props.code),onBlur:this.$PostsGridItem_handleBlur,onClick:this.$PostsGridItem_handleBlur,onFocus:this.$PostsGridItem_handleFocus,onMouseEnter:this.$PostsGridItem_handleEnter,onMouseLeave:this.$PostsGridItem_handleLeave},c.createElement(p,{caption:this.props.caption,rich:!0,src:this.props.thumbnailSrc||this.props.src}),this.props.isVideo?c.createElement("div",{className:"u89"+(e?" v89":"")},c.createElement(u,{className:"w89"})):null,e?this.renderPostInfo():null)},n.prototype.shouldComponentUpdate=function(e,t){"use strict";return!m(this.props,e)||!m(this.state,t)},n.defaultProps={mediaLinkBuilder:l.buildMediaLink},n.propTypes={caption:A.string,code:A.string.isRequired,src:A.string.isRequired,isVideo:A.bool.isRequired,mediaLinkBuilder:A.func,numComments:A.number.isRequired,numLikes:A.number.isRequired,thumbnailSrc:A.string},e.exports=n,i(266),i(34)}).call(t,i(5))},function(e,t,i){(function(t){var n=i(1),r=i(4),o=n.PropTypes,s=function(e){var t=e.className;return n.createElement("div",{className:r(t,"i0a")},n.createElement("span",{className:"u77"},"동영상"))};s.propTypes={className:o.string},e.exports=s,i(267),i(34)}).call(t,i(5))},,function(e,t){"use strict";function i(e,t){if(e===t)return!0;var i;for(i in e)if(e.hasOwnProperty(i)&&(!t.hasOwnProperty(i)||e[i]!==t[i]))return!1;for(i in t)if(t.hasOwnProperty(i)&&!e.hasOwnProperty(i))return!1;return!0}e.exports=i},,function(e,t,i){function n(e,t){var i={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=e[n]);return i}function r(e){return"usertag-"+(e&&e.user&&e.user.username)}function o(e,t,i){var n=r(e),o=t.frame,s=t.tags&&t.tags[n],a=t.indicator;if(!o||!s)return{x:0,y:y};var l={x:-(s.width/2),y:y};if(i){var p=u.getTranslated(s,l);if(p.left<o.left?l.x+=o.left-p.left:p.right>o.right&&(l.x-=p.right-o.right),p.bottom>o.bottom&&(l.y-=p.bottom-o.bottom),a){var c=u.getTranslated(p,l);u.isIntersection(a,c)&&(l.x=a.right-s.left)}}return l}var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},a=i(80),l=i(1),p=i(8),c=i(207),u=i(65),d=i(98),h=i(78),m=i(73),f=i(244),g=i(4),v=i(238),b=i(91),A=l.PropTypes;i(24);var y=6,x=2e3,w=l.createClass({displayName:"PhotoWithUserTags",mixins:[m],propTypes:{LinkComponent:A.func.isRequired,alwaysShowIndicator:A.bool,containTagsInFrame:A.bool,onLike:A.func,rich:A.bool,src:A.string.isRequired,usertags:A.arrayOf(b).isRequired},getInitialState:function(){return{isShowingTags:!1,isShowingIndicator:!0,metrics:{frame:null,tags:{},indicator:null},orderedUserTags:this.props.usertags,withTransition:!0}},getDefaultProps:function(){return{alwaysShowIndicator:!1,containTagsInFrame:!0}},componentWillReceiveProps:function(e){this.props.usertags!==e.usertags&&this.setState({orderedUserTags:e.usertags},this.handleResize)},setIndicatorTimeout:function(){this.indicatorTimeout||(this.indicatorTimeout=this.setTimeout(this.handleIndicatorTimeout,x))},clearIndicatorTimeout:function(){this.indicatorTimeout&&(this.clearTimeout(this.indicatorTimeout),this.indicatorTimeout=null)},handleIndicatorTimeout:function(){this.setState({isShowingIndicator:!1,withTransition:!0}),this.indicatorTimeout=null},handleClick:function(){var e=!this.state.isShowingTags;this.clearIndicatorTimeout(),this.setState({isShowingIndicator:e||this.props.alwaysShowIndicator,isShowingTags:e,withTransition:!0})},handleScrollEnter:function(){this.state.isShowingTags||this.props.alwaysShowIndicator||this.setIndicatorTimeout()},handleScrollLeave:function(){this.state.isShowingTags||(this.clearIndicatorTimeout(),this.setState({isShowingIndicator:!0}))},handleTagMouseOver:function(e){var t=[].concat(this.state.orderedUserTags);t.splice(t.indexOf(e),1),t.push(e),this.setState({orderedUserTags:t})},handleResize:function(){var e={};this.state.orderedUserTags.forEach(function(t){var i=r(t);if(this.refs.hasOwnProperty(i)){var n=p.findDOMNode(this.refs[i]);e[i]=u.getTranslated(n.getBoundingClientRect(),{x:-parseInt(n.style.marginLeft,10),y:-parseInt(n.style.marginTop,10)})}},this);var t=this.refs.indicator&&p.findDOMNode(this.refs.indicator).getBoundingClientRect();this.setState({metrics:{frame:p.findDOMNode(this.refs.measurementFrame).getBoundingClientRect(),tags:e,indicator:t}})},renderTag:function(e,t){var i=r(e),n=o(e,this.state.metrics,this.props.containTagsInFrame),a={marginLeft:n.x,marginTop:n.y,left:100*e.position.x+"%",top:100*e.position.y+"%"},p=e&&e.user;return l.createElement(f,s({},t,{LinkComponent:this.props.LinkComponent,key:i,onMouseOver:this.handleTagMouseOver.bind(null,e),style:a,user:p}))},renderTagsWithMeasurementRefs:function(){return this.state.orderedUserTags.map(function(e){return this.renderTag(e,{ref:r(e)})},this)},renderTags:function(){return this.state.orderedUserTags.map(this.renderTag)},maybeRenderScrollWatcher:function(){return this.props.alwaysShowIndicator?null:l.createElement(h,{className:"h87 coreSpriteUserTagIndicator",key:"indicator",onScrollEnter:this.handleScrollEnter,onScrollLeave:this.handleScrollLeave,ref:"indicator"})},render:function(){var e=this.props,t=e.className,i=e.rich,r=e.src,o=n(e,["className","rich","src"]),p=v(this.handleClick),u=this.state,h=u.isShowingTags,m=u.isShowingIndicator,f={};return this.props.dimensions&&(f.dimensions=this.props.dimensions),l.createElement(d,s({},o,{className:g(t,"i87"),onResize:this.handleResize}),l.createElement(a,s({},f,{className:"j87",onClick:p,onLike:this.props.onLike,rich:i,src:r})),l.createElement("div",{className:"k87",ref:"measurementFrame"},this.renderTagsWithMeasurementRefs(),this.maybeRenderScrollWatcher()),l.createElement(c,{transitionName:"tagTransition",transitionEnter:this.state.withTransition,transitionLeave:this.state.withTransition},h&&this.renderTags()),l.createElement(c,{transitionName:"indicatorTransition",transitionEnter:this.state.withTransition,transitionLeave:this.state.withTransition},m&&l.createElement("div",{className:"h87 coreSpriteUserTagIndicator",key:"indicator",onClick:p})))}});e.exports=w,i(270)},function(e,t,i){"use strict";var n=i(203),r={shouldComponentUpdate:function(e,t){return n(this,e,t)}};e.exports=r},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAFABAMAAAA/vriZAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAASUExURQAAAP///////////////////z5SrToAAAAFdFJOUwC+H4BMbFVOpQAAB7xJREFUeNrtXU9/6ioUJH/cx6vsrda9VrOPrdk3Kt//q7y+d++rQEgMcIDp/XlWXdQ4mXNmOGACjNFEfj7s51z8G3w+PxzPK4YT+Xn/G5oS3QIDZP6xF4OxOKbGWI6g+4OxSQjv9SG8/yC+w7KXlMX8JCxiGb0WN1xYRfcWl769sI7FCpe+2CSehGMs46S3Fs5xjZDmkguP6IIbzkZ4xhs4vsAIXwRB/EqDb744ntfrLxHk6/X5Yz9PgXAwv93hvSfP/PXAI2d5AF833K287nlEhGZ83XH8Ux88FsLCdfQyj4u7GP78iL0xFqkdO+c+PZ6pd+xoR73akwJDAq5h+5dlgkvYCOSNwgXIhFLSVHg/zVRC4URdXa+T7GjwtXS1oxfiLUQBLinVtqN3wCWpHxC4YUvsDSfiJBfk3nUiTbKWYBJvPVEmuQ0xOtV0SS6CzGo1P/RJMg/Tf6iF42HXL0EGpt7g6TyJysPNxdRbX1Eo5MZIg+LaZbD2siflJtUlgt5+EXgx4MXXanjIBOsZcrCaLNwMzOSGlReBFQsSmQ+FWegE60muPAhsQgEs3SnM4i84Vq4EdixguH5PFnIdashsK7fqvbGg0TppsYihkL5Odi4EXljg2DpQWIYeQ4aazsb+pn6x4PFiXe95TALVIXll6zERCFQonOY0PCqBCoWdpcdEIVChcIrTtJEJVCi8WUnkwiLF1kYmmf901ccLH8ukjk+gTOHD0aSMNgo7fus2Vhvjmjcepw8c9raO6B/Dtda7iSZYxQWYTSutPIHHWH1zlkYi03PXppGIWv1j3KSSiCqTKXdRxQeYTchem0oiqkxuj1m+sgRRP6yvpBmekuNtygzLOb48yvCNJYn2QY7LdCaol1jzoAZYoniggTpxhqUcX8drtEoFMBtVaZFWwypHuzGTSZZhKceXsRKs0gHMRoowT5/hcRBZ0nF4Qhq3CebrzAYFTzyMaFbSDWa/Y0mDDxVhBmAyitHshpJfpQWYDRVhnWDJaLSlumKW4GARFiAlOFiEM5ASlIrw04y7SQ2wNOeSo5TgAJQcpgSlZK5MGqnSA8xMKpnBlKBUhJ8mWhlAmMqNI/SC+qDWGTRyQQC47asESSNGlWRAGpFUUvVI7RhE8F7B1UgaMcHhSBoxJDSH0ogkiZUu4gYDYKnLOANYUzC2LhWmiPuaqHF6LbU1uGqAP1EAzrSUgolYEoUmmgYFoIaoABOxJOOdQiiMiO+qqBSXueIArBWfadFcRodUo7nM3WeuhoRD+Uyn2OAOB2AhG2EJ5zKSzzQ6WpSQswpog6ouZng2qDrLFs8G70Z4kf7+RAI4k1ir8WzwLowrpk+ryuV4Pn33vk6ynAYJYHk35xxwIFFQlYgDiZzXAnEgkZVRIA4kd/PbKY4DCLD6BnjDAth+A5xhrQ0ybb3oEx/gFrFXYBJvLeJQzCRpwAOssQFeJUeEiuLnAOTYALtvgA0WwPLnAVxhAcx/DkCBDVD8HIAMLJ4AnwCfAP86gCtUgPw5kngCfHYzVACfHbUvQNhJ03NeTAUQdunjubrlCxB+AfO5Ru0LEP5nCPgfcuB/CoP/MRH+51j4H7ThHwnAf6gC/rEU+Ad74B+Ngn+4DP7xPPgHHOEfEYV/yBb+MWX8B73hH5WHf9kA/nUN+Bde4F8Zgn/pCv61NfwX/+BfnYR/+RTt9d2eKOBfgIZ/hRz+JXz8bQzgN4KA30oDfjMS+O1c4DfEwd9SCH5TJvhtreA3BoPfWg1/czr47f3gN0iE32ISfpNO/G1O4TaKrYaWQ1C32oXfrBhku+fZMAr4DbPhtxyH37Qdf9t7+IMD4I9egD+8Av/4D/gDVOCPoME/xAf+GCT4g6Twj+KCP8wM/jg4/AP14I8khD/UEf5YTPyDReGPZsU/3Bb+eODUByx3FnICPaIa/pBv+GPS8Q+al6wwDoUSgdNGhywyhS/CcnyVZBKDQonAqb6xjUrhi71tlDEplPI1feyqI3qhlK7pc8lCRBuRpWzZ9E8ShYGbmtaFQMVpwvaFcq6senhJ+kFba+fvkSn8FcVibCdBPIZOZIXYJkqmMNhSUu1OoEphoCloJnwqXfl0kPEk9+SAh05yLfysQraoEEqWFexmtvId0itZVrBjhgguEfj2W/kaxGMyybXlVo24DJUCdJ+Aq5dpAhWgz63LVkPohrl6XaJu6EsoRAhzRSB+/VwrAkhZxXcjTIZYUuA7CcrCUZNMgVDF59+wt8QINXw3YsV5I9TwUTiDlmQ/hBo+mhmZlmSxcL/UXlAnuG/XHn6o+R/dhLEU+oWdRr1Sv1G6wVMvQyHe7C+y6V2EcEng1Lv4MsElpo9O9mnup5e4Bc77XyCWk7WS9+kjnykaKBDdxErcmD5LPsnpC2UiRBO8IGtmG2GEeBz/1IcRnosLuCIU3eJ96BOvezO8MPgGEX5hPLz3S/71wIf+PxA+fRKlxnxxPK/XXzjz9fr8sZ+P/GukBUfnCPrby8Yf3xtj0AgD4zM79vSg9+cJXZ1FUM2srRuTibFkkWLjlObujUWLfG+Pb7FiMcOWxJj0uZAYmb4/hjMZ4qJhaeJ1EsThbgeCxWTsfdfixwjGxXHFAOILo2nWAYLuf5Dnw37+uwnsuvnheKYC9w9oa++nETNm3gAAAABJRU5ErkJggg=="},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAFABAMAAAA/vriZAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAYUExURQAAAP///////////////////////////yN+nV8AAAAHdFJOUwC8E+o/bo54pz/7AAACVklEQVR42u2c203DQBAAU0MqoAgKoARaQUi4fcQjwXHutfdxO0EzFYyEJtjn2z2dREREREREREREREREREREREREREREREREREREROQhONMF31/hgtvbC1xw+3iCC27PdMHtTBdEh/IliA7lW5Acyo8gOJRfQW4oF0FsKBdBbChXQWoof4LQUHaCzFD2gshQ9oLIUG4EiaHcCgJDOQjyQjkK4kI5CuJCuROkhXIvCAulIMgKpSSICqUkiAqlKEgKpSwICqUiyAmlJogJpSaICaUqSAmlLggJpSHICKUliAilJYgIpSlICKUtCAilI5gfSk8wPZSeYHooXcHsUPqCyaEMCOaGMiKYGsqIYGooQ4KZoYwJJoYyKJgXyqhgWiijgmmhDAtmhTIumBRKQDAnlIhgSigRwZRQQoIZocQEE0IJCq4PJSq4PJSo4PJQwoKrQ4kLLg5lQnBtKDOCS0OZEVwaypTgylDmBBeG8k8F6X9ieiT4nxn6DzX9Xx39YYH+uIV/YKU/8tNfmuivnfQXd/zRB/3wiH78Rj/ApB8B4w/R6Z8h6B9y6J/C6B8T8Z9j6R+06VcC6Jcq6NdS8Bd76Fej6JfL6Nfz6Bcc8VdE6Zds6deU6Re96Vfl8cMG9HEN+sALfWSIPnSFH1ujD/7RRyfpw6f08V38ADR9hJw+hE9fY0BfBIFfpUFfRkJf50JfiENfKYRfykRfa0VfDEZfrUZfTodf70dfkEhfMUlf0klfc4pfFItftSsiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIvJgfALwrytKH1wdpAAAAABJRU5ErkJggg=="},,,,function(e,t,i){var n=i(2),r=i(311);n(r,"is45a838af")},function(e,t,i){var n=i(2),r=i(312);n(r,"is-47b8c685")},function(e,t,i){var n=i(2),r=i(313);n(r,"is-3c4dc74d")},function(e,t,i){var n=i(2),r=i(314);n(r,"is217d3b2c")},function(e,t,i){var n=i(2),r=i(315);n(r,"is76e3e31")},function(e,t,i){var n=i(2),r=i(316);n(r,"is1f233ae8")},function(e,t,i){var n=i(2),r=i(317);n(r,"is-3bd6c73c")},function(e,t,i){var n=i(2),r=i(318);n(r,"is21c43b2e")},function(e,t,i){var n=i(2),r=i(319);n(r,"is-7394bf1b")},function(e,t,i){var n=i(2),r=i(320);n(r,"is2db23a6c")},function(e,t,i){var n=i(2),r=i(321);n(r,"is-4826c682")},function(e,t,i){var n=i(2),r=i(322);n(r,"is2c883a44")},function(e,t,i){var n=i(2),r=i(323);n(r,"is-63d8c88a")},,function(e,t){e.exports=".l59{margin-bottom:7px;position:relative;word-wrap:break-word}.l59:last-child{margin-bottom:0}.p59{background:0 0;border:none;outline:none;width:100%}.p59::-webkit-input-placeholder{color:#a5a7aa}.p59::-moz-placeholder{color:#a5a7aa}.p59:-ms-input-placeholder{color:#a5a7aa}.p59::placeholder{color:#a5a7aa}.m59{margin-right:.3em}.f0a,.t59{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.o59,.g69{color:#4b4f54;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1}.o59,.g69,.q59{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.r59{overflow:auto;padding-bottom:20px}.s59{margin-bottom:7px}.d69{background:0 0;border:none;color:#a5a7aa;outline:none;padding:0;margin:0}.e69:hover{color:#818488;cursor:pointer}.f69{display:inline-block;margin:0 0 0 2px;position:static}.d69,.f69{vertical-align:middle}.n59{background:0 0;border:none;color:#a5a7aa;cursor:pointer;float:right;font-size:inherit;height:1em;line-height:inherit;margin-left:10px;overflow:hidden;padding:0;width:1em}.n59::before{content:'\\2715';display:block}.n59:hover{color:#4b4f54}.t59{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;border-top:1px solid #eeefef;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.u59{margin-top:auto}.v59:first-child{border-top:none;margin-top:0}.w59{margin-left:-9px;margin-right:3px}.y59{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.z59{padding:20px 0}.a69{margin-bottom:7px}.b69{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1}.g69{display:block;overflow:hidden;text-overflow:ellipsis}.h69{margin-left:auto;margin-right:auto}.x59{background-color:transparent;border:0;cursor:pointer;margin-left:5px;margin-right:-10px;padding:0}.w59,.x59{-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.c69,.c69:visited{color:#a5a7aa;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;margin-left:10px}.c69:hover{color:#818488}.c69:active{color:#4b4f54}@media (min-width:736px){.i69,.p59,.d69{font-size:15px;line-height:18px}.i69{padding:0 24px}.q59{margin-left:-24px;margin-right:-24px;padding-left:24px;padding-right:24px;margin-top:-5px;padding-top:5px}.s59:first-child,.a69:first-child{margin-top:20px}.t59{min-height:68px}.v59{margin-top:13px}}@media (max-width:735px){.i69,.p59,.d69{font-size:14px;line-height:17px}.i69{padding:0 20px}.f69{margin-bottom:-1px}.s59:first-child,.a69:first-child{margin-top:16px}.t59{min-height:48px}.v59{margin-top:9px}.w59{margin-left:-9px;margin-right:-1px;-webkit-transform:translate3d(0,0,0) scale(.834);transform:translate3d(0,0,0) scale(.834);-webkit-transform-origin:left;transform-origin:left}}"},function(e,t){e.exports=".j69{background-color:#fbfbfb;border:1px solid #cccfd0;border-radius:50%;box-sizing:border-box;height:30px;overflow:hidden;width:30px}.k69{height:100%;width:100%}"},function(e,t){e.exports=".d99{background-color:#edeeee}.c99{background-color:#fff;border-color:#c9cbcc;border-style:solid;border-top-width:1px}.c99:first-child{border-top-width:0}.f99{border-color:#c9cbcc;border-style:solid;border-width:1px;margin-top:16px}.f99:first-child{margin-top:0}.f99.g99+.f99{border-top-width:0;margin-top:0}.e99{color:#25272a;display:inline-block;font-size:18px;font-weight:600;line-height:32px;text-align:center}@media (min-width:736px){.d99>*{min-width:510px}}@media (min-width:415px) and (max-width:735px){.d99,.d99>*{width:100%}}@media (min-width:414px){.d99{margin:0 auto}.d99>*{border-left:none;border-right:none}.e99{padding-top:16px}}"},function(e,t){e.exports=".h99{background:0 0;border:none;cursor:pointer;font-size:18px;font-weight:600;line-height:44px;overflow:hidden;padding:0 16px;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%}.i99{color:#f12938}.j99{color:#125688}"},function(e,t){e.exports=".z89{margin:0 auto}"},function(e,t){e.exports=".r99{font-size:14px;line-height:17px;height:34px;margin:0 0 7px;resize:none;white-space:nowrap}.r99,.q99{border-color:#c9cbcc}.q99{background:#fff;border-radius:4px;border-width:1px;margin:0 auto;padding:16px}.s99{margin-bottom:7px}.t99{margin-left:0;margin-right:5px}.u99{margin-bottom:7px}.v99{color:#a5a7aa;font-size:12px;line-height:16px}.p99{display:inline-block;margin:0 5px;position:static;vertical-align:middle}"},function(e,t){e.exports=".g19{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;margin-left:20px;max-width:140px}.y09{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.x09 .y09{height:64px;padding:14px 20px}.d19{display:inline-block;max-width:100%}.t09{box-shadow:inset 0 0 20px 0 #edeeee}.x09 .t09{border-bottom:1px solid #eeefef;border-top:1px solid #eeefef}.a19{display:block;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;overflow:hidden;line-height:0}.z09{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.x09 .z09{-webkit-flex-basis:30px;-ms-flex-preferred-size:30px;flex-basis:30px;margin:-1px 10px -1px -5px}.c19{margin-right:100%}.c19,.b19{display:inline-block;max-width:100%}.b19{color:#4b4f54;font-size:15px;line-height:18px}.e19,.e19:visited{color:#a5a7aa;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.e19:hover{color:#818488}.e19:active{color:#4b4f54}.f19{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}@media (min-width:736px){.u09.w09{padding-right:335px;width:100%}.u09 .y09{border-bottom:1px solid #eeefef;height:78px;padding:20px 0;position:absolute;right:24px;top:0;width:287px}.u09 .h19{bottom:0;box-sizing:border-box;position:absolute;right:0;top:78px;width:335px}.u09 .z09{-webkit-flex-basis:40px;-ms-flex-preferred-size:40px;flex-basis:40px;height:40px;margin:-2px 10px -2px -2px;width:40px}}@media (min-width:876px){.v09.w09{padding-right:335px;width:100%}.v09 .y09{border-bottom:1px solid #eeefef;height:78px;padding:20px 0;position:absolute;right:24px;top:0;width:287px}.v09 .h19{bottom:0;box-sizing:border-box;position:absolute;right:0;top:78px;width:335px}.v09 .z09{-webkit-flex-basis:40px;-ms-flex-preferred-size:40px;flex-basis:40px;height:40px;margin:-2px 10px -2px -2px;width:40px}}@media (max-width:735px){.u09 .y09{height:64px;padding:18px 20px}.u09 .t09{border-bottom:1px solid #eeefef;border-top:1px solid #eeefef}.u09 .z09{-webkit-flex-basis:30px;-ms-flex-preferred-size:30px;flex-basis:30px;height:30px;margin:-1px 10px -1px -5px;width:30px}}@media (max-width:875px){.v09 .y09{height:64px;padding:18px 20px}.v09 .t09{border-bottom:1px solid #eeefef;border-top:1px solid #eeefef}.v09 .z09{-webkit-flex-basis:30px;-ms-flex-preferred-size:30px;flex-basis:30px;height:30px;margin:-1px 10px -1px -5px;width:30px}}"},function(e,t){e.exports=".l99{color:#4b4f54;display:block}.k99{font-weight:600}.s0a{font-weight:700;text-overflow:ellipsis}"},function(e,t){e.exports=".m99{margin:0 auto}.o99{color:#a5a7aa;display:block;font-size:12px;font-weight:400;line-height:16px;margin-top:-12px;margin-bottom:12px}.n99{background-color:#fff;border-color:#c9cbcc;border-radius:4px;border-style:solid;border-width:1px;margin:0 auto;max-width:414px;padding:16px}"},function(e,t){e.exports=".z79{display:block;position:relative}.a89{text-transform:uppercase;width:100%}.b89{opacity:.2}"},function(e,t){e.exports=".a99{background-color:transparent;border:none;cursor:pointer;padding:0}.b99{cursor:default;opacity:.3}"},function(e,t){e.exports=".k59{color:#a5a7aa;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}a.k59,a.k59:visited{color:#4090db}a.k59:hover{color:#20486d}@media (min-width:736px){.k59{font-size:15px;line-height:18px}}@media (max-width:735px){.k59{font-size:14px;line-height:17px}}"},function(e,t){e.exports=".w99{background-color:rgba(0,0,0,.5);bottom:0;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;left:0;position:fixed;right:0;top:0;z-index:1}.x99{background-color:#edeeee;overflow:auto;padding:16px}"},function(e,t,i){(function(t){function n(e){"use strict";o.constructor.call(this,e),this.state={commentToDeleteId:null,restrictToOnePageOfComments:!0,showDeleteCommentModal:!1,showEmbedCodeModal:!1,showOptionsModal:!1,showReportInappropriateModal:!1},this.$PostInfo_handleCommentChange=this.$PostInfo_handleCommentChange.bind(this),this.$PostInfo_handleCommentFormSubmit=this.$PostInfo_handleCommentFormSubmit.bind(this),this.$PostInfo_handleDeleteCommentModalClose=this.$PostInfo_handleDeleteCommentModalClose.bind(this),this.$PostInfo_handleEmbedCodeModalClose=this.$PostInfo_handleEmbedCodeModalClose.bind(this),this.$PostInfo_handleEmbedCodeOptionClick=this.$PostInfo_handleEmbedCodeOptionClick.bind(this),this.$PostInfo_handleLikeButtonChange=this.$PostInfo_handleLikeButtonChange.bind(this),this.$PostInfo_handleLoadMoreCommentsClick=this.$PostInfo_handleLoadMoreCommentsClick.bind(this),this.$PostInfo_handleOptionsButtonClick=this.$PostInfo_handleOptionsButtonClick.bind(this),this.$PostInfo_handleOptionsModalClose=this.$PostInfo_handleOptionsModalClose.bind(this),this.$PostInfo_handleReportInappropriateModalClose=this.$PostInfo_handleReportInappropriateModalClose.bind(this),this.$PostInfo_handleReportInappropriateOptionClick=this.$PostInfo_handleReportInappropriateOptionClick.bind(this),this.$PostInfo_isStackedVariant=this.$PostInfo_isStackedVariant.bind(this),this.$PostInfo_prevCommentsScrollHeight=null}var r,o,s=i(115),a=i(153),l=i(88),p=i(55),c=i(327),u=i(328),d=i(11),h=i(341),m=i(13),f=i(9),g=i(87),v=i(62),b=i(26),A=i(85),y=i(329),x=i(1),w=i(330),E=i(63),D=i(20),C=i(43),k=i(140),P=i(86),_=i(48),T=i(261),O=i(30),S=(i(6),i(14)),L=i(4),I=i(7),N="댓글 삭제",R=D.LANDSCAPE_SMALL_SCREEN_CUTOFF,F=D.SMALL_SCREEN_CUTOFF,j=I({flexible:null,feed:null}),M=x.PropTypes;r=x.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.componentWillReceiveProps=function(e){"use strict";this.props.id!==e.id&&(this.$PostInfo_prevCommentsScrollHeight=null,this.setState({restrictToOnePageOfComments:!0}))},n.prototype.componentDidUpdate=function(e,t){"use strict";var i=e.commentSaveIsInFlight===!0&&this.props.commentSaveIsInFlight===!1;if(i){var n=this.$PostInfo_getCommentsListNode();n&&(n.scrollTop=n.scrollHeight)}else if(null!=this.$PostInfo_prevCommentsScrollHeight){var n=this.$PostInfo_getCommentsListNode();n&&(n.scrollTop+=n.scrollHeight-this.$PostInfo_prevCommentsScrollHeight),this.$PostInfo_prevCommentsScrollHeight=null}else if(this.props.id!==e.id){var n=this.$PostInfo_getCommentsListNode();n&&(n.scrollTop=0)}},n.prototype.componentWillUpdate=function(e,t){"use strict";var i=this.props.commentSaveIsInFlight===!0&&e.commentSaveIsInFlight===!1;if(!i){var n=this.$PostInfo_getCommentsToDisplay(),r=this.$PostInfo_getCommentsToDisplay(e,t);if(e.id===this.props.id&&r.length>n.length){var o=this.$PostInfo_getCommentsListNode();o&&(this.$PostInfo_prevCommentsScrollHeight=o.scrollHeight)}}},n.prototype.$PostInfo_getCommentsListNode=function(){"use strict";return this.refs.commentsList},n.prototype.$PostInfo_getCommentsToDisplay=function(e,t){"use strict";return e||(e=this.props),t||(t=this.state),t.restrictToOnePageOfComments?e.comments.slice(-l.PAGE_SIZE):e.comments},n.prototype.$PostInfo_handleCommentFormSubmit=function(e){"use strict";e.preventDefault(),this.props.pendingComment&&(f.logAction("comment",{source:this.props.analyticsContext}),s.commitPendingComment(this.props.id),this.refs.likeBtn.focus())},n.prototype.$PostInfo_handleCommentChange=function(e){"use strict";s.changePendingComment(this.props.id,e.target.value)},n.prototype.$PostInfo_handleDeleteCommentClick=function(e,t){"use strict";this.setState({commentToDeleteId:e,showDeleteCommentModal:!0})},n.prototype.$PostInfo_handleDeleteCommentModalClose=function(){"use strict";this.setState({commentToDeleteId:null,showDeleteCommentModal:!1})},n.prototype.$PostInfo_handleEmbedCodeModalClose=function(){"use strict";this.setState({showEmbedCodeModal:!1})},n.prototype.$PostInfo_handleEmbedCodeOptionClick=function(e){"use strict";f.logAction("embedCodeClick",{source:this.props.analyticsContext,type:this.props.isVideo?"video":"photo"}),this.setState({showOptionsModal:!1,showEmbedCodeModal:!0})},n.prototype.$PostInfo_handleLikeButtonChange=function(e){"use strict";this.props.onLikeChange(e,"likeButton")},n.prototype.$PostInfo_handleLoadMoreCommentsClick=function(e){"use strict";e.preventDefault(),this.setState({restrictToOnePageOfComments:!1}),this.$PostInfo_getCommentsToDisplay().length===this.props.comments.length&&this.props.comments.length<this.props.commentsTotalCount&&s.loadMoreComments(this.props.id,this.props.code)},n.prototype.$PostInfo_handleOptionsButtonClick=function(e){
"use strict";this.setState({showOptionsModal:!0})},n.prototype.$PostInfo_handleOptionsModalClose=function(){"use strict";this.setState({showOptionsModal:!1})},n.prototype.$PostInfo_handleReportInappropriateModalClose=function(){"use strict";this.setState({showReportInappropriateModal:!1})},n.prototype.$PostInfo_handleReportInappropriateOptionClick=function(e){"use strict";this.setState({showOptionsModal:!1,showReportInappropriateModal:!0})},n.prototype.$PostInfo_isStackedVariant=function(){"use strict";return this.props.viewportWidth<R||this.props.variant===j.feed},n.prototype.renderCaption=function(){"use strict";return this.props.caption?x.createElement("li",{className:"l59"},x.createElement("h1",null,this.props.owner.isUnpublished?null:x.createElement(P,{className:"m59",user:this.props.owner}),x.createElement(T,{value:this.props.caption}))):null},n.prototype.renderComment=function(e){"use strict";var t=this.props.viewer&&(this.props.viewer.id===e.userId||this.props.owner===this.props.viewer);return x.createElement("li",{className:"l59",key:"comment-"+e.id},t&&x.createElement("button",{className:"n59",title:N,onClick:this.$PostInfo_handleDeleteCommentClick.bind(this,e.id)},N),x.createElement(P,{className:"m59",user:O.getById(e.userId)}),x.createElement(T,{value:e.text}))},n.prototype.renderCommentInput=function(){"use strict";var e;return e=this.props.caption||this.props.owner!==this.props.viewer?"댓글 달기...":"문구 추가...",x.createElement("form",{className:"o59",onSubmit:this.$PostInfo_handleCommentFormSubmit},this.props.commentSaveIsInFlight?null:x.createElement("input",{className:"p59",disabled:this.props.commentSaveIsInFlight,onChange:this.$PostInfo_handleCommentChange,placeholder:e,type:"text",value:this.props.pendingComment}),this.props.commentSaveIsInFlight?x.createElement(C,null):null)},n.prototype.renderComments=function(){"use strict";var e=this.$PostInfo_getCommentsToDisplay();if(!this.props.caption&&0===e.length)return null;var t=e.length<this.props.commentsTotalCount,i=this.$PostInfo_isStackedVariant();return x.createElement("ul",{className:"q59"+(i?"":" r59")+(i?" s59":""),ref:"commentsList"},this.renderCaption(),t?this.renderLoadMoreCommentsLink():null,e.map(this.renderComment,this))},n.prototype.renderFeedbackControls=function(){"use strict";var e,t=this.$PostInfo_isStackedVariant(),i=this.props.viewer&&(!this.props.owner.isPrivate||this.props.viewer.id===this.props.owner.id||this.props.viewerFollowsOwner);return e=this.props.viewer?i?this.renderCommentInput():this.renderFollowPrompt():this.renderLoginPrompt(),x.createElement("section",{className:"t59"+(t?"":" u59")+(t?" v59":"")},i&&x.createElement(h,{className:"w59",disabled:!this.props.viewer,isLiked:this.props.likedByViewer,onChange:this.$PostInfo_handleLikeButtonChange,ref:"likeBtn"}),e,this.hasEmbedOption()||this.hasReportInappropriateOption()?x.createElement("button",{className:"x59 coreSpriteEllipsis u77",onClick:this.$PostInfo_handleOptionsButtonClick},"옵션 더 보기"):null)},n.prototype.renderLikesAndTimestamp=function(){"use strict";var e,t=this.props.numLikes>0;if(e=this.props.variant===j.feed?t:t||!this.props.viewerIsBlockedByOwner,!this.props.showTimestamp&&!e)return null;var i=this.$PostInfo_isStackedVariant();return x.createElement("section",{className:"y59"+(i?"":" z59")+(i?" a69":"")},e&&x.createElement(y,{className:"b69",likedByViewer:this.props.likedByViewer,onLike:this.props.onLikeChange.bind(null,!0,"beTheFirstPrompt"),totalCount:this.props.numLikes,users:this.props.likers,viewer:this.props.viewer}),this.props.showTimestamp&&x.createElement(d,{className:"c69",href:m.buildMediaLink(this.props.code)},x.createElement(k,{value:this.props.postedAt})))},n.prototype.renderLoadMoreCommentsLink=function(){"use strict";var e,i=this.props.commentsState===A.MODEL_CHANGING;return e=this.state.restrictToOnePageOfComments||i&&this.props.comments.length<=l.PAGE_SIZE?t("댓글 {count}개 모두 보기",{count:x.createElement(p,{value:this.props.commentsTotalCount})}):"댓글 더 보기",x.createElement("li",{className:"l59"},x.createElement("button",{className:"d69"+(i?"":" e69"),disabled:i,onClick:this.$PostInfo_handleLoadMoreCommentsClick},e),i?x.createElement(C,{className:"f69"}):null)},n.prototype.renderLoginPrompt=function(){"use strict";var e=encodeURIComponent(window.location.pathname),i=x.createElement(d,{href:"/accounts/login/?next="+e},"로그인");return x.createElement("div",{className:"g69"},t("좋아요 또는 댓글을 남기려면 {loginLink}.",{loginLink:i}))},n.prototype.renderFollowPrompt=function(){"use strict";return x.createElement("div",{className:"g69"},t("좋아요나 댓글을 남기려면 {username}님을 팔로우하세요.",{username:this.props.owner.username}))},n.prototype.hasEmbedOption=function(){"use strict";return!this.props.owner.isPrivate||this.props.sharedByAuthor},n.prototype.hasReportInappropriateOption=function(){"use strict";return this.props.owner!==this.props.viewer},n.prototype.renderOptionsModal=function(){"use strict";var e=this.props.viewportWidth<=F,t=(this.props.id,x.createElement(g,{className:e?"":"h69",onCancel:this.$PostInfo_handleOptionsModalClose},this.hasReportInappropriateOption()?x.createElement(v,{onClick:this.$PostInfo_handleReportInappropriateOptionClick,variant:v.VARIANTS.danger},"부적절한 콘텐츠 신고"):null,this.hasEmbedOption()?x.createElement(v,{onClick:this.$PostInfo_handleEmbedCodeOptionClick},"퍼가기"):null,null)),i={onClose:this.$PostInfo_handleOptionsModalClose};return e?x.createElement(E,i,t):x.createElement(b,i,t)},n.prototype.render=function(){"use strict";return x.createElement("div",{className:L("i69",this.props.className)},this.renderLikesAndTimestamp(),this.renderComments(),this.props.viewerIsBlockedByOwner?null:this.renderFeedbackControls(),this.state.showOptionsModal&&this.renderOptionsModal(),this.state.showDeleteCommentModal&&x.createElement(c,{analyticsContext:this.props.analyticsContext,commentId:this.state.commentToDeleteId,onClose:this.$PostInfo_handleDeleteCommentModalClose,postId:this.props.id,viewportWidth:this.props.viewportWidth}),this.state.showEmbedCodeModal&&x.createElement(u,{analyticsContext:this.props.analyticsContext,code:this.props.code,isVideo:this.props.isVideo,onClose:this.$PostInfo_handleEmbedCodeModalClose,viewportWidth:this.props.viewportWidth}),this.state.showReportInappropriateModal&&x.createElement(w,{isVideo:this.props.isVideo,onClose:this.$PostInfo_handleReportInappropriateModalClose,postId:this.props.id,viewportWidth:this.props.viewportWidth}))},n.defaultProps={variant:j.flexible,commentSaveIsInFlight:!1,comments:[],commentsState:A.MODEL_STABLE,commentsTotalCount:0,isVideo:!1,likedByViewer:!1,likers:[],numLikes:0,onLikeChange:function(){},pendingComment:"",sharedByAuthor:!1,showTimestamp:!1},n.propTypes={analyticsContext:M.string.isRequired,caption:M.string,code:M.string.isRequired,commentSaveIsInFlight:M.bool.isRequired,comments:M.arrayOf(M.shape(a)),commentsState:M.oneOf(S(A)).isRequired,commentsTotalCount:M.number.isRequired,id:M.string.isRequired,isVideo:M.bool.isRequired,likedByViewer:M.bool.isRequired,likers:M.arrayOf(M.shape(_)).isRequired,location:M.shape({id:M.string.isRequired,name:M.string.isRequired}),numLikes:M.number.isRequired,onLikeChange:M.func.isRequired,owner:M.shape(_).isRequired,pendingComment:M.string.isRequired,postedAt:M.number.isRequired,sharedByAuthor:M.bool.isRequired,showTimestamp:M.bool.isRequired,variant:M.oneOf(S(j)),viewer:M.shape(_),viewerFollowsOwner:M.bool.isRequired,viewerIsBlockedByOwner:M.bool.isRequired,viewportWidth:M.number.isRequired},n.VARIANTS=j,e.exports=n,i(297),i(34)}).call(t,i(5))},,,function(e,t,i){(function(t){function n(e){"use strict";o.constructor.call(this,e),this.$DeleteCommentModal_handleDeleteClick=this.$DeleteCommentModal_handleDeleteClick.bind(this)}var r,o,s=i(115),a=i(9),l=i(87),p=i(62),c=i(26),u=i(1),d=i(63),h=i(20),m=u.PropTypes;r=u.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.$DeleteCommentModal_handleDeleteClick=function(){"use strict";a.logAction("commentDelete",{source:this.props.analyticsContext}),s["delete"](this.props.postId,this.props.commentId),this.props.onClose()},n.prototype.render=function(){"use strict";var e=this.props.viewportWidth<=h.SMALL_SCREEN_CUTOFF,t={onClose:this.props.onClose},i=u.createElement(l,{className:e?"":"z89",onCancel:this.props.onClose},u.createElement(p,{onClick:this.$DeleteCommentModal_handleDeleteClick,variant:p.VARIANTS.danger},"댓글 삭제"));return e?u.createElement(d,t,i):u.createElement(c,t,i)},n.propTypes={analyticsContext:m.string.isRequired,commentId:m.string.isRequired,onClose:m.func,postId:m.string.isRequired,viewportWidth:m.number.isRequired},e.exports=n,i(301)}).call(t,i(5))},function(e,t,i){(function(t){function n(e){"use strict";o.constructor.call(this,e),this.$EmbedModal_embedCodeCache={},this.state={embedClipPrompt:g,embedCode:null,fetchingCode:!1,includeCaption:!0},this.$EmbedModal_handleCodeCopy=this.$EmbedModal_handleCodeCopy.bind(this),this.$EmbedModal_handleIncludeCaptionChange=this.$EmbedModal_handleIncludeCaptionChange.bind(this)}var r,o,s=i(339),a=i(46),l=i(9),p=i(26),c=i(1),u=i(63),d=i(20),h=i(43),m=i(6),f=c.PropTypes,g="Embed 태그 복사",v="Embed 태그가 복사되었습니다!",b="https://api.instagram.com/oembed/";r=c.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.componentDidMount=function(){"use strict";this.$EmbedModal_fetchEmbedCode()},n.prototype.componentDidUpdate=function(e,t){"use strict";(t.includeCaption!==this.state.includeCaption||e.code!==this.props.code)&&this.$EmbedModal_fetchEmbedCode()},n.prototype.componentWillUnmount=function(){"use strict";this.$EmbedModal_promptResetTimer&&clearTimeout(this.$EmbedModal_promptResetTimer)},n.prototype.$EmbedModal_fetchEmbedCode=function(){"use strict";var e=b+"?url=https://instagram.com/p/"+this.props.code+"/&hidecaption="+(this.state.includeCaption?0:1),t=this.$EmbedModal_embedCodeCache[e];"undefined"!=typeof t?this.setState({embedCode:t}):(this.setState({fetchingCode:!0}),$.ajax({type:"GET",url:e,success:function(t){var i=this.$EmbedModal_embedCodeCache[e]=t.html;this.setState({embedCode:i,fetchingCode:!1})}.bind(this)}))},n.prototype.$EmbedModal_handleCodeCopy=function(){"use strict";l.logAction("embedCodeCopy",{source:this.props.analyticsContext,type:this.props.isVideo?"video":"photo"}),this.setState({embedClipPrompt:v}),this.$EmbedModal_promptResetTimer=setTimeout(function(){this.setState({embedClipPrompt:g}),delete this.$EmbedModal_promptResetTimer}.bind(this),3e3)},n.prototype.$EmbedModal_handleCodeTextareaFocus=function(e){"use strict";e.target.select()},n.prototype.$EmbedModal_handleIncludeCaptionChange=function(e){"use strict";this.setState({includeCaption:!!e.target.checked})},n.prototype.render=function(){"use strict";var e=this.state.fetchingCode?"":this.state.embedCode,i="API 이용 약관",n=t("이 embed 태그를 사용하면 Instagram의 {apiTermsOfUseLink}에 동의하게 됩니다.",{apiTermsOfUseLink:c.createElement("a",{href:"/about/legal/terms/api/",target:"_blank"},i)}),r=this.state.fetchingCode?c.createElement(h,{className:"p99"}):null,o=c.createElement("div",{className:"q99"},c.createElement("textarea",{className:"r99",disabled:this.state.fetchingCode,onFocus:this.$EmbedModal_handleCodeTextareaFocus,readOnly:!0,value:e}),c.createElement("label",{className:"s99"},c.createElement("input",{className:"t99",checked:this.state.includeCaption,onChange:this.$EmbedModal_handleIncludeCaptionChange,type:"checkbox"}),"문구 포함",r),m.isMobile()?null:c.createElement(s,{className:"u99",disabled:this.state.fetchingCode,onCopy:this.$EmbedModal_handleCodeCopy,size:a.SIZES.large,value:this.state.embedCode,variant:a.VARIANTS.success},this.state.embedClipPrompt),c.createElement("p",{className:"v99"},n)),l={onClose:this.props.onClose};return this.props.viewportWidth<=d.SMALL_SCREEN_CUTOFF?c.createElement(u,l,o):c.createElement(p,l,o)},n.propTypes={code:f.string.isRequired,isVideo:f.bool.isRequired,viewportWidth:f.number.isRequired},e.exports=n,i(302)}).call(t,i(5))},function(e,t,i){(function(t){function n(e){"use strict";o.constructor.call(this,e),this.$PostLikers_handleLikeClick=this.$PostLikers_handleLikeClick.bind(this)}var r,o,s=i(55),a=i(11),l=i(1),p=i(86),c=i(48),u=i(3),d=i(4),h=l.PropTypes,m=10;r=l.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.$PostLikers_getOrderedUsers=function(){"use strict";var e=[];this.props.likedByViewer&&this.props.viewer&&e.push(this.props.viewer);for(var t=this.props.viewer&&this.props.viewer.username,i=0,n=this.props.users.length;e.length<m&&n>i;i++)this.props.users[i].username!==t&&e.push(this.props.users[i]);return e},n.prototype.$PostLikers_handleLikeClick=function(e){"use strict";e.preventDefault(),this.props.onLike()},n.prototype.renderLikersList=function(){"use strict";if(this.props.totalCount>m||!this.props.likedByViewer&&this.props.totalCount>0&&0===this.props.users.length){var e;return e=1===this.props.totalCount?t("좋아요 {count}개",{count:this.props.totalCount}):t("좋아요 {count}개",{count:l.createElement(s,{shortenNumber:!0,value:this.props.totalCount})}),l.createElement("span",{className:"k99"},e)}if(0===this.props.totalCount){if(this.props.viewer){var i=l.createElement("a",{href:"#",onClick:this.$PostLikers_handleLikeClick},"좋아요");return t("가장 먼저 {likeThisLink}를 눌러보세요.",{likeThisLink:i})}var n=encodeURIComponent(window.location.pathname),r=l.createElement(a,{href:"/accounts/login/?next="+n},"로그인");return t("이 게시물에 좋아요를 누르려면 {loginLink}하세요",{loginLink:r})}var o=this.$PostLikers_getOrderedUsers();return 1===o.length?t("{username}님이 좋아합니다",{username:l.createElement(p,{user:o[0]})}):2===o.length?t("{username1}님과 {username2}님이 좋아합니다",{username1:l.createElement(p,{user:o[0]}),username2:l.createElement(p,{user:o[1]})}):3===o.length?t("{username1}, {username2}, {username3}님이 좋아합니다",{username1:l.createElement(p,{user:o[0]}),username2:l.createElement(p,{user:o[1]}),username3:l.createElement(p,{user:o[2]})}):4===o.length?t("{username1}, {username2}, {username3}, {username4}님이 좋아합니다",{username1:l.createElement(p,{user:o[0]}),username2:l.createElement(p,{user:o[1]}),username3:l.createElement(p,{user:o[2]}),username4:l.createElement(p,{user:o[3]})}):5===o.length?t("{username1}, {username2}, {username3}, {username4}, {username5}님이 좋아합니다",{username1:l.createElement(p,{user:o[0]}),username2:l.createElement(p,{user:o[1]}),username3:l.createElement(p,{user:o[2]}),username4:l.createElement(p,{user:o[3]}),username5:l.createElement(p,{user:o[4]})}):6===o.length?t("{username1}, {username2}, {username3}, {username4}, {username5}, {username6}님이 좋아합니다",{username1:l.createElement(p,{user:o[0]}),username2:l.createElement(p,{user:o[1]}),username3:l.createElement(p,{user:o[2]}),username4:l.createElement(p,{user:o[3]}),username5:l.createElement(p,{user:o[4]}),username6:l.createElement(p,{user:o[5]})}):7===o.length?t("{username1}, {username2}, {username3}, {username4}, {username5}, {username6}, {username7}님이 좋아합니다",{username1:l.createElement(p,{user:o[0]}),username2:l.createElement(p,{user:o[1]}),username3:l.createElement(p,{user:o[2]}),username4:l.createElement(p,{user:o[3]}),username5:l.createElement(p,{user:o[4]}),username6:l.createElement(p,{user:o[5]}),username7:l.createElement(p,{user:o[6]})}):8===o.length?t("{username1}, {username2}, {username3}, {username4}, {username5}, {username6}, {username7}, {username8}님이 좋아합니다",{username1:l.createElement(p,{user:o[0]}),username2:l.createElement(p,{user:o[1]}),username3:l.createElement(p,{user:o[2]}),username4:l.createElement(p,{user:o[3]}),username5:l.createElement(p,{user:o[4]}),username6:l.createElement(p,{user:o[5]}),username7:l.createElement(p,{user:o[6]}),username8:l.createElement(p,{user:o[7]})}):9===o.length?t("{username1}, {username2}, {username3}, {username4}, {username5}, {username6}, {username7}, {username8}, {username9}님이 좋아합니다",{username1:l.createElement(p,{user:o[0]}),username2:l.createElement(p,{user:o[1]}),username3:l.createElement(p,{user:o[2]}),username4:l.createElement(p,{user:o[3]}),username5:l.createElement(p,{user:o[4]}),username6:l.createElement(p,{user:o[5]}),username7:l.createElement(p,{user:o[6]}),username8:l.createElement(p,{user:o[7]}),username9:l.createElement(p,{user:o[8]})}):10===o.length?t("{username1}, {username2}, {username3}, {username4}, {username5}, {username6}, {username7}, {username8}, {username9}, {username10}님이 좋아합니다",{username1:l.createElement(p,{user:o[0]}),username2:l.createElement(p,{user:o[1]}),username3:l.createElement(p,{user:o[2]}),username4:l.createElement(p,{user:o[3]}),username5:l.createElement(p,{user:o[4]}),username6:l.createElement(p,{user:o[5]}),username7:l.createElement(p,{user:o[6]}),username8:l.createElement(p,{user:o[7]}),username9:l.createElement(p,{user:o[8]}),username10:l.createElement(p,{user:o[9]})}):void u(0,"Attempted to render a liker list, but the list size was out of range (size was %s)",o.length)},n.prototype.render=function(){"use strict";return l.createElement("div",{className:d(this.props.className,"l99")},this.renderLikersList())},n.propTypes={likedByViewer:h.bool.isRequired,onLike:h.func.isRequired,totalCount:h.number.isRequired,users:h.arrayOf(h.shape({username:h.string.isRequired})).isRequired,viewer:h.shape(c)},e.exports=n,i(304)}).call(t,i(5))},function(e,t,i){(function(t){function n(e){"use strict";o.constructor.call(this,e),this.state={mode:null},this.$ReportInappropriateModal_handleReportClick=this.$ReportInappropriateModal_handleReportClick.bind(this),this.$ReportInappropriateModal_isSmallScreen=this.$ReportInappropriateModal_isSmallScreen.bind(this)}var r,o,s=i(13),a=i(87),l=i(62),p=i(26),c=i(1),u=i(63),d=i(20),h=i(7),m=h({proprietyOptions:null,reportSubmitted:null,riskOptions:null}),f={spamOrScam:1,selfHarm:2,harassment:7,drugUse:3,nudity:4,violence:5,hateSpeech:6},g=c.PropTypes;r=c.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.$ReportInappropriateModal_handleModeClick=function(e){"use strict";this.setState({mode:e})},n.prototype.$ReportInappropriateModal_handleReportClick=function(e){"use strict";$.ajax({data:{reason_id:e},success:function(e){this.setState({mode:m.reportSubmitted})}.bind(this),type:"POST",url:s.buildFlagMediaLink(this.props.postId)})},n.prototype.$ReportInappropriateModal_handleReportLinkClick=function(e){"use strict";window.open(e),this.setState({mode:m.reportSubmitted})},n.prototype.$ReportInappropriateModal_isSmallScreen=function(){"use strict";return this.props.viewportWidth<=d.SMALL_SCREEN_CUTOFF},n.prototype.renderChoices=function(){"use strict";var e;switch(this.state.mode){case m.riskOptions:e=this.renderRiskChoices();break;case m.proprietyOptions:e=this.renderProprietyChoices();break;default:e=this.renderRootChoices()}return c.createElement(a,{className:this.$ReportInappropriateModal_isSmallScreen()?"":"m99",onCancel:this.props.onClose},e)},n.prototype.renderGratitude=function(){"use strict";return c.createElement("p",{className:"n99"},"신고해주셔서 감사합니다."," ",this.props.isVideo?"커뮤니티 가이드라인을 위반하는 동영상은 삭제됩니다.":"커뮤니티 가이드라인을 위반하는 사진은 삭제됩니다.")},n.prototype.renderProprietyChoices=function(){"use strict";return[c.createElement(l,{key:"nudity",onClick:this.$ReportInappropriateModal_handleReportClick.bind(this,f.nudity)},"나체 이미지 또는 음란물"),c.createElement(l,{key:"violence",onClick:this.$ReportInappropriateModal_handleReportClick.bind(this,f.violence)},"폭력 묘사"),c.createElement(l,{key:"hateSpeech",onClick:this.$ReportInappropriateModal_handleReportClick.bind(this,f.hateSpeech)},"편파적 발언 또는 상징"),c.createElement(l,{key:"ip",onClick:this.$ReportInappropriateModal_handleReportLinkClick.bind(this,"https://help.instagram.com/535503073130320/")},"지적 재산권 침해")]},n.prototype.renderRiskChoices=function(){"use strict";return[c.createElement(l,{key:"selfHarm",onClick:this.$ReportInappropriateModal_handleReportClick.bind(this,f.selfHarm)},"자해"," ",c.createElement("span",{className:"o99"},"섭식 장애, 자해, 자살 암시 내용")),c.createElement(l,{key:"harassment",onClick:this.$ReportInappropriateModal_handleReportClick.bind(this,f.harassment)},"괴롭힘 또는 따돌림"),c.createElement(l,{key:"drugUse",onClick:this.$ReportInappropriateModal_handleReportClick.bind(this,f.drugUse)},"약물 사용")]},n.prototype.renderRootChoices=function(){"use strict";return[c.createElement(l,{key:"dislike",onClick:this.$ReportInappropriateModal_handleReportLinkClick.bind(this,"https://help.instagram.com/426700567389543/")},this.props.isVideo?"이 동영상이 마음에 들지 않습니다":"이 사진이 마음에 들지 않습니다"),c.createElement(l,{key:"spamOrScam",onClick:this.$ReportInappropriateModal_handleReportClick.bind(this,f.spamOrScam)},this.props.isVideo?"이 동영상은 스팸 또는 사기입니다":"이 사진은 스팸 또는 사기입니다"),c.createElement(l,{key:"risk",onClick:this.$ReportInappropriateModal_handleModeClick.bind(this,m.riskOptions)},this.props.isVideo?"이 동영상으로 인해 사람들이 위험해질 수 있습니다":"이 사진으로 인해 사람들이 위험해질 수 있습니다"),c.createElement(l,{key:"propriety",onClick:this.$ReportInappropriateModal_handleModeClick.bind(this,m.proprietyOptions)},this.props.isVideo?"이 동영상은 Instagram에 게시되기에 적절하지 않습니다":"이 사진은 Instagram에 게시되기에 적절하지 않습니다")]},n.prototype.render=function(){"use strict";var e={key:this.state.mode,onClose:this.props.onClose};this.$ReportInappropriateModal_isSmallScreen()&&this.state.mode===m.reportSubmitted&&(e.closeLabel="완료");var t=this.state.mode===m.reportSubmitted?this.renderGratitude():this.renderChoices();return this.$ReportInappropriateModal_isSmallScreen()?c.createElement(u,e,t):c.createElement(p,e,t)},n.propTypes={isVideo:g.bool.isRequired,onClose:g.func,postId:g.string.isRequired,viewportWidth:g.number.isRequired},e.exports=n,i(305)}).call(t,i(5))},function(e,t,i){var n=i(190),r=i(144),o=i(28),s=i(1),a=i(66),l=i(652),p=i(30),c=i(6),u=i(40),d=s.PropTypes,h=function(e){var t="profile_"+e.userId,i=p.getViewer(),s=!!i&&a.viewerFollows(e.userId),l=p.getById(e.userId),u=c.passesGatekeeper("fl")&&!!i&&(s||!l.isPrivate);return{canSeeFollowList:u,fetchingState:o.getPostsFetchingStateForUser(e.userId),isOldestPostLoaded:o.isOldestPostLoadedForUser(e.userId),isUploadingProfilePic:!(!i||i.id!==e.userId||!p.isProfilePicUploadInFlight()),maxPostsToDisplay:n.getMaxPostsToDisplay(t),posts:o.getPostsByUserId(e.userId),scrollLoadingEnabled:n.getScrollLoadingEnabled(t),showFollowingModal:e.showFollowingModal,user:l,viewer:i,viewerFollowsUser:s,viewportWidth:r.getViewportWidth()}},m=u(l,h,n,r,o,a,p);m.propTypes={userId:d.string.isRequired},e.exports=m},,,,function(e,t,i){function n(e,t){var i={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=e[n]);return i}var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},o=i(11),s=i(13),a=i(1),l=a.PropTypes,p=a.createClass({displayName:"HashtagLink",propTypes:{tag:l.string.isRequired},render:function(){var e=this.props,t=e.tag,i=n(e,["tag"]);return a.createElement(o,r({},i,{href:s.buildTagLink(t.toLowerCase())}),"#"+t)}});e.exports=p},function(e,t,i){function n(e,t){var i={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=e[n]);return i}var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},o=i(337),s=i(1),a=s.PropTypes,l=s.createClass({displayName:"MentionNameLink",propTypes:{user:a.shape({username:a.string.isRequired}).isRequired},render:function(){var e=this.props,t=e.user,i=n(e,["user"]);return s.createElement(o,r({},i,{user:t}),"@"+t.username)}});e.exports=l},function(e,t,i){function n(e,t){var i={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=e[n]);return i}var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},o=i(11),s=i(13),a=i(1),l=a.PropTypes,p=a.createClass({displayName:"RawNameLink",propTypes:{user:l.shape({username:l.string.isRequired}).isRequired},render:function(){var e=this.props,t=e.user,i=n(e,["user"]);return a.createElement(o,r({},i,{href:s.buildUserLink(t.username)}))}});e.exports=p},function(e,t,i){function n(e,t,i){var n=[];return t.replace(e,function(e,t,r,o,s){n.push({entity:o,type:i,marker:r,offset:s+t.length})}),n}function r(e){return n(f,e,"tag")}function o(e){return n(A,e,"mention")}function s(e,t){var i=r(e).concat(o(e)).sort(y),n=0,s={},a=t.text||h.thatReturnsArgument;if(i.forEach(function(i,r){var o=e.slice(n,i.offset);o&&(s["text"+r]=a(o));var l=t[i.type]||a;s["entity"+r]=l(i.entity,i.marker),n=i.offset+i.entity.length+1}),e.length>n){var l=e.slice(n);s.end=a(l)}return d(s)}function a(e,t){var i=l({},m.REACT,t);return s(e,i)}var l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},p=i(335),c=i(336),u=i(1),d=i(56),h=i(10),m={REACT:{text:function(e){return e},mention:function(e){var t={username:e};return u.createElement(c,{user:t})},tag:function(e,t){return u.createElement(p,{tag:e})}}},f=i(344)(),g="(^|[^a-zA-Z0-9_!#$%&*@@])",v="([@@])",b="([a-zA-Z0-9_]+(?:\\.[a-zA-Z0-9_]+)*)",A=new RegExp(g+v+b,"g"),y=function(e,t){return e.offset-t.offset};e.exports={linkifyAsReactElements:a}},function(e,t,i){function n(e){"use strict";o.constructor.call(this,e),this.$CopyToClipboardButton_handleCopy=this.$CopyToClipboardButton_handleCopy.bind(this)}var r,o,s,a=i(46),l=i(1),p=i(8),c=void 0,u=i(10),d=!1,h=l.PropTypes;r=l.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.$CopyToClipboardButton_handleCopy=function(e){"use strict";if(e.target===p.findDOMNode(this)){var t=e.clipboardData;t.setData("text/plain",this.props.value),t.setData("text/html",this.props.value),this.props.onCopy()}},n.prototype.componentDidMount=function(){"use strict";c=c||i(354),d||(c.config({cacheBust:!1,forceHandCursor:!0,swfPath:"//instagramstatic-a.akamaihd.net/bluebar/4da1e40/thirdparty/ZeroClipboard.swf",trustedDomains:["instagram.com","preprod.instagram.com"]}),d=!0),s||(s=new c),s.clip(p.findDOMNode(this)),s.on("copy",this.$CopyToClipboardButton_handleCopy)},n.prototype.componentWillUnmount=function(){"use strict";1===s.elements().length?(c.destroy(),s=void 0):s.unclip(p.findDOMNode(this))},n.prototype.render=function(){"use strict";return l.createElement(a,this.props,this.props.children)},n.defaultProps={onCopy:u},n.propTypes={onCopy:h.func,value:h.string},e.exports=n},function(e,t,i){(function(t){function n(e){"use strict";o.constructor.call(this,e),this.$FollowButton_handleClick=this.$FollowButton_handleClick.bind(this)}var r,o,s=i(46),a=i(1),l=i(260),p=i(18),c=i(43),u=i(4),d=i(14),h=a.PropTypes,m="팔로우",f="팔로잉",g="요청됨";r=a.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.$FollowButton_handleClick=function(e){"use strict";if(this.props.viewerLoggedIn)this.props.isFollowing||this.props.hasRequestedToFollow?l.unfollowUser(this.props.userId,this.props.analyticsContext):l.followUser(this.props.userId,this.props.analyticsContext);else{var t=encodeURIComponent(window.location.pathname);p.navigate("/accounts/login/?next="+t+"&source=follow")}},n.prototype.render=function(){"use strict";var e,t;return this.props.isFollowing?(e=f,t=s.VARIANTS.success):this.props.hasRequestedToFollow?(e=g,t=s.VARIANTS.neutral):e=m,a.createElement("span",{className:u(this.props.className,"z79")},a.createElement(s,{className:"a89"+(this.props.isLoading?" b89":""),disabled:this.props.isLoading,onClick:this.$FollowButton_handleClick,size:this.props.size,variant:t},e),this.props.isLoading?a.createElement(c,null):null)},n.propTypes={analyticsContext:h.string.isRequired,hasRequestedToFollow:h.bool.isRequired,isFollowing:h.bool.isRequired,isLoading:h.bool.isRequired,isViewer:h.bool.isRequired,size:h.oneOf(d(s.SIZES)),userId:h.string.isRequired,viewerLoggedIn:h.bool.isRequired},e.exports=n,i(306)}).call(t,i(5))},function(e,t,i){(function(t){function n(e){"use strict";o.constructor.call(this,e),this.$LikeButton_handleClick=this.$LikeButton_handleClick.bind(this)}var r,o,s=i(1),a=i(4),l=s.PropTypes;i(24);var p="좋아요",c="좋아요 취소";r=s.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.$LikeButton_handleClick=function(e){"use strict";e.preventDefault(),this.props.onChange(!this.props.isLiked)},n.prototype.focus=function(){"use strict";this.refs.button.focus()},n.prototype.render=function(){"use strict";return s.createElement("a",{className:a(this.props.className,"a99"+(this.props.disabled?" b99":"")+" u77"+(this.props.isLiked?"":" coreSpriteHeartOpen")+(this.props.isLiked?" coreSpriteHeartFull":"")),href:"#",ref:"button",role:"button",disabled:this.props.disabled,onClick:this.$LikeButton_handleClick},this.props.isLiked?c:p)},n.defaultProps={disabled:!1},n.propTypes={disabled:l.bool,isLiked:l.bool.isRequired,onChange:l.func.isRequired},e.exports=n,i(307),i(34)}).call(t,i(5))},function(e,t,i){function n(){"use strict";r.apply(this,arguments)}var r,o,s=i(11),a=i(13),l=i(1),p=i(4),c=l.PropTypes;r=l.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.render=function(){"use strict";var e={className:p("k59",this.props.className),title:this.props.location.name};return this.props.location.hasPublicPage&&(e.href=a.buildLocationLink(this.props.location.id)),l.createElement(this.props.location.hasPublicPage?s:"span",e,this.props.location.name)},n.propTypes={location:c.shape({hasPublicPage:c.bool.isRequired,id:c.string.isRequired,name:c.string.isRequired}).isRequired},e.exports=n,i(308)},function(e,t,i){function n(e,t){var i={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=e[n]);return i}function r(){"use strict";o.apply(this,arguments)}var o,s,a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},l=i(11),p=i(80),c=i(290),u=i(1),d=i(183),h=i(91),m=u.PropTypes;o=u.Component,s=o&&o.prototype,Object.assign(r,o),r.prototype=Object.create(s),r.prototype.constructor=r,r.__superConstructor__=o,r.prototype.render=function(){"use strict";var e=this.props,t=e.isVideo,i=e.src,r=e.usertags,o=e.videoUrl,s=n(e,["isVideo","src","usertags","videoUrl"]);return t?u.createElement(d,a({},s,{posterFrameUrl:i,videoUrl:o})):r&&r.length>0?u.createElement(c,a({},s,{LinkComponent:l,rich:!0,src:i,usertags:r})):u.createElement(p,a({},s,{rich:!0,src:i}))},r.propTypes={src:m.string.isRequired,isVisible:m.bool,isVideo:m.bool.isRequired,onLike:m.func,usertags:m.arrayOf(h),videoUrl:m.string},e.exports=r},function(e,t){function i(){var e="À-ÖØ-öø-ÿĀ-ɏɓ-ɔɖ-ɗəɛɣɨɯɲʉʋʻ̀-ͯḀ-ỿ",t="Ѐ-ӿԀ-ԧⷠ-ⷿꙀ-֑ꚟ-ֿׁ-ׂׄ-ׇׅא-תװ-״﬒-ﬨשׁ-זּטּ-לּמּנּ-סּףּ-פּצּ-ﭏؐ-ؚؠ-ٟٮ-ۓە-ۜ۞-۪ۨ-ۯۺ-ۼۿݐ-ݿࢠࢢ-ࢬࣤ-ࣾﭐ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼ‌-‌ก-ฺเ-๎ᄀ-ᇿ㄰-ㆅꥠ-꥿가-힯ힰ-퟿ᄀ-ᅵ",i=String.fromCharCode,n="ァ-ヺー-ヾヲ-゚0-9A-Za-zぁ-ゖ゙-ゞ㐀-䶿一-鿿"+i(173824)+"-"+i(177983)+i(177984)+"-"+i(178207)+i(194560)+"-"+i(195103)+"〃々〻",r=e+t+n,o="A-Za-zªµºÀ-ÖØ-öø-Ɂɐ-ˁˆ-ˑˠ-ˤˮͺΆΈ-ΊΌΎ-ΡΣ-ώϐ-ϵϷ-ҁҊ-ӎӐ-ӹԀ-ԏԱ-Ֆՙա-ևא-תװ-ײء-غـ-يٮ-ٯٱ-ۓەۥ-ۦۮ-ۯۺ-ۼۿܐܒ-ܯݍ-ݭހ-ޥޱऄ-हऽॐक़-ॡॽঅ-ঌএ-ঐও-নপ-রলশ-হঽৎড়-ঢ়য়-ৡৰ-ৱਅ-ਊਏ-ਐਓ-ਨਪ-ਰਲ-ਲ਼ਵ-ਸ਼ਸ-ਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલ-ળવ-હઽૐૠ-ૡଅ-ଌଏ-ଐଓ-ନପ-ରଲ-ଳଵ-ହଽଡ଼-ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கங-சஜஞ-டண-தந-பம-ஹఅ-ఌఎ-ఐఒ-నప-ళవ-హౠ-ౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠ-ೡഅ-ഌഎ-ഐഒ-നപ-ഹൠ-ൡඅ-ඖක-නඳ-රලව-ෆก-ะา-ำเ-ๆກ-ຂຄງ-ຈຊຍດ-ທນ-ຟມ-ຣລວສ-ຫອ-ະາ-ຳຽເ-ໄໆໜ-ໝༀཀ-ཇཉ-ཪྈ-ྋက-အဣ-ဧဩ-ဪၐ-ၕႠ-Ⴥა-ჺჼᄀ-ᅙᅟ-ᆢᆨ-ᇹሀ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙶᚁ-ᚚᚠ-ᛪᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦩᧁ-ᧇᨀ-ᨖᴀ-ᶿḀ-ẛẠ-ỹἀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₔℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℱℳ-ℹℼ-ℿⅅ-ⅉⰀ-Ⱞⰰ-ⱞⲀ-ⳤⴀ-ⴥⴰ-ⵥⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〆〱-〵〻-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄬㄱ-ㆎㆠ-ㆷㇰ-ㇿ㐀-䶵一-龻ꀀ-ꒌꠀ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢ가-힣豈-鶴侮-頻並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּ-סּףּ-פּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",s="̀-ͯ҃-֑҆-ֹֻ-ֽֿׁ-ׂׄ-ׇׅؐ-ًؕ-ٰٞۖ-ۜ۟-ۤۧ-۪ۨ-ܑۭܰ-݊ަ-ްँ-ः़ा-्॑-॔ॢ-ॣঁ-ঃ়া-ৄে-ৈো-্ৗৢ-ৣਁ-ਃ਼ਾ-ੂੇ-ੈੋ-੍ੰ-ੱઁ-ઃ઼ા-ૅે-ૉો-્ૢ-ૣଁ-ଃ଼ା-ୃେ-ୈୋ-୍ୖ-ୗஂா-ூெ-ைொ-்ௗఁ-ఃా-ౄె-ైొ-్ౕ-ౖಂ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕ-ೖം-ഃാ-ൃെ-ൈൊ-്ൗං-ඃ්ා-ුූෘ-ෟෲ-ෳัิ-ฺ็-๎ັິ-ູົ-ຼ່-ໍ༘-༹༙༵༷༾-༿ཱ-྄྆-྇ྐ-ྗྙ-ྼ࿆ာ-ဲံ-္ၖ-ၙ፟ᜒ-᜔ᜲ-᜴ᝒ-ᝓᝲ-ᝳា-៓៝᠋-᠍ᢩᤠ-ᤫᤰ-᤻ᦰ-ᧀᧈ-ᧉᨗ-ᨛ᷀-᷃⃐-⃥⃜⃡-⃫〪-゙〯-゚ꠂ꠆ꠋꠣ-ꠧﬞ︀-️︠-︣",a="0-9٠-٩۰-۹०-९০-৯੦-੯૦-૯୦-୯௦-௯౦-౯೦-೯൦-൯๐-๙໐-໙༠-༩၀-၉០-៩᠐-᠙᥆-᥏᧐-᧙0-9",l=o+s+r,p=a+"_",c=l+p,u="(?:[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u2388\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2648-\\u2653\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267F\\u2692-\\u2694\\u2696\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED0\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3]|\\uD83E[\\uDD10-\\uDD18\\uDD80-\\uDD84\\uDDC0]|(?:0\\u20E3|1\\u20E3|2\\u20E3|3\\u20E3|4\\u20E3|5\\u20E3|6\\u20E3|7\\u20E3|8\\u20E3|9\\u20E3|#\\u20E3|\\\\*\\u20E3|\\uD83C(?:\\uDDE6\\uD83C(?:\\uDDEB|\\uDDFD|\\uDDF1|\\uDDF8|\\uDDE9|\\uDDF4|\\uDDEE|\\uDDF6|\\uDDEC|\\uDDF7|\\uDDF2|\\uDDFC|\\uDDE8|\\uDDFA|\\uDDF9|\\uDDFF|\\uDDEA)|\\uDDE7\\uD83C(?:\\uDDF8|\\uDDED|\\uDDE9|\\uDDE7|\\uDDFE|\\uDDEA|\\uDDFF|\\uDDEF|\\uDDF2|\\uDDF9|\\uDDF4|\\uDDE6|\\uDDFC|\\uDDFB|\\uDDF7|\\uDDF3|\\uDDEC|\\uDDEB|\\uDDEE|\\uDDF6|\\uDDF1)|\\uDDE8\\uD83C(?:\\uDDF2|\\uDDE6|\\uDDFB|\\uDDEB|\\uDDF1|\\uDDF3|\\uDDFD|\\uDDF5|\\uDDE8|\\uDDF4|\\uDDEC|\\uDDE9|\\uDDF0|\\uDDF7|\\uDDEE|\\uDDFA|\\uDDFC|\\uDDFE|\\uDDFF|\\uDDED)|\\uDDE9\\uD83C(?:\\uDDFF|\\uDDF0|\\uDDEC|\\uDDEF|\\uDDF2|\\uDDF4|\\uDDEA)|\\uDDEA\\uD83C(?:\\uDDE6|\\uDDE8|\\uDDEC|\\uDDF7|\\uDDEA|\\uDDF9|\\uDDFA|\\uDDF8|\\uDDED)|\\uDDEB\\uD83C(?:\\uDDF0|\\uDDF4|\\uDDEF|\\uDDEE|\\uDDF7|\\uDDF2)|\\uDDEC\\uD83C(?:\\uDDF6|\\uDDEB|\\uDDE6|\\uDDF2|\\uDDEA|\\uDDED|\\uDDEE|\\uDDF7|\\uDDF1|\\uDDE9|\\uDDF5|\\uDDFA|\\uDDF9|\\uDDEC|\\uDDF3|\\uDDFC|\\uDDFE|\\uDDF8|\\uDDE7)|\\uDDED\\uD83C(?:\\uDDF7|\\uDDF9|\\uDDF2|\\uDDF3|\\uDDF0|\\uDDFA)|\\uDDEE\\uD83C(?:\\uDDF4|\\uDDE8|\\uDDF8|\\uDDF3|\\uDDE9|\\uDDF7|\\uDDF6|\\uDDEA|\\uDDF2|\\uDDF1|\\uDDF9)|\\uDDEF\\uD83C(?:\\uDDF2|\\uDDF5|\\uDDEA|\\uDDF4)|\\uDDF0\\uD83C(?:\\uDDED|\\uDDFE|\\uDDF2|\\uDDFF|\\uDDEA|\\uDDEE|\\uDDFC|\\uDDEC|\\uDDF5|\\uDDF7|\\uDDF3)|\\uDDF1\\uD83C(?:\\uDDE6|\\uDDFB|\\uDDE7|\\uDDF8|\\uDDF7|\\uDDFE|\\uDDEE|\\uDDF9|\\uDDFA|\\uDDF0|\\uDDE8)|\\uDDF2\\uD83C(?:\\uDDF4|\\uDDF0|\\uDDEC|\\uDDFC|\\uDDFE|\\uDDFB|\\uDDF1|\\uDDF9|\\uDDED|\\uDDF6|\\uDDF7|\\uDDFA|\\uDDFD|\\uDDE9|\\uDDE8|\\uDDF3|\\uDDEA|\\uDDF8|\\uDDE6|\\uDDFF|\\uDDF2|\\uDDF5|\\uDDEB)|\\uDDF3\\uD83C(?:\\uDDE6|\\uDDF7|\\uDDF5|\\uDDF1|\\uDDE8|\\uDDFF|\\uDDEE|\\uDDEA|\\uDDEC|\\uDDFA|\\uDDEB|\\uDDF4)|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C(?:\\uDDEB|\\uDDF0|\\uDDFC|\\uDDF8|\\uDDE6|\\uDDEC|\\uDDFE|\\uDDEA|\\uDDED|\\uDDF3|\\uDDF1|\\uDDF9|\\uDDF7|\\uDDF2)|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C(?:\\uDDEA|\\uDDF4|\\uDDFA|\\uDDFC|\\uDDF8)|\\uDDF8\\uD83C(?:\\uDDFB|\\uDDF2|\\uDDF9|\\uDDE6|\\uDDF3|\\uDDE8|\\uDDF1|\\uDDEC|\\uDDFD|\\uDDF0|\\uDDEE|\\uDDE7|\\uDDF4|\\uDDF8|\\uDDED|\\uDDE9|\\uDDF7|\\uDDEF|\\uDDFF|\\uDDEA|\\uDDFE)|\\uDDF9\\uD83C(?:\\uDDE9|\\uDDEB|\\uDDFC|\\uDDEF|\\uDDFF|\\uDDED|\\uDDF1|\\uDDEC|\\uDDF0|\\uDDF4|\\uDDF9|\\uDDE6|\\uDDF3|\\uDDF7|\\uDDF2|\\uDDE8|\\uDDFB)|\\uDDFA\\uD83C(?:\\uDDEC|\\uDDE6|\\uDDF8|\\uDDFE|\\uDDF2|\\uDDFF)|\\uDDFB\\uD83C(?:\\uDDEC|\\uDDE8|\\uDDEE|\\uDDFA|\\uDDE6|\\uDDEA|\\uDDF3)|\\uDDFC\\uD83C(?:\\uDDF8|\\uDDEB)|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C(?:\\uDDF9|\\uDDEA)|\\uDDFF\\uD83C(?:\\uDDE6|\\uDDF2|\\uDDFC))))",d="[\\uFE00-\\uFE0F\\u200D]",h=u+d+"*",m="["+c+"]",f="(?:"+m+"|"+h+")",g="",v="[#\\uFF03]",b="("+g+")("+v+")("+f+"+)";
return new RegExp(b,"ig")}e.exports=i},,,,,,,,,,function(e,t,i){var n;/*!
 * ZeroClipboard
 * The ZeroClipboard library provides an easy way to copy text to the clipboard using an invisible Adobe Flash movie and a JavaScript interface.
 * Copyright (c) 2009-2014 Jon Rohan, James M. Greene
 * Licensed MIT
 * http://zeroclipboard.org/
 * v2.2.0
 */
!function(r,o){"use strict";var s,a,l,p=r,c=p.document,u=p.navigator,d=p.setTimeout,h=p.clearTimeout,m=p.setInterval,f=p.clearInterval,g=p.getComputedStyle,v=p.encodeURIComponent,b=p.ActiveXObject,A=p.Error,y=p.Number.parseInt||p.parseInt,x=p.Number.parseFloat||p.parseFloat,w=p.Number.isNaN||p.isNaN,E=p.Date.now,D=p.Object.keys,C=p.Object.defineProperty,k=p.Object.prototype.hasOwnProperty,P=p.Array.prototype.slice,_=function(){var e=function(e){return e};if("function"==typeof p.wrap&&"function"==typeof p.unwrap)try{var t=c.createElement("div"),i=p.unwrap(t);1===t.nodeType&&i&&1===i.nodeType&&(e=p.unwrap)}catch(n){}return e}(),T=function(e){return P.call(e,0)},O=function(){var e,t,i,n,r,s,a=T(arguments),l=a[0]||{};for(e=1,t=a.length;t>e;e++)if(null!=(i=a[e]))for(n in i)k.call(i,n)&&(r=l[n],s=i[n],l!==s&&s!==o&&(l[n]=s));return l},S=function(e){var t,i,n,r;if("object"!=typeof e||null==e||"number"==typeof e.nodeType)t=e;else if("number"==typeof e.length)for(t=[],i=0,n=e.length;n>i;i++)k.call(e,i)&&(t[i]=S(e[i]));else{t={};for(r in e)k.call(e,r)&&(t[r]=S(e[r]))}return t},L=function(e,t){for(var i={},n=0,r=t.length;r>n;n++)t[n]in e&&(i[t[n]]=e[t[n]]);return i},I=function(e,t){var i={};for(var n in e)-1===t.indexOf(n)&&(i[n]=e[n]);return i},N=function(e){if(e)for(var t in e)k.call(e,t)&&delete e[t];return e},R=function(e,t){if(e&&1===e.nodeType&&e.ownerDocument&&t&&(1===t.nodeType&&t.ownerDocument&&t.ownerDocument===e.ownerDocument||9===t.nodeType&&!t.ownerDocument&&t===e.ownerDocument))do{if(e===t)return!0;e=e.parentNode}while(e);return!1},F=function(e){var t;return"string"==typeof e&&e&&(t=e.split("#")[0].split("?")[0],t=e.slice(0,e.lastIndexOf("/")+1)),t},j=function(e){var t,i;return"string"==typeof e&&e&&(i=e.match(/^(?:|[^:@]*@|.+\)@(?=http[s]?|file)|.+?\s+(?: at |@)(?:[^:\(]+ )*[\(]?)((?:http[s]?|file):\/\/[\/]?.+?\/[^:\)]*?)(?::\d+)(?::\d+)?/),i&&i[1]?t=i[1]:(i=e.match(/\)@((?:http[s]?|file):\/\/[\/]?.+?\/[^:\)]*?)(?::\d+)(?::\d+)?/),i&&i[1]&&(t=i[1]))),t},M=function(){var e,t;try{throw new A}catch(i){t=i}return t&&(e=t.sourceURL||t.fileName||j(t.stack)),e},B=function(){var e,t,i;if(c.currentScript&&(e=c.currentScript.src))return e;if(t=c.getElementsByTagName("script"),1===t.length)return t[0].src||o;if("readyState"in t[0])for(i=t.length;i--;)if("interactive"===t[i].readyState&&(e=t[i].src))return e;return"loading"===c.readyState&&(e=t[t.length-1].src)?e:(e=M())?e:o},U=function(){var e,t,i,n=c.getElementsByTagName("script");for(e=n.length;e--;){if(!(i=n[e].src)){t=null;break}if(i=F(i),null==t)t=i;else if(t!==i){t=null;break}}return t||o},z=function(){var e=F(B())||U()||"";return e+"ZeroClipboard.swf"},q=function(){return null==r.opener&&(!!r.top&&r!=r.top||!!r.parent&&r!=r.parent)}(),$={bridge:null,version:"0.0.0",pluginType:"unknown",disabled:null,outdated:null,sandboxed:null,unavailable:null,degraded:null,deactivated:null,overdue:null,ready:null},H="11.0.0",V={},W={},Y=null,X=0,G=0,K={ready:"Flash communication is established",error:{"flash-disabled":"Flash is disabled or not installed. May also be attempting to run Flash in a sandboxed iframe, which is impossible.","flash-outdated":"Flash is too outdated to support ZeroClipboard","flash-sandboxed":"Attempting to run Flash in a sandboxed iframe, which is impossible","flash-unavailable":"Flash is unable to communicate bidirectionally with JavaScript","flash-degraded":"Flash is unable to preserve data fidelity when communicating with JavaScript","flash-deactivated":"Flash is too outdated for your browser and/or is configured as click-to-activate.\nThis may also mean that the ZeroClipboard SWF object could not be loaded, so please check your `swfPath` configuration and/or network connectivity.\nMay also be attempting to run Flash in a sandboxed iframe, which is impossible.","flash-overdue":"Flash communication was established but NOT within the acceptable time limit","version-mismatch":"ZeroClipboard JS version number does not match ZeroClipboard SWF version number","clipboard-error":"At least one error was thrown while ZeroClipboard was attempting to inject your data into the clipboard","config-mismatch":"ZeroClipboard configuration does not match Flash's reality","swf-not-found":"The ZeroClipboard SWF object could not be loaded, so please check your `swfPath` configuration and/or network connectivity"}},Z=["flash-unavailable","flash-degraded","flash-overdue","version-mismatch","config-mismatch","clipboard-error"],Q=["flash-disabled","flash-outdated","flash-sandboxed","flash-unavailable","flash-degraded","flash-deactivated","flash-overdue"],J=new RegExp("^flash-("+Q.map(function(e){return e.replace(/^flash-/,"")}).join("|")+")$"),ee=new RegExp("^flash-("+Q.slice(1).map(function(e){return e.replace(/^flash-/,"")}).join("|")+")$"),te={swfPath:z(),trustedDomains:r.location.host?[r.location.host]:[],cacheBust:!0,forceEnhancedClipboard:!1,flashLoadTimeout:3e4,autoActivate:!0,bubbleEvents:!0,containerId:"global-zeroclipboard-html-bridge",containerClass:"global-zeroclipboard-container",swfObjectId:"global-zeroclipboard-flash-bridge",hoverClass:"zeroclipboard-is-hover",activeClass:"zeroclipboard-is-active",forceHandCursor:!1,title:null,zIndex:999999999},ie=function(e){if("object"==typeof e&&null!==e)for(var t in e)if(k.call(e,t))if(/^(?:forceHandCursor|title|zIndex|bubbleEvents)$/.test(t))te[t]=e[t];else if(null==$.bridge)if("containerId"===t||"swfObjectId"===t){if(!ve(e[t]))throw new Error("The specified `"+t+"` value is not valid as an HTML4 Element ID");te[t]=e[t]}else te[t]=e[t];{if("string"!=typeof e||!e)return S(te);if(k.call(te,e))return te[e]}},ne=function(){return Ge(),{browser:L(u,["userAgent","platform","appName"]),flash:I($,["bridge"]),zeroclipboard:{version:Ze.version,config:Ze.config()}}},re=function(){return!!($.disabled||$.outdated||$.sandboxed||$.unavailable||$.degraded||$.deactivated)},oe=function(e,t){var i,n,r,a={};if("string"==typeof e&&e)r=e.toLowerCase().split(/\s+/);else if("object"==typeof e&&e&&"undefined"==typeof t)for(i in e)k.call(e,i)&&"string"==typeof i&&i&&"function"==typeof e[i]&&Ze.on(i,e[i]);if(r&&r.length){for(i=0,n=r.length;n>i;i++)e=r[i].replace(/^on/,""),a[e]=!0,V[e]||(V[e]=[]),V[e].push(t);if(a.ready&&$.ready&&Ze.emit({type:"ready"}),a.error){for(i=0,n=Q.length;n>i;i++)if($[Q[i].replace(/^flash-/,"")]===!0){Ze.emit({type:"error",name:Q[i]});break}s!==o&&Ze.version!==s&&Ze.emit({type:"error",name:"version-mismatch",jsVersion:Ze.version,swfVersion:s})}}return Ze},se=function(e,t){var i,n,r,o,s;if(0===arguments.length)o=D(V);else if("string"==typeof e&&e)o=e.split(/\s+/);else if("object"==typeof e&&e&&"undefined"==typeof t)for(i in e)k.call(e,i)&&"string"==typeof i&&i&&"function"==typeof e[i]&&Ze.off(i,e[i]);if(o&&o.length)for(i=0,n=o.length;n>i;i++)if(e=o[i].toLowerCase().replace(/^on/,""),s=V[e],s&&s.length)if(t)for(r=s.indexOf(t);-1!==r;)s.splice(r,1),r=s.indexOf(t,r);else s.length=0;return Ze},ae=function(e){var t;return t="string"==typeof e&&e?S(V[e])||null:S(V)},le=function(e){var t,i,n;return e=be(e),e&&!Ce(e)?"ready"===e.type&&$.overdue===!0?Ze.emit({type:"error",name:"flash-overdue"}):(t=O({},e),Ee.call(this,t),"copy"===e.type&&(n=Ie(W),i=n.data,Y=n.formatMap),i):void 0},pe=function(){var e=$.sandboxed;if(Ge(),"boolean"!=typeof $.ready&&($.ready=!1),$.sandboxed!==e&&$.sandboxed===!0)$.ready=!1,Ze.emit({type:"error",name:"flash-sandboxed"});else if(!Ze.isFlashUnusable()&&null===$.bridge){var t=te.flashLoadTimeout;"number"==typeof t&&t>=0&&(X=d(function(){"boolean"!=typeof $.deactivated&&($.deactivated=!0),$.deactivated===!0&&Ze.emit({type:"error",name:"flash-deactivated"})},t)),$.overdue=!1,Se()}},ce=function(){Ze.clearData(),Ze.blur(),Ze.emit("destroy"),Le(),Ze.off()},ue=function(e,t){var i;if("object"==typeof e&&e&&"undefined"==typeof t)i=e,Ze.clearData();else{if("string"!=typeof e||!e)return;i={},i[e]=t}for(var n in i)"string"==typeof n&&n&&k.call(i,n)&&"string"==typeof i[n]&&i[n]&&(W[n]=i[n])},de=function(e){"undefined"==typeof e?(N(W),Y=null):"string"==typeof e&&k.call(W,e)&&delete W[e]},he=function(e){return"undefined"==typeof e?S(W):"string"==typeof e&&k.call(W,e)?W[e]:void 0},me=function(e){if(e&&1===e.nodeType){a&&(ze(a,te.activeClass),a!==e&&ze(a,te.hoverClass)),a=e,Ue(e,te.hoverClass);var t=e.getAttribute("title")||te.title;if("string"==typeof t&&t){var i=Oe($.bridge);i&&i.setAttribute("title",t)}var n=te.forceHandCursor===!0||"pointer"===qe(e,"cursor");Ye(n),We()}},fe=function(){var e=Oe($.bridge);e&&(e.removeAttribute("title"),e.style.left="0px",e.style.top="-9999px",e.style.width="1px",e.style.height="1px"),a&&(ze(a,te.hoverClass),ze(a,te.activeClass),a=null)},ge=function(){return a||null},ve=function(e){return"string"==typeof e&&e&&/^[A-Za-z][A-Za-z0-9_:\-\.]*$/.test(e)},be=function(e){var t;if("string"==typeof e&&e?(t=e,e={}):"object"==typeof e&&e&&"string"==typeof e.type&&e.type&&(t=e.type),t){t=t.toLowerCase(),!e.target&&(/^(copy|aftercopy|_click)$/.test(t)||"error"===t&&"clipboard-error"===e.name)&&(e.target=l),O(e,{type:t,target:e.target||a||null,relatedTarget:e.relatedTarget||null,currentTarget:$&&$.bridge||null,timeStamp:e.timeStamp||E()||null});var i=K[e.type];return"error"===e.type&&e.name&&i&&(i=i[e.name]),i&&(e.message=i),"ready"===e.type&&O(e,{target:null,version:$.version}),"error"===e.type&&(J.test(e.name)&&O(e,{target:null,minimumVersion:H}),ee.test(e.name)&&O(e,{version:$.version})),"copy"===e.type&&(e.clipboardData={setData:Ze.setData,clearData:Ze.clearData}),"aftercopy"===e.type&&(e=Ne(e,Y)),e.target&&!e.relatedTarget&&(e.relatedTarget=Ae(e.target)),ye(e)}},Ae=function(e){var t=e&&e.getAttribute&&e.getAttribute("data-clipboard-target");return t?c.getElementById(t):null},ye=function(e){if(e&&/^_(?:click|mouse(?:over|out|down|up|move))$/.test(e.type)){var t=e.target,i="_mouseover"===e.type&&e.relatedTarget?e.relatedTarget:o,n="_mouseout"===e.type&&e.relatedTarget?e.relatedTarget:o,r=$e(t),s=p.screenLeft||p.screenX||0,a=p.screenTop||p.screenY||0,l=c.body.scrollLeft+c.documentElement.scrollLeft,u=c.body.scrollTop+c.documentElement.scrollTop,d=r.left+("number"==typeof e._stageX?e._stageX:0),h=r.top+("number"==typeof e._stageY?e._stageY:0),m=d-l,f=h-u,g=s+m,v=a+f,b="number"==typeof e.movementX?e.movementX:0,A="number"==typeof e.movementY?e.movementY:0;delete e._stageX,delete e._stageY,O(e,{srcElement:t,fromElement:i,toElement:n,screenX:g,screenY:v,pageX:d,pageY:h,clientX:m,clientY:f,x:m,y:f,movementX:b,movementY:A,offsetX:0,offsetY:0,layerX:0,layerY:0})}return e},xe=function(e){var t=e&&"string"==typeof e.type&&e.type||"";return!/^(?:(?:before)?copy|destroy)$/.test(t)},we=function(e,t,i,n){n?d(function(){e.apply(t,i)},0):e.apply(t,i)},Ee=function(e){if("object"==typeof e&&e&&e.type){var t=xe(e),i=V["*"]||[],n=V[e.type]||[],r=i.concat(n);if(r&&r.length){var o,s,a,l,c,u=this;for(o=0,s=r.length;s>o;o++)a=r[o],l=u,"string"==typeof a&&"function"==typeof p[a]&&(a=p[a]),"object"==typeof a&&a&&"function"==typeof a.handleEvent&&(l=a,a=a.handleEvent),"function"==typeof a&&(c=O({},e),we(a,l,[c],t))}return this}},De=function(e){var t=null;return(q===!1||e&&"error"===e.type&&e.name&&-1!==Z.indexOf(e.name))&&(t=!1),t},Ce=function(e){var t=e.target||a||null,i="swf"===e._source;switch(delete e._source,e.type){case"error":var n="flash-sandboxed"===e.name||De(e);"boolean"==typeof n&&($.sandboxed=n),-1!==Q.indexOf(e.name)?O($,{disabled:"flash-disabled"===e.name,outdated:"flash-outdated"===e.name,unavailable:"flash-unavailable"===e.name,degraded:"flash-degraded"===e.name,deactivated:"flash-deactivated"===e.name,overdue:"flash-overdue"===e.name,ready:!1}):"version-mismatch"===e.name&&(s=e.swfVersion,O($,{disabled:!1,outdated:!1,unavailable:!1,degraded:!1,deactivated:!1,overdue:!1,ready:!1})),Ve();break;case"ready":s=e.swfVersion;var r=$.deactivated===!0;O($,{disabled:!1,outdated:!1,sandboxed:!1,unavailable:!1,degraded:!1,deactivated:!1,overdue:r,ready:!r}),Ve();break;case"beforecopy":l=t;break;case"copy":var o,p,c=e.relatedTarget;!W["text/html"]&&!W["text/plain"]&&c&&(p=c.value||c.outerHTML||c.innerHTML)&&(o=c.value||c.textContent||c.innerText)?(e.clipboardData.clearData(),e.clipboardData.setData("text/plain",o),p!==o&&e.clipboardData.setData("text/html",p)):!W["text/plain"]&&e.target&&(o=e.target.getAttribute("data-clipboard-text"))&&(e.clipboardData.clearData(),e.clipboardData.setData("text/plain",o));break;case"aftercopy":ke(e),Ze.clearData(),t&&t!==Be()&&t.focus&&t.focus();break;case"_mouseover":Ze.focus(t),te.bubbleEvents===!0&&i&&(t&&t!==e.relatedTarget&&!R(e.relatedTarget,t)&&Pe(O({},e,{type:"mouseenter",bubbles:!1,cancelable:!1})),Pe(O({},e,{type:"mouseover"})));break;case"_mouseout":Ze.blur(),te.bubbleEvents===!0&&i&&(t&&t!==e.relatedTarget&&!R(e.relatedTarget,t)&&Pe(O({},e,{type:"mouseleave",bubbles:!1,cancelable:!1})),Pe(O({},e,{type:"mouseout"})));break;case"_mousedown":Ue(t,te.activeClass),te.bubbleEvents===!0&&i&&Pe(O({},e,{type:e.type.slice(1)}));break;case"_mouseup":ze(t,te.activeClass),te.bubbleEvents===!0&&i&&Pe(O({},e,{type:e.type.slice(1)}));break;case"_click":l=null,te.bubbleEvents===!0&&i&&Pe(O({},e,{type:e.type.slice(1)}));break;case"_mousemove":te.bubbleEvents===!0&&i&&Pe(O({},e,{type:e.type.slice(1)}))}return/^_(?:click|mouse(?:over|out|down|up|move))$/.test(e.type)?!0:void 0},ke=function(e){if(e.errors&&e.errors.length>0){var t=S(e);O(t,{type:"error",name:"clipboard-error"}),delete t.success,d(function(){Ze.emit(t)},0)}},Pe=function(e){if(e&&"string"==typeof e.type&&e){var t,i=e.target||null,n=i&&i.ownerDocument||c,r={view:n.defaultView||p,canBubble:!0,cancelable:!0,detail:"click"===e.type?1:0,button:"number"==typeof e.which?e.which-1:"number"==typeof e.button?e.button:n.createEvent?0:1},o=O(r,e);i&&n.createEvent&&i.dispatchEvent&&(o=[o.type,o.canBubble,o.cancelable,o.view,o.detail,o.screenX,o.screenY,o.clientX,o.clientY,o.ctrlKey,o.altKey,o.shiftKey,o.metaKey,o.button,o.relatedTarget],t=n.createEvent("MouseEvents"),t.initMouseEvent&&(t.initMouseEvent.apply(t,o),t._source="js",i.dispatchEvent(t)))}},_e=function(){var e=te.flashLoadTimeout;if("number"==typeof e&&e>=0){var t=Math.min(1e3,e/10),i=te.swfObjectId+"_fallbackContent";G=m(function(){var e=c.getElementById(i);He(e)&&(Ve(),$.deactivated=null,Ze.emit({type:"error",name:"swf-not-found"}))},t)}},Te=function(){var e=c.createElement("div");return e.id=te.containerId,e.className=te.containerClass,e.style.position="absolute",e.style.left="0px",e.style.top="-9999px",e.style.width="1px",e.style.height="1px",e.style.zIndex=""+Xe(te.zIndex),e},Oe=function(e){for(var t=e&&e.parentNode;t&&"OBJECT"===t.nodeName&&t.parentNode;)t=t.parentNode;return t||null},Se=function(){var e,t=$.bridge,i=Oe(t);if(!t){var n=Me(p.location.host,te),r="never"===n?"none":"all",o=Fe(O({jsVersion:Ze.version},te)),s=te.swfPath+Re(te.swfPath,te);i=Te();var a=c.createElement("div");i.appendChild(a),c.body.appendChild(i);var l=c.createElement("div"),u="activex"===$.pluginType;l.innerHTML='

"+(u?'':"")+'
 

',t=l.firstChild,l=null,_(t).ZeroClipboard=Ze,i.replaceChild(t,a),_e()}return t||(t=c[te.swfObjectId],t&&(e=t.length)&&(t=t[e-1]),!t&&i&&(t=i.firstChild)),$.bridge=t||null,t},Le=function(){var e=$.bridge;if(e){var t=Oe(e);t&&("activex"===$.pluginType&&"readyState"in e?(e.style.display="none",function i(){if(4===e.readyState){for(var n in e)"function"==typeof e[n]&&(e[n]=null);e.parentNode&&e.parentNode.removeChild(e),t.parentNode&&t.parentNode.removeChild(t)}else d(i,10)}()):(e.parentNode&&e.parentNode.removeChild(e),t.parentNode&&t.parentNode.removeChild(t))),Ve(),$.ready=null,$.bridge=null,$.deactivated=null,s=o}},Ie=function(e){var t={},i={};if("object"==typeof e&&e){for(var n in e)if(n&&k.call(e,n)&&"string"==typeof e[n]&&e[n])switch(n.toLowerCase()){case"text/plain":case"text":case"air:text":case"flash:text":t.text=e[n],i.text=n;break;case"text/html":case"html":case"air:html":case"flash:html":t.html=e[n],i.html=n;break;case"application/rtf":case"text/rtf":case"rtf":case"richtext":case"air:rtf":case"flash:rtf":t.rtf=e[n],i.rtf=n}return{data:t,formatMap:i}}},Ne=function(e,t){if("object"!=typeof e||!e||"object"!=typeof t||!t)return e;var i={};for(var n in e)if(k.call(e,n))if("errors"===n){i[n]=e[n]?e[n].slice():[];for(var r=0,o=i[n].length;o>r;r++)i[n][r].format=t[i[n][r].format]}else if("success"!==n&&"data"!==n)i[n]=e[n];else{i[n]={};var s=e[n];for(var a in s)a&&k.call(s,a)&&k.call(t,a)&&(i[n][t[a]]=s[a])}return i},Re=function(e,t){var i=null==t||t&&t.cacheBust===!0;return i?(-1===e.indexOf("?")?"?":"&")+"noCache="+E():""},Fe=function(e){var t,i,n,r,o="",s=[];if(e.trustedDomains&&("string"==typeof e.trustedDomains?r=[e.trustedDomains]:"object"==typeof e.trustedDomains&&"length"in e.trustedDomains&&(r=e.trustedDomains)),r&&r.length)for(t=0,i=r.length;i>t;t++)if(k.call(r,t)&&r[t]&&"string"==typeof r[t]){if(n=je(r[t]),!n)continue;if("*"===n){s.length=0,s.push(n);break}s.push.apply(s,[n,"//"+n,p.location.protocol+"//"+n])}return s.length&&(o+="trustedOrigins="+v(s.join(","))),e.forceEnhancedClipboard===!0&&(o+=(o?"&":"")+"forceEnhancedClipboard=true"),"string"==typeof e.swfObjectId&&e.swfObjectId&&(o+=(o?"&":"")+"swfObjectId="+v(e.swfObjectId)),"string"==typeof e.jsVersion&&e.jsVersion&&(o+=(o?"&":"")+"jsVersion="+v(e.jsVersion)),o},je=function(e){if(null==e||""===e)return null;if(e=e.replace(/^\s+|\s+$/g,""),""===e)return null;var t=e.indexOf("//");e=-1===t?e:e.slice(t+2);var i=e.indexOf("/");return e=-1===i?e:-1===t||0===i?null:e.slice(0,i),e&&".swf"===e.slice(-4).toLowerCase()?null:e||null},Me=function(){var e=function(e){var t,i,n,r=[];if("string"==typeof e&&(e=[e]),"object"!=typeof e||!e||"number"!=typeof e.length)return r;for(t=0,i=e.length;i>t;t++)if(k.call(e,t)&&(n=je(e[t]))){if("*"===n){r.length=0,r.push("*");break}-1===r.indexOf(n)&&r.push(n)}return r};return function(t,i){var n=je(i.swfPath);null===n&&(n=t);var r=e(i.trustedDomains),o=r.length;if(o>0){if(1===o&&"*"===r[0])return"always";if(-1!==r.indexOf(t))return 1===o&&t===n?"sameDomain":"always"}return"never"}}(),Be=function(){try{return c.activeElement}catch(e){return null}},Ue=function(e,t){var i,n,r,o=[];if("string"==typeof t&&t&&(o=t.split(/\s+/)),e&&1===e.nodeType&&o.length>0)if(e.classList)for(i=0,n=o.length;n>i;i++)e.classList.add(o[i]);else if(e.hasOwnProperty("className")){for(r=" "+e.className+" ",i=0,n=o.length;n>i;i++)-1===r.indexOf(" "+o[i]+" ")&&(r+=o[i]+" ");e.className=r.replace(/^\s+|\s+$/g,"")}return e},ze=function(e,t){var i,n,r,o=[];if("string"==typeof t&&t&&(o=t.split(/\s+/)),e&&1===e.nodeType&&o.length>0)if(e.classList&&e.classList.length>0)for(i=0,n=o.length;n>i;i++)e.classList.remove(o[i]);else if(e.className){for(r=(" "+e.className+" ").replace(/[\r\n\t]/g," "),i=0,n=o.length;n>i;i++)r=r.replace(" "+o[i]+" "," ");e.className=r.replace(/^\s+|\s+$/g,"")}return e},qe=function(e,t){var i=g(e,null).getPropertyValue(t);return"cursor"!==t||i&&"auto"!==i||"A"!==e.nodeName?i:"pointer"},$e=function(e){var t={left:0,top:0,width:0,height:0};if(e.getBoundingClientRect){var i=e.getBoundingClientRect(),n=p.pageXOffset,r=p.pageYOffset,o=c.documentElement.clientLeft||0,s=c.documentElement.clientTop||0,a=0,l=0;if("relative"===qe(c.body,"position")){var u=c.body.getBoundingClientRect(),d=c.documentElement.getBoundingClientRect();a=u.left-d.left||0,l=u.top-d.top||0}t.left=i.left+n-o-a,t.top=i.top+r-s-l,t.width="width"in i?i.width:i.right-i.left,t.height="height"in i?i.height:i.bottom-i.top}return t},He=function(e){if(!e)return!1;var t=g(e,null),i=x(t.height)>0,n=x(t.width)>0,r=x(t.top)>=0,o=x(t.left)>=0,s=i&&n&&r&&o,a=s?null:$e(e),l="none"!==t.display&&"collapse"!==t.visibility&&(s||!!a&&(i||a.height>0)&&(n||a.width>0)&&(r||a.top>=0)&&(o||a.left>=0));return l},Ve=function(){h(X),X=0,f(G),G=0},We=function(){var e;if(a&&(e=Oe($.bridge))){var t=$e(a);O(e.style,{width:t.width+"px",height:t.height+"px",top:t.top+"px",left:t.left+"px",zIndex:""+Xe(te.zIndex)})}},Ye=function(e){$.ready===!0&&($.bridge&&"function"==typeof $.bridge.setHandCursor?$.bridge.setHandCursor(e):$.ready=!1)},Xe=function(e){if(/^(?:auto|inherit)$/.test(e))return e;var t;return"number"!=typeof e||w(e)?"string"==typeof e&&(t=Xe(y(e,10))):t=e,"number"==typeof t?t:"auto"},Ge=function(e){var t,i,n,o=$.sandboxed,s=null;if(e=e===!0,q===!1)s=!1;else{try{i=r.frameElement||null}catch(a){n={name:a.name,message:a.message}}if(i&&1===i.nodeType&&"IFRAME"===i.nodeName)try{s=i.hasAttribute("sandbox")}catch(a){s=null}else{try{t=document.domain||null}catch(a){t=null}(null===t||n&&"SecurityError"===n.name&&/(^|[\s\(\[@])sandbox(es|ed|ing|[\s\.,!\)\]@]|$)/.test(n.message.toLowerCase()))&&(s=!0)}}return $.sandboxed=s,o===s||e||Ke(b),s},Ke=function(e){function t(e){var t=e.match(/[\d]+/g);return t.length=3,t.join(".")}function i(e){return!!e&&(e=e.toLowerCase())&&(/^(pepflashplayer\.dll|libpepflashplayer\.so|pepperflashplayer\.plugin)$/.test(e)||"chrome.plugin"===e.slice(-13))}function n(e){e&&(a=!0,e.version&&(c=t(e.version)),!c&&e.description&&(c=t(e.description)),e.filename&&(p=i(e.filename)))}var r,o,s,a=!1,l=!1,p=!1,c="";if(u.plugins&&u.plugins.length)r=u.plugins["Shockwave Flash"],n(r),u.plugins["Shockwave Flash 2.0"]&&(a=!0,c="2.0.0.11");else if(u.mimeTypes&&u.mimeTypes.length)s=u.mimeTypes["application/x-shockwave-flash"],r=s&&s.enabledPlugin,n(r);else if("undefined"!=typeof e){l=!0;try{o=new e("ShockwaveFlash.ShockwaveFlash.7"),a=!0,c=t(o.GetVariable("$version"))}catch(d){try{o=new e("ShockwaveFlash.ShockwaveFlash.6"),a=!0,c="6.0.21"}catch(h){try{o=new e("ShockwaveFlash.ShockwaveFlash"),a=!0,c=t(o.GetVariable("$version"))}catch(m){l=!1}}}}$.disabled=a!==!0,$.outdated=c&&x(c)<x(H),$.version=c||"0.0.0",$.pluginType=p?"pepper":l?"activex":a?"netscape":"unknown"};Ke(b),Ge(!0);var Ze=function(){return this instanceof Ze?void("function"==typeof Ze._createClient&&Ze._createClient.apply(this,T(arguments))):new Ze};C(Ze,"version",{value:"2.2.0",writable:!1,configurable:!0,enumerable:!0}),Ze.config=function(){return ie.apply(this,T(arguments))},Ze.state=function(){return ne.apply(this,T(arguments))},Ze.isFlashUnusable=function(){return re.apply(this,T(arguments))},Ze.on=function(){return oe.apply(this,T(arguments))},Ze.off=function(){return se.apply(this,T(arguments))},Ze.handlers=function(){return ae.apply(this,T(arguments))},Ze.emit=function(){return le.apply(this,T(arguments))},Ze.create=function(){return pe.apply(this,T(arguments))},Ze.destroy=function(){return ce.apply(this,T(arguments))},Ze.setData=function(){return ue.apply(this,T(arguments))},Ze.clearData=function(){return de.apply(this,T(arguments))},Ze.getData=function(){return he.apply(this,T(arguments))},Ze.focus=Ze.activate=function(){return me.apply(this,T(arguments))},Ze.blur=Ze.deactivate=function(){return fe.apply(this,T(arguments))},Ze.activeElement=function(){return ge.apply(this,T(arguments))};var Qe=0,Je={},et=0,tt={},it={};O(te,{autoActivate:!0});var nt=function(e){var t=this;t.id=""+Qe++,Je[t.id]={instance:t,elements:[],handlers:{}},e&&t.clip(e),Ze.on("*",function(e){return t.emit(e)}),Ze.on("destroy",function(){t.destroy()}),Ze.create()},rt=function(e,t){var i,n,r,a={},l=Je[this.id],p=l&&l.handlers;if(!l)throw new Error("Attempted to add new listener(s) to a destroyed ZeroClipboard client instance");if("string"==typeof e&&e)r=e.toLowerCase().split(/\s+/);else if("object"==typeof e&&e&&"undefined"==typeof t)for(i in e)k.call(e,i)&&"string"==typeof i&&i&&"function"==typeof e[i]&&this.on(i,e[i]);if(r&&r.length){for(i=0,n=r.length;n>i;i++)e=r[i].replace(/^on/,""),a[e]=!0,p[e]||(p[e]=[]),p[e].push(t);if(a.ready&&$.ready&&this.emit({type:"ready",client:this}),a.error){for(i=0,n=Q.length;n>i;i++)if($[Q[i].replace(/^flash-/,"")]){this.emit({type:"error",name:Q[i],client:this});break}s!==o&&Ze.version!==s&&this.emit({type:"error",name:"version-mismatch",jsVersion:Ze.version,swfVersion:s})}}return this},ot=function(e,t){var i,n,r,o,s,a=Je[this.id],l=a&&a.handlers;if(!l)return this;if(0===arguments.length)o=D(l);else if("string"==typeof e&&e)o=e.split(/\s+/);else if("object"==typeof e&&e&&"undefined"==typeof t)for(i in e)k.call(e,i)&&"string"==typeof i&&i&&"function"==typeof e[i]&&this.off(i,e[i]);if(o&&o.length)for(i=0,n=o.length;n>i;i++)if(e=o[i].toLowerCase().replace(/^on/,""),s=l[e],s&&s.length)if(t)for(r=s.indexOf(t);-1!==r;)s.splice(r,1),r=s.indexOf(t,r);else s.length=0;return this},st=function(e){var t=null,i=Je[this.id]&&Je[this.id].handlers;return i&&(t="string"==typeof e&&e?i[e]?i[e].slice(0):[]:S(i)),t},at=function(e){if(dt.call(this,e)){"object"==typeof e&&e&&"string"==typeof e.type&&e.type&&(e=O({},e));var t=O({},be(e),{client:this});ht.call(this,t)}return this},lt=function(e){if(!Je[this.id])throw new Error("Attempted to clip element(s) to a destroyed ZeroClipboard client instance");e=mt(e);for(var t=0;t<e.length;t++)if(k.call(e,t)&&e[t]&&1===e[t].nodeType){e[t].zcClippingId?-1===tt[e[t].zcClippingId].indexOf(this.id)&&tt[e[t].zcClippingId].push(this.id):(e[t].zcClippingId="zcClippingId_"+et++,tt[e[t].zcClippingId]=[this.id],te.autoActivate===!0&&ft(e[t]));var i=Je[this.id]&&Je[this.id].elements;-1===i.indexOf(e[t])&&i.push(e[t])}return this},pt=function(e){var t=Je[this.id];if(!t)return this;var i,n=t.elements;e="undefined"==typeof e?n.slice(0):mt(e);for(var r=e.length;r--;)if(k.call(e,r)&&e[r]&&1===e[r].nodeType){for(i=0;-1!==(i=n.indexOf(e[r],i));)n.splice(i,1);var o=tt[e[r].zcClippingId];if(o){for(i=0;-1!==(i=o.indexOf(this.id,i));)o.splice(i,1);0===o.length&&(te.autoActivate===!0&&gt(e[r]),delete e[r].zcClippingId)}}return this},ct=function(){var e=Je[this.id];return e&&e.elements?e.elements.slice(0):[]},ut=function(){Je[this.id]&&(this.unclip(),this.off(),delete Je[this.id])},dt=function(e){if(!e||!e.type)return!1;if(e.client&&e.client!==this)return!1;var t=Je[this.id],i=t&&t.elements,n=!!i&&i.length>0,r=!e.target||n&&-1!==i.indexOf(e.target),o=e.relatedTarget&&n&&-1!==i.indexOf(e.relatedTarget),s=e.client&&e.client===this;return t&&(r||o||s)?!0:!1},ht=function(e){var t=Je[this.id];if("object"==typeof e&&e&&e.type&&t){var i=xe(e),n=t&&t.handlers["*"]||[],r=t&&t.handlers[e.type]||[],o=n.concat(r);if(o&&o.length){var s,a,l,c,u,d=this;for(s=0,a=o.length;a>s;s++)l=o[s],c=d,"string"==typeof l&&"function"==typeof p[l]&&(l=p[l]),"object"==typeof l&&l&&"function"==typeof l.handleEvent&&(c=l,l=l.handleEvent),"function"==typeof l&&(u=O({},e),we(l,c,[u],i))}}},mt=function(e){return"string"==typeof e&&(e=[]),"number"!=typeof e.length?[e]:e},ft=function(e){if(e&&1===e.nodeType){var t=function(e){(e||(e=p.event))&&("js"!==e._source&&(e.stopImmediatePropagation(),e.preventDefault()),delete e._source)},i=function(i){(i||(i=p.event))&&(t(i),Ze.focus(e))};e.addEventListener("mouseover",i,!1),e.addEventListener("mouseout",t,!1),e.addEventListener("mouseenter",t,!1),e.addEventListener("mouseleave",t,!1),e.addEventListener("mousemove",t,!1),it[e.zcClippingId]={mouseover:i,mouseout:t,mouseenter:t,mouseleave:t,mousemove:t}}},gt=function(e){if(e&&1===e.nodeType){var t=it[e.zcClippingId];if("object"==typeof t&&t){for(var i,n,r=["move","leave","enter","out","over"],o=0,s=r.length;s>o;o++)i="mouse"+r[o],n=t[i],"function"==typeof n&&e.removeEventListener(i,n,!1);delete it[e.zcClippingId]}}};Ze._createClient=function(){nt.apply(this,T(arguments))},Ze.prototype.on=function(){return rt.apply(this,T(arguments))},Ze.prototype.off=function(){return ot.apply(this,T(arguments))},Ze.prototype.handlers=function(){return st.apply(this,T(arguments))},Ze.prototype.emit=function(){return at.apply(this,T(arguments))},Ze.prototype.clip=function(){return lt.apply(this,T(arguments))},Ze.prototype.unclip=function(){return pt.apply(this,T(arguments))},Ze.prototype.elements=function(){return ct.apply(this,T(arguments))},Ze.prototype.destroy=function(){return ut.apply(this,T(arguments))},Ze.prototype.setText=function(e){if(!Je[this.id])throw new Error("Attempted to set pending clipboard data from a destroyed ZeroClipboard client instance");return Ze.setData("text/plain",e),this},Ze.prototype.setHtml=function(e){if(!Je[this.id])throw new Error("Attempted to set pending clipboard data from a destroyed ZeroClipboard client instance");return Ze.setData("text/html",e),this},Ze.prototype.setRichText=function(e){if(!Je[this.id])throw new Error("Attempted to set pending clipboard data from a destroyed ZeroClipboard client instance");return Ze.setData("application/rtf",e),this},Ze.prototype.setData=function(){if(!Je[this.id])throw new Error("Attempted to set pending clipboard data from a destroyed ZeroClipboard client instance");return Ze.setData.apply(this,T(arguments)),this},Ze.prototype.clearData=function(){if(!Je[this.id])throw new Error("Attempted to clear pending clipboard data from a destroyed ZeroClipboard client instance");return Ze.clearData.apply(this,T(arguments)),this},Ze.prototype.getData=function(){if(!Je[this.id])throw new Error("Attempted to get pending clipboard data from a destroyed ZeroClipboard client instance");return Ze.getData.apply(this,T(arguments))},n=function(){return Ze}.call(t,i,t,e),!(n!==o&&(e.exports=n))}(function(){return this||window}())},,,,,,function(e,t,i){var n=i(2),r=i(364);n(r,"is-6845c41e")},function(e,t,i){var n=i(2),r=i(365);n(r,"is-19fbc54f")},,function(e,t,i){var n=i(2),r=i(367);n(r,"is-209ac46d")},function(e,t){e.exports=".z29{font-weight:600;line-height:24px}.z29,.b39{color:#4b4f54;font-size:14px}.b39{font-weight:400;margin-bottom:16px;text-align:left;text-transform:uppercase}.a39{margin-bottom:74px}@media (max-width:735px){.b39{font-size:14px;margin-left:8px}}"},function(e,t){e.exports=".y79{background-color:rgba(0,0,0,.75)}.y79 .u98{background-color:#fff}.u79{left:-40px}.v79{right:-40px}.u79,.v79{display:block;margin-top:-20px;pointer-events:auto;position:absolute;text-indent:-9999em;top:50%}.x79{height:100%;max-width:935px;width:100%}.x79,.w79{margin:0 auto;pointer-events:none}.w79{bottom:0;left:0;padding:40px;position:fixed;right:0;top:0}"},,function(e,t){e.exports=".c39{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;background-color:#fff;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding:40px;text-align:center}@media (min-width:736px){.c39{border:1px solid #edeeee;border-radius:3px}}@media (max-width:735px){.c39{border-color:#edeeee;border-width:1px 0}}"},,function(e,t,i){(function(t){function n(e){"use strict";o.constructor.call(this,e),this.$MediaBrowser_getUniquePosts=this.$MediaBrowser_getUniquePosts.bind(this),this.$MediaBrowser_getCombinedPosts=this.$MediaBrowser_getCombinedPosts.bind(this);var t={};if(e.posts.length>0){var i=this.$MediaBrowser_getUniquePosts(e);i.length>0&&(t.earliestPostIdToDisplay=i[0].id)}this.state=t,this.$MediaBrowser_handleModalPostIdChange(e)}var r,o,s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},a=i(245),l=i(284),p=i(13),c=i(259),u=i(370),d=i(143),h=i(28),m=i(1),f=i(20),g=i(6),v=i(56),b=i(14),A=i(59),y=i(3),x=m.PropTypes,w=5,E="최근 사진",D="인기 게시물";r=m.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.componentWillReceiveProps=function(e){"use strict";if(null==this.state.earliestPostIdToDisplay&&e.posts.length){var t=this.$MediaBrowser_getUniquePosts(e);t.length>0?this.setState({earliestPostIdToDisplay:t[0].id}):this.setState({earliestPostIdToDisplay:void 0})}null!=e.modalPostId&&this.props.modalPostId!==e.modalPostId&&this.$MediaBrowser_handleModalPostIdChange(e);
},n.prototype.$MediaBrowser_getModalPostIndex=function(e,t){"use strict";if(null==e.modalPostId)return null;for(var i,n=0;n<t.length;n++)if(t[n].id===e.modalPostId){i=n;break}return null==i?y(0,"Could not find a post with ID %s in the list of posts",e.modalPostId):void 0,i},n.prototype.$MediaBrowser_handleModalPostIdChange=function(e){"use strict";var t;t=this.props.topPosts&&this.props.posts?this.props.topPosts.concat(this.props.posts):this.props.posts;var i=this.$MediaBrowser_getModalPostIndex(e,t);null!=i&&t.length-1-i<=w&&this.props.onPostLoadTargetChange(A.FETCH_DIRECTION.forward,this.props.earliestPostIdToDisplay,this.props.maxPostsToDisplay+h.PAGE_SIZE)},n.prototype.$MediaBrowser_shouldSpawnModals=function(){"use strict";return g.isMobile()?this.props.viewportWidth>f.LANDSCAPE_SMALL_SCREEN_CUTOFF:this.props.viewportWidth>f.SMALL_SCREEN_CUTOFF},n.prototype.renderPhotosComponent=function(e,t){"use strict";if(0===e.length&&this.props.fetchingState!==h.FETCHING_STATES.fetching)return m.createElement(a,{className:"y29"},m.createElement("h2",{className:"z29"},"표시할 사진이 없습니다."));var i,n;return this.props.topPosts&&this.props.topPosts.length>0&&0===this.props.posts.length?(i=this.renderTopPosts(),n=this.props.topPostsOnlyExplanation||null):0===e.length?i=n=null:0===t.length?(i=null,n=this.$MediaBrowser_renderFixedSetOfPosts(this.props.topPosts)):(i=this.renderTopPosts(),n=m.createElement(l,{earliestPostIdToDisplay:this.state.earliestPostIdToDisplay,fetchingState:this.props.fetchingState,isOldestPostLoaded:this.props.isOldestPostLoaded,maxPostsToDisplay:this.props.maxPostsToDisplay,mediaLinkBuilder:this.$MediaBrowser_shouldSpawnModals()?this.props.mediaLinkBuilder:p.buildMediaLink,onPostLoadTargetChange:this.props.onPostLoadTargetChange,pageSize:h.PAGE_SIZE,posts:t,scrollLoadingEnabled:this.props.scrollLoadingEnabled,variant:this.props.viewportWidth>f.SMALL_SCREEN_CUTOFF?l.VARIANTS.wide:l.VARIANTS.narrow})),v({topSection:i,mostRecentSection:n})},n.prototype.renderPostModal=function(e,t){"use strict";var i=this.$MediaBrowser_getModalPostIndex(this.props,e),n=i>0?e[i-1].id:null,r=i<e.length-1?e[i+1].id:null,o={},a=h.getById(this.props.modalPostId);return a&&f.needsCustomMaxPageWidth(a.dimensions)&&(o.contentMaxWidth=f.getPageWidthForPostDimensions(a.dimensions)),m.createElement(u,s({},o,{mediaLinkBuilder:this.props.mediaLinkBuilder,nextPostId:r,onClose:this.props.onPostModalClose,previousPostId:n}),m.createElement(c,{analyticsContext:this.props.analyticsContext+"Modal",id:this.props.modalPostId}))},n.prototype.renderTopPosts=function(){"use strict";return!this.props.topPosts||this.props.topPosts.length<1?null:v({topPosts:m.createElement("div",{className:"a39"},m.createElement("h2",{className:"b39"},D),this.$MediaBrowser_renderFixedSetOfPosts(this.props.topPosts)),mostRecentHeader:this.props.posts.length>0&&m.createElement("h2",{className:"b39"},E)})},n.prototype.$MediaBrowser_renderFixedSetOfPosts=function(e){"use strict";return m.createElement(d,{mediaLinkBuilder:this.$MediaBrowser_shouldSpawnModals()?this.props.mediaLinkBuilder:p.buildMediaLink,posts:e})},n.prototype.$MediaBrowser_getCombinedPosts=function(e){"use strict";return this.props.topPosts&&this.props.posts?this.props.topPosts.concat(e):this.props.posts},n.prototype.$MediaBrowser_getUniquePosts=function(e){"use strict";return e.topPosts&&e.posts?e.posts.filter(function(t){return!e.topPosts.some(function(e){return e.id===t.id})}):e.posts},n.prototype.render=function(){"use strict";var e=this.$MediaBrowser_getUniquePosts(this.props),t=this.$MediaBrowser_getCombinedPosts(e);return m.createElement("article",{className:this.props.className},this.props.children,this.props.photoComponentRenderer?this.props.photoComponentRenderer():this.renderPhotosComponent(t,e),this.props.modalPostId?this.renderPostModal(t,e):null)},n.defaultProps={mediaLinkBuilder:p.buildMediaLink},n.propTypes={analyticsContext:x.string.isRequired,fetchingState:x.oneOf(b(h.FETCHING_STATES)).isRequired,isOldestPostLoaded:x.bool.isRequired,maxPostsToDisplay:x.number.isRequired,mediaLinkBuilder:x.func,modalPostId:x.string,onPostLoadTargetChange:x.func.isRequired,onPostModalClose:x.func.isRequired,photoComponentRenderer:x.func,posts:x.array.isRequired,scrollLoadingEnabled:x.bool.isRequired,topPosts:x.array,topPostsOnlyExplanation:x.node,viewportWidth:x.number.isRequired},e.exports=n,i(360)}).call(t,i(5))},function(e,t,i){(function(t){function n(e){"use strict";o.constructor.call(this,e),this.$PostModal_handleKeyUp=this.$PostModal_handleKeyUp.bind(this)}var r,o,s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},a=i(27),l=i(61),p=i(13),c=i(26),u=i(28),d=i(1),h=i(8),m=i(18),f=i(111),g=i(4),v=d.PropTypes;r=d.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.componentDidMount=function(){"use strict";this.keyListener=a.listen(window,"keyup",this.$PostModal_handleKeyUp),this.$PostModal_setFocus()},n.prototype.componentDidUpdate=function(){"use strict";document.activeElement===document.body&&this.$PostModal_setFocus()},n.prototype.componentWillUnmount=function(){"use strict";this.keyListener.remove()},n.prototype.$PostModal_getPostInDirection=function(e){"use strict";return 1===e&&this.props.nextPostId?u.getById(this.props.nextPostId):-1===e&&this.props.previousPostId?u.getById(this.props.previousPostId):void 0},n.prototype.$PostModal_handleKeyUp=function(e){"use strict";if("input"!==e.target.tagName.toLowerCase()){var t=e.which;e.altKey||t!==l.LEFT?e.altKey||t!==l.RIGHT||this.$PostModal_navigateToMediaUsingInPageRouter(1):this.$PostModal_navigateToMediaUsingInPageRouter(-1)}},n.prototype.$PostModal_handlePaginationArrowClick=function(e,t){"use strict";t.nativeEvent.metaKey||t.nativeEvent.ctrlKey||(t.preventDefault(),this.$PostModal_navigateToMediaUsingInPageRouter(e))},n.prototype.$PostModal_navigateToMediaUsingInPageRouter=function(e){"use strict";var t=this.$PostModal_getPostInDirection(e);t&&m.replace(this.props.mediaLinkBuilder(t.code))},n.prototype.$PostModal_setFocus=function(){"use strict";var e=h.findDOMNode(this.refs.nextArrow);e?e.focus():f(this.refs.modal.mountNode)},n.prototype.renderPaginationArrow=function(e,t,i,n){"use strict";var r=this.$PostModal_getPostInDirection(t);return r?d.createElement("a",{ref:n,className:e,href:this.props.mediaLinkBuilder(r.code),onClick:this.$PostModal_handlePaginationArrowClick.bind(this,t),role:"button"},i):"Loading"},n.prototype.renderPaginationArrows=function(){"use strict";var e=null;this.props.previousPostId&&(e=this.renderPaginationArrow("u79 coreSpriteLeftPaginationArrow",-1,"이전"));var t=null;return null!=this.props.nextPostId&&(t=this.renderPaginationArrow("v79 coreSpriteRightPaginationArrow",1,"다음","nextArrow")),d.createElement("div",{className:"w79"},d.createElement("div",{className:"x79"},e,t))},n.prototype.render=function(){"use strict";return d.createElement(c,s({ref:"modal"},this.props,{className:g("y79",this.props.className),viewportChildren:this.renderPaginationArrows()}))},n.defaultProps={mediaLinkBuilder:p.buildMediaLink},n.propTypes={previousPostId:v.string,nextPostId:v.string,mediaLinkBuilder:v.func},e.exports=n,i(361)}).call(t,i(5))},,,,,,,,,,,,,function(e,t,i){"use strict";var n=i(10),r=n;e.exports=r},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,i){(function(t){function n(e){"use strict";o.constructor.call(this,e)}var r,o,s=i(1),a=i(4),l=s.PropTypes,p="인증됨";i(24),r=s.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.render=function(){"use strict";return s.createElement("span",{className:a(this.props.className,"u77 coreSpriteVerifiedBadge"),title:p},p)},n.propTypes={className:l.string},e.exports=n,i(34)}).call(t,i(5))},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,i){var n=i(2),r=i(510);n(r,"is-5494c5a7")},,function(e,t,i){var n=i(2),r=i(512);n(r,"is64963a74")},,function(e,t){e.exports=".d29{background:#fff}.t19{margin-right:13px}.q19{color:#66bd2b;cursor:pointer;background-color:transparent;border:0;font:inherit;font-weight:600;width:100%}.q19:hover{color:#47841e}.q19:active{color:#335e15}.x19{color:#25272a}.p19{border-bottom:solid 1px #eee;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:16px 20px}.p19:last-child{border-bottom:none;margin-bottom:0}.r19{-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center}.r19,.s19{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.s19{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.y19{margin-left:auto;width:110px}.y19,.u19{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.u19{-webkit-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.u19,.v19{-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;-webkit-box-direction:normal}.v19{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.w19{margin-left:7px}.a29{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;margin-top:12px}.b29{-webkit-flex-basis:150px;-ms-flex-preferred-size:150px;flex-basis:150px;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;margin-right:2px}.b29:last-child{margin-right:0}.z19{color:#4b4f54;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;font-size:14px;line-height:24px;padding:30px 0 42px;text-align:center}"},,function(e,t){e.exports=".l69{display:none!important}"},,function(e,t,i){(function(t){function n(){"use strict";r.apply(this,arguments)}var r,o,s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},a=i(182),l=i(46),p=i(80),c=i(1),u=i(43),d=i(204),h=i(86),m=i(48),f=i(435),g=i(4),v=c.PropTypes;r=c.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.$UserList_renderContinueButton=function(){"use strict";return c.createElement("li",{key:".continuebutton",className:"p19"},c.createElement("button",{className:"q19",onClick:function(){return this.props.onContinue&&this.props.onContinue()}.bind(this)},"계속하기"))},n.prototype.$UserList_renderLoadingIndicator=function(){"use strict";return c.createElement("li",{key:".loadingindicator",className:"p19"},c.createElement(u,null))},n.prototype.$UserList_renderUser=function(e,t){"use strict";return c.createElement("li",{key:e.username,className:"p19"},c.createElement("div",{className:"r19"},c.createElement("div",{className:"s19"},c.createElement(d,{className:"t19",profilePictureUrl:e.profilePictureUrl,username:e.username}),c.createElement("div",{className:"u19"},c.createElement("div",{className:"v19"},c.createElement(h,{user:e}),e.isVerified?c.createElement(f,{className:"w19"}):null),c.createElement("div",{className:"x19"},e.fullName))),c.createElement("div",{className:"y19"},c.createElement(a,{analyticsContext:"suggestedUsers",size:l.SIZES.small,userId:e.id}))),t&&this.$UserList_renderPreviewForUser(e))},n.prototype.$UserList_renderPreviewForUser=function(e){"use strict";var t;if(e.media&&e.media.nodes&&e.media.nodes.length>0){var i=e.media.nodes;for(i=i.slice(0,3),t=e.media.nodes.map(function(e){return this.$UserList_renderPostPreview(e)}.bind(this));t.length<3;)t.push(this.$UserList_renderPostPreview({code:"@"+String(t.length)}))}else t=c.createElement("h3",{className:"z19"},"표시할 사진이 없습니다.");return c.createElement("div",{className:"a29"},t)},n.prototype.$UserList_renderPostPreview=function(e){"use strict";return c.createElement("div",{className:"b29",key:"p"+e.code},e.thumbnailSrc&&c.createElement(p,{className:"c29",rich:!0,src:e.thumbnailSrc}))},n.prototype.render=function(){"use strict";var e=this.props.showPreview&&this.props.users.some(function(e){return e.media&&e.media.nodes&&e.media.nodes.length>0}),t=this.props.users.map(function(t){return this.$UserList_renderUser(t,e)}.bind(this));return this.props.isLoading&&t.push(this.$UserList_renderLoadingIndicator()),this.props.showContinueButton&&t.push(this.$UserList_renderContinueButton()),c.createElement("ul",{className:g("d29",this.props.className)},t)},n.defaultProps={showPreview:!0},n.propTypes={className:v.string,isLoading:v.bool,onContinue:v.func,showContinueButton:v.bool,showPreview:v.bool,users:v.arrayOf(v.shape(s({},m,{media:v.shape({nodes:v.arrayOf(v.shape({code:v.string.isRequired,id:v.string.isRequired,thumbnailSrc:v.string.isRequired}))})}))).isRequired},e.exports=n,i(506)}).call(t,i(5))},,,,function(e,t,i){function n(e){"use strict";o.constructor.call(this,e),this.$ImageFileForm_handleClick=this.$ImageFileForm_handleClick.bind(this),this.$ImageFileForm_handleFileChange=this.$ImageFileForm_handleFileChange.bind(this)}var r,o,s=i(1),a=i(8),l=s.PropTypes;r=s.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.selectFile=function(){"use strict";var e=a.findDOMNode(this.refs.file);e.click()},n.prototype.$ImageFileForm_handleClick=function(e){"use strict";this.selectFile()},n.prototype.$ImageFileForm_handleFileChange=function(e){"use strict";var t=e.target.files;this.props.onFileChange(t)},n.prototype.render=function(){"use strict";return s.createElement("form",{className:this.props.className,encType:"multipart/form-data",onClick:this.$ImageFileForm_handleClick},this.props.children,s.createElement("input",{accept:"image/jpeg",className:"l69",onChange:this.$ImageFileForm_handleFileChange,ref:"file",type:"file"}))},n.propTypes={className:l.string,onFileChange:l.func.isRequired},e.exports=n,i(508)},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,i){var n=i(2),r=i(638);n(r,"is7193e26")},function(e,t,i){var n=i(2),r=i(639);n(r,"is12d03cbc")},function(e,t,i){var n=i(2),r=i(640);n(r,"is-2ab3c3b2")},function(e,t,i){var n=i(2),r=i(641);n(r,"is5c823b6c")},function(e,t,i){var n=i(2),r=i(642);n(r,"is50653d26")},,,,function(e,t,i){var n=i(2),r=i(645);n(r,"is-2e87c2d4")},function(e,t,i){var n=i(2),r=i(646);n(r,"is1ce63c1b")},,,,function(e,t){e.exports=".c89{margin:0 auto}"},function(e,t){e.exports=".g39{margin:0 auto;width:600px}"},function(e,t){e.exports=".o39{background-color:#fbfbfb;border-radius:50%;border:1px solid #cccfd0;box-sizing:border-box;overflow:hidden;position:relative}.p39{border:0;cursor:pointer;height:100%;padding:0;width:100%}.q39{cursor:inherit;opacity:.5}.r39{height:100%;left:0;position:absolute;top:0;width:100%}"},function(e,t){e.exports=".i38{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin:0 auto 30px;max-width:935px;width:100%}.v38{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;margin-top:11px}.v28{font-weight:600}.v28+.x28{margin-top:13px}.x28,.v28{font-size:14px;line-height:24px}.x28,.v28,.n38{color:#4b4f54}.m38{display:block;margin-left:auto;margin-right:auto}.l38{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.s38{display:block}.s38:empty{display:none}.u28 .v28{max-width:640px}.e38{text-transform:uppercase}.f38,.d38{width:100%}.c38,.g38{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;margin-left:20px}.d38,.h38{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.t38{color:#4b4f54;display:inline;font-weight:600}.j38,.k38{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.k38{border-bottom-color:#edeeee;border-bottom-width:1px;padding-bottom:30px}.w28 .x28,.w28 .v28{max-width:230px}.r38{background:0 0;border-color:#4090db transparent transparent transparent;border-style:solid;height:0;padding:0;overflow:hidden;width:0}.y28:first-child{margin-left:0}.y28:last-child{margin-right:0}.z28{text-align:center;width:33.3%}.b38:last-child{width:33.4%}.a38,.b38{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.b38{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around;padding:17px 0}.p38{color:#4b4f54;font-weight:300;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o38{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.q38{margin-left:7px}.u38{font-weight:600}@media (min-width:736px){.i38{box-sizing:content-box;padding:40px 20px 0;width:calc(100% - 40px)}.n38{-webkit-flex-basis:30px;-ms-flex-preferred-size:30px;flex-basis:30px;-webkit-box-flex:2;-webkit-flex-grow:2;-ms-flex-positive:2;flex-grow:2}.m38{height:152px;margin-bottom:-7px;margin-top:-7px;width:152px}.l38{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin-right:30px}.s38{font-size:17px;line-height:24px;margin-top:14px}.j38{margin-bottom:45px}.j38,.k38{padding:20px 0}.r38{border-width:12px 7px 0 7px;margin:11px 10px}.y28{font-size:17px;margin-right:40px}.a38{margin-top:17px}.p38{font-size:34px;line-height:40px}}@media (max-width:735px){.n38{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.m38{height:77px;margin-bottom:-6px;margin-top:-6px;width:77px}.l38{margin-right:25px}.s38{font-size:14px;line-height:17px;margin-top:7px}.j38{margin:30px 20px}.k38{margin-left:20px;margin-right:20px;margin-top:30px}.r38{border-width:7px 4px 0 4px;margin:7px 6px}.y28{font-size:14px;margin-left:10px;margin-right:10px}.a38{margin-top:10px}.p38{font-size:21px}}"},function(e,t){e.exports=".d89{margin:0 auto}"},,,function(e,t){e.exports=".f39{text-align:center}.d39{color:#34373b;font-weight:600}.e39{display:block}"},function(e,t){e.exports=".j39,.j39:active,.j39:visited,.j39:hover{color:inherit}.k39{text-align:center}.h39{color:#34373b;font-weight:600}.i39{display:block}"},,,function(e,t,i){(function(t){function n(e){"use strict";o.constructor.call(this,e)}var r,o,s=i(87),a=i(62),l=i(26),p=i(1),c=i(63),u=i(20),d="프로필 사진 바꾸기";r=p.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.render=function(){"use strict";var e=window.innerWidth,t=e<=u.SMALL_SCREEN_CUTOFF,i=p.createElement(s,{className:t?"":"c89",onCancel:this.props.onClose,title:d},this.props.hasExistingPic?p.createElement(a,{onClick:this.props.onRemoveClick,variant:a.VARIANTS.danger},"현재 사진 삭제"):null,p.createElement(a,{onClick:this.props.onUploadClick},"사진 업로드")),n={onClose:this.props.onClose};return t?p.createElement(c,n,i):p.createElement(l,n,i)},e.exports=n,i(625)}).call(t,i(5))},function(e,t,i){function n(e){"use strict";o.constructor.call(this,e),this.state={loaded:!1,users:[]}}var r,o,s=i(26),a=i(1),l=i(514),p=i(151),c=i(59),u=i(101),d=u.sprintf,h=i(681),m=a.PropTypes;r=a.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.componentDidMount=function(){"use strict";var e=d(h,{user_id:this.props.userId,pagination:"first(10)"});c.query(e,function(e){e&&e.follows&&e.follows.nodes&&this.setState({loaded:!0,users:e.follows.nodes.map(p)})}.bind(this),"followingmodal::show")},n.prototype.render=function(){"use strict";return a.createElement(s,{onClose:this.props.onClose},a.createElement(l,{className:"g39",isLoading:!this.state.loaded,users:this.state.users}))},n.propTypes={userId:m.string.isRequired,onClose:m.func.isRequired},e.exports=n,i(626)},function(e,t,i){(function(t){function n(e){"use strict";o.constructor.call(this,e),this.state={showEditProfilePicMenu:!1},this.$ProfileAvatar_handleEditMenuClose=this.$ProfileAvatar_handleEditMenuClose.bind(this),this.$ProfileAvatar_handleEditProfilePic=this.$ProfileAvatar_handleEditProfilePic.bind(this),this.$ProfileAvatar_handleFileChange=this.$ProfileAvatar_handleFileChange.bind(this),this.$ProfileAvatar_handleRemoveClick=this.$ProfileAvatar_handleRemoveClick.bind(this),this.$ProfileAvatar_handleUploadClick=this.$ProfileAvatar_handleUploadClick.bind(this)}var r,o,s=i(649),a=i(518),l=i(1),p=i(43),c=i(120),u=i(4),d=i(383);r=l.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.render=function(){"use strict";var e=this.props,t=e.className,i=e.editable,n=e.isSilhouette,r=e.isUploading,o=e.src,c=u("o39",t);if(i){var d;return d=n?"프로필 사진 추가":"프로필 사진 변경",l.createElement("div",{className:c},l.createElement("button",{className:"p39"+(r?" q39":""),disabled:r,onClick:this.$ProfileAvatar_handleEditProfilePic,title:d},l.createElement("img",{alt:d,className:"r39",src:o}),this.state.showEditProfilePicMenu&&l.createElement(s,{hasExistingPic:!n,onClose:this.$ProfileAvatar_handleEditMenuClose,onUploadClick:this.$ProfileAvatar_handleUploadClick,onRemoveClick:this.$ProfileAvatar_handleRemoveClick})),r&&l.createElement(p,null),l.createElement(a,{onFileChange:this.$ProfileAvatar_handleFileChange,ref:function(e){return this.$ProfileAvatar_imageForm=e}.bind(this)}))}return l.createElement("img",{className:c,src:o})},n.prototype.$ProfileAvatar_handleEditMenuClose=function(e){"use strict";this.setState({showEditProfilePicMenu:!1})},n.prototype.$ProfileAvatar_handleEditProfilePic=function(e){"use strict";this.setState({showEditProfilePicMenu:!0}),e.preventDefault()},n.prototype.$ProfileAvatar_handleFileChange=function(e){"use strict";e.length>0&&c.setProfilePic(e,this.props.analyticsContext)},n.prototype.$ProfileAvatar_handleUploadClick=function(e){"use strict";this.$ProfileAvatar_imageForm?(this.$ProfileAvatar_imageForm.selectFile(),this.setState({showEditProfilePicMenu:!1}),e.preventDefault()):d(!1,"Clicking Upload shouldn't be possible when image is not editable")},n.prototype.$ProfileAvatar_handleRemoveClick=function(e){"use strict";c.removeProfilePic(this.props.analyticsContext),this.setState({showEditProfilePicMenu:!1}),e.preventDefault()},e.exports=n,i(627)}).call(t,i(5))},function(e,t,i){(function(t){function n(e){"use strict";o.constructor.call(this,e),this.state={showReportModal:!1},this.$ProfilePage_handlePostLoadTargetChange=this.$ProfilePage_handlePostLoadTargetChange.bind(this),this.$ProfilePage_handlePostModalClose=this.$ProfilePage_handlePostModalClose.bind(this),this.$ProfilePage_handleFollowListModalClose=this.$ProfilePage_handleFollowListModalClose.bind(this),this.$ProfilePage_handleReportModalClose=this.$ProfilePage_handleReportModalClose.bind(this),this.$ProfilePage_handleReportUserClick=this.$ProfilePage_handleReportUserClick.bind(this)}var r,o,s=i(245),a=i(11),l=i(182),p=i(662),c=i(650),u=i(663),d=i(46),h=i(13),m=i(369),f=i(28),g=i(154),v=i(651),b=i(1),A=i(654),y=i(18),x=i(189),w=i(20),E=i(92),D=i(120),C=i(48),k=i(261),P=i(435),_=i(6),T=i(14),O=i(666),S="profilePage",L="프로필 편집",I=/(?:(\r\n|[\r\n]))+/g,N=/^[^.:\/?#]+:\/+/,R=b.PropTypes;r=b.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.getBiographyText=function(){"use strict";return this.props.user.bio.replace(I," ")},n.prototype.getPhotosComponentRenderer=function(){"use strict";return this.props.user.countryBlock?this.renderCountryBlock.bind(this):this.props.user.isPrivate&&!this.props.viewerFollowsUser&&this.props.user!==this.props.viewer?this.renderPrivateProfileMessage.bind(this):null},n.prototype.$ProfilePage_handlePostLoadTargetChange=function(e,t,i){"use strict";D.setPostLoadTarget(this.props.user.id,e,t,i)},n.prototype.$ProfilePage_handlePostModalClose=function(){"use strict";y.navigate(h.buildUserLink(this.props.user.username))},n.prototype.$ProfilePage_handleFollowListModalClose=function(){"use strict";y.navigate(h.buildUserLink(this.props.user.username))},n.prototype.$ProfilePage_handleReportUserClick=function(){"use strict";this.setState({showReportModal:!0})},n.prototype.$ProfilePage_handleReportModalClose=function(){"use strict";this.setState({showReportModal:!1})},n.prototype.isSmallScreen=function(){"use strict";return this.props.viewportWidth<=w.SMALL_SCREEN_CUTOFF},n.prototype.renderCountryBlock=function(){"use strict";return b.createElement(s,{className:"u28"},b.createElement("h2",{className:"v28"},"법적 이유로 회원님의 국가에서 해당 계정에 대한 액세스가 제한되었습니다."))},n.prototype.renderPrivateProfileMessage=function(){"use strict";var e;return e=t("{username}님의 사진 및 동영상을 보려면 팔로우를 요청하세요.",{username:this.props.user.username}),b.createElement(s,{className:"w28"},b.createElement("h2",{className:"v28"},"비공개 계정입니다"),b.createElement("p",{className:"x28"},e))},n.prototype.renderStatistics=function(){"use strict";var e=this.props.canSeeFollowList,t=this.isSmallScreen(),i=(t?"":"y28")+(t?" z28":"");return b.createElement("ul",{className:(t?"":"a38")+(t?" b38":"")},b.createElement("li",{className:i},b.createElement(g,{value:this.props.user.counts.media,variant:t?E.VARIANTS.stacked:null})),b.createElement("li",{className:i},b.createElement(p,{value:this.props.user.counts.followedBy,variant:t?E.VARIANTS.stacked:null})),b.createElement("li",{className:i},b.createElement(u,{href:e&&this.props.user.counts.follows>0?h.buildUserLink(this.props.user.username)+"following/":null,value:this.props.user.counts.follows,variant:t?E.VARIANTS.stacked:null})))},n.prototype.renderFollowOrEditProfileButton=function(){"use strict";var e=this.isSmallScreen();return this.props.viewer===this.props.user?b.createElement(a,{className:(e?"":"c38")+(e?" d38":""),href:"/accounts/edit/"},b.createElement(d,{className:"e38"+(e?" f38":""),variant:d.VARIANTS.neutral},L)):this.props.user.countryBlock?null:b.createElement(l,{analyticsContext:S,className:(e?"":"g38")+(e?" h38":""),userId:this.props.user.id})},n.prototype.render=function(){"use strict";var e=this.isSmallScreen(),t=this.props.viewer&&this.props.viewer.id===this.props.user.id&&_.passesGatekeeper("cpp"),i=t?!this.props.viewer.hasProfilePic:void 0;return b.createElement(x,{androidAppLink:h.buildUserLinkForAndroid(this.props.user.username),iOSAppLink:"user?username="+this.props.user.username,isViewingOwnProfile:this.props.viewer===this.props.user,maxWidth:w.SITE_WIDTHS.wide,pageIdentifier:S,pageTitle:O(this.props.user)},b.createElement(m,{analyticsContext:S,className:"i38",fetchingState:this.props.fetchingState,isOldestPostLoaded:this.props.isOldestPostLoaded,maxPostsToDisplay:this.props.maxPostsToDisplay,mediaLinkBuilder:h.buildUserLink.bind(null,this.props.user.username),modalPostId:this.props.modalPostId,onPostLoadTargetChange:this.$ProfilePage_handlePostLoadTargetChange,onPostModalClose:this.$ProfilePage_handlePostModalClose,photoComponentRenderer:this.getPhotosComponentRenderer(),posts:this.props.posts,scrollLoadingEnabled:this.props.scrollLoadingEnabled,viewportWidth:this.props.viewportWidth},b.createElement("header",{className:(e?"":"j38")+(e?" k38":"")},b.createElement("div",{className:"l38"},b.createElement(v,{analyticsContext:S,className:"m38",editable:t,isSilhouette:i,isUploading:this.props.isUploadingProfilePic,src:this.props.user.profilePictureUrl})),b.createElement("div",{className:"n38"},b.createElement("div",{className:"o38"},b.createElement("h1",{className:"p38"},this.props.user.username),this.props.user.isVerified?b.createElement(P,{className:"q38"}):null,!e&&this.renderFollowOrEditProfileButton(),this.props.viewer&&this.props.viewer!==this.props.user?b.createElement("button",{className:"r38",onClick:this.$ProfilePage_handleReportUserClick},"사용자 신고"):null),b.createElement("div",{className:"s38"},this.props.user.fullName?b.createElement("h2",{className:"t38"},this.props.user.fullName):null,this.props.user.fullName?" ":null,this.props.user.bio?b.createElement(k,{value:this.getBiographyText()}):null,this.props.user.fullName||this.props.user.bio?" ":null,this.props.user.website?b.createElement("a",{className:"u38",href:this.props.user.website,rel:"nofollow me",target:"_blank"},this.props.user.website.replace(N,"")):null),e&&b.createElement("div",{className:"v38"},this.renderFollowOrEditProfileButton()),e?null:this.renderStatistics())),e?this.renderStatistics():null,this.state.showReportModal?b.createElement(A,{onClose:this.$ProfilePage_handleReportModalClose,userId:this.props.user.id,viewportWidth:this.props.viewportWidth}):null,this.props.showFollowingModal?b.createElement(c,{onClose:this.$ProfilePage_handleFollowListModalClose,userId:this.props.user.id}):null))},n.propTypes={fetchingState:R.oneOf(T(f.FETCHING_STATES)).isRequired,isOldestPostLoaded:R.bool.isRequired,isUploadingProfilePic:R.bool.isRequired,maxPostsToDisplay:R.number.isRequired,modalPostId:R.string,posts:R.array.isRequired,scrollLoadingEnabled:R.bool.isRequired,user:R.shape(C).isRequired,viewer:R.shape(C),viewerFollowsUser:R.bool.isRequired,viewportWidth:R.number.isRequired},e.exports=n,i(628)}).call(t,i(5))},function(e,t,i){(function(t){function n(e){"use strict";o.constructor.call(this,e),this.$ReportUserModal_handleReportLinkClick=this.$ReportUserModal_handleReportLinkClick.bind(this),this.$ReportUserModal_handleToggleBlockClick=this.$ReportUserModal_handleToggleBlockClick.bind(this)}var r,o,s=i(87),a=i(62),l=i(26),p=i(1),c=i(260),u=i(63),d=i(20),h=p.PropTypes;r=p.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.$ReportUserModal_handleReportLinkClick=function(e){"use strict";window.open(e),this.props.onClose()},n.prototype.$ReportUserModal_handleToggleBlockClick=function(){"use strict";this.props.viewerBlocksUser?c.unblockUser(this.props.userId,"reportModal"):c.blockUser(this.props.userId,"reportModal"),this.props.onClose()},n.prototype.render=function(){"use strict";var e=this.props.viewportWidth<=d.SMALL_SCREEN_CUTOFF,t=p.createElement(s,{className:e?"":"d89",onCancel:this.props.onClose},p.createElement(a,{onClick:this.$ReportUserModal_handleReportLinkClick.bind(this,"https://help.instagram.com/372161259539444/")},"사용자 신고"),p.createElement(a,{onClick:this.$ReportUserModal_handleToggleBlockClick,variant:a.VARIANTS.danger},this.props.viewerBlocksUser?"이 사용자 차단 해제":"이 사용자 차단하기")),i={onClose:this.props.onClose};return e?p.createElement(u,i,t):p.createElement(l,i,t)},n.propTypes={onClose:h.func,userId:h.string.isRequired,viewerBlocksUser:h.bool.isRequired,viewportWidth:h.number.isRequired},e.exports=n,i(629)}).call(t,i(5))},function(e,t,i){var n=i(1),r=i(653),o=i(66),s=i(40),a=n.PropTypes,l=function(e){return{viewerBlocksUser:o.viewerBlocks(e.userId)}},p=s(r,l,o);p.propTypes={userId:a.string.isRequired},e.exports=p},,,,,,,,function(e,t,i){(function(t){function n(){"use strict";r.apply(this,arguments)}var r,o,s=i(55),a=i(110),l=a.INTEGER,p=i(1),c=i(92),u=i(14),d=i(191),h=p.PropTypes;r=p.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.render=function(){"use strict";var e,i=1!==this.props.value?d(this.props.value).format(l):null,n=p.createElement(s,{
className:"d39"+(this.props.variant===c.VARIANTS.stacked?" e39":""),shortenNumber:!0,title:i,value:this.props.value});return e=1===this.props.value?t("팔로워 {count}명",{count:n}):t("팔로워 {count}명",{count:n}),p.createElement("span",{className:this.props.variant===c.VARIANTS.stacked?"f39":""},e)},n.propTypes={value:h.number.isRequired,variant:h.oneOf(u(c.VARIANTS))},e.exports=n,i(633)}).call(t,i(5))},function(e,t,i){(function(t){function n(){"use strict";r.apply(this,arguments)}var r,o,s=i(55),a=i(11),l=i(1),p=i(92),c=i(14),u=l.PropTypes;r=l.Component,o=r&&r.prototype,Object.assign(n,r),n.prototype=Object.create(o),n.prototype.constructor=n,n.__superConstructor__=r,n.prototype.render=function(){"use strict";var e,i=l.createElement(s,{className:"h39"+(this.props.variant===p.VARIANTS.stacked?" i39":""),value:this.props.value});e=1===this.props.value?t("팔로우 {count}명",{count:i}):t("팔로우 {count}명",{count:i});var n="j39"+(this.props.variant===p.VARIANTS.stacked?" k39":"");return this.props.onClick||this.props.href?l.createElement(a,{className:n,href:this.props.href||"javascript:;",onClick:this.props.onClick},e):l.createElement("span",{className:n},e)},n.propTypes={href:u.string,onClick:u.func,value:u.number.isRequired,variant:u.oneOf(c(p.VARIANTS))},e.exports=n,i(634)}).call(t,i(5))},,,function(e,t,i){(function(t){function i(e,i){null==i&&(i=1);var n;e.firstName?n=e.firstName:e.fullName&&(n=e.fullName);var r=e.username,o=n&&n!==r;return o&&i>1?t("{full_name}(@{username}) • Instagram 사진 및 동영상 • 페이지 {page}개",{full_name:n,username:r,page:i}):o?t("{full_name}(@{username}) • Instagram 사진 및 동영상",{full_name:n,username:r}):i>1?t("@{username} • Instagram 사진 및 동영상 • 페이지 {page}개",{username:r,page:i}):t("@{username} • Instagram 사진 및 동영상",{username:r})}e.exports=i}).call(t,i(5))},,,,,,,,,,,,,,,function(e,t){e.exports="ig_user(%(user_id)s) {\n  follows.%(pagination)s {\n    count,\n    nodes {\n      id,\n      followed_by_viewer,\n      requested_by_viewer,\n      full_name,\n      profile_pic_url,\n      username\n    }\n  }\n}\n"}]);

'Blog History' 카테고리의 다른 글

183  (0) 2020.04.20
179  (0) 2020.04.19
177  (0) 2020.04.14
176  (0) 2020.04.14
175  (0) 2020.04.14

'Blog History' 카테고리의 다른 글

179  (0) 2020.04.19
178  (0) 2020.04.14
176  (0) 2020.04.14
175  (0) 2020.04.14
174  (0) 2020.04.14

A zero-indexed array A consisting of N integers is given. Rotation of the array means that each element is shifted right by one index, and the last element of the array is also moved to the first place.

For example, the rotation of array A = [3, 8, 9, 7, 6] is [6, 3, 8, 9, 7]. The goal is to rotate array A K times; that is, each element of A will be shifted to the right by K indexes.

Write a function:

class Solution { public int[] solution(int[] A, int K); }

that, given a zero-indexed array A consisting of N integers and an integer K, returns the array A rotated K times.

For example, given array A = [3, 8, 9, 7, 6] and K = 3, the function should return [9, 7, 6, 3, 8].

Assume that:

  • N and K are integers within the range [0..100];
  • each element of array A is an integer within the range [−1,000..1,000].

In your solution, focus on correctness. The performance of your solution will not be the focus of the assessment.

Copyright 2009–2016 by Codility Limited. All Rights Reserved. Unauthorized copying, publication or disclosure prohibited.

 

출처: <https://codility.com/c/run/trainingSMPM3W-Y7E>

 

 

// you can also use imports, for example:

// import java.util.*;

 

// you can write to stdout for debugging purposes, e.g.

// System.out.println("this is a debug message");

 

class Solution {

   

    static class MyNode {

        int info;

       

        MyNode next;

       

        public MyNode(int p) {

            info = p;

        }     

    }

   

    public MyNode mHead;   

   

    public Solution() { this.mHead = null; }

   

    public void add(MyNode pNode) {

        if(mHead ==null) {

            mHead = pNode;

        } else {

            MyNode n = mHead;

            while(n.next != null) n = n.next;

            n.next = pNode;

        }

    }

       

    public Solution makeCircleQueue(Solution list) {     

        MyNode n = list.mHead;

        while(n.next != null) n = n.next;

        n.next = list.mHead;

        return list;

    }

   

        public int[] solution(int[] A, int K) {

        // write your code in Java SE 8

        Solution list = new Solution();

        for(int i=0; i< A.length ; i++) {

            list.add(new MyNode(A[i]));

        }

       

        list = makeCircleQueue(list);

       

        int[] RETN = new int[A.length];

       

        MyNode temp = list.mHead;

       

        for(int i=1; i<K; i++) temp = temp.next;

               

        for(int i=0; i < A.length ; i++) {           

            RETN[i] = temp.info;         

            temp = temp.next; //ERROR

        }

   

        return RETN;

    }

}

 

// you can also use imports, for example:

// import java.util.*;

 

// you can write to stdout for debugging purposes, e.g.

// System.out.println("this is a debug message");

 

class Solution {

    public int[] solution(int[] A, int K) {

        // write your code in Java SE 8

        int[] B = new int[A.length];

        int reIndex;

        for(int i=0; i<A.length ; i++) {

            reIndex = (i+K) % A.length;

            B[reIndex] = A[i];

        }

       

        return B;

    }

}

 

// ConsoleApplication1.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
//

#include 
#include 
#include 

typedef struct _mySTRUCT
{
char name[30];
int age;
} mySTRUCT;

void funcA(mySTRUCT*);
void funcB(mySTRUCT*);
void funcC(mySTRUCT*);

int main()
{
mySTRUCT a = (mySTRUCT)malloc(sizeof(mySTRUCT));

void(*func[3])(mySTRUCT*) = { funcA, funcB, funcC };

memset(a, 0, sizeof(mySTRUCT));

strcpy_s(a->name, "hajunho");
a->age = 37;

printf("MAIN : %s, %d\n", a->name, a->age);

for (int i = 0; i < 3; i++) func[i](a);

return 0;
}

void funcA(mySTRUCT *b)
{
printf("funcA : %s, %d\n", b->name, b->age);
strcpy_s(b->name, "leesora");
b->age = 33;
}

void funcB(mySTRUCT *c)
{
printf("funcB : %s, %d\n", c->name, c->age);
strcpy_s(c->name, "hasoyul");
c->age = 6;
}

void funcC(mySTRUCT *d)
{
printf("funcC : %s, %d\n", d->name, d->age);
}

'Blog History' 카테고리의 다른 글

178  (0) 2020.04.14
177  (0) 2020.04.14
175  (0) 2020.04.14
174  (0) 2020.04.14
173  (0) 2020.04.14

 

 #include<iostream>

#include<vector>

using namespace std;

int countNqueen(int size);

int nqueen(int row, int size, vector<int>& conquer);

int main(){

int testCase;

cin >> testCase;

 

while(testCase--){

int size;

cin >> size;

 

cout << countNqueen(size) << endl;

}

 

return 0;

}

int countNqueen(int size){

vector<int> conquer(size, -1);

int result = 0;

 

for(int i=0; i<size/2; i++){

conquer[i] = 0;

result += nqueen(1, size, conquer);

conquer[i] = -1;

}

 

result *= 2;

 

if(size % 2 != 0){

conquer[size/2] = 0;

result += nqueen(1, size, conquer);

}

 

return result;

}

int nqueen(int row, int size, vector<int>& conquer){

if(row == size) return 1;

 

int result = 0;

 

for(int i=0; i<size; i++){

if(conquer[i] == -1){

bool isSafe = true;

for(int j=i-1; j>i-1-row; j--){

if(j >= 0 && j < size && (i - j == row - conquer[j]))

isSafe = false;

}

for(int j=i+1; j<i+1+row; j++){

if(j >= 0 && j < size && (j - i == row - conquer[j]))

isSafe = false;

}

if(isSafe){

conquer[i] = row;

result += nqueen(row+1, size, conquer);

conquer[i] = -1;

}

}

}

 

return result;

}

[출처] 알고스팟 초보용 탐색 NQUEEN|작성자 nalchang

 

출처: <http://blog.naver.com/PostView.nhn?blogId=hades2015&logNo=220419968223&parentCategoryNo=&categoryNo=&viewDate=&isShowPopularPosts=false&from=postView>

 

프로젝트 정보

-프로젝트현대캐피탈 앱 개발 

-근무지 : 국회의사당역

-필요인원 :  ios 중급 1

-기간 : 41  ~ 투입 후 5개월 (5M/M)

-단가 : 500~600만 협의 

-기술 : ios

-기타 :금융권 경험 우대

-제출서류개인 프로필 및 자격증 사본(있을경우) 1부 메일 송부(단가기재필수)

 

 

∙ 담당자 정보

-이메일 : sohee@articleglobal.net

-연락처 : 010-6476-----

 

출처: <https://iphonedev.co.kr/jobOffer/141340#0>

 

 

 

새로운 블로그를 시작하며, 트위터의 내용도 모두 옮기기로 했다. 채널을 하나로 일원화 하는게 내가 편해서. 물론, 모든 내용을 적기엔 힘들다. 트위터나 블로그가 가지는 색이 각기 다르기 때문.

 

 

 

얼마 전, 날 고소하려 했던 사람들이 3000개의 글을 다 읽은 것 빼고는 내 글을 전체적으로 다 보았다는 사람은 보지 못했다. 고소 관련해서도 여기 썰을 풀 것이다. 읽고 싶은 사람에게 "간접경험"을 제공하기 위해.

 

 

 

 

 

 

 

 

 

 

 

C:\Windows\System32\shutdown.exe -f -s -t 0

복수영화

https://www.youtube.com/watch?v=D0l9Fxk27Cg

The Revenant, 2015

 

출처: <https://www.youtube.com/watch?v=mFNgEYYHgk4>

      1. Setuid 뭔지 모른다.
      2. Find ctime 뭔지 모른다.
      3. stackshare.io

4...

 

레버넌트: 죽음에서 돌아온 자

 

 

A non-empty zero-indexed array A consisting of N integers is given. The array contains an odd number of elements, and each element of the array can be paired with another element that has the same value, except for one element that is left unpaired.

For example, in array A such that:

A[0] = 9 A[1] = 3 A[2] = 9 A[3] = 3 A[4] = 9 A[5] = 7 A[6] = 9

  • the elements at indexes 0 and 2 have value 9,
  • the elements at indexes 1 and 3 have value 3,
  • the elements at indexes 4 and 6 have value 9,
  • the element at index 5 has value 7 and is unpaired.

Write a function:

class Solution { public int solution(int[] A); }

that, given an array A consisting of N integers fulfilling the above conditions, returns the value of the unpaired element.

For example, given array A such that:

A[0] = 9 A[1] = 3 A[2] = 9 A[3] = 3 A[4] = 9 A[5] = 7 A[6] = 9

the function should return 7, as explained in the example above.

Assume that:

  • N is an odd integer within the range [1..1,000,000];
  • each element of array A is an integer within the range [1..1,000,000,000];
  • all but one of the values in A occur an even number of times.

Complexity:

  • expected worst-case time complexity is O(N);
  • expected worst-case space complexity is O(1), beyond input storage (not counting the storage required for input arguments).

Elements of input arrays can be modified.

Copyright 2009–2016 by Codility Limited. All Rights Reserved. Unauthorized copying, publication or disclosure prohibited.

 

출처: <https://codility.com/demo/results/trainingTSBMRV-526/>

 

// you can also use imports, for example: // import java.util.*; // you can write to stdout for debugging purposes, e.g. // System.out.println("this is a debug message"); class Solution { public int solution(int[] A) { // write your code in Java SE 8 int cnt=0; for(int i=0; i < A.length; i++) { for(int j=0; j < A.length ; j++) { if(A[i] == A[j]) cnt++; } if(cnt == 1) return A[i]; else cnt = 0; } return A[0]; } }

 

class Solution { public int solution(int[] A) { // write your code in Java SE 8 int ret=0; for(int i=0; i < A.length; i++) { ret ^= A[i]; } return ret; } }

 

출처: <https://codility.com/demo/results/trainingTSBMRV-526/>

'Blog History' 카테고리의 다른 글

177  (0) 2020.04.14
176  (0) 2020.04.14
174  (0) 2020.04.14
173  (0) 2020.04.14
172  (0) 2020.04.14

당 업무

​- 유럽연합/북미지역 개인정보보호법 기반 보안정책/관리체계 수립 (GDPR, FTC, PCI DSS 등)

- 정보보호 인프라 시스템 및 엔드포인트 솔루션 운영 및 커스터마이징 (VPN, F/W, IDS, EDR, NAC, DLP 등)

- 시스템/애플리케이션 보안진단, 웹 모의해킹, 침해사고대응(CERT)

- 취약점분석/모니터링/감사 등 보안 업무에 필요한 자동화 도구 개발

- 사내/인프라/서비스 등 사용자 계정 및 권한 관리

- 최신 보안동향 파악 및 보안 교육

 

필수 요건

- 학력 : 무관

- 경력 : 경력 5년 이상

- 성별 : 무관

- 모집인원 : 0명

- 5년 이상에 준하는 보안 경력을 가지신 분

- 담당 업무를 영어로 진행하는 것에 문제가 없으신 분

- 해외(네덜란드, 미국) 근무에 대한 결격사유가 없으신분

- 운영체제, 데이터베이스, 네트워크, 보안기술에 대한 전반적인 지식을 가지신 분

- 해외 근무지 비자 발급에 결격 사유가 없는 분

 

우대 자격

- IT 보안 컨설팅을 주도적으로 경험해보신 분

- IT보안 관련 국제 공인자격증 소지하신 분 (CISA,CISSP,ENCE,CEH,ITIL,CISM,SANS,OSCP 등)

- 프로그래밍 언어(Python, Perl, Ruby, NodeJS 등)를 통한 업무 자동화 경험해보신 분

- 서비스 어뷰징에 대해 실시간 대응을 경험해보신 분

- 유관부서, 정부기관, 공공기관 등 대외커뮤니케이션 및 협업이 유연하신 분

 

근무지

- 네덜란드 암스테르담 인근

 

출처: <https://www.blogger.com/blogger.g?blogID=7497313420498203719>

 

Blogger

하나의 계정으로 모든 Google 서비스를 Blogger로 이동하려면 로그인하세요.

accounts.google.com

대선 초등학교 1학년 3반 친구들에게.

 

안녕 친구들? 무더운 날씨에 학교 친구와 열심히 공부하고 즐겁게 생활하느라 정말 고생이 많구나. 난 소율이 아빠야. 학교 교육은 선생님께 모두 일임하는 것이 맞지만 학교 폭력 문제는 선생님 혼자서도 감당하기 힘든 어려운 문제란다. 그래서 이렇게 편지를 쓰게 되었어.

 

719일 점심시간에 소율이가 날아온 주먹에 얼굴은 맞은 일이 있었어. 얼굴 중에서도 인중이라는 곳인데 사람의 급소라서 잘못 맞으면 갑자기 죽을 수도 있어. 대부분 주먹을 어떻게 쥐는지도 모르는 어린 친구들이잖아? 그래서 아저씨는 주변 태권도장에서 가르치고 있는 내용을 조사하고 있어. 설마 초등학교 1학년 학생에게 무도적 접근 방법이나 급소를 타격하는 방법을 가르쳐 주는 곳은 없을 거라 생각하고 단순히 확인하는 과정이란다.

 

친구가 맞았는데도 아무도 본 사람이 없어서 속상한 마음이야. 친구들끼리 서로 사랑하기도 하고 미워하기도 하지만 어떠한 경우에도 먼저 폭력을 쓰는 것은 잘못된 일이란다. 그리고 선생님 눈이나 경찰관 눈만 피한다고 해서 끝나는 문제가 아니야. 그런 작은 잘못과 실수가 쌓여서 결국엔 큰 범죄자가 되는 것을 바늘 도둑이 소 도둑 된다라고 말한단다. 그리고 아주 오래도록 내려오는 똑같은 말은 그 이유가 분명해. 분명 친구를 때려서 그것을 숨긴 친구는 나중에 더 큰 잘못으로 큰 불행이 찾아온단다. 비단 소율이 만의 문제는 아닐거야. 우리 친구들도 똑같이 폭력을 당했을 때 그것을 숨기거나 해서는 안돼. 아저씨만 그런게 아니라 친구들의 아빠, 엄마도 똑같이 행동하실 거야. 어린 친구들이니 싸우면서 크는 것을 그냥 넘어갔지만. 이제 아는 만큼 책임감도 커졌다는 것을 어리지만 알았으면 해. 적어도 망포동에서는 급소를 노리고 친구를 때리는 일은 없었으면 해. 그리고 혹시 때린 친구가 이 편지를 보면 더 늦기 전에 소율이에게 꼭 사과하길 바래.

 

소율이 아버지가

 

n

a(n)

1

70

2

836

3

4030

4

5830

5

7192

6

7912

7

9272

8

10430

9

10570

10

10792

11

10990

12

11410

13

11690

14

12110

15

12530

16

12670

17

13370

18

13510

19

13790

20

13930

21

14770

22

15610

23

15890

24

16030

25

16310

26

16730

27

16870

28

17272

29

17570

30

17990

31

18410

32

18830

33

18970

34

19390

35

19670

 

출처: <https://oeis.org/A006037/list>

Cuisenaire rods 교구구입

 

1. 약수는 음수도 될 수 있음. 나누었을 때 나머지가 0인 수를 말하니까. 음수를 나누는 경우는 약수가 음수.

weird number는 음수는 제외함

 

2. 진약수만 고려한다.

 

3. No odd weird numbers are known.(http://mathworld.wolfram.com/WeirdNumber.html) 홀수면 바로 false 리턴

 

4.

 

 

 

 

Perfect number 해당 수와 해당 수의 약수를 모두 더해서 나오는 수가 일치하는 양수.

Semiperfect number Perfect number 의 약수 중 일부만 더해서 나오는 수 18(1, 2, 3, 6, 9)의 경우 3, 6, 9로 만들 수 있음.

https://oeis.org/search?q=1%2C2%2C3%2C6%2C11%2C23%2C47%2C106%2C235&language=english&go=Search

abundant number, excessive number 약수들의 합이 수를 넘어서는 숫자. 12(1, 2, 3, 4, 6) first abundant number.

Weird number 약수들의 합이 더 큰 수이며 약수들의 subset의 합이 해당 숫자를 못만드는 수 첫 weird number 70(1, 2, 5, 7, 10, 14, 35) 74 abundant #,

https://oeis.org/A006037

pseudoperfect 

 

출처: <https://oeis.org/A006037>

 

에러 메시지

submission.cpp:3:5: error: ‘int main(int)’ takes only zero or two arguments [-Wmain]
 int main(int n){
     ^
submission.cpp: In function ‘int main(int)’:
submission.cpp:5:17: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d",&T);
                 ^
submission.cpp:7:19: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d",&n);
                   ^
submission.cpp:11:21: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
       scanf("%d",&v);
                     ^

소스 코드

#include <cstdio>

 

int main(int n){

int T;

scanf("%d",&T);

for(;T--;){

scanf("%d",&n);

int ans = 0;

for(int i = 0; i < n; i++) {

int v;

scanf("%d",&v);

if (i + 1 == v) ans++;

}

printf("%d\n", ans);

}

}

 

출처: <https://algospot.com/judge/submission/detail/251097>

 

'Blog History' 카테고리의 다른 글

176  (0) 2020.04.14
175  (0) 2020.04.14
173  (0) 2020.04.14
172  (0) 2020.04.14
171  (0) 2020.04.14

 

화면 캡처: 2017-01-24 오후 3:03

 

 

 

 

화면 캡처: 2017-01-24 오후 3:03

 

 

 

 

화면 캡처: 2017-01-24 오후 3:04

 

 

 

 

화면 캡처: 2017-01-24 오후 3:04

 

 

 

 

화면 캡처: 2017-01-24 오후 3:04

 

 

 

 

화면 캡처: 2017-01-24 오후 3:04

 

 

 

 

화면 캡처: 2017-01-24 오후 3:04

 

 

 

 

화면 캡처: 2017-01-24 오후 3:05

 

 

 

 

화면 캡처: 2017-01-24 오후 3:05

 

 

'Blog History' 카테고리의 다른 글

175  (0) 2020.04.14
174  (0) 2020.04.14
172  (0) 2020.04.14
171  (0) 2020.04.14
170  (0) 2020.04.14

 

1. chat_room클래스에서 participants_를 저장하는 자료구조로 set을 사용했는데 이 소스 내에서 다른 자료구조말고 set을 사용한 특별한 이유가 있을까요?

 

2. chat_session 클래스의 deliver함수를 보면

메세지큐가 차있을때 플래그가 거짓이 되면서 do_write가 실행이 되고

메세지큐가 비어있으면 플래그가 참이 되면서 do_write가 실행이 안되는구조인데요

만약 write_in_progress에서 큐가 차있는걸 확인 한 후 push_back하려는 중간에 do_write에서 처리를 다 한 후 큐가 비어있다고 판단하고 함수를 종료하면 문제가 생기지 않나요?

큐는 차있는데 do_write함수는 이미 종료된 이후니깐 메세지가 전달이 안되는 문제가 발생할것같은데 만약 안전하게 짠다면 락을 걸어주는게 올바른건가요 아니면 async특성상 이렇게 코드를 짜도 되는건가요?

 

 

Variadic 템플릿을 이용해서 가변 인자를 문자열로 변환하는 함수를 만들고 있는데요. 인터넷에서 찾은 해결책 중에서 아래의 구문이 잘 이해가 되지 않네요. 특히 앞뒤의 0이 무엇을 의미하는지 잘 모르겠습니다.

using List= int[];

(void)List{0, ( (void)(stream << args), 0 ) ... };

이 부분에 관련된 정보는 어디서 찾으면 좋을까요?

아래는 전체 함수입니다.

template< typename ... Args >

std::string stringer(Args const& ... args )

{

std::ostringstream stream;

using List= int[];

(void)List{0, ( (void)(stream << args), 0 ) ... };

return stream.str();

}

initializer_list를 사용하면 좀 더 쉽게 되기는 하는데, 제 경우에는 인자를 레퍼런스로 전달해야 되서...

See Translation

Like

Like

Love

Haha

Wow

Sad

Angry

CommentShare

33

Comments

Sang Heon Lee

Sang Heon Lee (exp1, exp2)의 결과는 무조건 exp2입니다. 저 코드는 list 0으로 채우면서 args를 순회하는 코드입니다. elipsis op를 쓸수 있는 곳이 한정적이라 자주 쓰는 테크닉이에요.

See Translation

September 7, 2015 at 9:30am · Like · 4

Deokhwan Kim

Deokhwan Kim 우선 초기화 목록을 사용하여 더미 배열을 선언하는 이유는 pack expansion이 일어나는 곳(, ...을 사용할 수 있는 곳)이 문법상 제한되어 있기 때문입니다. 대략 쉼표를 (연산자가 아닌) 문법상의 구분자로 사용하는 곳들(예를 들어, 함수 호출 인자 목록과 배열 초기화 목록 등) sizeof... 연산자 정도로 국한되어 있습니다.

 

그런데, 배열 초기화 목록을 이용하되 앞쪽 0 없이 List{((void)(stream << args),...See More

See Translation

September 7, 2015 at 10:21pm · Edited · Like · 6

Junyong Park

Junyong Park 두분 다 답변 감사합니다. 처음에는 얼핏 람다 함수인가 했는데, int 배열을 이용한 pack expansion 트릭이었네요. 이제 이해가 좀 가네요.

See Translation

September 7, 2015 at 3:28pm · Like · 1

Minjang Kim

Minjang Kim 네 맞습니다. Pack expansion 하는 트릭입니다. 하재승님의 Crow 강연 슬라이드에도 소개가 되어있고요. SO도 관련 글 찾아 볼 수 있습니다. http://stackoverflow.com/.../variadic-template-pack... 정작 실제 회사 업무에서 이런 거 쓸 일은 거의 없지만요;;

See Translation

 

Variadic template pack expansion

I trying to learn variadic templates and functions. I can't undestand, why this code doesn't compile:…

STACKOVERFLOW.COM

September 7, 2015 at 6:06pm · Like · 4

Lyn Heo

Lyn Heo 저도 하재승님 강의를 보고 저거 뭐지 하고 기겁을 했던 기억이 있네요. 필요성을 전혀 못느끼는 기능이라 저런게 되는지 찾아 볼 생각도 안했었다는 ..

See Translation

September 9, 2015 at 7:32pm · Like

Junyong Park

Junyong Park 저도 꼭 필요한건 아닌데 일반적인 방법으로 풀었을 때 재귀 함수를 2단계 이상 거치는게 싫어서 이 방법을 선택했습니다.

 

 

 

 

 

아까 질문 올렸던 학생입니다.

아까 올린 질문은 너무 정보가 부족한 것 같아 샘플 코드를 작성해 다시 올립니다.

제가 하고 싶은 건

class A singleton으로 하나의 객체만 존재하게 하고

class B로 만들어진 객체들이 A private멤버에 접근할 수 있도록 하는 겁니다.

아래와 같은 코드에서 아래와 같은 오류가 발생합니다.

도움 좀 부탁드립니다...

class.h

#‎pragma once

namespace aa

{

class A;

class B;

class A

{

friend B;

static A* instance;

A();

~A();

int i;

public:

static A* GetInstance();

static void DestroyInstance();

};

class B

{

int i;

public:

B();

~B();

void SetNum();

int GetNum();

};

};

//

Aclass.cpp

#‎include "헤더.h"

aa::A::A() : i(5) {}

aa::A::~A() {}

aa::A* aa::A::GetInstance()

{

if (instance == nullptr)

instance = new A;

return instance;

}

void aa::A::DestroyInstance()

{

if (instance)

{

delete instance;

}

}

//

Bclass.cpp

#include "헤더.h"

aa::B::B() {}

aa::B::~B() {}

void aa::B::SetNum(int _i) { i = _i; }

int aa::B::GetNum() { return A::GetInstance()->i + this->i; }

//

main.cpp

#include <iostream>

#include "헤더.h"

using namespace std;

int main()

{

aa::B b;

b.SetNum(7);

cout << b.GetNum() << endl;

}

//

오류 메시지

Aclass.obj : error LNK2001: "private: static class aa::A * aa::A::instance" (?instance@A@aa@@0PAV12@A) 외부 기호를 확인할 수 없습니다.

c:\users\user\documents\visual studio 2015\Projects\a\Debug\a.exe : fatal error LNK1120: 1개의 확인할 수 없는 외부 참조입니다.

Like

Like

Love

Haha

Wow

Sad

Angry

CommentShare

Comments

Claire Hyunjung Lee

Claire Hyunjung Lee static 변수를 외부에서 초기화 안해주셔서 그래요.

See Translation

Like · Reply · 1 · September 10, 2015 at 12:37am

Claire Hyunjung Lee

Claire Hyunjung Lee 추가적으로 설명드리면 static 변수를 글로벌 변수로 사용하는거기 때문에 딱 한번 초기화되어 있어야 됩니다. 만약 헤더파일에서 클래스 외부에 초기화 하시면 에러 계속 날거구요. 왜냐면 그 헤더파일을 들고 있는 애들이 전부 static 변수를 초기화 하는 걸로 인식하기 때문에 컴파일러가 linking 할때 에러나요. cpp파일 한곳에서 초기화 해주시면 되요.

See Translation

Like · Reply · September 10, 2015 at 12:48am

김민준

김민준 아 원래 코드에는 초기화를 하긴 했는데 헤더파일에 초기화를 해줘서 그랬나 보네요.. 답변 감사합니다

 

 

 

매번 비주얼 스튜디오가지고 라이브러리를 연결시 프로젝트 속성에

C++ -> 일반 -> 추가 디렉토리 와

링커 -> 일반 -> 라이브러리추가가있는데

이 두개의 차이가 궁금합니다.

Have visual studio time library, the connection to the project properties

C++ -> General -> Add and directory

Linker -> General -> Library can add

These two are wondering the difference.

 ·

Rate this translation

Like

Like

Love

Haha

Wow

Sad

Angry

CommentShare

33

Comments

Seok-joon Yun

Seok-joon Yun C++ include 에서 찾을 .h찾는곳이고 링커는 .lib 찾는곳입니다

See Translation

Like · Reply · September 25, 2015 at 5:24pm

JiHyung Lee

JiHyung Lee 전자는 헤더 파일의 위치, 후자는 빌드된 lib 파일의 위치입니다.

See Translation

Like · Reply · September 25, 2015 at 5:25pm

정은식

정은식 감사합니다!

See Translation

Like · Reply · September 25, 2015 at 5:30pm

Kim Hwa Su

Kim Hwa Su Library/XML/xml.h 가 있을 경우

소스 코드상에 #include "Library/XML/xml.h"라고 쓸 수도 있고,

만일 추가 디렉토리에 Library/MXL 이 지정되어 있을 경우...See More

See Translation

Like · Reply · 2 · September 26, 2015 at 7:17am · Edited

정은식

정은식 Kim Hwa Su .... 감사합니다!

See Translation

Like · Reply · September 26, 2015 at 8:04am · Edited

 

 

다른 stl 코드는 안봐서 모르겠는데 ms stl 코드중에 std::basic_streambuf이녀석 멤버 _Gcount랑 _Pcount가 왜 std::size_t가 아니라 int인건지 아시는분 계신가요?

64비트 빌드에서는 포인터 크기가 64비트니까 버퍼 길이를 나타내는 저 변수도 64비트여야 되는거 아닌가 싶은데..

Another STL code isn't just that I don't know the code of the stl waits for STD :: Basic _ streambuf this fellow member _ love _ GCOUNT WHY PCOUNT STD :: Speed _ T NOT a reference to the knowledge I'm here?

64-bit build size pointer in 64-bit. Buffer in the length of the variable is my 64-bit, I think..

 · 

Rate this translation

Like

Like

Love

Haha

Wow

Sad

Angry

CommentShare

1

1

Comments

Kim Hwa Su 버퍼 길이를 나타낸다면 int라도 충분하지 않나요? 2GB 정도 메모리를 나타낼 수 있는데... 그 정도를 쓰는 string이 필요할지도 의문이고요. string 뿐 아니라 소켓 프로그래밍에서도 아직 send, recv 등의 버퍼 크기는 int로 지정되어 있습니다. 하지만 시간이 오래 지나다보면 바뀔 수도 있겠지요.

 

출처: <https://www.facebook.com/groups/cppkorea/>

 

 

boost를 받을려고 아래 사이트로 들어가니..

http://boostpro.com/

boostpro 이상한데 접속되는거같은데;;

...See More

See Translation

Dave Abrahams

Follow me on Twitter @DaveAbrahams

DAVEABRAHAMS.COM

Like

Like

Love

Haha

Wow

Sad

Angry

CommentShare

Comments

View 2 more comments

유근호 Nuget 을 써보셔도 될듯해요See Translation

Like · Reply · September 29, 2015 at 9:50am

정은식 유근호 이미 해결되었습니다 감사합니다 :)See Translation

 

출처: <https://www.facebook.com/groups/cppkorea/>

 

 

Vector 사용이 익숙치 않아서 질문 드려요.

main 부분의 show와 delete를 완성 하려고 합니다. 어떻게 해야 하나요?

‪#‎include‬ <iostream>

#include <array>

#include <vector>

using namespace std;

struct Trace

{

float* trace;

};

typedef std::vector<Trace> Traces;

Trace* getTrace_omp(int ns)

{

Trace *tr = new Trace();

float *trdata;

float pTrace[] = { 0,1,2,3,4,5,6,7,8,9 };

try { trdata = new float[ns]; }

catch (bad_alloc)

{

cerr << "bad_alloc: " << endl; exit(1);

}

int ltrace = ns*sizeof(float);

memcpy(trdata, pTrace, ltrace);

tr->trace = trdata;

return tr;

}

void getZO_omp(vector<Trace*> *trx)

{

trx->resize(0);

for (int j = 0; j<10; j++) {

trx->push_back(getTrace_omp(10));

}

}

void DataAllDelete(vector<Traces*> &trx)

{

for (auto &i : trx.begin()) {

delete *i;

i = trx.erase(i);

}

trx.clear();

}

int main(int nargs, char **args) {

vector<Trace*>trx;

trx.clear();

getZO_omp(&trx);

//show part

//for (auto &i : trx->begin()) {

// cout << "Val:" << i.trace << endl;

//}

//delete

//DataAllDelete(trx);

}

Like

Like

Love

Haha

Wow

Sad

Angry

CommentShare

1

1

Comments

Jeon PilGyu show

 

for(auto& i: trx) // try.begin()을 하면 안 됩니다. ...See More

Like · Reply · 1 · November 6, 2015 at 1:02pm · Edited

Jeon PilGyu delete

 

for(auto& i: trx)...See More

Like · Reply · 1 · November 6, 2015 at 1:00pm

DongMin Choi 삭제시에 i.trace뿐 아니라 i역시 delete 해주셔야 메모리 릭이 안날 것 같습니다~See Translation

Like · Reply · 1 · November 7, 2015 at 12:47pm

Jeon PilGyu 아 그러네요See Translation

Like · Reply · November 7, 2015 at 1:09pm

Jeon PilGyu #include <array>

#include <vector>...See More

Like · Reply · 1 · November 7, 2015 at 1:10pm

Jeon PilGyu 이건 재민님이 의도한 거 같은 걸 바꿔본 코드입니다See Translation

Like · Reply · 1 · November 7, 2015 at 1:10pm

이재민 답변 감사 합니다. 제가 의도 한건 값에 접근할 수 있고 다 사용 후에는 memory leak 이 없이 끝나는 건데 delete Function을 따로 구현 해야 하는 거였거든요.다음과 같이 하닌까 leak가 없었습니다.See Translation

Like · Reply · November 7, 2015 at 2:48pm · Edited

Write a reply...

이재민 traces.clear(); 이것만으로도 정상적으로 memory leak가 없어야 하는 거네요 맞나요?See Translation

Like · Reply · November 7, 2015 at 2:47pm

Jeon PilGyu 아뇨 traces.clear()와 릭은 관계가 없습니다 벡터는 자기가 직접 할당한 메모리는 직접 삭제를 하니까요See Translation

Like · Reply · 1 · November 7, 2015 at 5:39pm

Jeon PilGyu 하지만 벡터가 가지고 있는 포인터에 동적 할당된 값들은 자신이 할당한 것들이 아니기 때문에 직접 제거를을 해줘야 하는 거였어요See Translation

Like · Reply · November 7, 2015 at 5:50pm · Edited

Write a reply...

이재민 제가 의도한 코드를 정리 해봤습니다. @전필규 님 코드가 훨 좋은것 같습니다.See Translation

Like · Reply · November 7, 2015 at 3:24pm · Edited

이재민 #include <iostream>

#include <array>

#include <vector>...See More

Like · Reply · 1 · November 7, 2015 at 5:43pm

 

출처: <https://www.facebook.com/groups/cppkorea/>

 

 

Optimize가 없는 기준으로

const int func() { return 2; }

이라고 정의해둔후에

class 내부에 const int value = func();

라고 정의하고

JIT 으로 func 내부의 return 값을 변경시키면 어떻게되죠?

변경되기 전에 allocate된 class내부에는 2가 그이후에는 다른값이 적용되나요?

아니면 맨 처음의 2의 값이 적용되나요?

See Translation

Like

Like

Love

Haha

Wow

Sad

Angry

CommentShare

Comments

Lyn Heo 음... cpp 에 왠 jit?See Translation

Like · Reply · November 4, 2015 at 9:03am

Jun Ryoung Ju 컴파일후에 JIT으로 어셈블리를 변경한다는 의미였어요!See Translation

Like · Reply · November 4, 2015 at 9:04am

Lyn Heo 역시 무슨의민지 모르겠는데..See Translation

Like · Reply · November 4, 2015 at 9:16am

View more replies

Write a reply...

함영택 왜 이런걸 고민하고 계신가요? 하고싶으신게 뭔지 정확하게 알려주시면 답변 해 드리는데 도움에 될 것 같습니다.See Translation

Like · Reply · November 4, 2015 at 9:13am

Jun Ryoung Ju 아아 그냥 순수한 궁금증이라 ㅋㅋㅋSee Translation

Like · Reply · 1 · November 4, 2015 at 9:13am

Jun Ryoung Ju 간단히 class 내부에 const 값이 컴파일될때 한 번만 적용되는지 또는 allocate할때 정의되는지 궁금했던거에요See Translation

Like · Reply · November 4, 2015 at 9:14am

View more replies

Write a reply...

Yeong-cheon You 무슨 질문이신지 알거 같은데요. 간단하게 말씀드리면 class에 코드가 들어갔다고 해서 class의 인스턴스마다 별도 코드의 복사본이 생기는건 아닙니다. 코드는 그냥 공유됩니다. 사실 c랑 별로 다르지도 않아요. 코드는 그냥 c의 함수랑 같고 클래스의 인스턴스 this포인터가 x86기준 ecx레지스터로 항시 전달되고 있을뿐이죠.See Translation

Like · Reply · November 4, 2015 at 1:02pm

Jun Ryoung Ju 흐음 거기까지는 이해했어요!! 이제 그게 class 내부의 const 값을 initialize 할때도 적용되는가에요! const값같은경우에는 변하지 않는다. 를 기본으로 두기때문에 일반 전역 변수와 같이 한 번만 적용이 되는건가요. 아니면 여러개로 변수들끼리 나눠서되는건가요?See Translation

Like · Reply · November 4, 2015 at 3:02pm

Jun Ryoung Ju 문제를 정확하게 짚어주셔서 감사해요 ㅠㅠSee Translation

Like · Reply · November 4, 2015 at 3:02pm

View more replies

Write a reply...

Minjang Kim http://en.cppreference.com/w/cpp/language/constexpr

 

그리고 JIT에 대한 개념이 잘못 되어있습니다.See Translation

constexpr specifier (since C++11) - cppreference.com

The constexpr specifier declares that it is possible to evaluate the value of the function or variable at compile time. Such variables and functions can then be used where only compile time constant expressions are allowed (provided that appropriate function arguments are given). A constexpr specifi…

EN.CPPREFERENCE.COM

Like · Reply · November 5, 2015 at 6:31am

Jun Ryoung Ju replied · 2 Replies

박재현 JIT의 in-time은 run time이 아니라 execution-time을 의미합니다. 실행 시키는 순간 한번 컴파일해서 번역된 기계어가 캐싱되는거죠. 착각하시는 run-time 번역은 인터프리터의 케이스입니다. 그리고 C++는 컴파일되는 언어이기 때문에 jit와는 연관이 없죠.

덧붙이자면 질문하신 경우와같은 코드는 아예 컴파일 되지 않을겁니다. const 한정자는 말그대로 상수처럼 쓰일 수 없는 녀석은 assign되지 않게 하는 한정자로 생각하시면 쉽겠네요.See Translation

 

출처: <https://www.facebook.com/groups/cppkorea/>

 

 

 

Memory leak 때문에 메모리사용량 스냅숏을 만드는데 진입 자체가 너무 오래 걸립니다. 릴리즈로 한 5분정도 안에 진입할 코드가 메모리 스냅숏을 하려니 30분 넘게 걸리네요.배보다 배꼽이 커 일 진행이 힘드네요. 머 좋은 꽁수가없을 까요?

See Translation

Like

Like

Love

Haha

Wow

Sad

Angry

CommentShare

1

1

Comments

Jun Ryoung Ju 메모리 릭은 대부분 프로그레머의 잘못된 코드로나 실수로부터 발생하니 new 나 delete를 오퍼레이터 오버로딩하신후에 호출순서나 메모리 자체의 포인터를 오버로딩해서 기록해두신 후 천천히 찾아보시면 될듯합니다.See Translation

Like · Reply · 1 · November 24, 2015 at 2:19pm

Gilbert Lee linux 환경의 경우 valgrind를 이용해서 memory leak를 탐지할 수 있습니다.

http://valgrind.orgSee Translation

Valgrind Home

Official Home Page for valgrind, a suite of tools for debugging and profiling. Automatically detect memory…

VALGRIND.ORG

Like · Reply · 1 · November 25, 2015 at 1:59am

Gilbert Lee C/C++ 언어에서는 malloc, free, new, delete를 대표적으로 사용하게 되는데, 이러한 function을 overloading해서 memory leak를 탐지할 수도 있습니다. 예전에 만들어 놓은 소스가 있으니 참고하시기 바랍니다(가끔 현업에서 쏠쏠히 재미를 봤음).

https://github.com/snoopspy/gmemSee Translation

snoopspy/gmem

gmem - G Memory Library

GITHUB.COM

Like · Reply · 1 · November 25, 2015 at 2:01am

이재민 Release 에 debug dll혼합과 같은 방법을 찾고 있어요 단지 원하는 코드의 진입시간을 줄이고 싶거든요. vs2015의 snapshot기능을 쓰는건 유지 하려구요^^See Translation

Like · Reply · November 25, 2015 at 2:02am

Minhyuk Kwon 쌈빡하게 홍보를...http://www.suresofttech.com/ko/products/sniper/See Translation

SNIPER | 슈어소프트테크

» SNIPER |

SURESOFTTECH.COM

Like · Reply · 2 · November 25, 2015 at 2:21pm

Junseong Jang 만약 windows 에서 기본으로 제공해주는 메모리 할당 함수를 사용하고 계신다면 umdh 라는 도구 사용을 검토해보셔도 될 것 같습니다. 그리고 근본적으로는 메모리를 수동으로 할당, 해제하시는 것보다는 스마트 포인터의 사용을 권해드립니다.

 

출처: <https://www.facebook.com/groups/cppkorea/>

 

 

 

 

 

안녕하세요~ C++에 관심이 많은 학생입니다. 예전에 C++ 11/14 발표가서 무브 시맨틱에 관해서 듣다가 기억이 잘 안나서 그러는데

std::string makeHelloString()

{

return std::string("Hello");

}

int main()

{

std::cout << makeHelloString().c_str() << std::endl; // 복사 생성자 X?

string str = makeHelloString(); // 복사 생성자 1번만?

return 0;

}

라는 코드에서 C++ 11 컴파일러는 알아서 (최적화 빌드를 한다고 가정하면) makeHelloString의 return값을 복사하지 않고 move 해준다는 소리를 들은 것 같은데 혹시 제가 잘못 생각하고 있는건가요?

See Translation

Like

Like

Love

Haha

Wow

Sad

Angry

CommentShare

Comments

Lyn Heo 해 줄 수도 있습니다.

사실 C++11 을 지원하지 않는 컴파일러도 해 줄 수 있습니다.

VC++ 같은 경우는 2005 버전부터 해당 최적화를 지원 하고 있는걸로 기억 하고 있습니다.See Translation

Like · Reply · November 29, 2015 at 1:48am

Sangwook Kwon RVO(Return Value Optimization) 을 검색해보시면 될텐데

effective modern C++ 아이템 25번에서 설명하고 있습니다. ...See MoreSee Translation

Like · Reply · November 29, 2015 at 9:35pm

Minjang Kim 윗분 말씀대로 이 경우는 C++11 이전에도 이미 C++ 표준(!)으로 복사를 생략할 수 있었습니다. 보통 RVO 등의 이름으로 불렸는데 C++11 표준부턴 이걸 §12.8.31에서 copy elision으로 명명하고 있습니다. 특정 조건이 만족 되면 복사/이동을 생략할 수 있습니다.http://en.cppreference.com/w/cpp/language/copy_elision clang/gcc에서는 -fno-elide-constructors 옵션이 있습니다. 역시 윗분 말씀대로 로컬 클래서 객체 리턴은 move를 안 쓰는게 낫습니다. 괜히 썼다가 오히려 복사가 일어날 수도 있습니다. C++ move/rvalue가 굉장히 대단한 변화인데 너무 실수할 여지가 많은 것도 사실입니다.See Translation

copy elision - cppreference.com

Under the following circumstances, the compilers are permitted to omit the copy- and move-constructors of class objects even if copy/move constructor and the destructor have observable side-effects.

EN.CPPREFERENCE.COM

Like · Reply · 2 · November 30, 2015 at 4:50am

Lyn Heo replied · 1 Reply

Junyong Lee 아 답변주신 분들 감사합니다! 이해하는데 큰 도움이 되었습니다.

 

출처: <https://www.facebook.com/groups/cppkorea/>

 

 

안녕하세요.

세마포어(또는 모니터) 개념을 쉽게 사용할 수 있도록 semaphore 클래스(signal, wait 메서드를 가짐)를 만들어 공부하고 있습니다.

그냥 __stdcall(/Gz)로 사용할 때는 문제가 없지만

프로젝트 속성에서 함수 호출 규칙을 __vectorcall(/Gv)로 바꾸면 wait에서 대기하지 않고 그냥 지나가는 것 같습니다.

참고로 VS2015버전을 사용 중이고 x64로 빌드하고 있습니다.

그러면 질문드려도 될까요?

[질문 1]

std::lock_guard나 std::mutex가 멀티 코어(또는 __vectorcall)를 지원하나요?

만약 그렇지 않다면, 다른 종류의 락을 구현하여 사용하여야 하나요?

(이미 사용 가능한 락이 라이브러리에 포함되어 있다면 알려주세요.)

[질문 2]

__vectorcall의 "간단한" 특징과 이점이 궁금합니다.

물론 MSDN을 찾아보았지만... 바로 이해가 되진 않았습니다.

제가 사용한 코드는 아래와 같습니다.

물론 실제 코드는 클래스 선언이 먼저이지만 ... 질문 편의를 위해 아래에 놓은 것 뿐입니다.

// signal 함수

inline void semaphore::signal()

{

std::lock_guard<std::mutex> lock{ mutex };

++count;

cv.notify_one();

}

// wait 함수

inline void semaphore::wait()

{

std::unique_lock<std::mutex> lock{ mutex };

cv.wait(lock, [&] { return count > 0; });

--count;

}

// 세마포어

class semaphore

{

public:

explicit semaphore(size_t n = 0) : count{ n } {};

semaphore(semaphore& s) : count{ s.count } {};

semaphore& operator=(semaphore& s) { return *this; };

semaphore(semaphore &&) = default;

semaphore& operator=(semaphore&&) = default;

void signal();

void wait();

using native_handle_t = std::condition_variable::native_handle_type;

native_handle_t native_handle();

private:

size_t count;

std::mutex mutex;

std::condition_variable cv;

};

inline semaphore::native_handle_t semaphore::native_handle()

{

return cv.native_handle();

}

See Translation

Like

Like

Love

Haha

Wow

Sad

Angry

CommentShare

1

1

Comments

View 5 more comments

엄태준 콜링컨벤션은 아실테고 함수호출시 관련리소스를 호출쪽에서ㅎ해제하느냐 호출받는쪽에서 해제하냐 차이인데 아무래도 영향이 있겠죠^^See Translation

Like · Reply · December 3, 2015 at 10:52pm

DongMin Choi 코드를 직접 본건 아니지만

어떨 때는 되었다가, 간혹 안되었다가 하는 상황으로 보아 특정 순서로 스레드가 실행되었을 때 문제가 발생하는 걸수도 있겠네요~See Translation

Like · Reply · December 4, 2015 at 8:54am

 

출처: <https://www.facebook.com/groups/cppkorea/>

 

vs2015 update1에서 c++모듈형식 임포트를 

지원한다고 하네요

예를 들어 a.cpp파일 안에서 module A; 한뒤 원하는 함수 앞에 export 해놓으면

b.cpp 에서 import A; 를 하게될 경우 아까 export한 함수를 쓸수 있다고 합니다!

http://blogs.msdn.com/…/03/c-modules-in-vs-2015-update-1.as…

In Update1 Vs2015 C++ module type im port

That support.

For example a. Cpp File. A) in the presence of the desire to export the function he

B. A IMPORT FROM CPP. Be well, if a export function can write!

http://blogs.msdn.com/…/03/c-modules-in-vs-2015-update-1.as…

 · 

Rate this translation

Like

Like

Love

Haha

Wow

Sad

Angry

Comment

Share

14

14

Comments

Jeon PilGyu 전에 얼핏 봤는데 한번 해봐야겠네요.See Translation

Like · Reply · 1 · December 13, 2015 at 6:28pm

Jeon PilGyu

Like · Reply · December 16, 2015 at 11:47am

Jeon PilGyu 정말 되네요 신기합니다 ^^..See Translation

Like · Reply · 1 · December 16, 2015 at 11:47am

손건 우와 저도 사실 글 올려놓고 해보지 않았었는데 실제로도 되는군요!!See Translation

 

출처: <https://www.facebook.com/groups/cppkorea/>

 

 

C++ Exception Handling에 관해 다룬 서적을 추천받고 싶습니다.

좋은 책이 있다면 소개해주세요 :)

See Translation

Like

Like

Love

Haha

Wow

Sad

Angry

CommentShare

2

2

Comments

손건 제 기억으로 전문가를위한 c++ 2파트에 익셉션핸들링 관련해서 파트가 있었던것 같아요

이책이야 워낙 많이 알고 계셔서See Translation

Like · Reply · 1 · December 16, 2015 at 3:06pm

Seyeon Oh replied · 1 Reply

Chan Ryu 혹시 영어 듣기가 가능하시면 아래 사이트에 링크가 걸린 Jon Kalb의 강의 영상이 (Part 1, 2, 3) 정말 도움이 될 겁니다. Exception handling 의 진수를 보여주는 강의 입니다.

http://exceptionsafecode.comSee Translation

Exception-Safe Coding in C++

During the last two decades he has written C++ for Amazon, Apple, Dow Chemical, Intuit, Lotus,…

EXCEPTIONSAFECODE.COM

Like · Reply · 3 · December 16, 2015 at 8:06pm

Seyeon Oh replied · 1 Reply

 

출처: <https://www.facebook.com/groups/cppkorea/>

 

 

 

 

http://stackoverflow.com/quest…/1350819/c-free-store-vs-heap

c++에서 new는 free-store에 할당하고 malloc은 heap에다 할당한다고 합니다. 

결국 new의 내부에서는 malloc을 사용하고 실제로는 같은 공간을 사용하지만 new,delete와 malloc, realloc, free를 같이 쓰지 못하게 하려고 이렇게 만들었다고 하네요

See Translation

C++, Free-Store vs Heap

Dynamic allocations with new/delete are said to take place on the free-store,while malloc/free operations use the heap. I'd like to know if there is an actual difference, in practice. Do compilers...

STACKOVERFLOW.COM

Like

Like

Love

Haha

Wow

Sad

Angry

CommentShare

18

18

Comments

박재현 free store와 heap은 실제 공간도 같은 공간이 아니라고 생각하셔야 합니다. 오버로딩된 new에서 메모리가 아닌 파일을 할당하거나 네트웍 공간을 할당하는 경우도 생각할 수 있기 때문에 말 그대로 new로 할당받을 수 있는 공간으로 해석하시는게 옳다고 봅니다.See Translation

Like · Reply · December 17, 2015 at 2:27pm

Minki Kim c++ 표준에서는 malloc을 heap에 할당한다는 얘기가 없는거로 알고있어요~ stackoverflow에서 얘기하는 내용은 이해를 돕기위한 예제정도이지 정확한 내용은 아닌거 같네요.. 한가지 예로 GotW 9에서는 automatic variable이 stack에 저장된다는 것도 c++의 입장에서는 틀린 얘기겠죠..See Translation

Like · Reply · December 17, 2015 at 2:28pm

엄태준 new 연산자는 오버로딩에 어떻게 하느냐에 따라 역할이 다르겠지만, 크게 App 힙영역만 있는 것으로 알고 있는데요... exe 이미지구조에서 본듯한데....See Translation

Like · Reply · December 17, 2015 at 2:30pm · Edited

Minjang Kim 일단, new 연산자 오버로딩 경우는 고려할 필요가 없고요. 채택된 답변에 동의하지 않습니다. 오히려 그 밑에 달린 댓글에 동의하고요. C++ 표준을 봐도 heap라는 말은 안 나오는데 heap은 구현 종속적인 내용이라 보다 추상화된 free store라는 말을 쓴 것 같네요. 실제 구현에서는 말씀대로 new를 부르면 malloc이 불립니다.

 

더 검색해보면 Stroustrup의 이 논쟁에 대한 답변이 있습니다.http://zamanbakshifirst.blogspot.com/search/label/heapSee Translation

Get Your Computer Science Queries Answered: heap

What's the difference between the heap and the free-store? The C++ Programming Language keeps on referring them interchangeably. There was as huge cry over this issue in C/C++ programmer's community in Orkut. I had to shoot a mail to Dr. Bjarne Stroustrup. Here's our conversation:My Mail:Dear Mr Str…

ZAMANBAKSHIFIRST.BLOGSPOT.COM

Like · Reply · 9 · December 17, 2015 at 3:09pm

Lyn Heo 창시자!!!See Translation

Like · Reply · December 17, 2015 at 3:19pm

Minki Kim 창시자!!!See Translation

Like · Reply · 1 · December 17, 2015 at 3:22pm

Write a reply...

손건 역시 c++는 배울께 넘치네요!

감사합니다See Translation

Like · Reply · 1 · December 17, 2015 at 3:46pm

정은식 C++ 프로그래밍 원리 기초부터 고급까지 읽어보세요See Translation

Like · Reply · 2 · December 17, 2015 at 5:20pm

Kim Hwa Su C++ 실제 구현은 컴파일러 제작사마다 제각각인듯 합니다. 특히 Heap을 다룰때도 조금 다른 면이 있는데, Windows에서 C++ 개발할 경우 Exe와 DLL의 CRT를 /MD, /MT를 각각 다르게 할 경우 각자의 CRT가 사용되어서 서로 다른 Heap을 사용합니다. 즉, 한쪽에서 new를 하고 다른쪽에서 delete를 할 경우 Heap Crash가 발생하는 경우도 있습니다. 예를 들면 std::string의 경우 exe에서 dll의 함수를 호출하면서 인자로 넘길때 exe에서 메모리가 할당되고, dll에서 메모리가 해제되면서 오류가 발생하지만, MFC의 CString은 그런 면까지 고려해서 메모리 할당과 해제가 되도록 설계가 되어있습니다.

즉, 제작사에 따라서 충분히 malloc, new가 서로 다른 메모리 공간을 사용하도록 만들수도 있을 것 같습니다. 하지만 제가 살펴본 컴파일러들은 모두 new에서 malloc을 호출한 후에 생성자를 호출하도록 되어있었습니다. 뭐... 언제든지 바뀔 수도 있는 설계라고 생각합니다. 즉, 꼭 집어서 정답이 뭐라고 하기는 어려울 것 같습니다.

 

출처: <https://www.facebook.com/groups/cppkorea/>

 

안녕하세요 혹시 tdd 기반으로 개발하고 계신분 있나요?

웹기반의 언어들은 tdd가 잘되있어서 쉽게 쓰는데

C기반 언어들은 있을텐데 제가 들어본게 없어서

검색만으로는 판단하기 조금 부족해서 의견 여쭙고 싶어요~

See Translation

Like

Like

Love

Haha

Wow

Sad

Angry

CommentShare

Comments

Eundoo Song tdd는 서브 모듈 만들때 가끔 사용하는데, google test를 사용하고 있습니다. tdd는 개발 방법이라 언어종류에 상관없이 사용될수 있다고 생각합니다.See Translation

Like · Reply · 2 · December 24, 2015 at 1:44pm

Lyn Heo tdd랑 쉽게 쓰는거랑 무슨 관계가 있는진 모르겠지만... 하고있는 프로젝트는 꽤 많습니다.

 

예를들면 redis 라던가..(https://github.com/antirez/redis/tree/unstable/tests)See Translation

antirez/redis

redis - Redis is an in-memory database that persists on disk. The data model is key-value, but many different…

GITHUB.COM

Like · Reply · December 28, 2015 at 10:25pm

Lyn Heo 유닛테스트까지 전부 C++로 된건 이런게 있겠네요..

페이스북의 라이브러리입니다. redis 껀 유닛테스트가 아니라 기능테스트 스타일이고(제가 좋아하는 스타일)

 

https://github.com/facebook/folly/tree/master/folly/testSee Translation

Like · Reply · December 28, 2015 at 10:36pm · Edited

Lyn Heo 힙합VM 은 유닛테스트와 기능테스트가 섞인 형태 ..

https://github.com/facebook/hhvm/tree/master/hphp/testSee Translation

facebook/hhvm

hhvm - A virtual machine designed for executing programs written in Hack and PHP.

GITHUB.COM

 

출처: <https://www.facebook.com/groups/cppkorea/>

 

Seok-joon Yun

December 24, 2015 · Seoul

정말 몰라서 하는 질문인데요 ㅠㅠ

void a { T *t = new T(); ... delete t; }

위와 같이하는 것이

void a { T t; ... }

아래보다 더 좋은 점이 있나요?

이럴 경우는 위와 같이 하는게 더 좋다던지...

See Translation

Like

Like

Love

Haha

Wow

Sad

Angry

CommentShare

7

7

Comments

Han Jea Jae 전자는 메모리를 힙에 할당하고 후자는 스택 메모리에 할당할텐데,

 

스택 공간을 절약해야하는 상황이 아니라면 스택에 할당하는게 성능상 이점이 있지 않나요?See Translation

Like · Reply · 2 · December 24, 2015 at 10:19am

Han Jea Jae 그러나 위대하신 몇 컴파일러는 저정도는 그냥 스택에 할당하는 최적화를 보여주시지 않을까 싶은데 실제로 어떻게 동작할지는 모르겠네요.See Translation

Like · Reply · 1 · December 24, 2015 at 10:21am

Write a reply...

Eundoo Song 힙을 사용하느냐 스택 사용하느냐의 차이인것 같은데요? 아무래도 스택을 사용하는게 빠를것 같습니다. new를 하면 내부적으로 malloc이 불리는데 이것 또한 함수 콜이고 malloc 자체도 그리 간단치 않는 구현으로 알고 있습니다. 스택인 경우 할당된 스택으로 저장이 되서 활용하는거라 몇개의 어셈 명령어로 구현가능합니다. 레지스터 여유가 있다면 스택을 안쓰고 레지스터에 바로 할당되는 컴파일러 최적화가 있을수 있겠네요. 이러면 메모리 연산을 안하므...See MoreSee Translation

Like · Reply · 5 · December 24, 2015 at 10:31am · Edited

Dongwoo Lee 멀티쓰레드 쓰실 때요.See Translation

Like · Reply · 5 · December 24, 2015 at 10:31am

Dongwoo Lee 아무래도 스택에 생성해놓고 쓰레드 간 공유하면 손이 많이 갈 것 같네요.See Translation

Like · Reply · 1 · December 24, 2015 at 10:33am

Eundoo Song 아 맞네요. 이때 유용합니다. 전 락 구간을 최소화하기 위해 공유자원을 스택에 저장한후 락 release를 합니다.See Translation

Like · Reply · 2 · December 24, 2015 at 10:35am · Edited

View more replies

Write a reply...

박재현 a() 인거죠?? -0-;;See Translation

Like · Reply · 2 · December 24, 2015 at 10:32am

Seok-joon Yun 네 맞숩니당 ㅠㅠ 잘못 썼었네용.See Translation

Like · Reply · December 24, 2015 at 10:33am

박재현 제 경우에는 스코프를 벗어나서 쓰일 이유가 있는 경우를 제외하고는 늘 후자를 사용하는편입니다. 윗 분이 말씀하신 멀티쓰레드의 경우나 재귀호출을 하면서 공유할 데이터인 경우 등은 마찬가지 이유(새로운 스코프 진입)로 전자를 쓰는게 유용하겠구요.See Translation

Like · Reply · 1 · December 24, 2015 at 10:45am · Edited

Write a reply...

Seok-joon Yun 제한재 Eundoo Song 답변 감사 드립니당 ^_^See Translation

Like · Reply · December 24, 2015 at 10:34am

Minjang Kim 송은두님께서 잘 말씀해드렸네요. 약간만 첨언하자면 T가 POD 같은 별도의 힙 할당을 하지 않고 크기가 크지 않다면 후자의 방법, 그냥 스택의 지역 변수로 하는 것이 훨씬 빠릅니다. 말씀하셨듯이 new는 힙 할당을 해야하고 그 자체가 오버헤드이므로 컴파일 시간에 미리 할당되는 스택과 비교하면 오버헤드가 큽니다. 하지만 스택은 보통 그 크기가 작고 (몇 MB) 깨지면 대책이 없으므로 큰 용량이라면 안전하게 new로 하는 것이 좋겠는데요. 보통 POD 객체가 엄청 크지는 않을테니 결국 힙 할당을 할 것이고 최소 객체 자체만이라도 스택에 두는 건 new/delete를 안 해도 되는 등 여러 장점이 있습니다. 자바에서도 로컬 변수가 밖으로 나가지 않는다는 걸 검증할 수 있으면 컴파일러가 해당 변수를 스택으로 바꾸는 최적화를 합니다.See Translation

Like · Reply · 7 · December 24, 2015 at 10:59am · Edited

Chan Ryu 전자는 ... 에서 exception 이 발생하면 memory leak 이 생깁니다.See Translation

Like · Reply · 1 · December 24, 2015 at 6:07pm

Jun Ryoung Ju 속도같은경우에는 메모리를 Lock 해주는걸로 스택과 비슷한 성능을 낼수 있지 않을까요.See Translation

Like · Reply · December 26, 2015 at 2:56pm

Nam Jeongho std::unique_ptr<T> t(new T());

Like · Reply · December 28, 2015 at 11:20pm

 

출처: <https://www.facebook.com/groups/cppkorea/>

 

 

Lyn Heo

January 7

ifdef ~ else ~ endif 가 매우 복잡하게 얽혀있는 C++ 소스 구합니다.

오픈소스중에 아는거 있으시면 링크 알려주셔도 되고, 공개 가능한 소스라면 올려주시면 감사하겠습니다.

개인적인 용도로 사용하려 합니다.

Ifdef ~ else ~ Cond / / very complicated in C++ Source District.

One of the open-source, if you know a link to the public, jusyeodo source as possible if you put.

Personal purposes to use.

 · 

Rate this translation

Like

Like

Love

Haha

Wow

Sad

Angry

CommentShare

3

3

Comments

Chan Ryu C++는 아니고 그냥 C 이지만, 제가 아는 최악의 macro hell 은 Vim입니다.

예를 들자면,

https://github.com/vim/vim/blob/master/src/gui.c#L398-L437See Translation

vim/vim

vim - The official Vim repository

GITHUB.COM

Like · Reply · 1 · January 8 at 1:09am

Minjang Kim binutils + gdb 소스코드 아무거나 열어보세요.https://github.com/.../binutils-gdb/blob/master/gas/read.cSee Translation

bminor/binutils-gdb

Unofficial mirror of sourceware binutils-gdb repository. Updated daily.

GITHUB.COM

Like · Reply · 1 · January 8 at 4:53am

Lyn Heo 감사합니다 더 있으신분들은 더 올려주세요See Translation

Like · Reply · January 8 at 7:11pm

Lyn Heo 두분다 감사합니다.

 

덕분에 잘 테스트했습니다....See MoreSee Translation

lynheo/Lyn-EraseIFDEF

Lyn-EraseIFDEF - Remove #ifdef ~ #else ~ #endif from C++ source codes

GITHUB.COM

Like · Reply · 2 · January 12 at 10:29pm

 

출처: <https://www.facebook.com/groups/cppkorea/>

 

 

 

Concurrency in action chapter9 쓰레드풀 소스 코드를 보면서 이것저것 하는중에 재미있는걸 발견해서 질문드려 봅니다.

보통 쓰레드풀 구현할때 hardware_concurrency() 함수에서 리턴되는 하드웨어가 지원하는 스레드 갯수 만큼 만들게 되고 다른 구현들도 그러던데요.

그런데 좀 생각해보니깐 보통 메인 쓰레드는 계속 유지되어있는 상태니깐 분명 hardware_concurrency 개수보다 많겠더라구요 process explorer로 확인해도 그렇구요.

그래서 쓰레드 개수를 hardware_concurrency, hardware_concurrency-1 

두가지 케이스로 나누고 visual studio concurrency시각화 도구를 이용해서 분석을 해 봤는데 쓰레드 갯수 한개 차이 나는데도 선점에 꽤 많은 차이가 나더라구요.

첫번째 사진이 hardware_concurrency-1(쓰레드 개수 4개)

두번째 사진이 hardware_concurrency(쓰레드 개수 5개)

참고로 제 컴퓨터에서 hardware_concurrency리턴값은 4 입니다.

시간측정에서는 큰 차이는 안나지만 조금 있긴하네요

쓰래드 개수 4개

time elapsed : 86.7734 time elapsed : 87.461 time elapsed : 88.5749

쓰래드 개수 5개

time elapsed : 88.519 time elapsed : 89.0126 time elapsed : 89.3743

컴파일 환경은 vs2015 x86 release모드에서 진행했습니다.

테스트 한 코드는 

https://github.com/jen6/ThreadPool_Concurrency_in_action

위 주소 깃헙에 올려두었습니다

제가 궁금한점은

실제 쓰레드 개수 1개 차이 때문에 선점에서 더 많은 비율이 사용될 수 있나요? 아니면 제가 concurrency 시각화 도구를 잘못 사용해서 그런걸까요?

실제 실무에서는 쓰레드풀을 사용 할 때 전체 쓰레드 개수를 고려해서 사용하는지 궁금합니다

See Translation

 

Like

Like

Love

Haha

Wow

Sad

Angry

CommentShare

11

11

Comments

Sang Heon Lee 당연히 cpu core 개수를 고려해서 만들어야하고요, 얼마나 만들지는 어플리케이션 설계에 따라 달라지겠죠. 이 예제에선 요청하는 쓰레드도 바쁘고 처리하는 쓰레드도 바쁘기 때문에 hardware_concurrency - 1만큼 만드는게 맞는 것 같네요. 마지막 작업 요청이 끝난 시간과 완료되는 시간이 거의 차이가 안날테니깐요.See Translation

Like · Reply · 1 · January 11 at 9:11am

Sang Heon Lee 람다안에 sleep을 넣어서 요청이 모두 끝나고 일을 시작하게 해보세요 ㅎㅎSee Translation

Like · Reply · January 11 at 9:34am

김명신 적절한 thread의 갯수는 workload의 특성이 주요하기 때문에 실상 Hardware_concurrency() 등은 참고사항 정도로만 살피는 것이 좋을 것 같습니다.See Translation

Like · Reply · 2 · January 11 at 10:12am

손건 음~ 그러면 결국 작업에 따라서 달라지기 때문에 프로파일링 해본 후에 최적의 개수를 알아내는게 최선이겠군요

hardware_concurrency역시 silver bullet이 아닌걸로 알고있으면 되겠네요 감사삽니다See Translation

Like · Reply · January 11 at 11:44am

김명신 빙고See Translation

Like · Reply · January 11 at 11:51am

Write a reply...

Minjang Kim CPU가 지원하는 논리 CPU 개수보다 많은 스레드를 바쁘게 돌리면 아래쪽 그림과 같이 컨텍스트 스위칭하는 비용이 크게 발생해서 스루풋, 레이턴시, 에너지 모두 손실을 볼 확률이 높습니다. 이건 스레드풀과 꼭 연관이 있는 것이 아니라 컨텍스트 스위칭 비용에 관한 내용입니다. 쿼드코어에서는 당연히 hardware_concurrency가 4를 리턴할 건데요. 이 외의 다른 스레드도 바삐 돈다면 컨텍스트 스위칭이 더 들겠죠. 프로파일링 자료에 잘 보이네...See MoreSee Translation

Like · Reply · 1 · January 11 at 4:13pm · Edited

손건 concurrency in action책에서 점점 쓰레드풀을 발전 시켜 나가는데 맨 앞부분 소스를 그냥 가져다 썻더니 task들이 다끝나기도 전에 소멸자가 호출되버려서요. 귀찮아서 소멸자에다가 큐가 빌때까지 while문 돌려놓는 바람에 그만 =_=...

보통은 작업자 쓰레드만 열심히 돌아야 하나보네요 조언 갑사합니다

시간나면 더 좋은 테스트코드를 작성해보겠습니다See Translation

Like · Reply · 1 · January 11 at 4:31pm

Minjang Kim replied · 5 Replies

신준섭 건아 나도 멀티스렏. 알려줘See Translation

Like · Reply · January 12 

 

출처: <https://www.facebook.com/groups/cppkorea/>

 

ks_wlan_get_auth_mode

bss_config

 

 

https://wikidevi.com/wiki/Wireless_adapters/Chipset_table

\drivers\net\wireless

\drivers\staging\

\net\wireless

 

System.out.println(Arrays.toString(sortedMap.entrySet().toArray()));

 

 

 

//                for (String s : sortedPoints.values())

//                        System.out.println(s);

 

 

 

import java.util.*;

class Solution {

    int solution(int[] A) {

        int n = A.length;

        int[] L = new int[n + 1];

        L[0] = -1;

        for (int i = 0; i < n; i++) {

            L[i + 1] = A[i];

        }

        int count = 0;

        int pos = (n + 1) / 2;

        int candidate = L[pos];

        for (int i = 1; i <= n; i++) {

            if (L[i] == candidate)

                count = count + 1;

        }

        if (count > pos )

            return candidate;

        return (-1);

    }

}

 

 

'Blog History' 카테고리의 다른 글

174  (0) 2020.04.14
173  (0) 2020.04.14
171  (0) 2020.04.14
170  (0) 2020.04.14
169  (0) 2020.04.14

This is a demo task. You can read about this task and its solutions in this blog post.

A zero-indexed array A consisting of N integers is given. An equilibrium index of this array is any integer P such that 0 ≤ P < N and the sum of elements of lower indices is equal to the sum of elements of higher indices, i.e. 

A[0] + A[1] + ... + A[P−1] = A[P+1] + ... + A[N−2] + A[N−1].

Sum of zero elements is assumed to be equal to 0. This can happen if P = 0 or if P = N−1.

For example, consider the following array A consisting of N = 8 elements:

A[0] = -1 A[1] = 3 A[2] = -4 A[3] = 5 A[4] = 1 A[5] = -6 A[6] = 2 A[7] = 1

P = 1 is an equilibrium index of this array, because:

  • A[0] = −1 = A[2] + A[3] + A[4] + A[5] + A[6] + A[7]

P = 3 is an equilibrium index of this array, because:

  • A[0] + A[1] + A[2] = −2 = A[4] + A[5] + A[6] + A[7]

P = 7 is also an equilibrium index, because:

  • A[0] + A[1] + A[2] + A[3] + A[4] + A[5] + A[6] = 0

and there are no elements with indices greater than 7.

P = 8 is not an equilibrium index, because it does not fulfill the condition 0 ≤ P < N.

Write a function:

class Solution { public int solution(int[] A); }

that, given a zero-indexed array A consisting of N integers, returns any of its equilibrium indices. The function should return −1 if no equilibrium index exists.

For example, given array A shown above, the function may return 1, 3 or 7, as explained above.

Assume that:

  • N is an integer within the range [0..100,000];
  • each element of array A is an integer within the range [−2,147,483,648..2,147,483,647].

Complexity:

  • expected worst-case time complexity is O(N);
  • expected worst-case space complexity is O(N), beyond input storage (not counting the storage required for input arguments).

Elements of input arrays can be modified.

Copyright 2009–2016 by Codility Limited. All Rights Reserved. Unauthorized copying, publication or disclosure prohibited.

 

출처: <https://codility.com/c/run/demoKN884W-Q3Z>

 

 

계속 모른다는데 깊은 내공이 느껴지네요. 경험주의자인 저에게 이렇게 실험을 많이 하는 분은 정말 존경합니다. "모른다"에 대한 뇌피셜을 말해보면, 환원주의는 통하지 않는다고 생각하는게 딥러닝 분야죠. 일반 분야라도 마찬가지 입니다. 수학의 f(x) -> Sum(f(x)) 처럼 코딩 레벨에서도 수많은 wrapping이 존재하는데 멀티 쓰레드를 쓰고 비동기 injection 코드들을 넣고 프레임웍에서 queue msg 구로 만든 후 그 현상을 기계어 코드로 번역 하고 분석해보려 해도 잘 안됩니다. helloWorld 를 프린트 하는데 프린트 하는 구문 뿐 아니라 해당 프로그램을 실행하는 덩어리 모두(OS의 컨택스트 스위칭 시켜주는 부분까지) 기계어 코드로 보고 역으로 이해하고 있는 것을 하나씩 분석하려 했을 때 많은 시간이 걸릴 것은 자명하죠. 목적과 ROI 문제로 귀결되는데

 

ALEXNET

비판 : 연금술, 블랙박스

 

Activation Functions

제프리힌튼 교수

시그모이드 30 붙잡고 ... ?

ReLU 쓰면 되는데

Vanishing Gradient Problem(기울기값이 사라지는 문제)

 

레이어 갯수 2 배수

 

 

high dimensional space

 

 

데이터 오해의 소지.

imageNet 개사진 100만장 = 1000개의 종류 * 1000

, 1000장으로 학습 시킴.

 

duprex

finding weights

 

turing test

 

IoT + AI + 3D(AR/VR)

 

(센서 데이터1 * 가중치 + coeficient) * Actication Function

(센서 데이터2 * 가중치 + coeficient)

 

 

AF is not Non-linear function

Non-linear function 직선 X

 

Multiple Layer

NN, hidden 2 이상 deep learning

 

input - hidden - output

 

layer 거칠 마다 non-linear function 추가됨.

 

학습데이터 : 연습문제

실생활데이터 : 시험

1 high bias (underfit) 2(just right) 3 함수(high variance, overfit)

 

풀어야 하는 문제는 간단한데 모델이 너무 복잡함

 

단순화 : dropout (랜덤하게)

Vanishing Gradient

 

학습량 = 미분값 * 출력값

 

non-linear activation function 미분했을 0 나오면 학습할 없음

 

ReLU 미분값  1 출력값 제한 없음

 

3D 모델의 경우 여러개 찍을 있음.

그러나 1장의 경우 여러 필터를 써서 이미지를 변환시킴.

 

https://ko.wikipedia.org/wiki/%ED%95%A9%EC%84%B1%EA%B3%B1

 

CNN

LeNet - 숫자 인식기

convolution - pooling - convolution - pooling

'Blog History' 카테고리의 다른 글

173  (0) 2020.04.14
172  (0) 2020.04.14
170  (0) 2020.04.14
169  (0) 2020.04.14
168  (0) 2020.04.14

 

<script type="text/javascript">  var _gaq = _gaq || [];  _gaq.push(['_setAccount', 'UA-21469070-1']);  _gaq.push(['_trackPageview']);  (function() {    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);  })();</script>

 

Viper 안쓰는데 didSet을 Observable로 말씀하신 것 같네요. cellForRowAtIndexPath가 긴 것은 싫어서 객체 생성 묶음은 다른 function(cell에 붙이는 subviews)으로 빼고. 셀에서 생성된 객체를 담는 객체 포인터 연결로 테이블에서 뷰 수정하는게 아니라 해당 포인터에 연결된 객체를 변경 시키는 것은 notification center 메세지 받거나 서버 콜백 함수, singleton으로 만들어진 전역 flag를 따라 자동 변경되니 

 

 

FREE TRIALEASY

 BugfixingLeaderSorted

Subtypes: bug-fixing

Time: recommended limit 40 min

Find and correct bugs in a function that finds a value that occurs in more than half of the elements of an array.

add

FREE TRIALHARD

 CountMultiplicativePairs

Subtypes: math, sorting

Time: recommended limit 55 min

Count the number of pairs (x, y) such that x * y >= x + y.

add

FREE TRIALMEDIUM

 DeepestPit

Subtypes:

Time: recommended limit 60 min

Given an array of integers, find a bitonic sequence with maximal difference between the middle term and the first and the last terms.

add

FREE TRIALHARD

 MinAbsSliceSum

Subtypes: sorting

Time: recommended limit 55 min

Find a slice with the minimal absolute total.

add

FREE TRIALEASY

 PtrListLen

Subtypes: coding, lists, pointers

Time: recommended limit 25 min

Compute the length of single-link list without a cycle.

add

FREE TRIALEASY

 SqlSum

Subtypes: sql

Time: recommended limit 15 min

Calculate sum of elements.

add

MEDIUM

 AdjacentPointsMinDistance

 

HARD

 AdjacentValuesMaxDistance

 

HARD

 AdjacentValuesMinDistance

 

HARD

 ArithSliceCount

 

EASY

 ArrListLen

 

HARD

 BaseNeg2Addition

 

HARD

 BaseNeg2Inc

 

HARD

 BaseNeg2Inv

 

MEDIUM

 Battleships

 

EASY

 BitcountInProduct

 

MEDIUM

 BracketStringSplit

 

HARD

 BreakTheChain

 

HARD

 BroadestPathInMatrix

 

MEDIUM

 BugfixingBinaryPeriod

 

EASY

 BugfixingBisection

 

MEDIUM

 BugfixingCoins

 

EASY

 BugfixingConsecutiveIntegers

 

EASY

 BugfixingFavoriteNumber

 

EASY

 BugfixingFindCommonMin

 

EASY

 BugfixingLargestRightCyclicShift

 

EASY

 BugfixingMaxNonnegSliceSum

 

EASY

 BugfixingMaxOnesSpan

 

EASY

 BugfixingMostOften

 

HARD

 BugfixingNails

 

EASY

 CastleBuilding

 

EASY

 CentralSphereCoverageSize

 

HARD

 CircleIntersectionArea

 

MEDIUM

 CitiesDistances

 

EASY

 CodingArithSliceCount

 

EASY

 CodingDecReprSenior

 

EASY

 CodingEqui2DCount

 

EASY

 CodingMaxBiValuedSlice

 

ELEMENTARY

 CodingOnesInArithSeq

 

EASY

 CodingPrefixPermutations

 

HARD

 CodingSimilarIntegerCount

 

MEDIUM

 CodingSortedSwap

 

EASY

 CodingWholeSquareCount

 

HARD

 ConvexClosureInteriorVertexes

 

HARD

 ConvexHullSize

 

MEDIUM

 CountCollinearTriplets

 

HARD

 CountConformingBitmasks

 

HARD

 CountIdenticalPairs

 

HARD

 CountIncreasingSubsequences

 

HARD

 CountZeroSumSlices

 

HARD

 CountriesCount

 

EASY

 CurriculumVitae

 

HARD

 CyclicAutomorphisms

 

EASY

 DecReprSenior

 

HARD

 DecimalRepr

 

MEDIUM

 DecimalReprZip

 

EASY

 DigitlessPassword

 

MEDIUM

 ElevatorStops

 

EASY

 Equi2DCount

 

MEDIUM

 Equi3Positive

 

MEDIUM

 Fib

 

MEDIUM

 FileListVar (variant task)

 

ELEMENTARY

 FizzBuzzWoof

 

EASY

 FormatArray

 

EASY

 FormatPhoneNumber

 

EASY

 FourDigits

 

HARD

 GeneralFib

 

HARD

 HolidayAdvisor

 

EASY

 IntegerBinConstruction

 

EASY

 IntegerDecimalOccurrence

 

MEDIUM

 IntegerReductionCount

 

HARD

 IntervalUnfoldCount

 

HARD

 IntervalUnfoldSequence

 

MEDIUM

 JsCaptcha

 

MEDIUM

 JsFormValidation

 

EASY

 JsListDepth

 

EASY

 LargestSequenceGap

 

EASY

 LastBoundedElement

 

MEDIUM

 LimitedBinomialCoefficient

 

HARD

 LongestMatrixMonotonicSequence

 

MEDIUM

 LongestQuasiconstSubseq

 

EASY

 LongestSentence

 

MEDIUM

 MapCartesianToSpiral

 

HARD

 MatrixAutomorphicCyclicShiftsCount

 

HARD

 MaxAlignedSubset

 

HARD

 MaxAlternatingSlice

 

HARD

 MaxBiValuedSlice

 

HARD

 MaxFixedSumSlice

 

MEDIUM

 MaxMaxDifference

 

EASY

 MaxNonnegSliceSum

 

HARD

 MaxOddDecomposition

 

MEDIUM

 MaxOscillatingSlice

 

EASY

 MaxPerimeterTriangle

 

HARD

 MaxPowerFuncResult

 

MEDIUM

 MaxSliceProduct

 

MEDIUM

 MaxSumDistance

 

HARD

 MaxSwitchingSlice

 

EASY

 MinAnagrams

 

HARD

 MinBinarianEquivalent

 

HARD

 MinCountOfKnightMoves

 

EASY

 MinDist

 

HARD

 MinMergeTime

 

HARD

 MinPerimeterTriangle

 

MEDIUM

 ModuleLineIterator

 

HARD

 ModuleShopping

 

HARD

 MonkeyRiver

 

EASY

 Monotone

 

EASY

 MonotonicSegmentCount

 

HARD

 NextSparseBinary

 

HARD

 OnesInArithSeq

 

MEDIUM

 OptimizingFarthestDifferent

 

EASY

 OptimizingFarthestEqual

 

EASY

 ParkingBill

 

EASY

 PermCycles

 

MEDIUM

 PhoneBilling

 

EASY

 PlaneSeatingReservation

 

HARD

 PolyCoefsSum

 

MEDIUM

 Pow11

 

EASY

 PrefixPermutations

 

MEDIUM

 PublicTransportTickets

 

MEDIUM

 PublicTransportTicketsAlgo

 

HARD

 Rectiarea

 

ELEMENTARY

 ReversingCoins

 

EASY

 SaddleCount

 

MEDIUM

 Seq23

 

HARD

 ShortestKnightPath

 

HARD

 ShortestSliceToRemove

 

MEDIUM

 ShortestSliceToSort

 

HARD

 SimilarIntegerCount

 

EASY

 SkylinePaint

 

MEDIUM

 SortedSwap

 

MEDIUM

 SparseBinaryDecomposition

 

MEDIUM

 SqlBigTransfers

 

EASY

 SqlDepartments

 

MEDIUM

 SqlEventsDelta

 

EASY

 SqlInvSum

 

EASY

 SqlInvSumDesc

 

EASY

 SqlSensorTypes

 

EASY

 SqlSensorsMostRecent

 

MEDIUM

 SqlWorldCup

 

HARD

 StrPrefsuf

 

MEDIUM

 StringOcrMatch

 

EASY

 StringReducibility

 

HARD

 SumOfPowersOfMinusTwo

 

ELEMENTARY

 SumTwoDigitNumbers

 

ELEMENTARY

 TimeInSeconds

 

MEDIUM

 Times17DecDigitsSum

 

HARD

 Times3Bitcount

 

MEDIUM

 TransactionalStack

 

MEDIUM

 TreeMostDistinctPath

 

EASY

 TreeVisibility

 

HARD

 Tricoloring

 

HARD

 TurtleCrossing

 

EASY

 TwoDigitHours

 

MEDIUM

 UnionOfIntervals

 

MEDIUM

 UpperSpiralSum

 

EASY

 WholeSquareCount

 

MEDIUM

 WholeWeeks

 

MEDIUM

 WordMachineEmulator

 

HARD

 XorProduct

 

 

'Blog History' 카테고리의 다른 글

172  (0) 2020.04.14
171  (0) 2020.04.14
169  (0) 2020.04.14
168  (0) 2020.04.14
167  (0) 2020.04.13

 

잇썹 테스트 결과 맥은 외장 그래픽 써도 동영상 편집에는 별루인 것으로...

 

 

 

제가 중매쟁이는 아니지만 혹, 어려운 문제가 있다면, 늘 함께 문제를 푸는 것을 좋아하시는 분들이라 함께 뵈어도 좋고

제가 연결만 시켜드려도 좋습니다. 국내에서 운영체제를 만든 분은 몇 분 안되는데 그제도 뵈었습니다.

저는 기술을 좋아하는 사람인데 그러다보니 네트워크가 많아지게 되었고 나이가 드니 그 네트워크 만으로도 많은

문제를 풀 수 있음을 알게 되었습니다.

 

저는 ETRI에서는 대학생/대학원생 대상으로 1달 이상씩 펌웨어 단부터 프레임웍, 어플, 프로토콜, 머신러닝 관련하여

4년 전부터 강의를 했고 이번에도 강의 요청이 있어 강의를 할 것 같습니다.  도메인이 넓은 이유는 저는 일이관지의

프로토콜을 지양합니다. 쉽게 이야기를 하지만 쉽게 알아 들어서 기술을 우습게 보는 사람과는 상종하지 않습니다.

저 역시 쉽게 설명은 해도 우습게 보지 않기에 어려운 코딩을 계속 함께 합니다. 새로운 플랫폼도 계속 해 보려 합니다.

https://www.edaily.co.kr/news/read?newsId=02601046619435896&mediaCodeNo=257

이 외에도 ETRI  1위는 아니지만 다른 대회도 세계 대회 수상 기사가 있습니다.

https://itec.etri.re.kr/itec/sub02/sub02_01_1.do?t_id=1140-2019-00142

ETRI에서는 텐서 플로우 나왔을 때 따로 플랫폼도 만들고 있어서 전문가가 많이 있습니다.

3년간 한달 이상씩 강의를 하기도 했지만, 제가 가르친 학생들이 에트리 머신러닝 대회에서 수상한 점은 늘 자랑거리입니다.

물론, 제 강의의 장점은 코딩을 같이 합니다.  그러나 강의에서 가장 뛰어난 스킬은 커뮤니케이션 능력 입니다.

모르면 모른다고 하고 가르쳐 준 것도 다음 날 기억 안나면 학생들에게 물어 보고 학생들에게도 그렇게 가르칩니다.

 

binary gap within a positive integer N is any maximal sequence of consecutive zeros that is surrounded by ones at both ends in the binary representation of N.

For example, number 9 has binary representation 1001 and contains a binary gap of length 2. The number 529 has binary representation 1000010001 and contains two binary gaps: one of length 4 and one of length 3. The number 20 has binary representation 10100 and contains one binary gap of length 1. The number 15 has binary representation 1111 and has no binary gaps.

Write a function:

class Solution { public int solution(int N); }

that, given a positive integer N, returns the length of its longest binary gap. The function should return 0 if N doesn't contain a binary gap.

For example, given N = 1041 the function should return 5, because N has binary representation 10000010001 and so its longest binary gap is of length 5.

Assume that:

  • N is an integer within the range [1..2,147,483,647].

Complexity:

  • expected worst-case time complexity is O(log(N));
  • expected worst-case space complexity is O(1).

Copyright 2009–2016 by Codility Limited. All Rights Reserved. Unauthorized copying, publication or disclosure prohibited.

 

package codility;

 

class Solution1_BinaryGap {

static int solution(int N) {

// write your code in Java SE 8

int rtn = 0, cnt = 0;

boolean flag = false;

 

while (N > 1) {

N /= 2;

if (cnt > rtn && flag) {

rtn = cnt;

flag = false;

}

if (N % 2 == 0 && flag) {

cnt += 1;

continue;

} else if( N % 2 == 1) {

flag = true;

cnt = 0;

}

}

return rtn;

}

 

public static void main(String[] args) {

System.out.println(solution(9));

}

}

'Blog History' 카테고리의 다른 글

171  (0) 2020.04.14
170  (0) 2020.04.14
168  (0) 2020.04.14
167  (0) 2020.04.13
166  (0) 2020.04.12

C:\Users\joe>arp -a

 

인터페이스: 192.168.152.1 --- 0xc

  인터넷 주소           물리적 주소           유형

  192.168.152.255       ff-ff-ff-ff-ff-ff     정적

  224.0.0.2             01-00-5e-00-00-02     정적

  224.0.0.22            01-00-5e-00-00-16     정적

  224.0.0.251           01-00-5e-00-00-fb     정적

  224.0.0.252           01-00-5e-00-00-fc     정적

  239.255.255.250       01-00-5e-7f-ff-fa     정적

 

인터페이스: 192.168.123.2 --- 0x10

  인터넷 주소           물리적 주소           유형

  192.168.123.1         70-5d-cc-32-2c-e9     동적

  192.168.123.255       ff-ff-ff-ff-ff-ff     정적

  224.0.0.2             01-00-5e-00-00-02     정적

  224.0.0.22            01-00-5e-00-00-16     정적

  224.0.0.251           01-00-5e-00-00-fb     정적

  224.0.0.252           01-00-5e-00-00-fc     정적

  224.168.100.1         01-00-5e-28-64-01     정적

  239.255.255.250       01-00-5e-7f-ff-fa     정적

  255.255.255.255       ff-ff-ff-ff-ff-ff     정적

 

인터페이스: 192.168.52.1 --- 0x1f

  인터넷 주소           물리적 주소           유형

  192.168.52.255        ff-ff-ff-ff-ff-ff     정적

  224.0.0.2             01-00-5e-00-00-02     정적

  224.0.0.22            01-00-5e-00-00-16     정적

  224.0.0.251           01-00-5e-00-00-fb     정적

  224.0.0.252           01-00-5e-00-00-fc     정적

  239.255.255.250       01-00-5e-7f-ff-fa     정적

 

인터페이스: 192.168.188.49 --- 0x2e

  인터넷 주소           물리적 주소           유형

  192.168.188.63        ff-ff-ff-ff-ff-ff     정적

  224.0.0.2             01-00-5e-00-00-02     정적

  224.0.0.22            01-00-5e-00-00-16     정적

  224.0.0.251           01-00-5e-00-00-fb     정적

  239.255.255.250       01-00-5e-7f-ff-fa     정적

  255.255.255.255       ff-ff-ff-ff-ff-ff     정적

 

C:\Users\joe>

카카오, 안철수 불편한 진실

 

출처: <https://brunch.co.kr/write?magazineNo=33407>

 

 

내가 제대로 욕하지 못하는 이유

 

출처: <https://brunch.co.kr/write?magazineNo=33407>

 

 

 

오래간만에 ETC 매거진에 글을 쓴다.

 

이번 글은 소제목에 '나'라는 것을 적는다. 종교, 사상만큼 민감한 주제이니 만큼 독자는 주의를 요하기 때문이다. 내 생각이 모두 옳다고 생각하지 말고 다양한 생각이 옳을 수 있다는 가정을 먼저 해야 한다.

 

1

 

 

 

 

 

안철수가 정치계로 가지 않았다면 이순신과 같이 이름을 남겼을 인물이다. 돈에 눈이 멀어 V3를 해외에 팔지 않았기 때문에 배달의 민족처럼 없는 사람 등쳐먹지 않고 무료 버전을 꾸준히 배포할 수 있었다.

 

출처: <https://brunch.co.kr/write?magazineNo=33407>

 

C:\Users\joe>ipconfig

 

Windows IP 구성

 

 

이더넷 어댑터 이더넷 3:

 

   연결별 DNS 접미사. . . . :

   링크-로컬 IPv6 주소 . . . . : fe80::ed1d:15ff:2a0d:b80e%16

   IPv4 주소 . . . . . . . . . : 192.168.123.2

   서브넷 마스크 . . . . . . . : 255.255.255.0

   기본 게이트웨이 . . . . . . : 192.168.123.1

 

이더넷 어댑터 VMware Network Adapter VMnet1:

 

   연결별 DNS 접미사. . . . :

   링크-로컬 IPv6 주소 . . . . : fe80::4c43:2dd5:d4d2:5391%31

   IPv4 주소 . . . . . . . . . : 192.168.52.1

   서브넷 마스크 . . . . . . . : 255.255.255.0

   기본 게이트웨이 . . . . . . :

 

이더넷 어댑터 VMware Network Adapter VMnet8:

 

   연결별 DNS 접미사. . . . :

   링크-로컬 IPv6 주소 . . . . : fe80::5cf9:e84e:387d:a468%12

   IPv4 주소 . . . . . . . . . : 192.168.152.1

   서브넷 마스크 . . . . . . . : 255.255.255.0

   기본 게이트웨이 . . . . . . :

 

이더넷 어댑터 vEthernet (Default Switch):

 

   연결별 DNS 접미사. . . . :

   링크-로컬 IPv6 주소 . . . . : fe80::a50e:7453:7055:9f02%46

   IPv4 주소 . . . . . . . . . : 192.168.188.49

   서브넷 마스크 . . . . . . . : 255.255.255.240

   기본 게이트웨이 . . . . . . :

 

C:\Users\joe>ping 192.168.123.1

 

Ping 192.168.123.1 32바이트 데이터 사용:

192.168.123.1의 응답: 바이트=32 시간<1ms TTL=64

192.168.123.1의 응답: 바이트=32 시간<1ms TTL=64

192.168.123.1의 응답: 바이트=32 시간<1ms TTL=64

192.168.123.1의 응답: 바이트=32 시간<1ms TTL=64

 

192.168.123.1에 대한 Ping 통계:

    패킷: 보냄 = 4, 받음 = 4, 손실 = 0 (0% 손실),

왕복 시간(밀리초):

    최소 = 0ms, 최대 = 0ms, 평균 = 0ms

 

C:\Users\joe>nslookup google.com

DNS request timed out.

    timeout was 2 seconds.

서버:    UnKnown

Address:  127.0.0.1

 

DNS request timed out.

    timeout was 2 seconds.

DNS request timed out.

    timeout was 2 seconds.

*** UnKnown에 대한 요청이 제한 시간을 초과했습니다.

 

C:\Users\joe>nslookup google.com

DNS request timed out.

    timeout was 2 seconds.

서버:    UnKnown

Address:  168.126.63.1

 

DNS request timed out.

    timeout was 2 seconds.

DNS request timed out.

    timeout was 2 seconds.

DNS request timed out.

    timeout was 2 seconds.

DNS request timed out.

    timeout was 2 seconds.

*** UnKnown에 대한 요청이 제한 시간을 초과했습니다.

 

      1. 경제 공부한다고 생각하자.
      2. 단타를 하자. 손절매 하더라도 다양한 기업들을 보자. 어느 정도 기업이 파악될 되고 성장이 예상되면 주기적으로 매매하는 기업으로 선정하자. (: 조선업 불황일 조선은 무조건 피하자, 기업 인수성 투매는 1/10 넣자)
      3. 매출액이 커진다는 것은 기업이 성장하고 있다는 뜻이다. 그러나 경쟁업체는 항상 있다. 안되면 출혈 경쟁도 한다. 이익을 우선해서 보자. 당기순이익, 경상이익, 영업이익.
      4. PER 25 이상은 사지 말자.(주가/주당순이익)
      5. PER 10~25 사이면 년도별 비교해서 낮은 가격이면 사자. 때도 이익이 - 매수 말자.
      6. EPS 순이익/주식수
      7. ROE(Return on Equity) 자기자본 수익률 - 1년간 이익 / 자기자본
      8. 유보율 reserve ration 적립된 자본, 자본총계-배당금-자본금 / 자본금
      9. 부채비율 debt ratio 타인자본/자기자본 * 100
      10. PBR Price/Book-value Ratio, 주가순자산비율 주가/주당순자산, 1 경우 주가와 순자산이 같은 경우, 낮을 수록 저평가 되어 있음.
      11. BPS 순자산/발행주식수 - 순자산만으로 주의 가격이 얼마여야 적당한가?

 

 

 

 

iPhone XR

일련 번호:

다른 일련 번호 확인하기

유효한 구입일

확인된 구입일을 알려주시면 Apple에서 신속하게 고객님의 제품을 찾아 도와 드릴 수 있습니다.

전화 기술 지원: 유효함

고객님의 제품은 AppleCare 제품에 적용되는 전화 기술 지원 대상입니다.

AppleCare 제품에 대한 추가 정보(새 윈도우에서 열림)

Apple 지원에 문의하기

수리 및 서비스 보증: 유효함

고객님의 제품에는 AppleCare 제품에 따라 대상 하드웨어 수리 및 서비스가 적용됩니다.

고객님의 제품에 대한 Apple의 보증 정보를 알아보십시오.(새 윈도우에서 열림)

수리 신청하기

AppleCare Protection Plan이 적용됨

AppleCare Protection Plan을 통해 최대 2년까지 iPhone에 대한 추가 서비스 및 지원을 받으실 수 있습니다.

보증 종료일: 2021년 5월 3일

'Blog History' 카테고리의 다른 글

170  (0) 2020.04.14
169  (0) 2020.04.14
167  (0) 2020.04.13
166  (0) 2020.04.12
165  (0) 2020.04.12


https://github.com/0xced/XCDYouTubeKit/issues/157

MPMoviePlayerViewController

@interface MPMoviePlayerController (BackgroundPlayback)

#import "MPMoviePlayerController+BackgroundPlayback.h"
#
#

Thread 1: Exception: "MPMoviePlayerController is no longer available. Use AVPlayerViewController in AVKit."

_player = [[MPMoviePlayerController alloc] initWithContentURL:nil];

AVPlayer *_player;
_player = [[AVPlayer alloc] initWithContentURL:nil];
    _player = [[AVPlayer alloc] initWithURL:nil];

Property 'view' not found on object of type 'AVPlayer *'

{
"body":{"id":"2gN5l1PJQHo=","sex":"GOXjbJ8/rFQ=","phone":"xqHmggVdb1S7qZ7Or9Vepg==","no_mbr_site":"FK/Qli9YF2xXjm4Ki1ESAw==","no_mbr":"+vjuEVubVKFXjm4Ki1ESAw==","email":"PI9YuD4aPx2i8FIU8eJ/83fWc4rxIrNp","yn_join_mbr_site":"XvOWbi0Kw3s=","mail_yn":"XvOWbi0Kw3s=","name":"TwjUVvceNiQpfBvH15RFtA==","brth_dt":"rzhLH0n8r11Xjm4Ki1ESAw==","card_list":[],"sms_yn":"XvOWbi0Kw3s="},
"header":
{
"message":"success",
"result":"0000",
"running_time":"71",
"session_key":"abcdefgggghhh"
}
}

Network Not Reachable"

 UIAlertView *alert =[[UIAlertView alloc] initWithTitle:@"" message:NSLocalizedString(@"Network Not Reachable",nil) delegate:nil cancelButtonTitle:@"다시시도" otherButtonTitles:nil];

{
"body":{"id":"2gN5l1PJQHo=","sex":"GOXjbJ8/rFQ=","phone":"xqHmggVdb1S7qZ7Or9Vepg==","no_mbr_site":"FK/Qli9YF2xXjm4Ki1ESAw==","no_mbr":"+vjuEVubVKFXjm4Ki1ESAw==","email":"PI9YuD4aPx2i8FIU8eJ/83fWc4rxIrNp","yn_join_mbr_site":"XvOWbi0Kw3s=","mail_yn":"XvOWbi0Kw3s=","name":"TwjUVvceNiQpfBvH15RFtA==","brth_dt":"rzhLH0n8r11Xjm4Ki1ESAw==","card_list":[],"sms_yn":"XvOWbi0Kw3s="},
"header":
{
"message":"success",
"result":"0000",
"running_time":"158",
"session_key":"abcdefgggghhh"
}
}


, length=503


2020-04-13 04:11:48.531695+0900 DaelimMuseum[69671:10470414] <PlayerViewController.m:(557)> play url = https://www.daelimmuseum.org:443/att/%5B365994_372809%5D20200412210543.mp4

    
    NSURL *url = [[NSURL alloc] initWithString:playurl]; // url can be remote or local

MPMoviePlayerController 마이그레이션 완료. 역시 작업은 새벽인가.
최적은 작업 타임존은 3~5시

 



- (void)pinchZoom:(UIPinchGestureRecognizer *)recognizer
{
    NSLog(@"Pinch scale: %f", recognizer.scale);
    
    if(recognizer.scale < 1) recognizer.scale = 1;
    
    CGAffineTransform transform = CGAffineTransformMakeScale(recognizer.scale, recognizer.scale);
    //                                       you can implement any int/float value in context of what scale you want to zoom in or out
    mainPanel.transform = transform;
    
    // make these static so they can be used across gesture states
    static CGAffineTransform initialTransform;
    static CGPoint initialAnchor;
    
    if (recognizer.state == UIGestureRecognizerStateBegan) {
        // save these for later states
        initialTransform = recognizer.view.transform;
        initialAnchor = recognizer.view.layer.anchorPoint;
        
        // get the center point of the pinch
        CGPoint touch = [recognizer locationInView:mainPanel];
        
        // anchor point is relative to the view bounds:  0 ... up to 1.0, for both x and y
        CGFloat anchorX = touch.x / recognizer.view.bounds.size.width;
        CGFloat anchorY = touch.y / recognizer.view.bounds.size.height;
        
        // set the layer anchor point AND position, to where the view was initially pinched
        [self setAnchorPoint:CGPointMake(anchorX,anchorY) forView:mainPanel];
        
    } else if (recognizer.state == UIGestureRecognizerStateChanged) {
        // perform the pinch zoom
        mainPanel.transform = CGAffineTransformScale(initialTransform,recognizer.scale,recognizer.scale);
        
    } else if (recognizer.state == UIGestureRecognizerStateEnded) {
        // reset the scale when it's done
        recognizer.scale = 1;
        
        // restore the original anchor point
        [self setAnchorPoint:initialAnchor forView:mainPanel];
    }

    CGRect transformedBounds = CGRectApplyAffineTransform(mainPanel.bounds, mainPanel.transform);
    
    [_scrollview setContentSize:CGSizeMake(transformedBounds.size.width, transformedBounds.size.height)];
//    [_scrollview setContentSize:CGSizeMake(transformedBounds.size.width / 2.7, transformedBounds.size.height / 2.7)];
    
}

'Blog History' 카테고리의 다른 글

169  (0) 2020.04.14
168  (0) 2020.04.14
166  (0) 2020.04.12
165  (0) 2020.04.12
164  (0) 2020.04.12




Your rank
26/40
Your best model
test002
Name
test008
Submission time
2020. 4. 11. 오전 11:18:01
Status


init reward 0에서는 안됨. 1e-3

 

ERROR

 

2018-12-18 16:13:09.733458+0900 lumini[71028:1397241] LOG SocketIOClient{/}: Adding handler for event: connect

2018-12-18 16:13:09.733782+0900 lumini[71028:1397241] LOG SocketIOClient{/}: Adding handler for event: currentAmount

2018-12-18 16:13:09.734582+0900 lumini[71028:1397241] LOG SocketIOClient{/}: Handling event: statusChange with data: [connecting]

2018-12-18 16:13:09.734815+0900 lumini[71028:1397241] LOG SocketIOClient{/}: Joining namespace /

2018-12-18 16:13:09.734995+0900 lumini[71028:1397241] LOG SocketManager: Tried connecting socket when engine isn't open. Connecting

2018-12-18 16:13:09.735148+0900 lumini[71028:1397241] LOG SocketManager: Adding engine

2018-12-18 16:13:09.736258+0900 lumini[71028:1397326] LOG SocketEngine: Starting engine. Server: http://localhost:3000

2018-12-18 16:13:09.736713+0900 lumini[71028:1397326] LOG SocketEngine: Handshaking

2018-12-18 16:13:09.736906+0900 lumini[71028:1397241] LOG SocketManager: Manager is being released

2018-12-18 16:13:09.739525+0900 lumini[71028:1397326] LOG SocketEnginePolling: Doing polling GET http://localhost:3000/socket.io/?transport=polling&b64=1

2018-12-18 16:13:09.873529+0900 lumini[71028:1397327] [] nw_socket_handle_socket_event [C1.1:2] Socket SO_ERROR [61: Connection refused]

2018-12-18 16:13:09.877390+0900 lumini[71028:1397327] [] nw_socket_handle_socket_event [C1.2:2] Socket SO_ERROR [61: Connection refused]

2018-12-18 16:13:09.878997+0900 lumini[71028:1397327] TIC TCP Conn Failed [1:0x600002cfe100]: 1:61 Err(61)

2018-12-18 16:13:09.887170+0900 lumini[71028:1397327] Task <C05E0598-DAE0-4BEF-8873-0F26035A26EE>.<1> HTTP load failed (error code: -1004 [1:61])

2018-12-18 16:13:09.887555+0900 lumini[71028:1397327] Task <C05E0598-DAE0-4BEF-8873-0F26035A26EE>.<1> finished with error - code: -1004

2018-12-18 16:13:09.893046+0900 lumini[71028:1397326] ERROR SocketEnginePolling: Could not connect to the server.

2018-12-18 16:13:09.893457+0900 lumini[71028:1397326] ERROR SocketEngine: Could not connect to the server.

2018-12-18 16:13:09.893747+0900 lumini[71028:1397327] LOG SocketEngine: Engine is being released

 

Kernel 수정하여 해결

 

 

  • 일반적인 master-detail app 생성

 

 

  • + 메뉴, edit 메뉴 주석 처리

        // Do any additional setup after loading the view, typically from a nib.

//will be2        navigationItem.leftBarButtonItem = editButtonItem

 

//will be1 "hidden Menu" later on        let addButton = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(insertNewObject(_:)))

//        navigationItem.rightBarButtonItem = addButton

 

//Will be2                controller.navigationItem.leftBarButtonItem = splitViewController?.displayModeButtonItem

 

  • 메뉴 몇 개 넣을지 결정

 

스택오버플로 코드 삽입

extension NSFetchedResultsController {

    

    @objc var fetchedObjectsCount: Int {

        let count = sections?.reduce(0, { (sum, sectionInfo) -> Int in

            return sum + sectionInfo.numberOfObjects

        }) ?? 0

        return count

    }

}

 

load 될 때 메뉴 삽입

 

        if self.fetchedResultsController.fetchedObjectsCount == 0 {

            _ = insertNewObject("menu1")

            _ = insertNewObject("menu2")

            _ = insertNewObject("menu3")

        }

 

 

xcdatamodelId 변경

attribute menuTitle

Type String

 

  • 타블렛에서만 지원되는 UI 기획 - 모바일은 어떻게?
  • 모바일용이라면 simpli 적용 못함 ㅡㅡ; 확실히 알아보기
  • simpli summary 에서 폰트 다운로드 안됨
  • simpli 여러버전이 존재, 어디부터 어디까지?

 

 

  • UI 구조 설명 - snapKit
  • GV : System UI 관련 설정값, 다국어 적용
  • BaseView controller, BaseNavigationBar -> common title : ForgotAccountUsername, 
  • extension UIFont
  • extension String 
  • extension UIcolor -> scolor
  • utils : RestAPI, UIView
  • GlobalSetting, queue
  • FCM ported

 

 

#ff333649

 

 

 

 

 

솔직한 유튜버들의 수입 정보

 

치과의사 - https://www.youtube.com/watch?v=P_eZysqKK3A, 대졸직후 월200~300, 전문의 일당 50, 20일-1000, 교정 일당 80, 월 1600~2000, 지방급여가 더 많음, 기타 좋은 이야기 [구독각]

 

당구장 사장 - https://www.youtube.com/watch?v=FgsaC_5qlrE&t=43s , 한달 3000이상 번 기억. 솔직하고 개그 프로만큼 재밌음 계속 보게됨

 

IT 영업 - https://www.youtube.com/watch?v=dX7JrFmdg0o 490~970

 

철구 - https://www.youtube.com/watch?v=LLz8J-XsMEQ 아프리카 210~400, 유투브 3100,

 

킴성태 - https://www.youtube.com/watch?v=2zU8q-2Q4C4 140~740 연봉 6000

 

실리콘 벨리 - https://www.youtube.com/watch?v=9vrrNGEj2_k 연봉 2억 가능

 

 

 

      

 

 

 

 

 

멋진 댓글

beepbeep road runner

1개월 전(수정됨)

 

의사가 되고자 한다면, 이 영상을 반드시 보면 좋겠구요. 저는 의사는 아니지만, 의사인 아버지를 둔 자녀로서 한마디 말씀드리자면, 아버지가 의사이면, 솔직히 금전적으로 마누라, 자식은 좋습니다. 그런데, 정작 본인 자신의 인생은 없습니다. 주6일 근무하면서 토요일도 오후 늦게까지 일해야 하구요. 물론 저의 아버지는 치과는 아닙니다. 외과이구요. 어릴 때 이런 기억이 있습니다. 집에 오셔서 식사하시고, 누워계시다가 전화가 1통 옵니다. "환자 마취 깼습니다" 라구요. 그러면 주무십니다. 스트레스가 많은 직업이라 봅니다. 저희 아버지는 나이 40 이 안되어 거의 반백발이 되셨습니다. 아무튼 몇 년 전, 현역은퇴하시고, 요양병원에서 페이닥터로 50~70명정도의 노인분들을 오전 오후 2번 진료 및 치료 관찰하시고, 평일 5시 칼퇴근하는 주5일 근무를 하시게 되어 정말 기쁩니다. 마지막으로 평생 공부해야 하는 직업이 의사입니다. 항상 손에서 책과 논문을 놓지 않아야 하는 직업입니다. 그래서 저희 아버지는 지금도 골프를 치지 않으십니다. 공부할 시간도 부족한데 골프 배울 시간 없다고 하십니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

TEXT OKAY

 

var util = require("util"),

my_http = require("http");

my_http.createServer(function(request,response){

  console.log("connected")

  response.writeHeader(200, {"Content-Type": "text/plain"});

  response.write("Hello World");

  response.end();

}).listen(3000);

console.log("Server Running on 3000");

 

~/lululab/1server

 

2018-12-10 16:11:37.110264+0900 lumini[70917:1394894] LOG SocketIOClient{/}: Adding handler for event: connect

2018-12-10 16:11:37.111047+0900 lumini[70917:1394894] LOG SocketIOClient{/}: Adding handler for event: currentAmount

2018-12-10 16:11:37.112224+0900 lumini[70917:1394894] LOG SocketIOClient{/}: Handling event: statusChange with data: [connecting]

2018-12-10 16:11:37.112370+0900 lumini[70917:1394894] LOG SocketIOClient{/}: Joining namespace /

2018-12-10 16:11:37.112705+0900 lumini[70917:1394894] LOG SocketManager: Tried connecting socket when engine isn't open. Connecting

2018-12-10 16:11:37.112823+0900 lumini[70917:1394894] LOG SocketManager: Adding engine

2018-12-10 16:11:37.141521+0900 lumini[70917:1394894] LOG SocketManager: Manager is being released

2018-12-10 16:11:37.141580+0900 lumini[70917:1395067] LOG SocketEngine: Starting engine. Server: http://localhost:3000

2018-12-10 16:11:37.141678+0900 lumini[70917:1395067] LOG SocketEngine: Handshaking

2018-12-10 16:11:37.146267+0900 lumini[70917:1395067] LOG SocketEnginePolling: Doing polling GET http://localhost:3000/socket.io/?transport=polling&b64=1

2018-12-10 16:11:37.395552+0900 lumini[70917:1395066] LOG SocketEnginePolling: Got polling response

2018-12-10 16:11:37.396370+0900 lumini[70917:1395066] LOG SocketEnginePolling: Got poll message: Hello World

2018-12-10 16:11:37.401435+0900 lumini[70917:1395066] LOG SocketEngine: Got message: Hello World

2018-12-10 16:11:37.406151+0900 lumini[70917:1395068] LOG SocketEngine: Engine is being released

 

 

import SocketIO

 

        let manager = SocketManager(socketURL: URL(string: "http://localhost:3000")!, config: [.log(true), .compress])

        let socket = manager.defaultSocket

        

        socket.on(clientEvent: .connect) {data, ack in

            print("socket connected")

        }

        

        socket.on("currentAmount"   ) {data, ack in

            guard let cur = data[0] as? Double else { return }

            

            socket.emitWithAck("canUpdate", cur).timingOut(after: 0) {data in

                socket.emit("update", ["amount": cur + 2.50])

            }

            

            ack.with("Got your currentAmount", "dude")

        }

        

        socket.connect()

'Blog History' 카테고리의 다른 글

168  (0) 2020.04.14
167  (0) 2020.04.13
165  (0) 2020.04.12
164  (0) 2020.04.12
163  (0) 2020.04.11

            
//            [FileManager clearDirImages];


#import "RCEasyTipView.h"
#import "ConfirmationEditor.h"
#import "QualityControl.h"
#import "PresentCondition.h"
#import <QuartzCore/QuartzCore.h>

#import "GlobalVar.h"

#import "Entity.h"

#import "SqlUtils.h"

#import "SuperAddressSelector.h"
#import "DCH_BsQtChkEdtg.h"
#import "DCH_BsQtChk.h"

@implementation PresentCondition

@synthesize mTableView, mLblHosh, mlblStatstics, mFlag, mChkAll;
@synthesize mListSearchingResult, mainPanel;

//@synthesize mDate1, mDate2;

/*
 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
 {
 self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
 if (self) {
 // Custom initialization
 }
 return self;
 }
 */

- (void)didReceiveMemoryWarning
{
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];
    
    // Release any cached data, images, etc that aren't in use.
}

#pragma mark - View lifecycle

static void oldOne(PresentCondition *object) {
    [[object->_btnSort layer] setBorderColor:[UIColor colorWithRed:177/255 green:137/255 blue:167/255 alpha:1].CGColor];
    [[object->_btnSort layer] setBorderWidth:0.0];
    
    [[object.btnSiteInfo layer] setBorderWidth:1.0f];
    [[object.btnSiteInfo layer] setCornerRadius:8.0f];
    [[object.btnSiteInfo layer] setMasksToBounds:YES];
    //    [[self.btnSiteInfo layer] setBorderColor:[UIColor colorWithRed:246/255 green:135/255 blue:38/255 alpha:1].CGColor];
    [[object.btnSiteInfo layer] setBorderColor:UIColor.orangeColor.CGColor];
    
    [object->mLblHosh setText:GlobalVar.globalVar.userSelectionSiteInformation.nm_site];
    //    NSLog(@"btnSiteInfo %@", GlobalVar.globalVar.userSelectionSiteInformation.nm_prgs_phs);
    
    
    sqlite3 *database;
    NSString *databaseName = @"mbass.db";;;;;;;;;;;;;;;;;;;;
    NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);;;;;;;;;;;;;;
    NSString *documentsDir = [documentPaths objectAtIndex:0];;;;;;;;;;;;;;;;;;;;
    NSString *databasePath = [documentsDir stringByAppendingPathComponent:databaseName];;;;;;;;;;;;
    NSString *currentProgressString = @"";
    
    if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
        NSString *query = @"select nm_prgs_phs \
        from ddtbt_site;";
        const char *sqlStatement = [query cStringUsingEncoding:NSASCIIStringEncoding];
        sqlite3_stmt *compiledStatement;
        if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {
            // Loop through the results and add them to the feeds array
            while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
                currentProgressString = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 0)];
                break;
            }
        }
        sqlite3_finalize(compiledStatement);;;;;;;;;;;;;;;;;;;;;;;;;;
    }
    sqlite3_close(database);;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
    [object.btnSiteInfo setTitle:currentProgressString forState:UIControlStateNormal ];
    
    object->_nflagRefreshStat = true;
    [object initializeControls];
    [object initActivityIndicator];
    [object initializeData];
    
}

 

벡터 내적 조건

 

두 벡터의 차원(길이)이 같아야 한다.
앞의 벡터가 행 벡터이고 뒤의 벡터가 열 벡터여야 한다.

 

#import <AVKit/AVPlayerViewController.h>
#import <CoreMedia/CMTime.h>

 

//    MPMoviePlayerController *_player;
    [AVPlayerViewController init] player * _player;

 


typedef NS_ENUM(NSInteger, PlayerbackState) {
    PlayerbackStateUnknown = 0,
    PlayerbackStatePaused,
    PlayerbackStopped,
    PlayerbackStatePlaying,
    PlayerbackStateCompleted
};

 

-    _player = [[MPMoviePlayerController alloc] initWithContentURL:nil];
+//    _player = [[AVPlayerViewController alloc] initWithContentURL:nil];
+//    [[AVPlayer alloc] initWithURL:[NSURL URLWithString:@(videoUrl.c_str())]];
+        _player = [[AVPlayer alloc] initWithURL:nil];

 

-        [_player play];
+        [_player.player play];

 

-    [_player setContentURL:nil];
+//hjh    [_player setContentURL:nil];
+//    [(AVURLAsset *)_player.player URL];
+    

 

 

'Blog History' 카테고리의 다른 글

167  (0) 2020.04.13
166  (0) 2020.04.12
164  (0) 2020.04.12
163  (0) 2020.04.11
162  (0) 2020.04.07

+ Recent posts