DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
This non-final office action is responsive to the RCE filed on 09/02/2026.
Claims 1-32 are pending.
Response to Amendment
Applicant has amended independent claims 1, 9, 17, 25 and dependent claim 16 to include new/old limitations in a form not previously presented necessitating new search and considerations.
Amendments filed on 09/02/2026 lack support in the specification. Applicant is requested to indicate/point out proper support for the current amendments in the specification e.g. support for claim elements of “wherein loading of the deferred second portion is triggered based at least in part on state information tracking whether the second portion of the one or more accelerator functions has been loaded” is missing in the specification
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
Claim 1-32 are rejected under 35 U.S.C. 112(b) as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor, regards as the invention.
The following claim elements are not clearly understood:
Claim 1 recites “loading of the deferred second portion is triggered based at least in part on state information tracking whether the second portion of the one or more accelerator function has been loaded. It is unclear if the loading of the second portion is loaded based on the status of the first portion or second portion or both portion of data.
Claims 9, 25 and 17 recite elements similar to claim 1 and have similar deficiency as claim 1. Therefore, they are rejected for the same rationales. Remaining dependent claims 2-8, 10-16, 18-24 and 26-32 are also rejected due to similar deficiency inherited from the rejected independent claims.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-14, 16-32 is/are rejected under 35 U.S.C. 103 as being unpatentable over McCrary et al. (US 2011/0050713 A1, hereafter McCrary) in view of Yellin et al (US 2021/0329088 A1, hereafter Yellin), and further in view of Munshi et al. (US 2017/0075730 A1, hereafter Munshi).
McCrary, Yellin and Munshi were cited in the last office action.
As per claim 1, McCrary teaches the invention substantially as claimed including one or more processors comprising (fig. 1 101):
one or more circuits, in response to a call to an application programming interface (API) ([0027] graphics driver 103 provides an interface and/or application programming interface API for the CPU 101 to access GPU 104 [0028] GPU 104 provides graphics acceleration functionality and other compute functionality [0006] instruction to process such as information, scheduled to operate on the GPU by CPU; CPU, prioritize, items of work/ commands [0008] [0040] dynamically at run-time, it is determined that certain commands, along with the associated data, are to be offloaded by CPU 101 to be processed on GPU 104, any command invoking a DirectX API to perform a function may be selected for processing on GPU 104), to prevent full loading of one or more program libraries from central processing unit (CPU) memory to accelerator memory by partially loading a first portion of data corresponding to the one or more accelerator functions of the one or more program libraries to accelerator memory ([0009] select, subset of buffers from the one or more buffers in memory for execution of work items from the first subset on the GPU based on a workload profile of the GPU [0034] fig. 2 ring buffers communicated from CPU 101 to GPU 104, system memory 102, set of ring buffers 200 subset may be selected based on criteria, subset having commands ready to be executed on GPU 104; CPU 101 can directly write into a register within GPU 104 ; upon writing one or more commands to one or more ring buffers, CPU 101 can directly write into a register within GPU 104 notifying GPU 104 that command buffers are available for processing [0028] GPU 104 provides graphics acceleration functionality [0024] commands, CPU 101, GPU 104, include instruction and data [0036] CPU, transferring command buffers to GPU 104, application, that utilize a GPU is loaded, application startup [0040] dynamically at run-time, it is determined that certain commands, along with the associated data, are to be offloaded by CPU 101 to be processed on GPU 104, any command invoking a DirectX API to perform a function may be selected for processing on GPU 104 ).
McCray doesn’t specifically teach to prevent full loading of program libraries by partially loading the program libraries to the memory, deferring loading a second portion of the data corresponding to the one or more accelerator functions, the second portion comprising executable binary code of the one or more accelerator functions, until the one or more accelerator functions are to be used by a program application, wherein loading of the deferred second portion is triggered based at least in part on state information tracking whether the second portion of the one or more accelerator functions has been loaded.
Yellin, however, teaches prevent full loading of program libraries by partially loading the program libraries to the memory ([0054] load the application via the API, first loading scheme, differs from a second loading scheme, first loading scheme excludes one or more operations that are performed by the second loading scheme [0655] 50%, excluding certain types of content items [0273] prefetches or fetches in real-time, content item, with an indication of the current version of the content [0050] differential pre-fetch update), deferring loading a second portion of the data corresponding to the one or more accelerator functions ([0054] first loading scheme excludes one or more operations that are performed by the second loading scheme; complete one or more of the excluded operations in response to activation of the user application by the user [0655] excluding certain types of content items), the second portion comprising executable binary code of the one or more accelerator functions ([0054] excludes one or more operations that are performed by the second loading scheme [1073] certain apps i.e. binary, should be excluded), until the one or more accelerator functions are to be used by a program application ([0273] prefetches or fetches in real-time, content item, with an indication of the current version of the content, indication conveyed using http request header, etag hash value, CRC value, send a differential update patch, instead of the entire content [0815] user, not expected to use the app until the evening, then loading the app in the afternoon is probably inefficient), wherein loading of the deferred second portion is triggered based at least in part on state information tracking whether the second portion of the one or more accelerator functions has been loaded ([0054] processor, configured, complete one or more of the excluded operations in response to activation of the user application by user [0210] track the content items at the source [0068] efficient prefetch operation, track the available content for the device [0758] keep track of the pre-load status [0805] keep track of the status of the preload and the fact that the ad has not yet been displayed. Then when the user accesses the app, the ad should be displayed track the changes in the subset of items supported at the device, and to deliver updates when appropriate [0895] loaded app i.e. preloaded, user requests access for a loaded app, OS load the interstitial ad i.e. it can load the interstitial ad).
It would have been obvious to one of ordinary skills in the art before the effective filing date of the invention was made to combine the teachings of McCrary with the teachings of Yellin of loading scheme that excludes operations / contents/ apps/ interstitial ad, track the pre-load status / content item at the source, interstitial ad, load the excluded operation/app upon user activation/requests to improve efficiency and allow prevent full loading of program by partially loading the program to the memory, deferring loading a second portion of the data corresponding to the one or more functions, the second portion comprising executable binary code of the one or more functions, until the one or more accelerator functions are to be used by a program application, wherein loading of the deferred second portion is triggered based at least in part on state information tracking whether the second portion of the one or more accelerator functions has been loaded to the method of McCray as in the instant invention.
The combination would have been obvious because supplementing the known method of invoking API call to offload CPU operation/data to the GPU for performing GPU functions as taught by McCary with the teachings of excluding data/operation from pre-loading / loading in real-time, and deferring until the time of use, and loading based on tracking the status pre-loaded content / content item at the source, user request as taught by Yellin to yield expected result and improved efficiency.
McCrary and Yellin, in combination, do not specifically teach program libraries, function of the program libraries.
Munshi, however, teaches call to API to loading of the program libraries; function of the program libraries, accelerator functions ([0006] calling API, host processor, compute units, CPU, GPU, program object, corresponding to a source code, executable codes for compute units, generated from the program object, loaded among compute units [0030] fig. 1 compute application libraries 105 [0033] load, executable, in response to library API, compute runtime [0072] API function, data processing system, target device, GPU [0073] executable, designated target physical device, according to the types CPU, GPU, versions; fig. 2 compute unit CPU, GPUs [0025] GPU, perform graphics operations, e.g. blitter operations, texture mapping, polygon rendering, pixel shading and vertex shading ).
It would be obvious to one of ordinary skills in the art before the effective filing date of the invention was made to combine the teachings of McCrary and Yelling with the teachings of Munshi of executable codes/functions/graphic operations corresponding to the targeted device are loaded to respective compute runtime such as a GPU to improve efficiency and allow call to API for loading of the program libraries; function of the program libraries to the method of McCray and Yellin as in the instant invention.
The combination would have been obvious to one of ordinary skills in the art because substituting the program loaded by the API as taught by McCrary and Yellin by the executable stored in the library and retrieved and loaded into different compute runtimes associated with the GPU by the library API as taught by Munshi to yield expected result with improved efficiency.
As per claim 2, McCrary teaches wherein the accelerator memory is Graphical Processing Unit (GPU) memory ([0028] GPU provides graphics acceleration functionality; fig. 1 GPU 104 GPU memory 120).
As per claim 3, McCrary teaches wherein the API is to further cause one or more other accelerator functions to be executed prior to the one or more accelerator function to be partially load ([0020] GPU to prioritize and schedule the commands specified by the CPU; GPU can prioritize and schedule the commands, based on resource availability in dynamic manner [0032] [0040] during execution of application, game application, graphics related commands, executed i.e. other functions are already executing, dynamically at run-time, determined, certain commands, to be offloaded by CPU 1-1 to be processed on GPU 104).
As per claim 4, McCrary teaches wherein executing the API causes the one or more accelerator function to be loaded as a result of another API being executed ([0027] application programming interface API for the CPU 101 [0034] fig. 2 ring buffers communicated from CPU 101 to GPU 104, system memory 102, set of ring buffers 200 subset may be selected based on criteria, subset having commands ready to be executed on GPU 104; CPU 101 can update one or more memory locations, such as locations in ring buffer work registers 112, which is read by GPU).
Yellin teaches remaining claim elements of function to be loaded as a result of another API being performed ([0053] preloading of the user application [0054] load the application, via, API, in first loading scheme [0057] loading code, user application, RAM [0054] processor, configured, complete, one or more of the excluded operations in response to activation of the user application [0210] content tracker API 82 i.e. second API, prefetcher API 68 MCD tracker, MCD coordinator, content tracker API, choose which item should be prefetched and when they should be prefetched).
As per claim 5, McCrary teaches an input to the API comprises an identifier of a location where the one or more program libraries are stored ([0027] application programming interface API for the CPU 101; [0009] select, subset of buffers from the one or more buffers in memory for execution of work items from the first subset on the GPU based on a workload profile of the GPU [0034] fig. 2 subset may be selected based on criteria, subset having commands ready to be executed on GPU 104 e.g. GPU accesses a subset include ring buffer 0, 1, 2 and 5, update one or more memory locations 112).
As per claim 6, McCrary teaches wherein the API ([0027] Graphics driver 103 provides an application programming interface API for the CPU 101 and application executing on CPU 101 to access GPU 104) is further to obtain information from one or more files comprising the one or more program libraries to cause data associated with the one or more accelerator functions to be stored in the accelerator memory ([0009] select, subset of buffers from the one or more buffers in memory for execution of work items from the first subset on the GPU based on a workload profile of the GPU [0034] fig. 2 ring buffers communicated from CPU 101 to GPU 104, system memory 102, set of ring buffers 200 subset having commands ready to be executed on GPU 104)
Yellin teaches remaining claim elements of wherein the API is further to obtain information from one or more files comprising the one or more program libraries ([0040] content, receiving, long file download [0099] content, configuration file, script [0273] differential update patch, app’s content).
As per claim 7, Yellin teaches wherein the API is further to generate a data structure to indicate a state of each of a plurality of portions of the one or more program libraries ([0053] API, configuration of preloading of user application via the API, preload the user application using the API input [0758] keeps track of the preload status i.e. which preload steps carried out [0759] tracking the app content and user interface status [0805] keep track of the status of the preload [0895] status of the loaded app [0210] content tracker API).
As per claim 8, McCrary teaches loading of at least a portion of the one or more accelerator functions ([0009] select, subset of buffers from the one or more buffers in memory for execution of work items from the first subset on the GPU based on a workload profile of the GPU [0034] fig. 2 ring buffers communicated from CPU 101 to GPU 104, system memory 102, set of ring buffers 200 subset may be selected based on criteria, subset having commands ready to be executed on GPU 104; CPU 101 can directly write into a register within GPU 104 [0028] GPU 104 provides graphics acceleration functionality ).
Yellin teaches remaining claim elements of wherein the API is to prevent ([0054] load the application, via, API, in first loading scheme, differs from second loading scheme, first loading scheme, excludes, operations that are performed by the second loading scheme) until another API is called ([0054] processor, configured, complete, one or more of the excluded operations in response to activation of the user application [0210] content tracker API 82, prefetcher API 68 MCD tracker, MCD coordinator, content tracker API, choose which item should be prefetched and when they should be prefetched).
As per claim 9, McCrary teaches the invention substantially as claimed including a method comprising:
receiving an application programming interface (API) call indicating one or more graphics processing unit (GPU) functions of one or more program libraries ([0027] graphics driver 103 provides an interface and/or application programming interface API for the CPU 101 to access GPU 104 [0028] GPU 104 provides graphics acceleration functionality and other compute functionality [0006] instruction to process such as information, scheduled to operate on the GPU by CPU; CPU, prioritize, items of work/ commands [0008] ); and
responding to the API call by at least partially loading data associated with data corresponding to the one or more GPU functions from central processing unit (CPU) memory to a graphics processing unit (CPU) memory ([0009] select, subset of buffers from the one or more buffers in memory for execution of work items from the first subset on the GPU based on a workload profile of the GPU [0034] fig. 2 ring buffers communicated from CPU 101 to GPU 104, system memory 102, set of ring buffers 200 subset may be selected based on criteria, subset having commands ready to be executed on GPU 104; CPU 101 can directly write into a register within GPU 104 ; upon writing one or more commands to one or more ring buffers, CPU 101 can directly write into a register within GPU 104 notifying GPU 104 that command buffers are available for processing [0028] GPU 104 provides graphics acceleration functionality [0024] commands, CPU 101, GPU 104, include instruction and data).
McCrary doesn’t specifically teach receiving an application programming interface (API) call indicating functions of program libraries; responding to the API call by at least partially loading data associated with data corresponding to the one or more GPU functions, and deferring loading of a second portion of data corresponding to the one or more GPU functions until the one or more GPU functions are to be used, based, at least in part on the indication.
Yellin, however, teaches receiving an application programming interface (API) call indicating functions of program libraries ([0143] prefetch function, download content , API 68, provide the prefetch function and other necessary input, content items, function callbacks; inform the prefetcher through the API to use some default method for fetching contents [0148] API, used to supply the fetch list [0154] API, prefetch content, function call back [0159] API, fetch, content, cache [0256] Fetch List API);
responding to the API call by at least partially loading data associated with data corresponding to the one or more GPU functions ([0143] prefetch, desired content indicated in the fetch list [0159] response might be either the desired content, or indication, content is not in the cache [0163] OS, respond, to the intercepted cache, providing data from cache [0050] different prefetch updates from one or more content sources, deliver differential prefetch updates [0273] differential updates); and
deferring loading of a second portion of data corresponding to the one or more GPU functions until the one or more GPU functions are to be used, based, at least in part on the indication ([0053] API for configuration of preloading of the user application, preload the application using the API input [0054] load the application via the API, first loading scheme, differs from a second loading scheme, first loading scheme excludes one or more operations that are performed by the second loading scheme [0050] different prefetch updates from one or more content sources, deliver differential prefetch updates [0273] differential updates [0390] freshness check [0443] prefetch, limited, size [0895] loaded app i.e. preloaded, user requests access for a loaded app, OS load the interstitial ad i.e. it can load the interstitial ad ).
McCrary and Yellin, in combination, do not specifically teach functions of program libraries.
Munshi, however, teaches call to API to loading of the program libraries; function of the program libraries, accelerator functions ([0006] calling API, host processor, compute units, CPU, GPU, program object, corresponding to a source code, executable codes for compute units, generated from the program object, loaded among compute units [0030] fig. 1 compute application libraries 105 [0033] load, executable, in response to library API, compute runtime [0072] API function, data processing system, target device, GPU [0073] executable, designated target physical device, according to the types CPU, GPU, versions; fig. 2 compute unit CPU, GPUs [0025] GPU, perform graphics operations, e.g. blitter operations, texture mapping, polygon rendering, pixel shading and vertex shading ).
Claim 10 recites a method for elements similar to claim 7. Therefore, it is rejected for the same rationale.
Claim 11 recites a method for elements similar to claim 3. Therefore, it is rejected for the same rationale.
Claim 12 recites a method for elements similar to claim 4. Therefore, it is rejected for the same rationale.
Claim 13 recites a method for elements similar to claim 5. Therefore, it is rejected for the same rationale.
As per claim 14, Yellin teaches wherein the API is further to cause contents of the one or more program libraries to be stored in one or more data structures ([0141] list, content items, prefetches and stores these items in content cache).
As per claim 16, McCrary teaches wherein the API is a driver of a graphics processing unit ([0027] Graphics driver 103 provides an interface and/or application programming interface API).
Claim 17 recites a system for elements similar to some of the elements of claim 1. Therefore, it is rejected for the same rationale.
As per claim 18, McCrary teaches wherein the one or more accelerator functions are one or more GPU functions ([0008] work items, GPU, workload profile of the GPU).
Claim 19 recites a system for elements similar to claim 7. Therefore, it is rejected for the same rationale.
Claim 20 recites a system for elements similar to claim 4. Therefore, it is rejected for the same rationale.
Claim 21 recites a system for elements similar to claim 5. Therefore, it is rejected for the same rationale.
Claim 22 recites a system for elements similar to claim 4. Therefore, it is rejected for the same rationale.
Claim 23 recites a system for elements similar to claim 3. Therefore, it is rejected for the same rationale.
Claim 24 recites a system for elements similar to claim 16. Therefore, it is rejected for the same rationale.
Claim 25 recites elements similar to claim 9. Therefore, it is rejected for the same rationale.
Claim 26 recites elements similar to claim 2. Therefore, it is rejected for the same rationale.
Claim 27 recites elements similar to claim 7. Therefore, it is rejected for the same rationale.
As per claim 28, McCrary teaches wherein the one or more program libraries comprise a module comprising the one or more accelerator functions ([0008] work items, workload profile of the GPU [0028] GPU, acceleration functionality).
Claim 29 recites the elements similar to the claim 3. Therefore, it is rejected for the same rationale.
Claim 30 recites the elements similar to the claim 16. Therefore, it is rejected for the same rationale.
Claim 31 recites the elements similar to the claim 5. Therefore, it is rejected for the same rationale.
Claim 32 recites the elements similar to the claim 4. Therefore, it is rejected for the same rationale.
Claim 15 is/are rejected under 35 U.S.C. 103 as being unpatentable over McCrary in view of Yellin, and further in view of Munshi, as applied to above claims, and further in view of Han et al. (CN 108196905 A, hereafter Han).
McCrary, Yellin and Munshi, in combination, do not specifically teach elements of claim 15.
Han, however, teaches wherein the one or more GPU functions are stored as an executable and linkable (ELF) file (abstract: dynamic loading based on DSP comprising ELF file).
It would be obvious to one of ordinary skills in the art before the effective filing date of the invention was made to combine the teachings of McCrary, Yelling , Munshi with the teachings of Han of dynamic loading method based on DSP comprising ELF to improve efficiency and allow one or more GPU functions are stored as an executable and linkable to the method of McCrary, Yelling , Munshi as in the instant invention. The combination would have been obvious because applying the ELF format for DSP based dynamic loading method as taught by Han to the method of McCrary, Yelling , Munshi to yield expected result with improved efficiency.
Examiners Note
Applicant is further reminded of that the cited paragraphs and in the references as applied to the claims above for the convenience of the applicant(s) and although the specified citations are representative of the teachings of the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested from the applicant in preparing responses, to fully consider all of the references in entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the examiner.
Allowable Subject Matter
Claim 1+15 would be allowable if rewritten to overcome the rejection(s) set forth in this Office action.
Response to Arguments
The previous claim objections have been withdrawn.
The previous specification objections have been withdrawn.
The previous double patenting rejections have been withdrawn.
The previous 35 U.S.C. 101 abstract idea objections have been withdrawn.
The previous 35 U.S.C. 112(b) objections have been withdrawn.
Applicant's arguments filed on 07/26/2012 have been fully considered but they are moot in view of newly cited portion of the cited prior art. However, for the sake of further clarity, Examiner also addressed the arguments presented in the Remarks filed 09/02/2026.
Applicant's arguments filed on 09/02/2026 have been fully considered but they are not persuasive. In Applicant’s response filed on 09/02/2026, Applicant argues the following:
Cited passages do not teach amended claim 1’s recitation of “partially loading a first portion of data corresponding to the only one or more accelerator functions” while “deferring loading a second portion of the data corresponding to the one or more accelerator functions, the second portion comprising executable binary code of the one or more accelerator functions.
Examiner has thoroughly considered Applicant’s arguments, but respectfully, find them unpersuasive for at least the following reasons:
With respect to point a) Examiner respectfully disagree. First, McCary teaches subset of buffers from the one or more buffers in memory for execution of work items on the GPU ([0009]). McCray teaches CPU 101 can identify subset 210 as having commands ready to be executed on GPU 10 based on certain criteria ([0034]) and CPU 101 can directly write into a register within GPU 104 notifying GPU 104 that command buffers are available for processing ([0034]), which is similar to the limitation of partially loading the portion of the data corresponding to the one or more accelerator functions. Same passage also teaches portion of commands/data that are not selected based on the specific criteria, and therefore teaches Non-selected portion deferring loading a second portion of the data corresponding to the one or more accelerator functions. In addition, Yellin explicitly teaches prefetching the desired indicated in the fetch list ([0143]) in response to the either desired content / indication /content not in the cache ([0159]) and receiving /delivering the differential updates from one or more content sources and/ or applying different scheme under which first scheme preloading operations (i.e. partially loading while preventing the excluded operation i.e. deferring) and excludes one or more operations that are completed (i.e. loaded later) in response to the activation of application i.e. ([0050]-[0054]). Therefore, combination of McCray and Yellin clearly teaches method of partially loading while deferring portion of data associated with the accelerated function.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Becchi et al. (US 2011/0173155 A1) teaches data aware scheduling on heterogeneous platforms including runtime deferring back data.
Feng et al. (US 2020/0211150 A1) teaches deferred geometry rasterization technology
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ABU ZAR GHAFFARI whose telephone number is (571)270-3799. The examiner can normally be reached Monday-Thursday 9:00 - 17:00.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Aimee Li can be reached at 571-272-4169. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
ABU ZAR GHAFFARI
Primary Examiner
Art Unit 2195
/ABU ZAR GHAFFARI/Primary Examiner, Art Unit 2195