{
  "name": "SpotX-SDK",
  "version": "1.0.1",
  "summary": "SpotX Mobile SDK",
  "authors": "SpotXchange, Inc.",
  "homepage": "http://www.spotxchange.com",
  "source": {
    "http": "http://aka.spotxcdn.com/media/videos/sdk/ios/AdManager.framework.zip"
  },
  "preserve_paths": "AdManager.framework",
  "platforms": {
    "ios": "7.0"
  },
  "requires_arc": true,
  "public_header_files": [
    "AdManager.framework/Headers/*.h"
  ],
  "frameworks": [
    "AdManager",
    "AdSupport",
    "CoreLocation",
    "CoreTelephony",
    "EventKit",
    "Security",
    "SystemConfiguration",
    "UIKit"
  ],
  "xcconfig": {
    "FRAMEWORK_SEARCH_PATHS": "\"$(PODS_ROOT)/SpotX-SDK\""
  },
  "license": {
    "type": "Commercial",
    "text": "    THE SOFTWARE - Terms and conditions\n    \t.\tPreamble: This Agreement, signed on Mar 26, 2015 [hereinafter: Effective Date] governs the relationship between Anyone, a Business Entity, (hereinafter: Licensee) and LICENSOR, a LICENSOR AFFILIATION whose principal place of business is (Hereinafter: Licensor). This Agreement sets the terms, rights, restrictions and obligations on using [{software}] (hereinafter: The Software) created and owned by Licensor, as detailed herein\n    \t.\tLicense Grant: Licensor hereby grants Licensee a Personal, Non-assignable & non-transferable, Commercial, Royalty free, Without the rights to create derivative works, Non-exclusive license, all with accordance with the terms set forth and other legal restrictions set forth in 3rd party software used while running Software.\n    \t.\tLimited: Licensee may use Software for the purpose of:\n    \t.\tRunning Software on Licensee’s Website[s] and Server[s];\n    \t.\tAllowing 3rd Parties to run Software on Licensee’s Website[s] and Server[s];\n    \t.\tPublishing Software’s output to Licensee and 3rd Parties;\n    \t.\tDistribute verbatim copies of Software’s output (including compiled binaries);\n    \t.\tModify Software to suit Licensee’s needs and specifications.\n    \t.\tBinary Restricted: Licensee may sublicense Software as a part of a larger work containing more than Software, distributed solely in Object or Binary form under a personal, non-sublicensable, limited license. Such redistribution shall be limited to unlimited codebases.\n    \t.\tNon Assignable & Non-Transferable: Licensee may not assign or transfer his rights and duties under this license.\n    \t.\tCommercial, Royalty Free: Licensee may use Software for any purpose, including paid-services, without any royalties\n    \t.\tTerm & Termination: The Term of this license shall be until terminated. Licensor may terminate this Agreement, including Licensee’s license in the case where Licensee :\n    \t.\tbecame insolvent or otherwise entered into any liquidation process; or\n    \t.\texported The Software to any jurisdiction where licensor may not enforce his rights under this agreements in; or\n    \t.\tLicensee was in breach of any of this license's terms and conditions and such breach was not cured, immediately upon notification; or\n    \t.\tLicensee in breach of any of the terms of clause 2 to this license; or\n    \t.\tLicensee otherwise entered into any arrangement which caused Licensor to be unable to enforce his rights under this License.\n    \t.\tPayment: In consideration of the License granted under clause 2, Licensee shall pay Licensor a FEE, via Credit-Card, PayPal or any other mean which Licensor may deem adequate. Failure to perform payment shall construe as material breach of this Agreement.\n    \t.\tUpgrades, Updates and Fixes: Licensor may provide Licensee, from time to time, with Upgrades, Updates or Fixes, as detailed herein and according to his sole discretion. Licensee hereby warrants to keep The Software up-to-date and install all relevant updates and fixes, and may, at his sole discretion, purchase upgrades, according to the rates set by Licensor. Licensor shall provide any update or Fix free of charge; however, nothing in this Agreement shall require Licensor to provide Updates or Fixes.\n    \t.\tUpgrades: for the purpose of this license, an Upgrade shall be a material amendment in The Software, which contains new features and or major performance improvements and shall be marked as a new version number. For example, should Licensee purchase The Software under version 1.X.X, an upgrade shall commence under number 2.0.0.\n    \t.\tUpdates: for the purpose of this license, an update shall be a minor amendment in The Software, which may contain new features or minor improvements and shall be marked as a new sub-version number. For example, should Licensee purchase The Software under version 1.1.X, an upgrade shall commence under number 1.2.0.\n    \t.\tFix: for the purpose of this license, a fix shall be a minor amendment in The Software, intended to remove bugs or alter minor features which impair the The Software's functionality. A fix shall be marked as a new sub-sub-version number. For example, should Licensee purchase Software under version 1.1.1, an upgrade shall commence under number 1.1.2.\n    \t.\tSupport: Software is provided under an AS-IS basis and without any support, updates or maintenance. Nothing in this Agreement shall require Licensor to provide Licensee with support or fixes to any bug, failure, mis-performance or other defect in The Software.\n    \t.\tBug Notification: Licensee may provide Licensor of details regarding any bug, defect or failure in The Software promptly and with no delay from such event; Licensee shall comply with Licensor's request for information regarding bugs, defects or failures and furnish him with information, screenshots and try to reproduce such bugs, defects or failures.\n    \t.\tFeature Request: Licensee may request additional features in Software, provided, however, that (i) Licensee shall waive any claim or right in such feature should feature be developed by Licensor; (ii) Licensee shall be prohibited from developing the feature, or disclose such feature request, or feature, to any 3rd party directly competing with Licensor or any 3rd party which may be, following the development of such feature, in direct competition with Licensor; (iii) Licensee warrants that feature does not infringe any 3rd party patent, trademark, trade-secret or any other intellectual property right; and (iv) Licensee developed, envisioned or created the feature solely by himself.\n    \t.\tLiability:  To the extent permitted under Law, The Software is provided under an AS-IS basis. Licensor shall never, and without any limit, be liable for any damage, cost, expense or any other payment incurred by Licensee as a result of Software’s actions, failure, bugs and/or any other interaction between The Software  and Licensee’s end-equipment, computers, other software or any 3rd party, end-equipment, computer or services.  Moreover, Licensor shall never be liable for any defect in source code written by Licensee when relying on The Software or using The Software’s source code.\n    \t.\tWarranty:  \n    \t.\tIntellectual Property: Licensor hereby warrants that The Software does not violate or infringe any 3rd party claims in regards to intellectual property, patents and/or trademarks and that to the best of its knowledge no legal action has been taken against it for any infringement or violation of any 3rd party intellectual property rights.\n    \t.\tNo-Warranty: The Software is provided without any warranty; Licensor hereby disclaims any warranty that The Software shall be error free, without defects or code which may cause damage to Licensee’s computers or to Licensee, and that Software shall be functional. Licensee shall be solely liable to any damage, defect or loss incurred as a result of operating software and undertake the risks contained in running The Software on License’s Server[s] and Website[s].\n    \t.\tPrior Inspection: Licensee hereby states that he inspected The Software thoroughly and found it satisfactory and adequate to his needs, that it does not interfere with his regular operation and that it does meet the standards and scope of his computer systems and architecture. Licensee found that The Software interacts with his development, website and server environment and that it does not infringe any of End User License Agreement of any software Licensee may use in performing his services. Licensee hereby waives any claims regarding The Software's incompatibility, performance, results and features, and warrants that he inspected the The Software.\n    \t.\tNo Refunds: Licensee warrants that he inspected The Software according to clause 7(c) and that it is adequate to his needs. Accordingly, as The Software is intangible goods, Licensee shall not be, ever, entitled to any refund, rebate, compensation or restitution for any reason whatsoever, even if The Software contains material flaws.\n    \t.\tIndemnification: Licensee hereby warrants to hold Licensor harmless and indemnify Licensor for any lawsuit brought against it in regards to Licensee’s use of The Software in means that violate, breach or otherwise circumvent this license, Licensor's intellectual property rights or Licensor's title in The Software. Licensor shall promptly notify Licensee in case of such legal action and request Licensee’s consent prior to any settlement in relation to such lawsuit or claim.\n    \t.\tGoverning Law, Jurisdiction: Licensee hereby agrees not to initiate class-action lawsuits against Licensor in relation to this license and to compensate Licensor for any legal fees, cost or attorney fees should any claim brought by Licensee against Licensor be denied, in part or in full.  \n"
  }
}
